Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

IDataGridViewEditingControl-Schnittstelle

Definiert gemeinsame Funktionen für Steuerelemente, die sich innerhalb von Zellen einer DataGridView befinden.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)
public interface IDataGridViewEditingControl

Der IDataGridViewEditingControl-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche EigenschaftEditingControlDataGridViewRuft die DataGridView ab, die die Zelle enthält, oder legt diese fest.
Öffentliche EigenschaftEditingControlFormattedValueRuft den formatierten Wert der Zelle ab, die im Editor geändert wird, oder legt diesen Wert fest.
Öffentliche EigenschaftEditingControlRowIndexRuft den Index der übergeordneten Zeile der besitzenden Zelle ab oder legt den Index fest.
Öffentliche EigenschaftEditingControlValueChangedRuft einen Wert ab, der angibt, ob sich der Wert des Bearbeitungssteuerelements vom Wert der übergeordneten Zelle unterscheidet.
Öffentliche EigenschaftEditingPanelCursorRuft den Cursor ab, der verwendet wird, wenn sich der Mauszeiger über dem DataGridView.EditingPanel, jedoch nicht über dem Bearbeitungssteuerelement befindet.
Öffentliche EigenschaftRepositionEditingControlOnValueChangeRuft einen Wert ab, der angibt, ob der Zellinhalt bei jeder Änderung des Werts neu positioniert werden muss, oder legt diesen Wert fest.
Zum Seitenanfang
  NameBeschreibung
Öffentliche MethodeApplyCellStyleToEditingControlÄndert die Benutzeroberfläche des Steuerelements so, dass dieses dem angegebenen Zellenstil entspricht.
Öffentliche MethodeEditingControlWantsInputKeyBestimmt, ob es sich bei der angegebenen Taste um eine normale Eingabetaste handelt, die durch das Bearbeitungssteuerelement verarbeitet werden soll, oder ob es sich um eine besondere Taste handelt, die durch die DataGridView verarbeitet werden soll.
Öffentliche MethodeGetEditingControlFormattedValueRuft den formatierten Wert der Zelle ab.
Öffentliche MethodePrepareEditingControlForEditBereitet die derzeit ausgewählte Zelle für die Bearbeitung vor.
Zum Seitenanfang

Diese Schnittstelle wird von Steuerelementen implementiert, z. B. DataGridViewComboBoxEditingControl und DataGridViewTextBoxEditingControl, die sich im Bearbeitungsmodus in entsprechenden DataGridView-Zellen befinden, z. B. DataGridViewComboBoxCell und DataGridViewTextBoxCell.

Bei Zelltypen, die Bearbeitungssteuerelemente enthalten können, wird die EditType-Eigenschaft auf einen Type festgelegt, der den Typ des Bearbeitungssteuerelements darstellt. Wenn die Zelle in den Bearbeitungsmodus wechselt, werden die folgenden Schritte ausgeführt:

  1. Das DataGridView-Steuerelement erstellt eine Instanz des Bearbeitungssteuerelementtyps.

  2. Das DataGridView-Steuerelement ruft die InitializeEditingControl-Methode der Zelle auf. Sie können diese Methode überschreiben, um dem Bearbeitungssteuerelement den Zellwert zu übergeben.

  3. Das DataGridView-Steuerelement ruft die ApplyCellStyleToEditingControl-Methode des Bearbeitungssteuerelements auf und übergibt das aktuelle Format der Zelle. Sie können diese Methode implementieren, um die Darstellung des Bearbeitungssteuerelements zu initialisieren und dadurch an die Darstellung der Zelle anzupassen.

  4. Das DataGridView-Steuerelement ruft die PrepareEditingControlForEdit-Methode des Bearbeitungssteuerelements auf. Sie können diese Methode implementieren, um das Bearbeitungssteuerelement abschließend anzupassen, z. B. durch Auswählen des Steuerelementwerts.

Weitere Informationen über das Implementieren von IDataGridViewEditingControl finden Sie unter Gewusst wie: Hosten von Steuerelementen in DataGridView-Zellen in Windows Forms.

Zelltypen wie DataGridViewCheckBoxCell, die eine Benutzeroberfläche zum Angeben von Werten bereitstellen, aber kein Bearbeitungssteuerelement enthalten, implementieren die IDataGridViewEditingCell-Schnittstelle. Die Benutzeroberfläche wird in diesem Fall unabhängig davon angezeigt, ob sich die Zelle im Bearbeitungsmodus befindet.

