【问题标题】:text will replace the actual text in title bartext 将替换标题栏中的实际文本
【发布时间】:2011-10-13 16:44:14
【问题描述】:

我尝试过这样将辅助文本添加到 Windows 窗体的标题栏

                 formMain.ActiveForm.Text = name; 


         <pre>
        +--+---------------------------------------+----------+
        |  | Main window title          [text]       | _ O x  |
        +--+---------------------------------------+----------+
        |                                                     |

...

我想像上面提到的图片一样添加文字。但是它不能正常工作

但我的问题是它会将标题栏中的实际文本替换为上述辅助文本。我不想这样,我想将文本添加到右侧的 formain 标题栏而不更改实际文本..

任何人都可以帮助解决这个问题............

【问题讨论】:

    标签: c# winforms


    【解决方案1】:
     formMain.ActiveForm.Text += "   "  + name; 
    

    可以轻松完成您的任务

    【讨论】:

    • 好的,但它会显示这样的“formmaindavid”,但我想要这样的“formmain David”
    • formMain.ActiveForm.Text += " " + name;
    【解决方案2】:

    我认为您需要测量表单,并计算出需要在当前表单文本和需要添加到右侧的文本之间插入多少空白字符。

    然后您将文本添加到当前标题。

    例如:

    string rightHandText = "[text]";
    string whiteSpace = string.Empty.PadLeft( (your calculation for whitespace), ' ');
    
    formMain.Text += String.Format("{0}{1}", whiteSpace, righHandText);
    

    在设置 form.Text 时注意 +=,这会添加到文本中而不是替换它。

    【讨论】:

    • 谢谢...但我不知道我们如何计算空白
    • 您首先要检查 Form.Width 以获取表单的宽度,然后计算出您的 ' ' 字符占用当前字体的像素数(这可以随 Windows 设置而改变,除非您禁用视觉风格)你可以通过一些实验得到这个。然后,您将表单宽度除以空白字符中的像素数,然后减去右手字符串的长度,这应该可以让您大致到达那里。您显然需要向表单的 resize 事件添加一个处理程序,以便在标题更改时重新计算它。这取决于您希望您的应用有多流畅
    【解决方案3】:

    你可以试试

    formMain.ActiveForm.Text += "               " + name; 
    

    但这是肮脏和不动态的。

    我不知道有什么方法可以设置右对齐的第二个文本。 如果你真的想要,我认为你必须自己创建一个自定义窗口。

    【讨论】:

      【解决方案4】:
      this.Text += " text you want to add";
      

      【讨论】:

        猜你喜欢
        • 2013-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-24
        • 1970-01-01
        相关资源
        最近更新 更多