Hallo zusammen!
Ich habe für eine Applikation ein Control namens "ExtendedGridView" erstellt, dass von einem DataGridView erbt.
Wenn das Programm läuft sollen vom Benutzer Daten in das Grid eingefügt werden. In einer Spalte kommt auch mehrzeiliger Text vor.
Das sieht dann so aus:
Jetzt wollte ich, dass direkt beim Eingeben die Zeilenhöhe angepasst wird, und nicht erst nachdem man Enter drückt oder die Zelle verlässt.
Dafür habe ich folgenden Code im ExtendedGridView eingebaut:
[highlight=vbnet]
Private WithEvents usedTextBox As TextBox
Private Sub ExtendedGridView_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlSho wingEventArgs) Handles Me.EditingControlShowing
usedTextBox = DirectCast(e.Control, TextBox)
usedTextBox.BackColor = Color.White
End Sub
Private Sub usedTextBox_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles usedTextBox.TextChanged
Me.CurrentCell.Value = usedTextBox.Text
Me.AutoResizeRow(Me.CurrentRow.Index)
End Sub
[/highlight]
Diesen Code habe ich aus einem Beispiel irgendwo im Internet. Das mit der Zeilenhöhe funktioniert auch wunderbar. Wenn ich allerdings jetzt etwas eingebe und Enter drücke oder die Zelle verlasse, dann wird die nächste Zelle im Eingabemodus schwarz ausgefüllt und man sieht nicht, was man schreibt.
Das sieht dann so aus:
Genau das passiert auch bei dem Beispiel aus dem Internet.
Hat jemand eine Idee woran das liegen könnte oder vielleicht sogar einen Lösungsvorschlag?
Vielen Dank schon mal!
Ich habe für eine Applikation ein Control namens "ExtendedGridView" erstellt, dass von einem DataGridView erbt.
Wenn das Programm läuft sollen vom Benutzer Daten in das Grid eingefügt werden. In einer Spalte kommt auch mehrzeiliger Text vor.
Das sieht dann so aus:
Jetzt wollte ich, dass direkt beim Eingeben die Zeilenhöhe angepasst wird, und nicht erst nachdem man Enter drückt oder die Zelle verlässt.
Dafür habe ich folgenden Code im ExtendedGridView eingebaut:
[highlight=vbnet]
Private WithEvents usedTextBox As TextBox
Private Sub ExtendedGridView_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlSho wingEventArgs) Handles Me.EditingControlShowing
usedTextBox = DirectCast(e.Control, TextBox)
usedTextBox.BackColor = Color.White
End Sub
Private Sub usedTextBox_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles usedTextBox.TextChanged
Me.CurrentCell.Value = usedTextBox.Text
Me.AutoResizeRow(Me.CurrentRow.Index)
End Sub
[/highlight]
Diesen Code habe ich aus einem Beispiel irgendwo im Internet. Das mit der Zeilenhöhe funktioniert auch wunderbar. Wenn ich allerdings jetzt etwas eingebe und Enter drücke oder die Zelle verlasse, dann wird die nächste Zelle im Eingabemodus schwarz ausgefüllt und man sieht nicht, was man schreibt.
Das sieht dann so aus:
Genau das passiert auch bei dem Beispiel aus dem Internet.
Hat jemand eine Idee woran das liegen könnte oder vielleicht sogar einen Lösungsvorschlag?
Vielen Dank schon mal!