【问题标题】:Multiline text as the button label in Windows Forms多行文本作为 Windows 窗体中的按钮标签
【发布时间】:2011-02-27 15:53:21
【问题描述】:

基本上,我正在创建一个椭圆形的按钮。但是我的按钮标签太长,无法在一行显示,所以我想把它分成多行,这样椭圆形的按钮看起来不错。

如何在按钮上启用自动换行?

【问题讨论】:

    标签: c# winforms button word-wrap shapes


    【解决方案1】:

    只需在文本中应拆分的位置添加换行符即可。

    【讨论】:

    • @Dimesh,如果你让你的按钮大一点(或者用更小的字体测试)?
    • Alt-Enter? Shift-Enter? Ctrl-Enter?其中之一应该可以工作,您会看到该值在视觉上分为两行。
    【解决方案2】:

    尝试将“\n”添加到按钮的 Text 属性中要换行的位置。

    【讨论】:

      【解决方案3】:

      在表单加载时设置标签文本并添加 Environment.Newline 作为换行符字符串,如下所示:

      btnOK.Text = "OK" + Environment.NewLine + "true";
      

      【讨论】:

      • 没错,但可以稍微改进一下:在 Designer 文件中完全按照这种方式设置文本。这样,表单设计器 GUI 将正确显示它,这有助于定位和调整大小。
      【解决方案4】:

      有两种选择:

      1. 如果您要创建自定义控件,请使用Autosize = true 选项在其上放置一个标签控件。并根据按钮大小调整其大小。
      2. 在任意位置添加新行(有点粗略)。

      【讨论】:

        【解决方案5】:

        您可以使用一个附加属性(例如,Label)创建自定义按钮,它将“\n”出现转换为“真实”换行符(因为 VS 设计器已经 10 年无法做到这一点):

        public string Label
        {
            get { return (string.IsNullOrEmpty(Text) ? Text : Text.Replace("\n", @"\n")); }
            set {
                Text = (string.IsNullOrEmpty(value) ? value : value.Replace(@"\n", "\n"));
            }
        }
        

        一旦您创建了这样的类,您的 SuperButton 将在项目页面的工具箱中可见,因此您不会失去视觉设计方式。

        【讨论】:

          【解决方案6】:

          如果你想在VS设计器中设置一个按钮的标签为多行文字,你可以点击属性栏右侧的“向下箭头”,然后你就可以输入多行文字了。

          我在 VS 2015 中尝试过。

          【讨论】:

          • 不客气。我很惊讶自己很长一段时间都没有意识到那里存在小箭头。
          • 啊啊好简单!
          【解决方案7】:

          您只需要在按钮文本中插入一个换行符(即\n)。

          例子:

          Button1.AutoSize = true;
          
          Button1.Text = "This is \n The Button Text";
          

          【讨论】:

            猜你喜欢
            • 2012-08-08
            • 1970-01-01
            • 2021-12-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-11-15
            • 1970-01-01
            • 2013-06-05
            相关资源
            最近更新 更多