当您单击任务栏上的“记事本”图标时,可以看到“记事本”窗口出现/消失。
我用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发布于 2016-03-02 15:42:24
对于任何可最小化的窗口,默认情况下都会发生这种情况。它是内置在窗口管理器中的。
你的代码会干扰它。删除对WindowState事件处理程序中的Click属性的篡改。您不需要设置WindowState来实现这一点。
只需确保表单的MinimizeBox属性没有被无意中设置为false (默认设置为true,这正是您想要的)。注意,为了最小化,表单的FormBorderStyle属性必须设置为FixedSingle、Sizable、Fixed3D或FixedDialog。当然,如果窗体的属性配置为不可最小化,则当您单击其任务栏按钮时,窗口管理器将无法自动最小化和恢复它。
如果你坚持让一个无边界的形式最小化,那么你可以绕过它。至少,according to me several years ago;我没有重新测试代码。
在窗体类中,重写CreateParams方法并强制设置WS_MINIMIZEBOX样式:
protected override CreateParams CreateParams
{
get
{
const int WS_MINIMIZEBOX = 0x20000;
CreateParams cp = base.CreateParams;
cp.Style |= WS_MINIMIZEBOX;
return cp;
}
}不推荐-用户将很难弄清楚你的窗口实际上是最小的,因为它没有“提示录”按钮。通常,禁用窗体的边框只有在没有将窗体用作窗口的情况下才有用(例如,当您将窗体覆盖在另一个窗体上以获得特殊效果时)。如果它作为一个窗口出现在屏幕上,它应该看起来和行为都像一个窗口,这意味着它需要有一个边框。
发布于 2017-04-08 13:16:54
很明显,问题代码是在Visual .NET中的。
为什么需要这个答案;如果您正在构建应用程序而没有默认的可调整大小的表单。
例如,如果您正在创建一个应用程序,您需要用自己的关闭/最大化/最小化按钮绘制自己的标题栏,等等.虽然你不想让你的应用程序填满整个客户端桌面(全屏)。
这个答案对于完全定制的表单风格和行为是有用的。
我正在寻找的行和参数是cp.Style = cp.Style Or &H20000
虽然这个问题在谷歌搜索中是最重要的,希望其他开发人员可能需要参考一个快速答案和片段,以节省一些时间。
Visual .NET的代码如下所示:
Public Class Form1
''''' Your code here
Protected Overrides ReadOnly Property CreateParams() As Windows.Forms.CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
' cp.ExStyle = cp.ExStyle Or &H2000000
' This is for example to remove graphics flickering if you heavily
' embed images in form1
cp.Style = cp.Style Or &H20000
' This to restore normal behavior even if you set
' your FormBoarderStyle = None
Return cp
End Get
End Property
End Class谢谢您的提问和@Cody Gray的回答。
https://stackoverflow.com/questions/35751445
复制相似问题