【发布时间】:2014-08-05 00:09:41
【问题描述】:
我在面板中有一个标签。当文本超出时,标签文本应该换行。为此,我设置了 mylabel 的 AutoSize = false 和 MaximumSize = 100,0。
现在由于文本被换行,垂直滚动条应该出现在面板上。但这没有发生,请说明我在这里缺少什么。 是否有可能,或者我应该在面板内显式添加垂直滚动条?
【问题讨论】:
我在面板中有一个标签。当文本超出时,标签文本应该换行。为此,我设置了 mylabel 的 AutoSize = false 和 MaximumSize = 100,0。
现在由于文本被换行,垂直滚动条应该出现在面板上。但这没有发生,请说明我在这里缺少什么。 是否有可能,或者我应该在面板内显式添加垂直滚动条?
【问题讨论】:
1) 你需要把标签放在面板里面
2) 标签的 AutoSize 应为 TRUE
3) 面板的 AutoSize 应为 FALSE
4) 面板的 AutoScroll 应该是 True
就是这样!
【讨论】:
您应该将 AutoSize 设置为 true 以自动换行。对于滚动条,检查您是否设置了 panel.VerticalScroll.Visible = true;
【讨论】:
panel.Invalidate(); 看看它是否被正确调整大小以显示滚动条。还可以考虑用FlowLayoutPanel 替换您的面板。您也可以尝试手动添加它。见this answer。
panel1.Invalidate();
您是否有属性 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);
【讨论】: