Ich wollte auf einem Formular ein gebundenes numericpudown Steuerelement verwenden.
Wenn es nur per up- und downbutton (abgefragt über Valuechange)
oder durch Tasten (abgefragt über Keypress) bedienbar sein soll funktioniert es.
Möchte ich aber das beide Varianten funktionieren, wird der über Tastatur eingegebene Wert beim ersten mal nicht richtig übernommen.
Ändere ich den Wert daraufhin ein zweites mal funktioniert es, auch bei allen weiteren Änderungen.
Es muß dann aber wirklich eine andere Zahl drinstehen als vorher. (0 weg und wieder dran wird nicht akzeptiert)
Wenn er eine Änderung akzeptiert hat, werden auch alle folgenden Änderungen ordentlich durchgeführt.
Auch wenn ich den Button nach oben oder nach unten drücke wird die Änderung erst ab dem 2. Click akzeptiert.
Wie muß ich es richtig machen ?
Wenn es nur per up- und downbutton (abgefragt über Valuechange)
oder durch Tasten (abgefragt über Keypress) bedienbar sein soll funktioniert es.
Möchte ich aber das beide Varianten funktionieren, wird der über Tastatur eingegebene Wert beim ersten mal nicht richtig übernommen.
Ändere ich den Wert daraufhin ein zweites mal funktioniert es, auch bei allen weiteren Änderungen.
Es muß dann aber wirklich eine andere Zahl drinstehen als vorher. (0 weg und wieder dran wird nicht akzeptiert)
Wenn er eine Änderung akzeptiert hat, werden auch alle folgenden Änderungen ordentlich durchgeführt.
Auch wenn ich den Button nach oben oder nach unten drücke wird die Änderung erst ab dem 2. Click akzeptiert.
Wie muß ich es richtig machen ?
VB.NET-Quellcode
-
- Public Class Testnumupdown
- Dim dtrowTest As dsBueromaterial.TestRow
- Dim blnTest As Boolean
- Public Sub New()
- ' Dieser Aufruf ist für den Designer erforderlich.
- InitializeComponent()
- Me.TestBindingSource.AddNew()
- dtrowTest = DirectCast(DirectCast(Me.TestBindingSource.Current, DataRowView).Row, dsBueromaterial.TestRow)
- dtrowTest.Bedarf = 50
- ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
- blnTest = True
- End Sub
- Private Sub NumericUpDown1_ValueChanged(sender As Object, e As EventArgs) Handles NumericUpDown1.ValueChanged
- If blnTest Then
- Me.TestBindingSource.EndEdit()
- dtrowTest = DirectCast(DirectCast(Me.TestBindingSource.Current, DataRowView).Row, dsBueromaterial.TestRow)
- Me.txtText.Text = dtrowTest.Büromaterial
- Me.txtZahl.Text = dtrowTest.Bedarf.ToString
- Me.txtZahlOriginal.Text = Me.NumericUpDown1.Value.ToString
- End If
- End Sub
- Private Sub NumericUpDown1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles NumericUpDown1.KeyPress
- If blnTest AndAlso e.KeyChar = Cr Then
- Me.TestBindingSource.EndEdit()
- dtrowTest = DirectCast(DirectCast(Me.TestBindingSource.Current, DataRowView).Row, dsBueromaterial.TestRow)
- Me.txtText.Text = dtrowTest.Büromaterial
- Me.txtZahl.Text = dtrowTest.Bedarf.ToString
- Me.txtZahlOriginal.Text = Me.NumericUpDown1.Value.ToString
- End If
- End Sub
- End Class