好的,我有这个代码在我的表单上创建控件:
public CableID_DuplicateView(CableID_CreateView CView)
{
InitializeComponent();
Label lbl = new Label();
Button btn = new Button();
ComboBox cmb = new ComboBox();
TextBox txt = new TextBox();
if (CView.input == 1)
{
lbl.Text = "Please select a cable number to duplicate:";
lbl.Location = new Point(12, 9);
cmb.Location = new Point((lbl.Width + 17), 6);
cmb.Size = new System.Drawing.Size(125, 20);
btn.Location = new Point((lbl.Width + cmb.Width + 17), 5);
btn.Size = new System.Drawing.Size(90, 23);
btn.Text = "Add to Table";
this.Height = cmb.Height + 48;
this.Width = lbl.Width + cmb.Width + btn.Width + 34;
this.Controls.Add(lbl);
this.Controls.Add(cmb);
this.Controls.Add(btn);
}
}
产生这个:
是什么原因导致我的标签被切断了?为什么comboBox坐在一个奇怪的位置?
答案 0 :(得分:2)
这里发生的事情是label.width是100而不是覆盖整个文本而是这样做:
lbl.Text = "Please select a cable number to duplicate:";
lbl.Location = new Point(12, 9);
lbl.Width = 200;
你也可以这样做:
lbl.AutoSize = true;
尝试此设置AutoSize width属性:
lbl.Text = "Please select a cable number to duplicate:";
lbl.Location = new Point(12, 9);
lbl.AutoSize = true;
this.Controls.Add(lbl);
在将控件添加到父容器之前,不会设置Width属性。
答案 1 :(得分:1)
问题:您没有为Label Control设置Width
。因此Label
需要一些默认宽度
解决方案:您需要为标签设置Width
试试这个:
lbl.Size = new System.Drawing.Size(200, 20); //width = 200, height = 20
答案 2 :(得分:1)
正如其他人所说,标签的宽度太短。
解决方案1 :将宽度设置为更大的固定宽度:
lbl.Width = 200;
解决方案2 :将AutoSize设置为true:
lbl.AutoSize = true;
解决方案3 :将固定宽度与AutoEllipsis属性结合使用:
lbl.Width = 100;
lbl.AutoEllipsis = true;
使用AutoEllipsis时,标签仍然是设定的宽度, 但是显示的文字后跟三个点,表示并非显示所有文字。