动态生成的控件如何获取焦点? 有一个TextBox数组,动态生成的,应该如何指定哪个控件获取焦点?比如我当前焦点在TextBox[10],我按下Keys.Left键TextBox[0]就获取焦点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private void Form1_KeyDown(object sender, KeyEventArgs e) { //MessageBox.Show(this.ActiveControl.Controls.Count.ToString()); switch (e.KeyData) { case Keys.Up: //将焦点移动到上一个控件 this.SelectNextControl(this.ActiveControl,false, true, true, true); break; case Keys.Down: //将焦点移动到下一个控件 this.SelectNextControl(this.ActiveControl, true, true, true, true); break; case Keys.Left: //如何让当前控件的前10个控件获取焦点 break; case Keys.Right: //如何让当前控件的后10个控件获取焦点 break; default: break; } } 循环判断某个控件获得了焦点.有没有这个函数getFocus()?要在一个函数里判断一下:foreach(System.Windows.Forms.Textbox textbox in forms.Controls){ if textbox.GetFocus() == true....}方法就是这样,语法不保证.. this.Controls.Find("控件名", true)[0].Focus(); 自己搞定了this.objText[this.ActiveControl.TabIndex - 10].Focus();这样就可以了 如果你创建的TextBox控件组的话,想都用一个事件,然后进行写代码的话,就可以用这个办法,如:TextBox[] textBox=new TextBox[20];for (int i=0;i<20;i++){ textBox[i]=new TextBox(); textBox[i].Name="textBox"+i; textBox[i].Enter += new System.EventHandler(TextBox_Enter); //........自己写的属性定义 this.Controls.Add(textBox[i]);}private void TextBox_Enter(object sender, System.EventArgs e){ TextBox box=(TextBox)sender; box.Text="aaa";} 同样还可以得到当前获得焦点的TextBox的名称,如:box.Name ((textBox)this.Controls.FindControl("控件名")[0]).Focus(); datatable怎么转换为list<string,string>类型 toolStripButton按钮能不能不用图标,能不能像普通按钮那样写字? 这个add和remove怎么调? 添加一条记录,错误在位置 0 处没有任何行。 求教一个思路问题,关于大型字符串中的部分替换,增删的问题。 C#如何从NetWorkStream中读出中文的问题?100!!!! 高分求救 用C#获取AD活动目录的数据 DG里计算值 vs2005 无法调试(断点设置正确) toInt()怎么用? Calendar 取时间问题 一个菜菜的问题
{
//MessageBox.Show(this.ActiveControl.Controls.Count.ToString());
switch (e.KeyData)
{
case Keys.Up:
//将焦点移动到上一个控件
this.SelectNextControl(this.ActiveControl,false, true, true, true);
break;
case Keys.Down:
//将焦点移动到下一个控件
this.SelectNextControl(this.ActiveControl, true, true, true, true);
break;
case Keys.Left:
//如何让当前控件的前10个控件获取焦点
break;
case Keys.Right:
//如何让当前控件的后10个控件获取焦点 break;
default:
break;
}
}
有没有这个函数getFocus()?
要在一个函数里判断一下:
foreach(System.Windows.Forms.Textbox textbox in forms.Controls)
{
if textbox.GetFocus() == true
....
}方法就是这样,语法不保证..
这样就可以了
for (int i=0;i<20;i++)
{
textBox[i]=new TextBox();
textBox[i].Name="textBox"+i;
textBox[i].Enter += new System.EventHandler(TextBox_Enter);
//........自己写的属性定义
this.Controls.Add(textBox[i]);
}private void TextBox_Enter(object sender, System.EventArgs e)
{
TextBox box=(TextBox)sender;
box.Text="aaa";
}