【问题标题】:Custom MessageBox in C#C#中的自定义消息框
【发布时间】:2012-03-02 19:11:11
【问题描述】:

我正在用我自己的语言(波斯语)制作自定义 MessageBox。我想知道文本可以使用哪个组件?

Label 不是多行的,TextBox 有点不合适。 Visual Studio 自己使用哪个组件?

我在图中指定的组件是什么?

【问题讨论】:

    标签: c# .net visual-studio visual-studio-2010


    【解决方案1】:

    您可以使用标签。它有许多用于布置文本的选项...一种方法是将其设置为“AutoSize = True”。

    【讨论】:

    • 谢谢,但在我看来 Label 没有自动换行功能。
    【解决方案2】:

    我支持RQDQ的答案,标签可以放大到超过一行。 它们有一个名为 TextAlign 的属性。当设置为 LeftCenter 或 MiddleCenter 时,您可以模拟消息框中文本的行为。如果文本在一行中放不下,标签会自动将其换行到另一行。但是在这种情况下,我会让属性 AutoSize 设置为其 false 默认值。

    【讨论】:

    • 我没有得到答案 亲爱的史蒂夫。 MiddleCenter 不起作用。
    • 您是否使用 System.Windows.Forms.Label 并将 TextAlign 属性设置为 MiddleCenter 对吗?您是否在设计时调整标签大小以显示多行?不是在运行时 AutoSize=true。
    • 谢谢,它有效。对了,请问我红框中指定的组件是什么?
    • 如果这是 MessageBox.Show() 的输出,那么它不是组件。这是一个带有特殊标志的内部窗口(如果我对 Windows C SDK 编程的古老记忆没有让我失望)
    • 关于那个 MiddleCenter 技巧,它在运行时有效吗? (使用 AutoSize = false;)。我正在尝试,但我没有得到答案。
    【解决方案3】:

    这完全取决于您正在执行哪种 Visual Studio 项目。 Wpf 或 Silverlight 或 Asp.net 甚至 windows,一切都取决于它是哪种项目。

    在我看来,这就像带有图像的 MFC 样式标签,或者在浏览器中使用 javascript 完成。

    【讨论】:

    • 我正在使用 Windows 窗体项目。
    • 因为您使用的是 Win Form App,您需要为此创建一个自定义表单(窗口),并能够通过创建表单实例来全局使用它,设置自定义消息进入表单,然后是 DoModal。您可能想要创建一个多行文本框,并覆盖样式属性,因此它不会显示边界,或者您可以使用 MessageBox 选项并手动添加 \n,以便它为您换行。
    • MessageBox.Show("这将\n换行。");
    【解决方案4】:

    您可以使用 RichTextBox。我将它用于我的自定义 MessageBox 并且它可以正常工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多