Hallo,
ich habe ein ungebundenes DataGridView-Objekt erstellt und möchte auf Tatstureingaben in einer DataGridViewTextBoxCell reagieren (Framework .NET 5.0).
Ich bin dabei inhaltlich so vorgegangen wie es hier beschrieben wird:
public class EigeneDataGridViewTextBoxCell : DataGridViewTextBoxCell
{
public EigeneDataGridViewTextBoxCell() : base() { }
protected override void OnKeyDown(KeyEventArgs e, int rowIndex)
{
base.OnKeyDown(e, rowIndex);
// weitere Bearbeitung
}
}
public class EigeneDataGridViewColumn: DataGridViewColumn
{
public EigeneDataGridViewColumn() : base()
{
CellTemplate = new EigeneDataGridViewTextBoxCell();
}
}
EigeneDataGridViewColumn spalte = new EigeneDataGridViewColumn()
{
Name = "DGVCTest",
HeaderText = "Test"
};
dataGridView1.Columns.Add(spalte);
Leider wird die OnKeyDown-Methode meines "EigeneDataGridViewTextBoxCell"-Objekts nie aufgerufen.
Was mache ich falsch?
Vielen Dank im Voraus!
Als Hinweis: es gibt kein Framework .NET 5.0.
Die Ära vom .NET Framework ist seit 4.8 vorbei. Die neue Welt heisst .NET Core und seit .NET 5 ist das Core weggefallen.
Du musst an allen eigenen Controls die Events überschreiben; das hat Du schon gemacht, auch wenn man das hier nicht sieht, oder?
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo Abt,
vielen Dank für Deine Antwort.
Ich stehe jetzt etwas auf dem Schlauch: was meinst Du mit "..an allen eigenen Controls..."?
Ich dachte, wenn der Column als CellTemplate meine eigene TextBoxCell hinterlegt ist, dass dann automatosch dieses Objekt verwendet wird. Oder muss ich es so verstehen, dass bei jedem Instanziieren der TextBoxCell meine eigene TextBoxCell angegeben werden muss? Wenn ja, wo muss ich ansetzen?
Danke und Grüße
Anchiko