如何获取父进程事件?

时间:2017-02-02 14:44:48

标签: c# winforms events

我有两个winform项目(让我们调用p1p2),我将其中一个进程的面板设置为另一个进程的父级。我的意思是,我在p2.exe项目中调用了p1,如下所示,

[DllImport("user32.dll")]
static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

p2 = Process.Start(@"mypath../p2.exe");
SetParent(p2.MainWindowHandle,_myContainer.Handle);

我为_myContainer项目的父面板(p1)设置了一些鼠标点击事件,我想在点击操作上提出它们。但是像往常一样,鼠标点击操作会在子winform(p2表单)上执行。有没有办法提出父面板而不是子表格的面板事件?

首先,抱歉我的英语。

我有一个非常大的项目和大多数功能,集成在它上面。但是,在我上一次整合过程中,我遇到了问题。关键是,我可以在单个项目中完美地控制引擎的所有功能,但是当集成到我的主项目时,每当我激活引擎的特定功能时,我都会失去连接。并且,不幸的是我无法找到原因,可能存在一些.dll冲突或架构问题。无论如何......作为现在的解决方案,我的单个项目(子表单)是我的主项目面板的父级。我已经通过共享文件部分控制子表单。我正在从主项目发送动作命令,子窗体如果更改则侦听该文件,并采取措施,例如父面板调整大小。现在,我坚持一点,我的主项目有很多面板,每个面板都有一个控件,右键单击任何面板为所有人带来共同的动作列表。除了父母孩子形成的面板我有集成问题,因为,正如预期的那样,点击动作发生在子表单上,父面板事件没有被提出,用户看不到动作列表,看起来像松散的主项目功能。所以,我想知道是否有任何简单方式来调用父面板事件而不是子窗体?因为我希望通过点击来保持每个面板上的主用户界面 - 捕获动作列表的连贯性,并且我计划通过共享文件控制子表单。

0 个答案:

没有答案