2013-08-11 3 views
0

나는 textboxes 인 winForms를 가지고 있습니다. textbox은 .ini 파일에서 설정 값을 보여줍니다. .ini 파일 값 중 일부는 암호화되어 있으므로 textbox 안에 값을 배치하기 전에 값을 해독해야합니다.추가 속성 인수를 텍스트 상자에 추가하는 방법은 무엇입니까?

storeIniValueToVar(string iniSection, string iniKey, bool? encrypt) 

이 같은 부울 사용자 정의 인수와 함께 textbox 속성을 확장 할 수 있는가 : 이미 함수를 만들어? 암호화? 내 생각은 사용자 지정 인수 부울을 전달하는 것이 었습니다. 값을 storeIniValueToVar 함수에 암호화합니다.

답변

3

태그라는 일반적인 속성이 있습니다. 어떤 종류의 문자열도 저장할 수 있습니다. 단점은 반환 유형이 Object이지만 UI 컨트롤에서 파생 될 필요가 없다는 것입니다.

예 :

private void OnTextBoxChanged(object sender, EventArgs e) 
    { 
     var updatedTextBox = sender as TextBox; 
     object tagObject = updatedTextBox.Tag; 

     // Further converting of the tag here... 

    } 

하나 개의 이벤트 핸들러에 텍스트 상자 (여기의 TextChanged)의 이벤트를 설정하고 당신은뿐만 아니라 텍스트 상자 인스턴스와 태그를 얻을 수 있습니다.

+0

이것은 내가 달성하고자하는 것에 접근하는 흥미로운 방법입니다. 예제를 통해 읽은 후에는 .Tag를 사용하여 설정/전달 (암호화 = true 또는 참 true)하는 방법을 여전히 확신 할 수 없습니다. – dottedquad

+0

신경 쓰지 마세요 .Tag 속성에 대해 Google에서 검색 한 후 이해합니다 :-) – dottedquad

2

클래스에 추가 속성을 추가하여 ini 파일에서 저장 /로드 할 때 텍스트를 암호화하거나 해독해야하는지 여부를 나타낼 것이라고 생각합니다. 당신이 무엇을 할 수 있는지

는 서브 클래스 TextBox하고 자신의 속성을 추가 :

class MyTextBox : TextBox 
{ 
    public bool Encrypt { get; set; } 
} 

는 그런 다음 양식에 MyTextBox 대신 TextBox를 사용합니다.

+0

추가 클래스를 Form.cs 또는 Program.cs에 추가해야합니까? – dottedquad

+1

Nest는 MyTextBox.cs와 같은 별도의 파일을 만드는 것입니다. – zewa666

관련 문제