0

ボタンのクリック時にラベルのテキストを変更する必要がありますが、機能せず、実行時エラーが発生します。LABEL 用と BUTTON 用に別々のクラスがあります。これはダミー コードです。実際のコードには、ラベルとボタンの両方。すべてが動的に作成されます。ありがとう!

   /-------------------------------------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";
     }
4

2 に答える 2

0

null 参照ラベルのテキストを変更しようとしています:

// 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

コードを機能させるには、以下を変更する必要があります。

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

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

お役に立てれば!

于 2012-09-09T00:19:16.243 に答える