私は4桁のフィールドに12桁の数字(IPアドレスですが、間にピリオドはありません)を貼り付けることができるようにしようとしています。それぞれの最大長は3です。TextChangedプロパティを使用して4つのテキストボックスに12桁の連続した数字を貼り付けるにはどうすればいいですか?
私はTextChange、テキストボックス、プロパティを使用してこれを行おうとしています。私はサブストリングを使用しようとしていましたが、それは各オクテットの作業ではありません。
public PingIPRange()
{
InitializeComponent();
txtF1.TextChanged += new EventHandler(NextField);
txtF2.TextChanged += new EventHandler(NextField);
txtF3.TextChanged += new EventHandler(NextField);
}
private void NextField(object sender, EventArgs e)
{
if (txtF1.TextLength == 3)
{
txtF2.Focus();
txtF1.Text = txtF1.Text.Substring(0, 3);
txtF2.Text = txtF1.Text.Substring(3, 30);
}
if (txtF2.TextLength == 3)
{
txtF3.Text = txtF2.Text.Substring(3, 27);
txtF3.Focus();
}
if (txtF3.TextLength == 3)
{
txtF4.Focus();
}
}
良い質問 - 現在の入力が満杯になると、次のボックスにフォーカスが切り替わります。 – Paul
あなたは '== 3'ではなく'> 3'でチェックしています。そして、実際には、3文字後に区切りたいとは限りませんが、 '.'が出現するたびに区切ります。 – CodesInChaos
@CodeInChaos:これは1つのオプションですが、数字だけが必要です。 – NewHelpNeeder