我有一个带有预定义值的ComboBox的UserControl。我使用此控件的程序员将能够水平拉伸控件,但不能垂直拉伸。
Here,@SLaks建议设置MaximumSize
属性,但是,我必须限制宽度,这是我不想要的。
那么如何实现呢?
答案 0 :(得分:1)
您可以覆盖SetBoundsCore
并使其使用ComboBox
的高度作为控件的高度:
protected override void SetBoundsCore(int x, int y, int width, int height,
BoundsSpecified specified)
{
base.SetBoundsCore(x, y, width, comboBox1.Height, specified);
}
注1:如果您的UserControl
仅包含ComboBox
,则最好从ComboBox
派生,而不是创建包含ComboBox
的用户控件一个ControlDesigner
注2:您可以在设计器中明确指出,通过创建新的SelectionRules
并覆盖System.Design
属性,可以从左侧或右侧调整控件。为此,请添加对using System.Windows.Forms.Design;
public class MyControlDesigner : ControlDesigner
{
public override SelectionRules SelectionRules
{
get
{
return SelectionRules.LeftSizeable |
SelectionRules.RightSizeable |
SelectionRules.Moveable;
}
}
}
程序集的引用,然后创建自定义设计器:
[Designer(typeof(MyControlDesigner))]
然后用这种方式用designer属性来装饰你的自定义控件就足够了:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
imgLabel_Click(imgLabel, nothing)
End Sub