0

Visual Studio 2008에서 디자이너를 형성하는 컨트롤을 추가하면 컨트롤의 속성과 관련된 코드가 자동으로 만들어집니다. 이제는 내 자신의 사용자 정의 컨트롤을 사용하고 있으며 폼에 추가하여 디자이너가 코드 줄을 자동으로 생성합니다.이 경우 FONT 속성은 디자이너가이 코드를 추가하기를 원하지 않는 코드 중 하나입니다. 상위 레벨의 글꼴 설정을 덮어 씁니다. 누구나 디자이너에서 설정할 속성을 어떻게 설정할 수 있는지 알고 있습니까?Visual Studio에서 디자이너의 컨트롤에 대한 속성 설정을 생성하지 못하도록하려면 어떻게합니까?

답변

0

값이 DefaultValue [Attribute]와 다른 것으로 판단되면 디자이너는 속성의 값을 변경하는 코드 행을 추가합니다.

public class MyControl : Control 
{ 
    public MyControl() 
    { 
     base.Font = new Font("Arial", 9.75f); 
    } 

    [DefaultValue(typeof(Font), "Arial, 9.75pt")] 
    public new Font Font 
    { 
     get { return base.Font; } 
     set { base.Font = value; } 
    } 
} 

공지 사항 '새'를 : 사용자 지정 컨트롤의 글꼴 속성의 기본 값이 (또는 다른 기본 클래스 속성)하는 내용을 변경하고자하는 경우

, 당신은 약간의 마법을 수행해야 글꼴 속성에 키워드가 있습니까? 글꼴은 가상이 아니므로 무시할 수 없으며 그렇게하지 않으려 고합니다. 행동을 바꾸려면 우선합니다. 비헤이비어를 변경하고 싶지는 않습니다 (코드가 단순히베이스로 리디렉션되는 이유). 새 DefaultValue를 노출하기 만하면됩니다. 이렇게하면 디자이너가 컨트롤의 새로운 기본값을 고려하게됩니다.

또한 Font 속성을 생성 할 때 해당 값이 있는지 확인해야합니다.