이벤트 처리에 문제가 있습니다. gtk #을 사용하여 두 개의 라벨과 버튼 세트가있는 양식 앱을 만듭니다.다른 위젯/컨트롤의 속성을 변경하는 EventHandler
Label Character1 = new Label ("Character1");
Label Character2 = new Label ("Character2");
HBox layoutTBS = new HBox(true,50);
layoutTBS.PackStart (Character1, false,true,3);
Button melee = new Button ("Melee");
Button range = new Button ("Ranged");
Button magic = new Button ("Magic");
melee.ButtonPressEvent += ButtonPressEventHandler;
이것은 가정 사용자 정의 '이벤트 처리기'
private static void ButtonPresseventHandler (object obj, ButtonPressEventArgs args)
{
if (args.Event.Type == Gdk.EventType.TwoButtonPress) {
Character1.Text = "Character1 does a melee attack";
}
}
내가 레이블의 텍스트를 변경하려면 '버튼을 눌러'이벤트의 활성화를 만들려고 노력하고있다. 'Character1'레이블은 이벤트 처리기로 전달되지 않았기 때문에 Text 속성을 변경할 수 없습니다. 다른 컨트롤을 인수로 사용하기 위해 단추 클래스의 기본 '단추 누르기 이벤트 처리기'를 오버로드해야한다고 말하면 맞습니까? 그렇다면 어떻게해야합니까? 그렇지 않은 경우 어떻게하면 한 컨트롤의 이벤트가 활성화되어 다른 컨트롤의 속성이 변경되도록 만들 수 있습니까?
건배
이'Character1' 텍스트 상자와 같은 클래스에서'ButtonPressed' 방법입니다 :
예를 들어, 나는 모든 코드가
Form
클래스 내에 가정한다? –아니요,'ButtonPressed' 메쏘드는'button' 클래스에 속합니다. 'Character1' 텍스트 박스의'Text' 속성을 바꾸길 원합니다. (질문을 오해 한 경우 용서해주세요. 아직 OOP 용어에 익숙하지 않습니다.) – ParityB1t
그게 내가하는 것이 아닙니다. 어떤 클래스에서 'Button melee = new Button ("Melee");을 정의 했습니까? –