有一个简单的获得控件的句柄的窍门。你将窗体设置为鼠标可捕获,那么你的窗口句柄可以通过使用Windows API捕获。 这个想法在以下的GetHWnd函数中实现:
class WinAPI [DllImport("coredll.dll")]
public static IntPtr GetHWnd(Control ctrl) ctrl.Capture = true; IntPtr hWnd = GetCapture(); ctrl.Capture = false; SetCapture(hOldWnd); return hWnd;
IntPtr hWndButton = WinAPI.GetHWnd(button1); 本文转载于:http://www.cnblogs.com/kkenn/archive/2010/02/08/1665755.html PS:个人觉得这个方法并不好,饶了大圈子。Control本身有一个Handle属性,所以在控件触发事件中可以这样完成获取控件句柄,比如button的点击事件 private void StartBtn_Click(object sender, EventArgs e)//这里的sender就是一个Object类型的对象,它就是当前的控件,因此一句话搞定 { IntPtro hWnd = ((Control)sender).Handle; } |