미리 정의 된 값을 가진 ComboBox에 대한 UserControl이 있습니다. 이 컨트롤을 사용하는 프로그래머는 컨트롤을 가로로 늘일 수는 있지만 세로로 늘릴 수는 없다.최대 너비를 설정하지 않고 UserControl의 최대 높이를 설정하십시오.
Here, @SLaks은 MaximumSize
속성을 설정하겠다고 제안했지만, 원하지 않는 너비를 제한해야합니다.
어떻게 그렇게 할 수 있습니까?
미리 정의 된 값을 가진 ComboBox에 대한 UserControl이 있습니다. 이 컨트롤을 사용하는 프로그래머는 컨트롤을 가로로 늘일 수는 있지만 세로로 늘릴 수는 없다.최대 너비를 설정하지 않고 UserControl의 최대 높이를 설정하십시오.
Here, @SLaks은 MaximumSize
속성을 설정하겠다고 제안했지만, 원하지 않는 너비를 제한해야합니다.
어떻게 그렇게 할 수 있습니까?
당신은 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
참고 2 : 디자이너의 공동 작업 ntrol은 새로운 ControlDesigner
을 만들고 SelectionRules
속성을 재정 의하여 방금 왼쪽 또는 오른쪽에서 크기를 조정할 수 있습니다. 이렇게하려면 System.Design
어셈블리에 대한 참조를 추가 한 다음 사용자 지정 디자이너를 만들 :
[Designer(typeof(MyControlDesigner))]
이 게시물에 대해 질문이 있으면 알려주십시오. 고정 높이 컨트롤을 만드는 데 사용할 수있는 최상의 솔루션입니다. –
가 왜'MAXIMUMSIZE를 설정하지 :
그런 다음 속성이 방법을 디자이너와 사용자 지정 컨트롤을 장식 할만큼의 'to'(int.MaxValue, Height)'? – Dmitry
ComboBox에서 자신의 클래스를 파생하는 것이 거의 항상 좋은 생각입니다. 크기 조정 방식을 포함하여 모든 기본 동작을 상속받습니다. 여러 컨트롤을 결합해야하는 경우에만 UserControl을 사용하십시오. –