这是我正在做的一件奇怪的事情,但是如何在任务栏中设置winform表单的标题,但是标题栏中不是?
答案 0 :(得分:1)
好的,我的临时工作是这样的:
在运行时/设计时,清除表单的文本属性(Form1或其适用的任何表单),并在触发Minimize或Hide()事件时,更改Text属性以显示Title。因此,当表单被隐藏或最小化时,您无论如何都无法看到标题栏,但您将能够在任务栏上看到标题!当Form稍后最大化时,或者Form.WindowState == WindowState.Normal时,再次清除Text属性。 : - )
我想知道这是否是MS采取的方法!?
好的,很好,我有一些工作代码的yumminess:
如果您使用的是Visual Studio,请转到“设计视图”,选择“表单”控件,打开“属性”窗格,单击“事件”选项卡,然后双击“调整大小”事件。应显示代码视图。在刚刚创建的Resize()代码中,输入以下内容:
private void Form_Resize( object sender, System.EventArgs e )
{
if( this.WindowState == FormWindowState.Minimized )
this.Text "Some uber-awesome title.";
}
第2步: 当您想要再次显示/最大化表单时,只需编辑上面的内容,如下所示:
private void Form_Resize( object sender, System.EventArgs e )
{
if( this.WindowState == FormWindowState.Minimized )
this.Text "Some uber-awesome title.";
else if(this.WindowState == FormWindowState.Normal || this.WindowState == FormWindowState.Maximized)
{
this.Text = String.Empty; // Or, you can use: this.Text = "";
}
}
但是,这还不能完全解决我的问题。当表单对用户可见时,它仍然不会在任务栏中显示标题(因为标题栏的Text属性为空。
答案 1 :(得分:1)
一个可能的解决方案(它适用于我)它是覆盖CreateParams属性并设置标题显示在任务栏中:
protected override CreateParams CreateParams
{
get
{
new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
// Extend the CreateParams property of the Button class.
CreateParams cp = base.CreateParams;
// Update the button Style.
cp.Style &= ~0xC00000; //WS_CAPTION;
cp.Caption = PRODUCT_NAME;
return cp;
}
}
我希望这对你有用,
莉莎
答案 2 :(得分:0)
解决方法可能是绘制自己的表单标题栏。这样您就不需要更改任务栏中显示的实际标题。
答案 3 :(得分:-1)
这个问题是关于WPF而不是Winforms,但它适用于:Set a taskbar text different from the Window title in wpf