c# – 如何将消息从子用户控件传递给父用户
发布时间:2020-12-15 19:34:04 所属栏目:百科 来源:网络整理
导读:这是一个 Windows Forms / .Net C#问题. 我有一个无边框窗口,其透明度键和背景色使其完全透明.窗口内有几个用户控件. 我希望能够移动窗口.我知道如何在父窗口上执行此操作,但我的问题是子控件是唯一可见的东西,因此唯一可点击的东西. 问题是:如何将某些消息
这是一个
Windows Forms / .Net C#问题.
我有一个无边框窗口,其透明度键和背景色使其完全透明.窗口内有几个用户控件. 我希望能够移动窗口.我知道如何在父窗口上执行此操作,但我的问题是子控件是唯一可见的东西,因此唯一可点击的东西. 问题是:如何将某些消息传递给Parent,以便当鼠标右键按下并且鼠标移动到任何一个子控件上时,Parent可以移动? 或者你可以建议另一种方式? 谢谢您的帮助. 标记 解决方法
即使没有使用System.Windows.Forms.Message类的SendMessage,您也可以实现目标.如果您已完成拖动,我猜您熟悉WM_NCLBUTTONDOWN消息.从控件的MouseDown事件发送给您父.
以下是移动表单单击控件label1的示例.请注意第一行,其中sender用于从单击的控件中释放捕获.这样,您可以将此处理程序设置为用于移动表单的所有控件. 这是移动表单的完整代码.不需要任何其他东西. public const int WM_NCLBUTTONDOWN = 0xA1; public const int HT_CAPTION = 0x2; private void label1_MouseDown(object sender,MouseEventArgs e) { (sender as Control).Capture = false; Message msg = Message.Create(Handle,WM_NCLBUTTONDOWN,(IntPtr)HT_CAPTION,IntPtr.Zero); base.WndProc(ref msg); } 希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |