在cad的二次开发过程中,为了提高使用体验我们会大量需要自定义窗体界面进行交互,这里面就需要通过窗体向cad发送命令,这个过程大致上可以分为两个步骤。第一步让cad获得当前焦点;第二步调用cad执行命令的方法。这个过程当中如果忽略了第一步,你就会发现貌似调用方法无效,当重新点击下cad界面后方法又生效了的情况。
本文教你如何在窗体按钮点击后让cad立刻获取焦点的方法,同时对其原理进行简单的说明。
目录
1.解决办法
利用Windows API函数中的SetFocus三步实现焦点自动切换,具体步骤为:
①引入命名空间using System.Runtime.InteropServices
②在类中引入SetFocus方法:
[DllImport("user32.dll", EntryPoint = "SetFocus")]
public static extern int SetFocus(IntPtr hWnd);
③ 在具体的按钮事件中调用SetFocus方法
SetFocus(doc.Window.Handle);
最终达到的效果如下: