C# 任务栏中的应用程序标题,但不是标题栏
这是我正在做的一件奇怪的事情,但是我如何才能在任务栏中设置winform表单的标题,而不是在其标题栏中设置呢?这个问题是关于WPF而不是Winforms的,但它是适用的:一个解决方法可以是绘制您自己的表单标题栏。这样,您就不需要更改任务栏中显示的实际标题。好的,所以我的临时解决方法是: 在运行时/设计时,清除表单的Text属性(Form1,或此应用于的任何表单),并在触发Minimize或Hide()事件时,更改Text属性以显示标题。因此,当窗体被隐藏或最小化时,您将无法看到标题栏,但您将能够看到任务栏上的标题!当表单稍后被最大化时,或者当Form.WindowState==WindowState.Normal时,再次清除Text属性。:-) 我不知道这是否是微软采取的方法 编辑: 好的,亲爱的,我有一些关于美味的工作代码: 如果使用的是Visual Studio,请转到“设计”视图,选择表单控件,打开“属性”窗格,单击“事件”选项卡,然后双击“调整大小”事件。应显示代码视图。在刚刚创建的Resize()代码中,键入以下内容:C# 任务栏中的应用程序标题,但不是标题栏,c#,.net,winforms,titlebar,C#,.net,Winforms,Titlebar,这是我正在做的一件奇怪的事情,但是我如何才能在任务栏中设置winform表单的标题,而不是在其标题栏中设置呢?这个问题是关于WPF而不是Winforms的,但它是适用的:一个解决方法可以是绘制您自己的表单标题栏。这样,您就不需要更改任务栏中显示的实际标题。好的,所以我的临时解决方法是: 在运行时/设计时,清除表单的Text属性(Form1,或此应用于的任何表单),并在触发Minimize或Hide()事件时,更改Text属性以显示标题。因此,当窗体被隐藏或最小化时,您将无法看到标题栏,但您将能够
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属性为空)。一个可能的解决方案(对我来说很好)是覆盖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;
}
}
我希望这对你有用
Lisa只是出于好奇,你为什么要这样做?为什么是nic Lucifer?人们希望被称为地狱真是太神奇了。@Unmesh Kondolikar;我这样做是为了在表单的标题栏上自定义绘图,但我仍然希望标题显示在任务栏上。他们不是在地狱里教这种恶作剧吗?[=@Lucifer,我不认为你想下地狱。我只是希望你能见到造物主本人,并向他询问你的问题。等等,你可以!嗯,很有趣。如果我找不到更简单的解决方案,我会尝试一下(我不太擅长绘画部分,尤其是当涉及空气玻璃的时候)-谢谢你的回答,我会记住:)我刚看到你的网站:),你为澳大利亚提供开发/设计服务吗?还是这只是当地的事情?@Lucifer:事实上是的[=我的大多数客户来自世界各地,我也有一些来自澳大利亚。啊,太棒了!我可以通过你的网站与你联系吗?:)谢谢,@Stuart Dunkeld,我现在就去看看这个链接:)