Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从任务栏最小化和最大化winform?_C#_Winforms_.net 4.0_Taskbar - Fatal编程技术网

C# 如何从任务栏最小化和最大化winform?

C# 如何从任务栏最小化和最大化winform?,c#,winforms,.net-4.0,taskbar,C#,Winforms,.net 4.0,Taskbar,我有一个Winforms应用程序,我可以通过单击窗口右上角的相应按钮来最小化它;然后,我可以通过单击此应用程序的任务栏图标将其最大化 我的问题是,如果窗口被最大化,当我再次单击任务栏图标时,它应该被最小化,而这目前没有发生 我如何才能使这种行为发生?我不想使用NotifyIcon或系统托盘。尝试检查位置更改,移动,区域更改,调整大小,调整大小,调整大小事件中的情况。可能是这些事件中的某些代码阻止了您描述的行为 我没有在新的空表单上看到所描述的问题 更新:我正在使用Windows 7 Pro。尝试

我有一个Winforms应用程序,我可以通过单击窗口右上角的相应按钮来最小化它;然后,我可以通过单击此应用程序的任务栏图标将其最大化

我的问题是,如果窗口被最大化,当我再次单击任务栏图标时,它应该被最小化,而这目前没有发生


我如何才能使这种行为发生?我不想使用NotifyIcon或系统托盘。

尝试检查
位置更改
移动
区域更改
调整大小
调整大小
调整大小
事件中的情况。可能是这些事件中的某些代码阻止了您描述的行为

我没有在新的空表单上看到所描述的问题


更新:我正在使用Windows 7 Pro。

尝试检查
位置更改
移动
区域更改
调整大小
调整大小
调整大小
调整大小
事件中发生的情况。可能是这些事件中的某些代码阻止了您描述的行为

我没有在新的空表单上看到所描述的问题


更新:我使用的是Window 7 Pro。

您也可以无边框操作。。
需要额外的编码

您也可以不加边框地进行编码。。
const int WS_MINIMIZEBOX = 0x20000;
const int CS_DBLCLKS = 0x8;
protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        cp.Style |= WS_MINIMIZEBOX;
        cp.ClassStyle |= CS_DBLCLKS;
        return cp;
    }
}

需要额外编码

什么?你说你可以做这些事情,但你想让代码来做?这个问题很不清楚,没有研究,范围太广。@paqo我认为你在这个问题上太苛刻了。目的本身很清楚:从应用程序的任务栏选项卡执行最小化和最大化。这项研究,尽管没有明确指出,但在这里:他谈到了NotifyIcon和系统托盘。我的意思是说,我只能从任务栏中最大化windows窗体,然后在windows窗体上单击“最小化”按钮。之后,我不能从任务栏最小化它。我可以通过windows窗体按钮单击将其最小化,但不能通过taskbarI使用VS2013创建的minimal WinForms应用程序将其最小化,在Win81下,任务栏上的右键单击上下文菜单不包括最小化、最大化或还原,但单击任务栏图标可按预期执行这些操作(当前最小化时还原,否则最小化)。在您自己的系统上,执行此实验,以确定测试环境是否有一些奇怪的地方,或者您是否以某种方式在应用程序中搞乱了事情。什么?你说你可以做这些事情,但你想让代码来做?这个问题很不清楚,没有研究,范围太广。@paqo我认为你在这个问题上太苛刻了。目的本身很清楚:从应用程序的任务栏选项卡执行最小化和最大化。这项研究,尽管没有明确指出,但在这里:他谈到了NotifyIcon和系统托盘。我的意思是说,我只能从任务栏中最大化windows窗体,然后在windows窗体上单击“最小化”按钮。之后,我不能从任务栏最小化它。我可以通过windows窗体按钮单击将其最小化,但不能通过taskbarI使用VS2013创建的minimal WinForms应用程序将其最小化,在Win81下,任务栏上的右键单击上下文菜单不包括最小化、最大化或还原,但单击任务栏图标可按预期执行这些操作(当前最小化时还原,否则最小化)。在您自己的系统上,执行此实验,以确定测试环境是否有一些奇怪的地方,或者您是否在应用程序中以某种方式将事情搞砸了。我认为这是因为FormBorderStyle=None。当我将其设置为“FixedSingle”时,它会给出所需的行为。现在一切正常。我如何才能使用FormBorderStyle=None实现相同的行为?有什么方法可以做到这一点吗?似乎没有简单的方法可以做到这一点。我看到两种方法:1)使用FixedSingle并绘制标题和边框,使其看起来好像没有。2) 让你的表单没有任务栏按钮,让一个不可见的表单有任务栏按钮,让两者以某种方式交流。我认为这是因为FormBorderStyle=None。当我将其设置为“FixedSingle”时,它会给出所需的行为。现在一切正常。我如何才能使用FormBorderStyle=None实现相同的行为?有什么方法可以做到这一点吗?似乎没有简单的方法可以做到这一点。我看到两种方法:1)使用FixedSingle并绘制标题和边框,使其看起来好像没有。2) 让你的表单不带任务栏按钮,还有一个不可见的表单带任务栏按钮,让两者以某种方式交流。
const int WS_MINIMIZEBOX = 0x20000;
const int CS_DBLCLKS = 0x8;
protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        cp.Style |= WS_MINIMIZEBOX;
        cp.ClassStyle |= CS_DBLCLKS;
        return cp;
    }
}