日期:2014-05-19  浏览次数:21204 次

怎样使工具栏窗口(从Form继承)和主窗口同时具有焦点??或单击一次工具栏窗口就能执行命令?
一个应用程序,有一个主窗口,还有多个   自定义工具栏窗口(从Form继承)悬浮在主窗口之上!应用程序运行良好,但有一个缺点,就是应用程序在主窗口拥有焦点的情况下,点击自定义工具栏窗口时需要点击二次才行,第一次让其拥有焦点,第二次才能输入?问,怎样向其他工具栏一下,让其均点击一次就可执行操作??(当然、工具窗口也可从UserControl类继承,我看开源软件.NetPaint的工具栏就是这样做的,但具体原理没有看明白,也没有太多的时间去研读它的源代码,但软件实现了我工具栏的需求)


------解决方案--------------------
自定义工具栏应当从窗体可视控件中继承或者是做成个用户自定义控件.当它从一个窗体继承时,本质还是一个窗体嘛.

至于.NetPaint的工具栏,虽然没有看过它的源代码,但可以想象它是用了个设计模式:命令模式.很多操作复杂的软件都是这么做的,楼主看看命令模式就明白它的意思了.
------解决方案--------------------
我也遇到类似的问题,用Control.Select,或fouse()好像一点用都没有
帮顶
------解决方案--------------------
自定义工具栏应该做成用户自定义控件
------解决方案--------------------
帮顶