C#AutoSize标签问题

时间:2009-11-06 23:08:41

标签: c# autosize

在我的程序中,我有标签控件,用户可以随意添加,标签也可以绑定到数据源。我将AutoSize属性添加到我设计的属性网格中,并且可以选择随意打开和关闭它。我遇到的问题是,如果在属性网格中将AutoSize标志设置为true,它将AutoSize为当前单元格内容,这是正确的但是如果我在数据源中向前移动一条记录并且文本比标签长标签不会再次调整大小。我做错了什么或者像AutoSize那样工作?

也有人知道是否可以在运行时使快照线可用于对齐控件?

感谢。

1 个答案:

答案 0 :(得分:2)

如果我正确理解您的问题,那么您正在创建自定义组件“标签”,问题是在文本更改时不会调整其大小。看一下Control.OnTextChanged方法,你可以把你的尺寸调整逻辑放在那里。像这样的Smth:

public class TestLabel : Control
{
  protected override void OnTextChanged(EventArgs e)
  {
   // adjust size here
   base.OnTextChanged(e);
  }
}

对于快照线,那些被设计者淹没,在运行时你可以通过覆盖你的表单或父控件OnPaint方法来自己绘制它们