Rah*_*wda 4 c# events label button winforms
我有一个 Windows 窗体应用程序,其中包含几个标签、一个按钮和一个组合框,所有这些都包装在面板内。
this.pnlSuboptions.Controls.Add(this.label1);
this.pnlSuboptions.Controls.Add(this.cboPtSize);
this.pnlSuboptions.Controls.Add(this.label2);
this.pnlSuboptions.Controls.Add(this.btnSelect);
Run Code Online (Sandbox Code Playgroud)
当我尝试加载标签的本地化字符串时,我遇到了标签问题。某些语言的本地化字符串比英语字符串大。在这种情况下,标签的一部分会隐藏在组合框或按钮下方。
我希望标签向左而不是向右增加尺寸。我已将标签的 AutoSize 属性设置为 true,并且还尝试了 Anchor 属性,但似乎没有任何效果。
我找到了一个 SO链接,其中包含标签文本更改时此问题的解决方案,但我确定如何将其应用到我的场景中,其中标签在表单加载期间仅读取一次。
有什么建议么?
您可以将它们放入具有 2 列和 2 行的TableLayoutPanel中。每个标签位于每行的左侧,两个组合框/按钮位于其他单元格(每行的右侧)。
然后,您必须停靠两个元素(停靠填充)并将列设置为“自动调整大小”。(如图所示)
您可能还希望将 TablePanelLayout 停靠到常用面板。
如下图所示,两个 TablePanelLayout 具有相同的组件。但最后我只是改变了 label3 的文本。
希望能帮助到你。(也很抱歉我的英语不好,这不是我的母语。请随时纠正任何错误的拼写,谢谢!)
我的第一个建议是:
第二个建议,您可以使用 GDI+ 确定文本的大小,然后相应地调整标签大小 请参阅http://msdn.microsoft.com/en-us/library/6xe5hazb(v=vs.110).aspx
Graphics gfx = this.label1.CreateGraphics(); // I think its called that, cant remember :)
Font stringFont = new Font("Arial", 16);
// Measure string.
SizeF stringSize = new SizeF();
stringSize = gfx.MeasureString(this.label1.Text, stringFont);
this.label1.Size = new Size((int)stringSize.Width, (int)stringSize.Height);
Run Code Online (Sandbox Code Playgroud)
哦,是的,我差点忘了。确保您的面板不是导致剪裁的原因。我的意思是,检查面板是否足够大以适合标签:-)
希望这可以帮助!
最好的问候, 泽拉塔
归档时间: |
|
查看次数: |
20321 次 |
最近记录: |