winform中怎么获取光标所在位置的控件名?

时间:2022-02-02 08:05:52
假设一个Winform窗体中全是TextBox控件,怎样才能获取光标所在的控件名称?

14 个解决方案

#1


TextBox有鼠标事件。。MouseMove (当鼠标移过时触发)
string tb_name=null;

 private void textBox1_MouseMove(object sender, MouseEventArgs e)
        {
            tb_name= textBox1.name;
        }

#2


引用 1 楼 hky44 的回复:
TextBox有鼠标事件。。MouseMove (当鼠标移过时触发)
string tb_name=null;

 private void textBox1_MouseMove(object sender, MouseEventArgs e)
  {
  tb_name= textBox1.name;
  }

谢谢你的回答,是我没说清楚?是获取光标所在的控件的名称

#3


 

foreach(Control   c   in   this.Controls){ 
  if(c.Focused)  
    { 
      MessageBox.Show(c.Name); 
      break; 
      } 
  }

// 学习..

#4



foreach(Control   c   in   this.Controls){ 
  if(c.Focused)   //c   is   focused 
    { 
      MessageBox.Show(c.Name); 
      break; 
      } 
  }

#5



Control   c   =   this.ActiveControl;   //你要的控件.
MessageBox.Show(c.Name);

学习..

#6


引用 5 楼 qq501812815 的回复:
C# code

Control   c   =   this.ActiveControl;   //你要的控件.
MessageBox.Show(c.Name);

学习..

在麻烦问下,我要用光标所在的textbox 获取NAME后给其赋值,在哪个事件里面写比较合适

#7



//找出来就直接赋吧.

Control c = this.ActiveControl; //你要的控件

c.text="";    //赋值.

#8


引用 3 楼 qq501812815 的回复:
 
  
foreach(Control c in this.Controls){ 
  if(c.Focused)  
  { 
  MessageBox.Show(c.Name); 
  break; 
  } 
  }

// 学习..


正解 winform中怎么获取光标所在位置的控件名?

#9


不是光标吧
应该是鼠标

获得鼠标的坐标,然后
foreach (Control control in this。Controls)
判断鼠标是否在控件的范围内

#10


引用 7 楼 qq501812815 的回复:
//找出来就直接赋吧.

Control c = this.ActiveControl; //你要的控件

c.text=""; //赋值.

我用一个button试了下,得到的是BUTTON的NAME额

#11


引用 9 楼 jianuman 的回复:
不是光标吧
应该是鼠标

获得鼠标的坐标,然后
foreach (Control control in this。Controls)
判断鼠标是否在控件的范围内

Point p = this.Cursor.HotSpot;
p.X//p.Y
怎么老是同一个坐标,有点晕忽忽的

#12


Form.ActiveForm.ActiveControl可以获得当前活动窗口上的活动控件
Control GetFocusedControl(Control ctrl)
  {
  foreach (Control c in ctrl.Controls)
  {
  if (c.Focused == false)
  {
  GetFocusedControl(c);
  }
  return c;
  }
  return null;
  }
  private void button1_Click(object sender, EventArgs e)
  {
  Control c= GetFocusedControl(this);
  }

#13


你点按钮的时候 光标就落在BUTTON上了。

你看看你题目,全部TEXTBOX 就是我说的那个。不要中途修改题目。

#14


该回复于2010-11-11 14:48:34被版主删除

#1


TextBox有鼠标事件。。MouseMove (当鼠标移过时触发)
string tb_name=null;

 private void textBox1_MouseMove(object sender, MouseEventArgs e)
        {
            tb_name= textBox1.name;
        }

#2


引用 1 楼 hky44 的回复:
TextBox有鼠标事件。。MouseMove (当鼠标移过时触发)
string tb_name=null;

 private void textBox1_MouseMove(object sender, MouseEventArgs e)
  {
  tb_name= textBox1.name;
  }

谢谢你的回答,是我没说清楚?是获取光标所在的控件的名称

#3


 

foreach(Control   c   in   this.Controls){ 
  if(c.Focused)  
    { 
      MessageBox.Show(c.Name); 
      break; 
      } 
  }

// 学习..

#4



foreach(Control   c   in   this.Controls){ 
  if(c.Focused)   //c   is   focused 
    { 
      MessageBox.Show(c.Name); 
      break; 
      } 
  }

#5



Control   c   =   this.ActiveControl;   //你要的控件.
MessageBox.Show(c.Name);

学习..

#6


引用 5 楼 qq501812815 的回复:
C# code

Control   c   =   this.ActiveControl;   //你要的控件.
MessageBox.Show(c.Name);

学习..

在麻烦问下,我要用光标所在的textbox 获取NAME后给其赋值,在哪个事件里面写比较合适

#7



//找出来就直接赋吧.

Control c = this.ActiveControl; //你要的控件

c.text="";    //赋值.

#8


引用 3 楼 qq501812815 的回复:
 
  
foreach(Control c in this.Controls){ 
  if(c.Focused)  
  { 
  MessageBox.Show(c.Name); 
  break; 
  } 
  }

// 学习..


正解 winform中怎么获取光标所在位置的控件名?

#9


不是光标吧
应该是鼠标

获得鼠标的坐标,然后
foreach (Control control in this。Controls)
判断鼠标是否在控件的范围内

#10


引用 7 楼 qq501812815 的回复:
//找出来就直接赋吧.

Control c = this.ActiveControl; //你要的控件

c.text=""; //赋值.

我用一个button试了下,得到的是BUTTON的NAME额

#11


引用 9 楼 jianuman 的回复:
不是光标吧
应该是鼠标

获得鼠标的坐标,然后
foreach (Control control in this。Controls)
判断鼠标是否在控件的范围内

Point p = this.Cursor.HotSpot;
p.X//p.Y
怎么老是同一个坐标,有点晕忽忽的

#12


Form.ActiveForm.ActiveControl可以获得当前活动窗口上的活动控件
Control GetFocusedControl(Control ctrl)
  {
  foreach (Control c in ctrl.Controls)
  {
  if (c.Focused == false)
  {
  GetFocusedControl(c);
  }
  return c;
  }
  return null;
  }
  private void button1_Click(object sender, EventArgs e)
  {
  Control c= GetFocusedControl(this);
  }

#13


你点按钮的时候 光标就落在BUTTON上了。

你看看你题目,全部TEXTBOX 就是我说的那个。不要中途修改题目。

#14


该回复于2010-11-11 14:48:34被版主删除