Abrufen der gewählten Papierzufuhr

Das paperSourceList-Steuerelement, das Sie dem Web Form oder Windows Form hinzugefügt haben, zeigt eine Liste mit benutzerdefinierten Papierzufuhroptionen an, die auf dem aktuell ausgewählten Drucker basieren. Wenn der EndAnwender zur Laufzeit eine Papierzufuhr aus dem paperSourceList-Steuerelement auswählt, muss diese Papierzufuhr auf die CustomPaperSource-Eigenschaft des Berichts angewendet werden.

Es können aber nur zwei mögliche Werttypen aus dem paperSourceList-Steuerelement abgerufen werden:

  • Der Zeichenfolgenwert für das ausgewählte Element.
  • Der Ganzzahlindex des ausgewählten Elements.

Keiner der beiden Typen (Zeichenfolge oder ganze Zahl) ist mit der CustomPaperSource-Eigenschaft kompatibel. Der Eigenschaft kann nur der Typ "System.Drawing.Printing.PaperSource" zugewiesen werden.

Sie erstellen in diesem Abschnitt die Hilfsmethode GetSelectedPaperSource(), die die richtige PaperSource-Instanz basierend auf dem ausgewählten Index des paperSourceList-Steuerelements bestimmt und zurückgibt.

Hierfür durchsucht die Methode wiederholt die PaperSources-Auflistung nach dem aktuell ausgewählten Drucker und vergleicht die SourceName-Zeichenfolgeneigenschaft der PaperSource-Instanz mit dem Zeichenfolgenwert des ausgewählten Elements. Wenn die richtige PaperSource-Instanz gefunden wurde, wird diese Instanz von der Methode zurückgegeben.

So erstellen Sie die GetSelectedPaperSource()-Methode

  1. Erstellen Sie am Ende der Klasse die GetSelectedPaperSource()-Hilfsmethode, die eine PaperSource-Instanz zurückgibt.
``` vb
Private Function GetSelectedPaperSource() As System.Drawing.Printing.PaperSource
End Function
```

``` csharp
private System.Drawing.Printing.PaperSource GetSelectedPaperSource()
{
}
```

Sonstiger in diesem Schritt enthaltener Code wird von der GetSelectedPaperSource()-Methode verwendet.
  1. Deklarieren und instantiieren Sie innerhalb der Methode die PaperSource-Klasse aus dem System.Drawing.Printing-Namespace.

    Dim selectedPaperSource As System.Drawing.Printing.PaperSource = New System.Drawing.Printing.PaperSource
    
    System.Drawing.Printing.PaperSource selectedPaperSource = new System.Drawing.Printing.PaperSource();
    
  2. Deklarieren und instantiieren Sie die PrinterSettings-Klasse aus dem System.Drawing.Printing-Namespace.

    Dim myPrinterSettings As System.Drawing.Printing.PrinterSettings = New System.Drawing.Printing.PrinterSettings()
    
    System.Drawing.Printing.PrinterSettings printerSettings = new System.Drawing.Printing.PrinterSettings();
    
  3. Weisen Sie der PrinterName-Eigenschaft der PrinterSettings-Instanz die CURRENT_PRINTER-Zeichenfolgenkonstante zu.

    myPrinterSettings.PrinterName = CURRENT_PRINTER
    
    printerSettings.PrinterName = CURRENT_PRINTER;
    
  4. Erstellen Sie eine foreach-Schleife, die jede PaperSource-Instanz in der Instanz der PaperSources-Indexklasse durchläuft.

    For Each myPaperSource As System.Drawing.Printing.PaperSource In myPrinterSettings.PaperSources
    Next
    
    foreach (System.Drawing.Printing.PaperSource paperSource in printerSettings.PaperSources)
    {
    }
    
  5. Fügen Sie innerhalb der foreach-Schleife einen Bedingungsblock hinzu, der überprüft, ob die SourceName-Eigenschaft der PaperSource-Instanz mit dem ausgewählten Element im paperSourceList-Steuerelement übereinstimmt.

<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images\xkh1wxd8.alert_note(de-de,VS.90).gif" alt="Note" class="note" />Anmerkung</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>Der Name des ausgewählten Elements unterscheidet sich beim DropDownList-Steuerelement in einer Website vom Namen des ComboBox-Steuerelements in einem Windows-Projekt. Befolgen Sie die jeweiligen Anweisungen, die unten aufgeführt sind.</p></td>
</tr>
</tbody>
</table>

1.  Erstellen Sie bei einem Windows-Projekt den Bedingungsblock, der den Namen des im paperSourceList-Steuerelement ausgewählten Elements als SelectedText-Eigenschaft angibt.
    
    ``` vb
    If myPaperSource.SourceName = paperSourceList.SelectedText Then
    End If
    ```
    
    ``` csharp
    if (paperSource.SourceName == paperSourceList.SelectedText)
    {
    }
    ```

2.  Erstellen Sie bei einer Website den Bedingungsblock, der den Namen des im paperSourceList-Steuerelement ausgewählten Elements als SelectedItem.Text-Eigenschaft angibt.
    
    ``` vb
    If myPaperSource.SourceName = paperSourceList.SelectedItem.Text Then
    End If
    ```
    
    ``` csharp
    if (paperSource.SourceName == paperSourceList.SelectedItem.Text)
    {
    }
    ```
  1. Weisen Sie der selectedPaperSource-Instanz, die am Anfang der Methode deklariert wurde, innerhalb des Bedingungsblocks die PaperSource-Instanz des aktuellen Durchlaufs der foreach-Schleife zu.

    selectedPaperSource = myPaperSource
    
    selectedPaperSource = paperSource;
    
  2. Geben Sie außerhalb des Bedingungsblocks und außerhalb der foreach-Schleife die selectedPaperSource-Instanz von der Methode zurück.

    Return selectedPaperSource
    
    return selectedPaperSource;