프로그램 로직이 UI 스레드를 사용하여 무작위로 버튼 태그를 변경한다고 가정합니다.버튼 태그 사용
클릭 이벤트에서 사용할 수있는 버튼 태그 값은 신뢰할 수 있습니까? 즉, 이벤트 핸들러가 클릭 할 때와 같은 값일 것인가?
그렇지 않은 경우 안전 할 수있는 버튼 클릭 이벤트에 이벤트 별 매개 변수를 전달하는 가장 좋은 방법은 무엇입니까?
업데이트
추가 요청에 따라 예. (이것은 단지 이론적 인 것임을 기억하십시오). 이벤트는 버튼의 상태가 추진되고있는 버튼을 누름을 처리하는 클릭 이벤트 사이에 변경 될 수 있도록 GUI를 이벤트 큐에 쐐기 할 수 있습니다
Windows.Forms.Timer timer = new Timer();
timer.Interval = 1;
timer.Tick += new EventHandler(timer_tick);
timer.Start();
void timer_tick(object sender, EventArgs e)
{
this.button.Tag = Random.NextInt(100).ToString();
}
void button_click(object sender, EventArgs e)
{
string s = (string)((Button)sender).Tag;
Console.WriteLine("Tag value as at button push: " + s);
}
다른 방법을 넣어, 질문은 아래로 비등?
버튼 태그를 정의하십시오. 그리고 당신의 논리가 그것을 어떻게 바꿀 수 있습니까? Windows 응용 프로그램과 관련이 있습니까? – Miller
실제로 저는 wpf를 사용하고 있습니다. 그러나 winforms 응답이 질문에 대해 충분히 유사하다고 가정합니다. 로직이 태그를 어떻게 변경하는지에 관해서는 태그 기반 타이머를 밀리 초로 변경하는 GUI 기반 타이머를 생각해보십시오. (이것은 이론적이다). – Nicholas
버튼 태그에서 어떻게 변경하는지 예제를 제공 할 수 있습니까? – Miller