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