Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
IDataGridViewEditingControl-Schnittstelle
Definiert gemeinsame Funktionen für Steuerelemente, die sich innerhalb von Zellen einer DataGridView befinden.
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
Der IDataGridViewEditingControl-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
EditingControlDataGridView | Ruft die DataGridView ab, die die Zelle enthält, oder legt diese fest. |
|
EditingControlFormattedValue | Ruft den formatierten Wert der Zelle ab, die im Editor geändert wird, oder legt diesen Wert fest. |
|
EditingControlRowIndex | Ruft den Index der übergeordneten Zeile der besitzenden Zelle ab oder legt den Index fest. |
|
EditingControlValueChanged | Ruft einen Wert ab, der angibt, ob sich der Wert des Bearbeitungssteuerelements vom Wert der übergeordneten Zelle unterscheidet. |
|
EditingPanelCursor | Ruft den Cursor ab, der verwendet wird, wenn sich der Mauszeiger über dem DataGridView.EditingPanel, jedoch nicht über dem Bearbeitungssteuerelement befindet. |
|
RepositionEditingControlOnValueChange | Ruft einen Wert ab, der angibt, ob der Zellinhalt bei jeder Änderung des Werts neu positioniert werden muss, oder legt diesen Wert fest. |
| Name | Beschreibung | |
|---|---|---|
|
ApplyCellStyleToEditingControl | Ändert die Benutzeroberfläche des Steuerelements so, dass diese dem angegebenen Zellformat entspricht. |
|
EditingControlWantsInputKey | Bestimmt, 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. |
|
GetEditingControlFormattedValue | Ruft den formatierten Wert der Zelle ab. |
|
PrepareEditingControlForEdit | Bereitet die gegenwärtig ausgewählte Zelle für die Bearbeitung vor. |
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:
-
Das DataGridView-Steuerelement erstellt eine Instanz des Bearbeitungssteuerelementtyps.
-
Das DataGridView-Steuerelement ruft die InitializeEditingControl-Methode der Zelle auf. Sie können diese Methode überschreiben, um dem Bearbeitungssteuerelement den Zellwert zu übergeben.
-
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.
-
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 implementiert der Zelltyp keine IDataGridViewEditingCell, und er enthält auch kein Bearbeitungssteuerelement.
Im folgenden Codebeispiel wird eine Implementierung dieser Schnittstelle bereitgestellt, die von DateTimePicker abgeleitet wird. Dieses Beispiel ist Teil eines umfangreicheren Beispiels unter 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); } }
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.