C#里面ToolStrip控件,在父窗体失去焦点的情况下,第一次点击ToolStrip上面的按钮,只是让父窗体获得焦点,并不会引发按钮的Click事件。要执行按钮操作必须再点击一次。相当于说,在父窗体失去焦点的情况,必须点击两次才能真正执行Click按钮操作,相当不符合大众的操作习惯。

  不过解决这个问题,其实也相当容易,只要自定义一个类,从系统的ToolStrip继承,然后重写它的WndProc方法即可。

public class ToolStripEx : ToolStrip
{
protected override void WndProc(ref Message m)
{
const int WM_MOUSEACTIVATE = 0x21; if (m.Msg == WM_MOUSEACTIVATE && this.CanFocus && !this.Focused)
this.Focus(); base.WndProc(ref m);
}
}

C# ToolStrip在父窗体失去焦点时,点击里面的按钮无效的更多相关文章

  1. 当窗体获得焦点时禁用max快捷键

    最近一段时间一直在MXS里用dotnet写界面...写的各种头晕眼花... 过程中遇到了 TextBox 控件输入时 与max快捷键冲突的问题. 解决办法是 用 MaxTextBox 控件替换,今天请 ...

  2. 解决winform中mdi子窗体加载时显示最大化最小化按钮的方法

    场景:在mid加载子窗体的时候如果指定WindowState为Maximized,加载完成后主窗体会显示最大化.最小化.关闭的按钮图标. 解决方法: 1.更改主窗体FormMain的属性.制定Main ...

  3. Winform中如何实现父窗体传递数据到子窗体并刷新子窗体

    原理:利用委托和事件,本文将以图文并茂的例子讲述,告诉我们So Easy --------------------------------------------------------------- ...

  4. silverlight子窗体操作数据库后刷新父窗体

    silverlight子窗体操作数据库后刷新父窗体 作者 Kant 写于 2011 年 07 月 02 日 分类目录 学习笔记, 所有文章 C# Silverlight 代码 刷新 学习 异步刷新 数 ...

  5. WPF 子窗体关闭时显示父窗体

    这个问题纠结了两天,今天在一个朋友的帮助下,解决了,其实很简单,但是可能作为新手,接触WPF时间还是短,因此作为一个问题困扰了我. 父窗体部分代码 private void EditInformati ...

  6. Extjs 窗体居中,双重窗体弹出时清除父窗体的鼠标事件

    这个是监控窗体缩放的事件 缩放中居中主要在 'beforeshow' 和 'destroy'两个事件里面监控 var EditTempWindow; Ext.EventManager.onWindow ...

  7. javascript关闭弹出窗体时刷新父窗体和居中显示弹出窗

    居中显示用到了moveTO()方法: 关闭弹出窗时刷新父窗体用到了window.opener方法: 父窗体代码例如以下: <%@ Page Language="C#" Aut ...

  8. ToolStrip控件在窗体没有焦点的情况下,需要单击二次才能够激发事件的解决办法

    protected override void WndProc(ref Message m) { if (m.Msg == 0x210) { Control control = Control.Fro ...

  9. 关于使用struts2时子窗体页面跳转后在父窗体打开的问题以及Session过期后的页面跳转问题

    问题1:传统的系统界面,iframe了三个页面,上,左,右,用户点击注销的按钮在上面得top.jsp里面,方法:<a href="../adminAction/admin_logout ...

随机推荐

  1. 测试与 debug 心得

    测试不等同于调试,各自都有自己的概念集和方法论. Test:examine input/output pairs. 调试:定位,修改. 但如果能做到错误异常的准确定位,调试的一半以上的工作已经完成了. ...

  2. TensorFlow 学习(五)—— Session

    A Session object encapsulates the environment in which Tensor objects are evaluated. 一个会话对象(session ...

  3. java基础——try catch final

    1.不管有木有出现异常,finally块中代码都会执行: 2.当try和catch中有return时,finally仍然会执行: 3.finally是在return后面的表达式运算后执行的(此时并没有 ...

  4. visual studio 2015安装win10 SDK文件校验错误的解决方法

    这段时间想看一下UWP开发,于是下载了visual 2015 update1社区版,但是在安装完成时提示,windows 10 sdk文件校验码错误,如下图(图片是借用的,我当时没有截屏,错误号是一样 ...

  5. 在当前页获取父窗口中母版页中的服务器控件的ID

    parent.document.getElementById("ctl00_ContentPlaceHolder1_txt_name").value=""; A ...

  6. [LeetCode]Word Break 特里

    意甲冠军:推断字符串给定的字符串是否构成词典. 来推断目标字符串相匹配整个字典.我们需要来推断目标字符串的每个前缀开始的下一场比赛,这需要匹配目标字符串的成功,所有前缀的枚举. class TrieN ...

  7. 为 Mac Finder 增加右键文件打包压缩(免费)

    在 Windows 上用惯了 7-Zip 和 WinRAR,来到 Mac 却突然发现没有类似的工具?Mac 自带的 Zip 工具确实让人吐糟无力,压缩率低就不说了,因为 Mac 上文件名是 Unico ...

  8. 5 wcf双工

    1 创建两个项目 Wcf_WsDual_Service   Wcf_WsDual_Client 2 Wcf_WsDual_Service   项目中创建 LoginService.cs 的wcf文件 ...

  9. win7在USB该解决方案不健全音箱

    Win7安装后,原XP在正常工作USB小喇叭不工作,重新安装声卡驱动程序仍然是相同的.后来,通过以下的得心应手最后一次尝试. 1.右键右下角喇叭button. 2.点击"播放设备" ...

  10. C++ string的那些坑,C++ string功能补充(类型互转,分割,合并,瘦身) ,c++ string的内存本质(简单明了的一个测试)

    1. size_type find_first_of( const basic_string &str, size_type index = 0 ); 查找在字符串中第一个与str中的某个字符 ...