私がしようとしているのは、10個のテキストボックスすべてに連続して入力できるようにすることです。私は最初のものから始まり、3文字がタイプされた後にフォーカスを次へと変え、3文字の後にフォーカスを入れた。TextChangedの使用中に入力を入力する前にフィールドをクリアするには?
私はその部分を行っていますが、すでに2番目のテキストボックスにテキストがある場合はどうなりますか? Clear()を試してみましたが、1文字以上入力できないバグがあります。
したがって、すべてのテキストボックスが迷惑データで埋められると、最初のテキストボックス123で入力を開始すると、2番目のテキストボックスに移動します。次のフィールドは最初にクリアされます。
私はこれで動作するようにしようとしています:
public PingIPRange()
{
InitializeComponent();
txtF1.TextChanged += new EventHandler(NextField);
txtF2.TextChanged += new EventHandler(NextField);
txtF3.TextChanged += new EventHandler(NextField);
txtF4.TextChanged += new EventHandler(NextField);
txtT1.TextChanged += new EventHandler(NextField);
txtT2.TextChanged += new EventHandler(NextField);
txtT3.TextChanged += new EventHandler(NextField);
txtT4.TextChanged += new EventHandler(NextField);
txtInterval.TextChanged += new EventHandler(NextField);
txtRepeat.TextChanged += new EventHandler(NextField);
}
private void NextField(object sender, EventArgs e)
{
if (txtF1.TextLength == 3)
{
txtF2.Focus();
}
if (txtF2.TextLength == 3)
{
txtF3.Focus();
}
if (txtF3.TextLength == 3)
{
txtF4.Focus();
}
if (txtF4.TextLength == 3)
{
txtT1.Focus();
}
if (txtT1.TextLength == 3)
{
txtT2.Focus();
}
if (txtT2.TextLength == 3)
{
txtT3.Focus();
}
if (txtT3.TextLength == 3)
{
txtT4.Focus();
}
if (txtT4.TextLength == 3)
{
txtInterval.Focus();
}
if (txtInterval.TextLength == 3)
{
txtRepeat.Focus();
}
if (txtRepeat.TextLength == 3)
{
btnPing.Focus();
}
}
}
この目的は何ですか?あなたはボックスの束を入力して、次にbtnPingに焦点を当てるつもりです。これらのすべてのボックスに何かのping結果を設定しようとしていて、再度pingを呼び出すのですか? –
@ Ryan Ternier:はい、テキストボックスの束にデータを入力してからフォーカスボタンを押したいと思います。私のコードではこれがうまくいきますが、すでにテキストボックスにデータがある場合は動作しません。私はすべてをクリアするボタンを避けるために努力しています:) – NewHelpNeeder