HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Beszúró/felülíró mód egy TextBox kontrolnál


Példaprogram letöltése

6030 bájt

Egy egyszerű trükk segítségével elérhetjük azt, hogy bármely TextBox képes legyen arra, hogy szöveg gépelésekor ne csak beszúró üzemmódban dolgozzon, hanem úgy is, hogy a soron következő karaktert felülírja.

A trükk lényege a következő: ha a TextBox-ban van kijelölt szöveg, és a felhasználó lenyom egy billentyűt, akkor a kijelölt szöveg törlődik, és annak helyén megjelenik az új karakter. Ha most el tudjuk érni azt, hogy mindig a kurzortól egy karakterrel jobbra lévő karakter legyen kijelölve és az is csak akkor, amikor az új billentyű lenyomása történik, akkor létrejön a kívánt funkció. Mivel a szövegkijelölés csak akkor történik meg, amikor már le lett nyomva a soron következő billentyű, így a felhasználó észre sem veszi, hogy mi is történt, hanem csak az eredményt látja: felülírás történik a TextBox-ban.
Egészítsük ki még ezt a funkciót azzal, hogy az Insert gomb lenyomásával változtathatunk beszúró és felülíró mód között. Az aktuális mód tárolásárára megkérjük az insertMode nevű változónkat.
  Private insertMode As Boolean = True
Ezek után, ha billentyű lenyomás történik és nincs a felhasználó által kijelölt szöveg a TextBox-ban, valamint a beszúró üzemmód lett kijelölve, akkor nincs más teendőnk, mint a SelectionLength property értékét 1-re állítani. Ezzel azt érjük el, amire szükségünk is van: az aktuális kurzorpozíció mellett egy karakter lesz kijelölve, de mivel a billentyű lenyomás már megtörtént, így ez a kijelölt karakter rögtön törlődik is, és annak helyén megjelenik az új.
  Private Sub textBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles textBox1.KeyPress
    If textBox1.SelectionLength = 0 AndAlso insertMode Then
      textBox1.SelectionLength = 1
    End If
  End Sub 'textBox1_KeyPress
Az Insert gomb figyelését a KeyDown eseménynél valósítjuk meg, és itt egyszerűen új értéket adunk az insertMode nevű változónknak.
  Private Sub textBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles textBox1.KeyDown
    If e.KeyCode = Keys.Insert Then
      insertMode = Not insertMode
    End If
    If insertMode Then
      label2.Text = "Felülíró mód"
    Else
      label2.Text = "Beszúró mód"
    End If
  End Sub 'textBox1_KeyDown

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |