在我的程序中,我有标签控件,用户可以随意添加,标签也可以绑定到数据源。我将 AutoSize 属性添加到我设计的属性网格中,并且可以随意打开和关闭它。我遇到的问题是,如果在属性网格中将 AutoSize 标志设置为 true,它将自动调整为当前单元格内容,这是正确的,但是如果我在数据源中向前移动一条记录并且文本更长,那么标签标签不会再次调整大小。我做错了什么还是 AutoSize 的工作方式?
还有谁知道是否可以在运行时使对齐线可用以对齐控件?
谢谢。
如果我正确理解您的问题,那么您正在创建一个自定义组件“标签”,问题是在更改文本时不会调整其大小。看一下Control.OnTextChanged方法,你可以把你的大小调整逻辑放在那里。像这样:
public class TestLabel : Control
{
protected override void OnTextChanged(EventArgs e)
{
// adjust size here
base.OnTextChanged(e);
}
}
至于对齐线,那些被设计者淹没了,在运行时你可以通过覆盖你的表单或父控件的 OnPaint 方法来自己绘制它们