2012-07-02 2 views
0

양식에 표시되기 전에 Title을 수정하기 위해 Form.Text을 재정의하려 고합니다. 직접 Form에서 상속 대신에 사용됩니다 나는이 클래스를 만든 개념의 증거로서 Form.Text 속성 재정의

:

내가 제목을 가지고이 상속 모든 형태를 예상 한 것
public class FormWithVersionNumber : Form 
{ 
    [SettingsBindable(true)] 
    public override string Text 
    { 
     get 
     { 
      return "tester"; 
     } 

    } 
} 

"tester"하지만, 대신 항상 공백입니다. 나는 breakpoints를 겪어 왔고 이것이 일어나야하는 이유를 알 수 없다. 이유가 무엇입니까?

+0

확인이 부분 [기본 구현을 확장하는 기본 클래스의 텍스트 속성을 사용합니다. 그렇지 않으면 모든 구현을 제공해야합니다. Text 속성의 get 및 set 접근자를 모두 재정의 할 필요는 없습니다. 필요한 경우 하나만 재정의 할 수 있습니다. *] (http://msdn.microsoft.com/en-us/library/system.windows.forms.control.text.aspx) – V4Vendetta

+0

그래서 'base.Text'를 사용해야합니다. 값을 설정 한 다음 같은 것을 반환합니다. – V4Vendetta

답변

2

실제 TitleText에서 수신되었으므로 내부 속성 WindowTextControl에 있습니다.

여기 당신이 할 수있는 방법의 예 : 파생 클래스에서 Text 속성을 재정의하는 경우 *

public partial class FormWithVersionNumber : Form 
{ 
    public override sealed string Text 
    { 
     get 
     { 
      return base.Text + " 1.0.0.0"; 
     } 
     set 
     { 
      base.Text = value + " 1.0.0.0"; 
     } 
    } 


    public FormWithVersionNumber() 
    { 
     InitializeComponent(); 

     Text = "Some Title"; 
    } 
} 
+0

@Filip을 주셔서 감사합니다. 문제는 파생 된 클래스에서 제목을 설정할 수 있기를 원했지만 사용하지 않는 것입니다 (그냥 무시 됨) –

+0

@ m.edmondson, 왜 생성자에서 설정하지 않습니까? –