【问题标题】:Wrapping Text on Label and Vertical scrollbar on panel在面板上的标签和垂直滚动条上环绕文本
【发布时间】:2014-08-05 00:09:41
【问题描述】:

我在面板中有一个标签。当文本超出时,标签文本应该换行。为此,我设置了 mylabel 的 AutoSize = false 和 MaximumSize = 100,0。

现在由于文本被换行,垂直滚动条应该出现在面板上。但这没有发生,请说明我在这里缺少什么。 是否有可能,或者我应该在面板内显式添加垂直滚动条?

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    1) 你需要把标签放在面板里面

    2) 标签的 AutoSize 应为 TRUE

    3) 面板的 AutoSize 应为 FALSE

    4) 面板的 AutoScroll 应该是 True

    就是这样!

    【讨论】:

      【解决方案2】:

      您应该将 AutoSize 设置为 true 以自动换行。对于滚动条,检查您是否设置了 panel.VerticalScroll.Visible = true;

      【讨论】:

      • panel.VerticalScroll.Visible = true;并且 AutoSize 为 true 也没有帮助
      • 试试panel.Invalidate(); 看看它是否被正确调整大小以显示滚动条。还可以考虑用FlowLayoutPanel 替换您的面板。您也可以尝试手动添加它。见this answer
      • 我也尝试过 FlowLayoutPanel,但它只允许用户在特定方向(从左到右或从上到下)添加控件。在 panel.Invalidate() 中写什么?
      • 抱歉,您的面板具体包含什么内容?如果你的面板是panel1,那么写panel1.Invalidate();
      • Chibueze 我的面板包含 3 个标签。所以当数据超过它们的宽度时,文本会被换行。现在我只想添加一个垂直滚动条来查看其他标签的全部内容..
      【解决方案3】:

      您是否有属性 Scrollable=true 或 AutoScroll?

      http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.panel.scrollbars.aspx

      试试这个:

      ScrollBar vScrollBar1 = new VScrollBar();
      vScrollBar1.Dock = DockStyle.Right;
      vScrollBar1.Scroll += (sender, e) => { panel1.VerticalScroll.Value = vScrollBar1.Value; };
      panel1.Controls.Add(vScrollBar1);
      

      【讨论】:

      猜你喜欢
      • 2014-03-16
      • 2012-09-07
      • 2013-10-13
      • 2012-02-25
      • 1970-01-01
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 2011-02-27
      相关资源
      最近更新 更多