Andere Zellentypen, z. B. DataGridViewButtonCell, stellen eine Benutzeroberfläche bereit, speichern jedoch keine benutzerdefinierte Werte. In diesem Fall wird durch den Zellentyp weder IDataGridViewEditingCell implementiert noch wird ein Bearbeitungssteuerelement gehostet.

Im folgenden Codebeispiel wird eine Implementierung dieser Schnittstelle bereitgestellt, die von DateTimePicker abgeleitet wird. Dieses Beispiel ist Teil eines umfangreicheren Beispiels in Gewusst wie: Hosten von Steuerelementen in DataGridView-Zellen in Windows Forms.


class CalendarEditingControl : DateTimePicker, IDataGridViewEditingControl
{
    DataGridView dataGridView;
    private bool valueChanged = false;
    int rowIndex;

    public CalendarEditingControl()
    {
        this.Format = DateTimePickerFormat.Short;
    }

    // Implements the IDataGridViewEditingControl.EditingControlFormattedValue 
    // property.
    public object EditingControlFormattedValue
    {
        get
        {
            return this.Value.ToShortDateString();
        }
        set
        {            
            if (value is String)
            {
                try
                {
                    // This will throw an exception of the string is 
                    // null, empty, or not in the format of a date.
                    this.Value = DateTime.Parse((String)value);
                }
                catch
                {
                    // In the case of an exception, just use the 
                    // default value so we're not left with a null
                    // value.
                    this.Value = DateTime.Now;
                }
            }
        }
    }

    // Implements the 
    // IDataGridViewEditingControl.GetEditingControlFormattedValue method.
    public object GetEditingControlFormattedValue(
        DataGridViewDataErrorContexts context)
    {
        return EditingControlFormattedValue;
    }

    // Implements the 
    // IDataGridViewEditingControl.ApplyCellStyleToEditingControl method.
    public void ApplyCellStyleToEditingControl(
        DataGridViewCellStyle dataGridViewCellStyle)
    {
        this.Font = dataGridViewCellStyle.Font;
        this.CalendarForeColor = dataGridViewCellStyle.ForeColor;
        this.CalendarMonthBackground = dataGridViewCellStyle.BackColor;
    }

    // Implements the IDataGridViewEditingControl.EditingControlRowIndex 
    // property.
    public int EditingControlRowIndex
    {
        get
        {
            return rowIndex;
        }
        set
        {
            rowIndex = value;
        }
    }

    // Implements the IDataGridViewEditingControl.EditingControlWantsInputKey 
    // method.
    public bool EditingControlWantsInputKey(
        Keys key, bool dataGridViewWantsInputKey)
    {
        // Let the DateTimePicker handle the keys listed.
        switch (key & Keys.KeyCode)
        {
            case Keys.Left:
            case Keys.Up:
            case Keys.Down:
            case Keys.Right:
            case Keys.Home:
            case Keys.End:
            case Keys.PageDown:
            case Keys.PageUp:
                return true;
            default:
                return !dataGridViewWantsInputKey;
        }
    }

    // Implements the IDataGridViewEditingControl.PrepareEditingControlForEdit 
    // method.
    public void PrepareEditingControlForEdit(bool selectAll)
    {
        // No preparation needs to be done.
    }

    // Implements the IDataGridViewEditingControl
    // .RepositionEditingControlOnValueChange property.
    public bool RepositionEditingControlOnValueChange
    {
        get
        {
            return false;
        }
    }

    // Implements the IDataGridViewEditingControl
    // .EditingControlDataGridView property.
    public DataGridView EditingControlDataGridView
    {
        get
        {
            return dataGridView;
        }
        set
        {
            dataGridView = value;
        }
    }

    // Implements the IDataGridViewEditingControl
    // .EditingControlValueChanged property.
    public bool EditingControlValueChanged
    {
        get
        {
            return valueChanged;
        }
        set
        {
            valueChanged = value;
        }
    }

    // Implements the IDataGridViewEditingControl
    // .EditingPanelCursor property.
    public Cursor EditingPanelCursor
    {
        get
        {
            return base.Cursor;
        }
    }

    protected override void OnValueChanged(EventArgs eventargs)
    {
        // Notify the DataGridView that the contents of the cell
        // have changed.
        valueChanged = true;
        this.EditingControlDataGridView.NotifyCurrentCellDirty(true);
        base.OnValueChanged(eventargs);
    }
}


.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)

Community-Beiträge

HINZUFÜGEN
© 2013 Microsoft. Alle Rechte vorbehalten.