2012-10-25 4 views
0

form1.cs에있는 다른 클래스에서 form1 클래스 이벤트를 어떻게 호출합니까?C# .NET에서 텍스트 상자의 텍스트 변경

public partial class form1 : form 
{ 
// an event to change the text of a textbox 
} 

public class A 
{ 
sendtext() 
{ 
//text to be sent to the texbox 
// the text is created as a output of a thread 
} 
+1

당신은 코드를 수정하고 당신이 무엇을 달성하고자하는 더 나은 설명, 질문을 편집 할 수 있습니까? – Ewerton

+0

또한 올바른 C# 프로그램으로 만들 수 있습니다. –

답변

2

당신은 A 클래스에서 이벤트를 생성해야하고 form1에서 가입.

class A 
{ 
    public event Action<string> TextReady; 

    private OnTextReady(string text) 
    { 
     var ev = TextReady; 
     if(ev!=null) ev(text);   
    } 
} 

class Form1 
{ 
    private _a = new A(); 
    public Form1() 
    { 
     _a.TextReady+= (text)=> textBox.Text = text; 
    } 
} 

크로스 스레드 제한에 걸림돌이 될 수 있지만, 다른 질문입니다. 원할 경우 의견을 남기십시오.

+0

감사합니다! 나는이 질문에서 내가 분명하지 않다는 것을 알았지 만, 당신은 정말로 나를 도왔습니다! 나는 대표자 또는 다른 것을 배우려고 노력해야하는지 정말로 이해할 수 없었다 – user1484717

+0

그래, 그것은 질문이었던 것을 얻는 것은 굉장한 도전이었다 :) – Anri

1

언제든지 텍스트를 직접 변경할 수 있습니다. 그런 다음

public partial class form1 : form 
{ 
    public string TextboxText 
    { 
     get { return txtBox.Text; } 
     set { txtBox.Text = value; } 
    } 
} 

은 수행

form1.TextboxText = "My new text"; 
관련 문제