2016-10-03 3 views
1

class1 메서드에서 내가 한 클래스에서 만드는 결과 목록 상자에 데이터를 쓰려고합니다. 코드가 작동하지 않는다고 썼다.하지만 비어있는 목록 상자처럼 보인다. 코드를 작성하려면 어떻게해야합니까?목록 상자에 데이터 형식으로 클래스를 사용하는 방법

class Class1 
{ 
    Form1 form = new Form1(); 

    public void Result() 
    { 
     form.listBox1.Items.Add("hello"); 
    } 
} 

}

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Class1 btn_class = new Class1(); 
     btn_class.Result(); 
    } 
} 

}

+1

* 양식은 * 클래스입니다. 당신이 무엇을 하려는지는 확실치 않지만,'Class1'을위한 코드는 전혀 보이지 않는 다른 form1 인스턴스를 생성하고 있습니다. – Plutonix

답변

2

폼의 새로운 인스턴스를 생성하고 그 목록 상자에 새 항목을 할당하기 때문에 귀하의 코드가 작동하지 않습니다. 양식을 매개 변수로 제공하여 문제를 해결할 수 있습니다.

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 
    private void button1_Click(object sender, EventArgs e) 
    { 
     Class1 btn_class = new Class1(this); 
     btn_class.Result(); 
    } 

} 

class Class1 
{ 
    private Form1 _form; 
    public Class1(Form1 form) 
    { 
     this._form = form; 
    } 


    public void Result() 
    { 
     _form.listBox1.Items.Add("hello"); 
    } 
} 
+0

정말 고맙습니다. – user3750391

관련 문제