Witam, piszę malutką grę polegającą na wpisywaniu wyrazów na ostatnią literę poprzedniego z tym, że mam problem.
Program działa tak:
- Uruchamiamy program
- Pobieram z bazy ostatnie 10 wyrazów
- Pobieram ostatnią literę z ostatnio wprowadzonego wyrazu
- Literę wpisuję do textBoxa i wywołuję textBox1.focus()
Tutaj pojawia się problem, bo kursor jest przed literą zamiast po niej.
Na textBox mam dodany event dokładniej KeyPressEventArgs - odpowiada on za przechwycenie wciśnięcia klawiasza ENTER, abym mógł przesłać zapytanie ze słowem do bazy.
Jeżeli słowa nie ma w słowniku SJP lub już wystąpiło w grze (słowa muszą być unikalne) wyświetlam odpowiedniego MessageBox poprzez złapanie odpowiedniego wyjątku, wtedy również czyszczę textBox'a i znów wywołuję .focus() - sytuacja się powtarza, kursor jest dodawany na początku zamiast na końcu.
Czy wie ktoś jak rozwiązać ten problem? Zależy mi na tym, ponieważ gra przestałaby denerwować. ;)
Pytanie drugie
Jak pisałem wyżej mam event'a KeyPressEventArgs, wiem jak odczytać czy dany klawisz to np. Backspace - tylko chciałbym uniemożliwić usuwanie pierwszej litery (ma być "na stałe").
Czyli powiedzmy:
private void mojaFunkcja(object sender, JakisEventHandler e) {
if (e.KeyChar == (char) Keys.Back) {
if (textBox1.Text.Length == 1) {
return false;
}else{
return true;
}
}
}
Jak zrobić coś takiego jak w/w przykładowym kodzie?