精华内容
下载资源
问答
  • Winform控件获得/失去焦点事件

    千次阅读 2018-10-23 09:13:12
    //1、在窗口初始化时添加事件委托 private void LoginFrm_Load(object sender, ... //获得焦点要执行的代码 } private void txt_pwd_GotFocus(object sender, EventArgs e) { //失去焦点要执行的代码 }  
    //1、在窗口初始化时添加事件委托
    private void LoginFrm_Load(object sender, EventArgs e)
    {
        txt_username.GotFocus += new EventHandler(txt_username_GotFocus);
        txt_username.LostFocus += new EventHandler(txt_username_LostFocus);
    }
    
    //2、手写像事件方法一样的方法
    private void txt_username_GotFocus(object sender, EventArgs e)
    {
        //获得焦点要执行的代码
    }
    
    private void txt_pwd_GotFocus(object sender, EventArgs e)
    {
        //失去焦点要执行的代码
    }

     

    展开全文
  • C# Winform窗体上的控件获得焦点后变色。如在输入文本时可自定义背景色。可以清楚看到当前是哪个控件获得焦点
  • C# winfrom获取当前焦点控件,有时候可能需要控制当前焦点控件是否是符合自己的要求而做其他动作.此代码可以获取到当前控件的类型名称
  • MSDN上说是按照这个顺序来进行的 Leave--Validating--Validated--LostFocus(不特殊说明时CausesValidation为true)。可是在跟踪代码时发现顺序怎么是LostFocus...当使用鼠标或直接设置焦点离开的时候顺序应当为LostFo...
           MSDN上说是按照这个顺序来进行的 Leave--Validating--Validated--LostFocus(不特殊说明时CausesValidation为true)。可是在跟踪代码时发现顺序怎么是LostFocus--Leave--Validating--Validated呢?后来发现原来还和离开的方法有关系。当使用鼠标或直接设置焦点离开的时候顺序应当为LostFocus--Leave--Validating--Validated,而MSDN上说的那个顺序是以TAB键移动焦点时的顺序。仔细看了一下MSDN中好像并没有对此有明确的说明,而且LostFocus在视图设计器中都没有,只能通过代码来添加,是否是意味着这个事件不是很推荐使用呢?

    离开方式

    使用Tab键或set Focus

    使用鼠标点击

    触发顺序

    Leave--Validating--Validated--LostFocus

    LostFocus--Leave--Validating--Validated


         另外若将要移动到的下一个控件的CausesValidation为false时,则原控件的Validating和Validated事件并不会触发。它们将会发生在下一次焦点移动到CausesValidation为true的控件的GotFocus事件之前。而且若这个CausesValidation为true的控件为自身,也不会引发这两个事件,在MSDN中好像也没有非常明确的说明。

         A,C的CausesValidation为true,B的CausesValidation为false  用鼠标点击移动

    移动顺序

    A--B--C

    A--B--A

    触发顺序

    A.LostFocus--A.Leave--B.GotFocus--B.LostFocus--B.Leave--A.Validating--A.Validated--C.GotFocus

    A.LostFocus--A.Leave--B.GotFocus--B.LostFocus--B.Leave--A.GotFocus
        
         第一组中A的Validating和Validated事件发生在C的GotFoucus之前,而第二组中A的第一次Validating和Validated事件就不会发生了

    转载于:https://www.cnblogs.com/aiyagaze/archive/2006/09/09/499626.html

    展开全文
  • WinForm设置控件焦点

    万次阅读 2013-02-06 14:16:20
    winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex ...在Form的Activated事件中添加textBox1.Focus(), 即可获得焦点。 private void Form1_Activa

    winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种方法:

    ①设置tabindex

    把该文本框属性里的tabIndex设为0,焦点就默认在这个文本框里了。

    Winform的Activated事件

    在Form的Activated事件中添加textBox1.Focus(), 即可获得焦点。

    private void Form1_Activated(object sender, EventArgs e) 

        textBox1.Focus(); 

    }

    TextBox是可以获得焦点的. 有几个前提:

    1. TextBox所属的窗体(Form)在可操作(Active)状态. 即用户选中了Form.
    2. TextBox的Enable属性,Visiable属性为True.

    刚开始时原以为在Form的Load事件中添加textBox1.Focus(),测试失败

    private void Form1_Load(object sender, EventArgs e) 

        textBox1.Focus(); 

    }

    因为在窗体加载时调用Focus()函数时, TextBox还未能成功的被显示到界面上。所以导致了失败。


    笔者测试:笔者之前一直都是在load事件里面指定控件焦点,一直效果不理想,没想到是因为load事件时控件没有被创建,所以无法设置输入焦点。

    展开全文
  • 主要是通过TextBox的获取焦点Enter和失去焦点Leave两个事件来实现的(点击控件,在事件中添加) 思路如下: 1.设置一个字符串常量,作为TextBox的默认值; 2.在属性Text中设置默认值,并设置TextBox的...

    下面我们以TextBox控件为例:

    主要是通过TextBox的获取焦点Enter和失去焦点Leave两个事件来实现的(点击控件,在事件中添加)

    思路如下:

       1.设置一个字符串常量,作为TextBox的默认值;

       2.在属性Text中设置默认值,并设置TextBox的ForeColor为灰色(或者在代码中添加,即对话框加载的时候将默认字符串和前景色写入);

       3.编写获取焦点事件 TextBox_Enter(object sender, EventArgs e) ,判断TextBox的Text是否等于默认值,

          是:则将TextBox内容清空,并将前景色ForeColor改成正常的颜色

       4.失去焦点事件 TextBox_Leave(object sender, EventArgs e),判断TextBox的Text是否为空,

          是:则再次以灰色来显示默认值

    具体的代码如下:

        //TextBox的默认值
        private const String DEFAULT_TEXT = "默认字符串";
        //构造方法
        public MyForm()
        {    
             //为TextBox设置默认值和默认值的前景色(字体颜色)
               textBox.Text = DEFAULT_TEXT;
               textBox.ForeColor = Color.Gray;
         }
         //获取焦点事件 Enter
         private void textBox_Enter(object sender, EventArgs e)
         {
             if (textBox.Text == DEFAULT_TEXT)
             {
                  textBox.Text = "";
                  textBox.ForeColor = Color.Black;
             }
          }
         //失去焦点事件 Leave
         private void textBox_Leave(object sender, EventArgs e)
          {
              if (String.IsNullOrEmpty(textBox.Text))
              {
                 textBox.Text = DEFAULT_TEXT;
                 textBox.ForeColor = Color.Gray;
              }
                      
          } 

    其他:

    如果你有20个TextBox控件,每一个TextBox控件都想实现这个焦点的功能,那么每一个控件都要写一个获取焦点和失去焦点共两个事件,但你又不想添加40个控件,你可以:

    你可以看到函数有两个参数object sender, EventArgs e

    sender参数用于传递指向事件源对象的引用。简单来讲就是当前的对象。例如button的点击事件,那么这个sender就代表这个button自己,由于sender指的是事件源对象,sender是object类型,用的时候记得转一下类型才可以用

    private void btnError_Click(object sender, EventArgs e)
    {
          //获取当前点击的Button
          //Button but = (Button)sender;
          Button thisClickedButton = sender as Button;
    }     

    e参数是是EventArgs类型。简单来理解就是记录事件传递过来的额外信息。一般用于传递用户点击的位置啊,键盘按下的键等事件的额外信息。例如TextBox中有一个KeyPress事件。

    private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
     {
        //获取当前对象
          //TextBox tb = (TextBox)sender;
         TextBox tb = sender as TextBox;
    
          //获取当前按下来的键值
          char c = e.KeyChar;
     }

    言归正传:

    经过上面的讲解,当你有20个TextBox时,你也可以只写两个函数(Enter,Leave)然后将这两个函数在属性中绑定到每一个控件的Enter,Leave事件上

         //获取焦点事件 Enter
         private void textBox_Enter(object sender, EventArgs e)
         {
             TextBox textBox = (TextBox)sender;
             if (textBox.Text == DEFAULT_TEXT)
             {
                  textBox.Text = "";
                  textBox.ForeColor = Color.Black;
             }
          }
         //失去焦点事件 Leave
         private void textBox_Leave(object sender, EventArgs e)
          {
              TextBox textBox = (TextBox)sender;
              if (String.IsNullOrEmpty(textBox.Text))
              {
                 textBox.Text = DEFAULT_TEXT;
                 textBox.ForeColor = Color.Gray;
              }
          } 

     

    展开全文
  • winform里textBox无法获得焦点的解决方案
  • /// 当Panel等容器类控件 失去焦点再获得焦点后,滚动条复位的解决方式 /// </summary> /// <param name="activeControl"></param> /// <returns></returns> prot...
  • 代码如下://调用API [System.Runtime.InteropServices.DllImport(“user32.dll”, ... //获得本窗体的句柄 [System.Runtime.InteropServices.DllImport(“user32.dll”, EntryPoint = “SetForegroundWindow”)
  • private void Form1_Shown(object sender, EventArgs e) { this.ActiveControl = null; } //注意不是load是shown
  • WinForm控件焦点的使用

    万次阅读 2012-11-16 15:58:26
    所谓焦点就是你当前选中了哪个控件,该控件获得焦点.比如你用鼠标点下某个控件,或者通过快捷键选中某个控件. 如果是可编辑的区域会有一个一闪闪的竖线在那,如果不可编辑的一般会有些高亮显示.   焦点的用处是啥 ...
  • Winform TreeView 失去焦点后选中的节点风格设置。
  • C#winform中textbox得到焦点失去焦点

    千次阅读 2020-12-23 16:57:21
    在编写winform程序的时候,当使用到textbox文本框这个控件,就可能会用到得到焦点失去焦点时引发事件。 得到焦点 textbox.GotFocus+=new EventHandler((obj, ex) => {//你要执行的代码块 }); 失去焦点 textbox....
  • 在codeproject上下载的一个外国人写的浮动窗,不会让父窗体失去焦点
  • 方法一: 1、设置TreeView的DrawMode为.OwnerDrawText 2、绑定DrawNode事件为上面的事件函数 private void init() { this.treeView1.HideSelection = false;//失去焦点后不隐藏选中节点 //自已绘制 ...
  • WinForm控件属性大全

    千次阅读 多人点赞 2020-04-20 19:03:17
    C#控件及常用设计整 1、窗体... 1 2、Label 控件... 3 3、TextBox 控件... 4 4、RichTextBox控件... 5 5、NumericUpDown 控件... 7 6、Button 控件... 7 7、GroupBox 控件... 7 8、RadioButton控件... 8 9...
  • winform窗口打开后文本框的默认焦点...在Form的Activated事件中添加textBox1.Focus(), 即可获得焦点。 private void Form1_Activated(object sender, EventArgs e) { textBox1.Focus(); } TextBox是可以获得焦点
  • Winform 窗体获得焦点

    2019-02-28 14:39:00
    给窗体添加Shown事件 public void Form_Shown(object sender, EventArgs e) ...//定义窗体中某控件获取焦点 this.textbox.Focus(); } 转载于:https://www.cnblogs.com/lili9696189/p/10450278...
  • winform控件大全

    2018-04-20 14:48:00
    2、Label (标签)控件 3、TextBox(文本框)控件 4、RichTextBox控件 5、NumericUpDown控件 6、Button(按钮)控件 7、GroupBox(分组框)控件 8、RadioButton(单选按钮)控件 9、CheckBox(复选框)控件 10...
  • winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这个文本框里了。 ②Winform的Activated事件 在Form的...
  • private void ComboBox_SelectedIndexChanged(object sender, EventArgs e) { comboBox.Visible = false; comboBox.Visible = true; }
  • winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种方法: ...在Form的Activated事件中添加textBox1.Focus(), 即可获得焦点。 private void Form1_Activated(obje...
  • C# WinForm获取当前拥有焦点控件 .

    千次阅读 2013-06-06 13:27:04
    //API声明:获取当前焦点控件句柄  [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Winapi)] internal static extern IntPtr GetFocus();  ///获取 当前拥有焦点的...
  • Winform控件属性事件介绍

    千次阅读 2016-08-28 13:10:05
    2、Label控件 3、TextBox控件 4、RichTextBox控件 5、NumericUpDown控件 6、Button控件 7、GroupBox控件 8、RadioButton控件 9、CheckBox控件 10、ListBox控件 11、ComboBox控件 12、CheckedListBox控件 13、...
  • Rt,以button为例,如果总共有三个button,尺寸分别大中小,嵌套放置。没有特殊设置的情况下,鼠标点击事件作用于顶层最小的button上,只有最小的这个button会响应。如何使得点击最小的button后大中小三个...??!...
  • C#控件 失去Focus焦点事件与获得焦点事件 文本框失去焦点事件 LostFocus GotFocus事件 供大家学习,减为1分了。。。。
  • C# Winform 常用控件介绍

    万次阅读 多人点赞 2017-10-27 15:50:54
    (25)KeyPreview属性:用来获取或设置一个值,该值指示在将按键事件传递到具有焦点控件前,窗体是否将接收该事件。值为true时,窗体将接收按键事件,值为false时,窗体不接收按键事件。 (26)MdiChildren属性...
  • winform常用控件介绍

    2021-03-06 05:52:02
    winform常用控件介绍 1、窗体 1 2、Label 控件 3 3、TextBox 控件 4 4、RichTextBox控件 5 5、NumericUpDown 控件 7 6、Button 控件 7 7、GroupBox 控件 7 8、RadioButton控件 8 9、CheckBox 控件 8 10、ListBox ...
  • WinForm多个TextBox失去焦点事件解决

    千次阅读 2017-10-21 18:54:56
     Winorm中的2个TextBox控件在LostFocus事件弹出提示框,会弹出2次。  原因:  焦点在TextBox1中点击TextBox1,事件执行情况:TextBox1的LostFocus Messagebox.Show()时->TextBox2的LostFocus事件弹出MessageBox....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,745
精华内容 698
关键字:

winform控件失去焦点