【问题标题】:Application Title in Taskbar but not Titlebar任务栏中的应用程序标题但不是标题栏
【发布时间】:2011-07-11 20:34:08
【问题描述】:

这是我正在做的一件奇怪的事情,但是如何在任务栏中设置 winform 表单的标题,但在其标题栏中

【问题讨论】:

  • 只是出于好奇,你为什么要这么做?
  • 为什么是 nic Lucifer?令人惊讶的是人们希望被地狱提及。
  • @Unmesh Kondolikar;我这样做是为了在表单的标题栏上进行自定义绘图,但我仍然希望标题显示在任务栏上。
  • 他们不是在地狱里教这种恶作剧吗? [=
  • @Lucifer,我不认为你想下地狱。我只是希望你能见到创作者本人并询问他你遇到的问题。等等,你可以!

标签: c# .net winforms titlebar


【解决方案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】:

好的,所以我的临时工作是这样的:

在运行时/设计时,清除窗体(Form1 或任何适用的窗体)的文本属性,并在触发最小化或隐藏()事件时,更改文本属性以显示标题。因此,当表单被隐藏或最小化时,您无论如何都看不到标题栏,但您将能够看到任务栏上的标题!而当窗体稍后最大化时,或者当 Form.WindowState == WindowState.Normal 时,再次清除 Text 属性。 :-)

我想知道这是否是MS采取的方法!?

编辑:

好的,亲爱的,我有一些美味的工作代码:

如果您使用的是 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 = "";
     }
}

但是,这还不能完全解决我的问题。当表单对用户可见时,它仍然不会在任务栏中显示标题(因为标题栏的文本属性为空。

【讨论】:

    【解决方案3】:

    一种解决方法可能是绘制您自己的表单标题栏。这样您就无需更改任务栏中显示的实际标题。

    【讨论】:

    • 嗯,很有趣。如果找不到更简单的解决方案,我会试一试(我在绘图部分不是很擅长,尤其是涉及航空玻璃时)-但感谢您的回答,我会记住的:)
    • 我刚看到你的网站:),你们是否为澳大利亚提供开发/设计服务?还是只是本地的东西?
    • @Lucifer:我确实这样做了 [= 我的大多数客户来自世界各地,我也有一些来自澳大利亚。
    • 啊,太棒了!我可以通过您的网站与您联系吗? :)
    【解决方案4】:

    这个问题是关于 WPF 而不是 Winforms 但它适用:Set a taskbar text different from the Window title in wpf

    【讨论】:

    • 谢谢,@Stuart Dunkeld,我现在去看看那个链接 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多