我有两个winform项目(让我们调用p1
和p2
),我将其中一个进程的面板设置为另一个进程的父级。我的意思是,我在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冲突或架构问题。无论如何......作为现在的解决方案,我的单个项目(子表单)是我的主项目面板的父级。我已经通过共享文件部分控制子表单。我正在从主项目发送动作命令,子窗体如果更改则侦听该文件,并采取措施,例如父面板调整大小。现在,我坚持一点,我的主项目有很多面板,每个面板都有一个控件,右键单击任何面板为所有人带来共同的动作列表。除了父母孩子形成的面板我有集成问题,因为,正如预期的那样,点击动作发生在子表单上,父面板事件没有被提出,用户看不到动作列表,看起来像松散的主项目功能。所以,我想知道是否有任何简单方式来调用父面板事件而不是子窗体?因为我希望通过点击来保持每个面板上的主用户界面 - 捕获动作列表的连贯性,并且我计划通过共享文件控制子表单。