Around and About .NET World

Il blog di Marco Minerva
posts - 1671, comments - 2232, trackbacks - 2135

My Links

News

Contattami su Live Messenger:


MCTS: Windows, Web, Distributed Applications & SQL Server

MCPD: Enterprise Applications

Tag Cloud

Archives

Post Categories

Links

Usare Invio per spostarsi tra i controlli

Fin dalle prime versioni, Windows ci ha abituato ad utilizzare il tasto TAB per spostare il focus da un controllo al successivo: questo è, ovviamente, il comportamento predefinito anche per le applicazioni Windows Forms realizzate con .NET. Il cambiamento del focus può essere però realizzato anche via codice, utilizzando il metodo SelectNextControl: esso sposta automaticamente il focus sul controllo successivo, secondo la numerazione stabilita dalla proprietà TabIndex. Ad esempio, per fare in modo che, alla pressione del tasto INVIO in un TextBox, il focus passi alla casella successiva, immaginando che la proprietà TabIndex sia impostata correttamente, si deve scrivere:

Private Sub txt_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs) Handles TextBox1.KeyPress
    'Se è stato premuto il tasto INVIO, si sposta nella prossima casella di testo.
    If (e.KeyChar = Convert.ToChar(13)) Then
        Dim txt As TextBox = CType(sender, TextBox)
        Me.MoveFocus(txt)
        e.Handled = True
    End If
End Sub

Private Sub MoveFocus(ByVal ctrl As Control)
    Me.TopLevelControl.SelectNextControl(ctrl, True, True, True, True)
End Sub

Il metodo SelectNextControl accetta tutta una serie di parametri booleani, con cui è possibile decidere, ad esempio, se passare al controllo successivo o a quello precedente, e ripartire dal primo oggetto quando si arriva a quello con il TabIndex più alto (tutti questi dettagli sono disponibili nella documentazione in linea).

Technorati Tags: , ,

Print | posted on Tuesday, January 20, 2009 2:17 PM | Filed Under [ VB .NET ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET