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