打开计算机中的记事本。
单击任务栏上的记事本图标一次。
单击任务栏上的记事本图标一次。
单击任务栏上的记事本图标一次。
如您所见,只要单击任务栏上的记事本图标,记事本窗口就会出现/消失。
我已经使用vb.net语言编写了Windows窗体应用程序。
如何使Form1像记事本示例一样出现/消失?
我没有在Form1事件中找到任何图标事件。
单击任务栏上的图标时,我不知道如何使用以下代码。
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
Me.WindowState = FormWindowState.Normal
Me.WindowState = FormWindowState.Minimized
End Sub
Run Code Online (Sandbox Code Playgroud)
默认情况下,任何最小化的窗口都会发生这种情况。它内置在窗口管理器中。
您的代码会干扰它。WindowState在Click事件处理程序中删除对属性的篡改。您无需设置WindowState即可实现此目的。
只要确保您的表单的MinimizeBox属性没有被无意中设置为false(默认值是true,这就是您想要的)。需要注意的是,为了将可最小化,表单的FormBorderStyle属性必须设置为FixedSingle,Sizable,Fixed3D,或FixedDialog。自然地,如果配置表单的属性使其不可最小化,则在单击其任务栏按钮时,窗口管理器将无法自动最小化和还原它。
如果您坚持要最小化无边界表单,则可以解决它。至少,根据我几年前的说法;我没有重新测试代码。
在表单类中,重写CreateParams方法并强制设置WS_MINIMIZEBOX样式:
protected override CreateParams CreateParams
{
get
{
const int WS_MINIMIZEBOX = 0x20000;
CreateParams cp = base.CreateParams;
cp.Style |= WS_MINIMIZEBOX;
return cp;
}
}
Run Code Online (Sandbox Code Playgroud)
不推荐使用-用户将很难确定您的窗口实际上是可最小化的,因为它没有告知按钮。通常,禁用表单边框仅在您实际上没有将其用作窗口的情况下才有用(例如,当您将其覆盖在另一种表单上以获得特殊效果时)。如果它以窗口的形式出现在屏幕上,则它的外观和行为应类似于窗口,这意味着它需要具有边框。
| 归档时间: |
|
| 查看次数: |
1000 次 |
| 最近记录: |