繁体   English   中英

如何使用C#交换应用程序的可见性

[英]how to swap the visibility of applications using c#

我有一个父窗体,它将有两个选项卡分别调用两个子窗体。 我做了这个usind MDI。

例如,假设我有两个选项卡,分别名为“计算器”和“记事本”。 我的意思是说选项卡的名称是Windows中运行的进程名称。

我的父窗体的行为就像是全屏显示,并且用户只能使用Windows任务栏。

现在,当用户单击“计算器”选项卡时,我将应用程序置于父窗口顶部。 然后,如果用户单击“记事本”,那么我想将记事本放在前面,并将所有应用程序放在父窗体的后面。 更清楚地说,在单击带有进程名称的各个选项卡时,只能查看一个应用程序。

听起来很乏味!

请帮忙...

重写TabControl的TabIndexChanged事件,并确定当前哪个标签页处于活动状态。 然后,根据活动的选项卡页面,使用ProcessInfo实例加载要运行的应用程序:

这是使您前进的代码:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        tabControl1.SelectedIndexChanged += new EventHandler(tabControl1_SelectedIndexChanged);
    }

    void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
    {
        ProcessStartInfo psi = null;

        if (tabControl1.SelectedTab == tabPage1)
        {
            psi = new ProcessStartInfo("notepad.exe");
        }
        else if (tabControl1.SelectedTab == tabPage2)
        {
            psi = new ProcessStartInfo("calc.exe");
        }

        if (psi != null)
        {
            psi.ErrorDialog = true;
            psi.ErrorDialogParentHandle = Handle;
            Process.Start(psi);
        }
    }
}

在Google搜索中,您似乎可以使用P / Invoke以编程方式最小化/最大化应用程序。 这可能是一个开始。

http://social.msdn.microsoft.com/Forums/zh-CN/csharpgeneral/thread/9bde4870-1599-4958-9ab4-902fa98ba53a

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM