2013-10-17 2 views
1

"테이블"이라는 클래스가 있고 폼의 winform "Form1"은 "table3"이라는 단추입니다. 은 "테이블"클래스의 코드는 별도의 스레드에서 실행되며 기본 폼에있는 버튼에 액세스해야이 내가 가진 것입니다 : 내가 null 참조 예외를 받고 있어요별도의 스레드 및 클래스에서 WinForms 컨트롤에 액세스

Form1.ActiveForm.BeginInvoke(
(Action)(() => 
{ 
    Form1.ActiveForm.Controls["table3"].Text = "test"; 
})); 

..의 이름 버튼이 맞습니다. 거기에 다른 문제이고 나는 그것을 할 수 있는지 확실하지 않다 :/

+2

참조 http://stackoverflow.com/questions/1110458/winforms-interthread-modification –

답변

0

이 시도 :

Invoke(new Action<object>((args) => 
{ 
    Form1.ActiveForm.Controls["table3"].Text = "test"; 
})); 
+0

e.Argument - e가 현재 컨텍스트에 없습니다. – user2864613

+0

OK, 대답을 편집했습니다. http://stackoverflow.com/questions/16373299/issue-with-drag-and-drop – Jerry

+0

backround worker를 사용하면 내 코드가 많이 필요할 것입니다. 수정되었습니다. hmm – user2864613

0

당신이 NullReferenceException이를 얻고있는 경우, 참조가 null입니다. 따라서 Form1.ActiveForm == null 또는 Form1.ActiveForm.Controls == null 또는 Form1.ActiveForm.Controls["table3"] == null입니다.

나는 이 클래스의 이름이고 ActiveForm이 정적 속성이라고 가정합니다.

관련 문제