2017-10-29 3 views
0

미리 정의 된 값을 가진 ComboBox에 대한 UserControl이 있습니다. 이 컨트롤을 사용하는 프로그래머는 컨트롤을 가로로 늘일 수는 있지만 세로로 늘릴 수는 없다.최대 너비를 설정하지 않고 UserControl의 최대 높이를 설정하십시오.

Here, @SLaksMaximumSize 속성을 설정하겠다고 제안했지만, 원하지 않는 너비를 제한해야합니다.

어떻게 그렇게 할 수 있습니까?

+1

가 왜'MAXIMUMSIZE를 설정하지 :

using System.Windows.Forms.Design; public class MyControlDesigner : ControlDesigner { public override SelectionRules SelectionRules { get { return SelectionRules.LeftSizeable | SelectionRules.RightSizeable | SelectionRules.Moveable; } } } 

그런 다음 속성이 방법을 디자이너와 사용자 지정 컨트롤을 장식 할만큼의 'to'(int.MaxValue, Height)'? – Dmitry

+1

ComboBox에서 자신의 클래스를 파생하는 것이 거의 항상 좋은 생각입니다. 크기 조정 방식을 포함하여 모든 기본 동작을 상속받습니다. 여러 컨트롤을 결합해야하는 경우에만 UserControl을 사용하십시오. –

답변

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

참고 2 : 디자이너의 공동 작업 ntrol은 새로운 ControlDesigner을 만들고 SelectionRules 속성을 재정 의하여 방금 왼쪽 또는 오른쪽에서 크기를 조정할 수 있습니다. 이렇게하려면 System.Design 어셈블리에 대한 참조를 추가 한 다음 사용자 지정 디자이너를 만들 :

[Designer(typeof(MyControlDesigner))] 
+0

이 게시물에 대해 질문이 있으면 알려주십시오. 고정 높이 컨트롤을 만드는 데 사용할 수있는 최상의 솔루션입니다. –

관련 문제