سلام دوستان
من چند تا textbox رو فرمم دارم که در حالت runtime کنار هم چیده میشن
چطوری میشه بعد از اینکه روی یکیشون تایپ شد focus بره به کناری اش؟
Printable View
سلام دوستان
من چند تا textbox رو فرمم دارم که در حالت runtime کنار هم چیده میشن
چطوری میشه بعد از اینکه روی یکیشون تایپ شد focus بره به کناری اش؟
توی رویداد textchange یا keyperess تکست باکس اولی میتونی شرط رو چک کنی بعد هم با دستور textbox2..Focus()
فوکوس رو تغییر میدی
دوستان عزیز دقت داشته باشید گفتم این textbox ها در runtime هستند من در طراحی اونا رو نمیبینم که بخوام از رویدادها استفاده کنم؟!
پراپرتی tab اون ها رو در زمان Runtime مشخص کن (به ترتیبی که باید باشن) بعد از دستور زیر استفاده کن :
SendKeys.Send("{TAB}");
سلام دوست عزیز وقتی کنترل ها رو بصورت runtime ایجاد میکنید میتونید برای کنترل ها ایونت تعریف کنید
می تونی توی ریداد Mousedown تکس باکس هاتوقتی کلید Enter خورد بنویسی :
selectnextcontrol(sender,true,true,true)
موفق باشید
اینم کد البته با Enter فوکوس و عوض میکنه میتونید شرط رو عوض کنید
TextBox textBox1;
TextBox textBox2;
TextBox textBox3;
privatevoid Form1_Load(object sender, EventArgs e)
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.textBox3 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// textBox1
this.textBox1.Location = new System.Drawing.Point(70, 104);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(70, 20);
this.textBox1.TabIndex = 0;
this.textBox1.KeyDown += newKeyEventHandler(this.textBox1_KeyDown);
// textBox2
this.textBox2.Location = new System.Drawing.Point(140, 104);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(70, 20);
this.textBox2.TabIndex = 1;
this.textBox2.KeyDown += newKeyEventHandler(this.textBox2_KeyDown);
// textBox3
this.textBox3.Location = new System.Drawing.Point(210, 104);
this.textBox3.Name = "textBox3";
this.textBox3.Size = new System.Drawing.Size(70, 20);
this.textBox3.TabIndex = 2;
this.textBox3.KeyDown += newKeyEventHandler(this.textBox3_KeyDown);
//------------------------------
this.Controls.Add(textBox1);
this.Controls.Add(textBox2);
this.Controls.Add(textBox3);
}
privatevoid textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
SendKeys.Send("{TAB}");
}
privatevoid textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
SendKeys.Send("{TAB}");
}
privatevoid textBox3_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
SendKeys.Send("{TAB}");
}
در ابتدا خاصیت tabindex هر textbox را تنطیم کرده و بعد در رویداد keydown هر textbox کد زیر را مینویسیم
if (e.KeyCode == Keys.Enter)
{
SendKeys.Send("{tab}");
}