在WinForm中的TabControl中启动我的应用程序时,MenuStrip和StatusStrip不起作用

时间:2018-02-13 13:23:57

标签: c# winforms

我需要在WinForm中的TabControl的TabPage中启动我的应用程序。 它工作正常,但当我点击MenuStrip项目时,它不显示子菜单。但是Click事件有效.Plus,我在StatusStrip中使用了一个标签作为按钮,并且Click事件不会触发。

ProcessStartInfo info = new ProcessStartInfo();
info.FileName = MYAPP;
info.Arguments = "/noresize";
info.UseShellExecute = true;
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Minimized;
info.RedirectStandardInput = false;
info.RedirectStandardOutput = false;
info.RedirectStandardError = false;

System.Diagnostics.Process p = System.Diagnostics.Process.Start(info);

p.WaitForInputIdle();
Thread.Sleep(3000);

Process[] p1;



var tp = new TabPage();

tp.Text = Path.GetFileName(file).Replace("Parser-", "").Replace(".exe", "");
tabControl1.TabPages.Add(tp);


if (p.MainWindowHandle == null)
{
    List<String> arrString = new List<String>();
    foreach (Process p2 in Process.GetProcesses())
    {
        // Console.WriteLine(p1.MainWindowHandle);
        arrString.Add(Convert.ToString(p2.ProcessName));
    }
    p1 = Process.GetProcessesByName(Path.GetFileName(file));
    //p.WaitForInputIdle();
    Thread.Sleep(5000);
    SetParent(p1[0].MainWindowHandle, tp.Handle);

    _intPtrs.Add(p1[0].MainWindowHandle);
}
else
{
    SetParent(p.MainWindowHandle, tp.Handle);
    _intPtrs.Add(p.MainWindowHandle);
}

即使我将AllowMerge设置为False。我怎样才能使它发挥作用?

感谢。

1 个答案:

答案 0 :(得分:0)

在这种情况下,我无法找到任何使.Net MenuStrip工作的解决方案。

对于那些有同样问题的人,我已经测试了DevExpress XtraBars Bar,效果很好!所以我切换到DevExpress菜单栏。