2012-09-09 6 views
0

버튼 클릭시 레이블 텍스트를 변경해야하지만 작동하지 않으며 런타임 오류가 발생합니다. 레이블에 별도 클래스가 있고 단추에 대해 별도 클래스가 있습니다. 이것은 더미 코드입니다. . 진짜 코드는 레이블과 버튼 모두에 대한 위치와 크기를 포함합니다. 모든 것은 동적으로 생성됩니다. 감사! 당신은 널 참조 레이블의 텍스트 변경하려는버튼을 클릭하여 레이블 텍스트 변경하기

/-------------------------------------LABEL class-------------------------------/ 
    private Label label1; 

    public Label getLabel1() 
    { 
     return label1; 
    } 

    public LABEL() 
    { 
     label1 = new Label(); 
    } 

    public void print() 
    {    
     label1.Text = "x"; 
     Controls.Add(label1); 
    }// 

    /-------------------------------------BUTTON class----------------------------------/ 
    private Button button1; 

    public BUTTON() 
    { 

    } 

    public void print() 
    { 
     button1 = new Button(); 
     button1.Click +=new EventHandler(button1_Click); 
     Controls.Add(button1); 
    } 

    public void button1_Click(object sender, EventArgs e) 
    { 
     LABEL label = new LABEL(); 
     label.getLabel1().Text = "y"; 
    } 
+0

당신은 그것을 런타임에 고정되어 오류 할 MatthewRz에 – codingbiz

+0

감사를주고 있었다 오류를 언급하지 않았다,하지만 여전히 실 거예요 그것은 의미가 않습니다 아무것도 –

답변

0

:

public LABEL() 
{ 
    label1 = new Label(); 
} 

public void print() 
{ 
    label1.Text = "x"; 
    Controls.Add(label1); 
} 

: 작동하도록 코드를

// Label Class 
private Label label1; 
public Label getLabel1() 
{ 
    return label1; 
} 
// Button Class 
LABEL label1 = new LABEL(); 
label1.getLabel1().Text = "y"; 
// getLabel1 is returning null, because you have not initialized label1 

위해, 다음과 같은 변경해야 희망이 도움이!

+0

를 표시하지만 여전히 아무것도 할 나던. 그것은 추락하기를 멈췄다. 감사! –

+0

아무것도하지 않는다는 것은 무엇을 의미합니까? 'label1' 텍스트가 바뀌지 않는다는 것을 의미합니까? – 3aw5TZetdf

+0

예, 텍스트가 바뀌지 않습니다. –

1

간단히 시도해 볼 수 있습니다.

private void button1_Click(object sender, EventArgs e){label1.Text = "Hi";label1.Refresh();} 
관련 문제