EDIT : Udało mi się :-)
NullReferenceException -> trzeba zrobić w metodzie czas = new Timer(blablabla)
(CheckBox1.Checked -> opcja autozatwierdzania kodu po 1.5s )
Metoda Text_Changed
Timer1.Stop()
Timer1.Start()
If (CheckBox1.Checked) Then
If (Condition = False) Then
Condition = True
End If
End If
i dodany zwykły Timer1.Tick
Private Sub czas_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If (Condition = True) Then
SzukajPDF(sender, e)
Condition = False
End If
End Sub
Witam. Jestem Java developerem i napisałem program na maszynę w Javie, niestety maszyna nie ma Javy i musiałem go przerobić na windowsowski program ( a w C# się nie znam :D )
Muszę zrobić, by automatycznie po 1.5s zatwierdzał się zeskanowany Barcode. Problem polega na tym, że próbuję to zrobić na zdarzeniu "TextChanged", więc gdy robimy Ctrl + C -> Ctrl + V jest ok, ale skaner wklepuje po kolei cyfry itp w kodzie, więc co cyfrę, wykonuje mi obsługe wydarzenia TextChanged, macie jakieś pomysły jak to zaradzić ? ( Na dole wklepię jak mi się to w Javie udało osiągnąć ) Threading.Thread.Sleep(czas) mi niestety usypia cały program i po wklepaniu kodu, wklepuje się np . 1...czeka 1.5s... szuka PDF z nazwą "1" a nie całego kodu np 11-11111-11-11. Bardzo proszę o pomoc :-) z góry dziekuję.
Próbuję to osiągnąć w sposób : wywala mi Wyjątek nieobsłużony: System.NullReferenceException: Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
If (CheckBox1.Checked) Then
If (Condition = False) Then
Condition = True
Czekaj(sender, e)
End If
End If
End Sub
Private Sub Czekaj(sender, e)
ts = System.TimeSpan.FromMilliseconds(1500)
If t.Wait(ts) Then
SzukajPDF(sender, e)
End If
End Sub
Kod metody Czekaj w Javie ( działający )
public static void Czekaj() {
new java.util.Timer().schedule(new java.util.TimerTask() {
@Override
public void run() {
if (!field.getText().equals("")) {
Szukaj();
field.setText("");
}
}
}, 1500);
}