2009-11-06 47 views
0

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

也没有人知道是否有可能在运行时使捕捉线可用来对齐控件?

谢谢。

回答

2

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

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

为粉笔线,这些都是由设计师淹没,在运行时,你可以通过重写窗体或父控件OnPaint方法

自己绘制他们