2013-05-30 3 views
-1

C#의 Controls 클래스에 두 개의 메서드를 추가하려고합니다.이 클래스는 'UpColor'와 'DownColor'이므로이 컨트롤의 상태에 따라 BackColor 단추를 설정할 수 있습니다. 버튼이 '위로'또는 '아래로'C# 컨트롤 클래스에 메서드 추가하기

확장 메소드를 사용하여 시도했지만 정적 인 것은 확장 메소드가 다른 버튼을 선택할 때마다 이전 버튼을 위/아래 색상 대신 사용할 것임을 의미합니다. 개인적인.

Color를 가져 오거나 설정할 수 있도록 Controls 클래스에 추가하는 방법이 있습니까?

정적 클래스를 추가하고 각 메소드에 대해 사전을 보유하기로 결정했습니다.

static class ButtonColors 
{ 
    public static Dictionary<Control, Color> UpColor 
    { 
     get; 
     set; 
    } 

    public static Dictionary<Control, Color> DownColor 
    { 
     get; 
     set; 
    } 
} 
+1

코드 보여주기? – Liam

+0

무엇을 추가하려고합니까? '클래스'또는'메소드'? 또한 확장 방법을 오해하는 것 같습니다. – ppetrov

+1

_ "확장 메서드를 사용하여 시도했는데 확장 메서드가 고정되어 있기 때문에 다른 단추를 선택할 때마다 이전 단추를 위/아래 색을 사용하는 대신 자신의"_ - 그 방법이 아닙니다. 작업. 확장 메서드는 "고정되어 있기 때문에 한 개체에서 작동하지"않습니다. 다른 작업이 계속되어야합니다. 코드를 보여주십시오. – CodeCaster

답변

3

당신은 그에 따라 클래스를 확장해야합니다 .. 그것은 내가 원한 건 아니지만, 내가 일을해야하지만

public ClassWithColors : Control { 
    // extended implementation 
    public string UpColor { get; set; } 
    public string DownColor { get; set; } 
    // assuming types, change as needed 
} 

를, 그렇게, 당신에 대해 얘기 클래스를 제어하는 ​​분명하지 않다 여기서 WinForms를 가정합니다. 원칙적으로 ASP.NET 사용자 컨트롤 및 기타 등등 마찬가지입니다.

+1

그리고 어떻게 'Button'이이 클래스를 상속 받도록할까요? – CodeCaster

+0

Control 클래스에서 상속을 시도했지만 새 버튼을 만들 수 없습니다. 즉 ClassWithColors button = new Button(); 죄송합니다, 이것은 WinForms라고 언급하는 것을 잊어 버렸습니다. – Ben

0

버튼의 핸들을 잡고 색상을 변경하는 "방법"을 만들어보세요.

관련 문제