[ad_1]
約 10 個のテキスト ボックスを含むフォームがあります。 ここで、ユーザーが Enter キーを押せるようにする必要があります。
例えば -:
Textbox1.Text Textbox2.Text Textbox3.Text Textbox4.Text Textbox5.Text Textbox6.Text Textbox7.Text Textbox8.Text Textbox9.Text Textbox10.Text
最初のテキストボックスに詳細を入力するとき、ユーザーは「ENTER」を押す必要があります。 ユーザーが ENTER ボタンを押すと、カーソルが Textbox2 に移動します。もう一度「Enter」を押すと、カーソルが Textbox 3 に移動します。 どうやって ? 誰でも私を助けることができますか? ありがとう….
解決策 2
これを試して
テキストボックスのキーダウンイベントごとに、このコードを書く必要があります
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown If e.KeyCode = Keys.Enter Then TextBox2.Focus() End If End Sub Private Sub TextBox2_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyDown If e.KeyCode = Keys.Enter Then TextBox3.Focus() End If End Sub
等々
解決策 1
しないでください。
これは「通常の」動作ではありません。通常、ENTER はフォーム入力を受け入れて次のフォームに移動し、TAB は同じフォームのフィールド間を移動します。 問題は、このメカニズムを覆すと、アプリがユーザーが慣れ親しんでいる他のすべてのアプリとは異なることです。これにより、アプリで混乱が生じます (そして、アプリが期待していたことが起こらなかったため、あなたを罵倒します) または他のアプリで(そして、あなたのアプリで起こっていることが別のアプリで彼らの仕事を台無しにしただけなので、あなたを罵倒します)
これは良い考えではありません。ユーザーを混乱させることはほとんど役に立ちません。
なぜこれをやりたいのか、本当に正当な理由はありますか?
解決策 3
リストを保持しようとすることができます Textbox
es と次の 1 つに焦点を当てる TabIndex
エンターヒット時。
このようなものがうまくいくかもしれません。
Public Class Form1 Private ReadOnly textBoxes As IList(Of TextBox) = New List(Of TextBox) Public Sub New() ' This call is required by the designer. InitializeComponent() textBoxes.Add(TextBox1) textBoxes.Add(TextBox2) textBoxes.Add(TextBox3) End Sub Private Sub TextBox1_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles TextBox1.PreviewKeyDown, TextBox2.PreviewKeyDown, TextBox3.PreviewKeyDown If e.KeyCode = Keys.Enter Then Dim source As TextBox = CType(sender, TextBox) Dim nextTextbox As TextBox = textBoxes.Where(Function(tb) tb.TabIndex > source.TabIndex).OrderBy(Function(tb) tb.TabIndex).FirstOrDefault() If nextTextbox Is Nothing Then nextTextbox = textBoxes.First() nextTextbox.Focus() End If End Sub End Class
お役に立てれば、
フレドリック
解決策 5
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown If e.KeyCode = Keys.Enter Then SendKeys.Send("{TAB}") Else Exit Sub End If e.SuppressKeyPress = True 'this will prevent ding sound End Sub
解決策 4
Private Sub textBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles textBox1.KeyDown ' Determine whether the key entered is the F1 key. If it is, display Help. If e.KeyCode = Keys.Enter Then TextBox2.focus End If End Sub 'textBox1_KeyDown
[ad_2]
コメント