-2

コードが機能しない理由がわかりません。MainとLabelsの2つのクラスを作成しましたが、Main内でLabelsクラスを呼び出してラベルを印刷したいと思います。ランタイムエラーが発生します。私はあなたが提供できるどんな助けにも感謝します。

  //--------------------------------------------------main class-------------------//
  namespace Test
  {
   public partial class Form1 : Form
   {
     labels label;

     public Form1()
     {
        InitializeComponent();
        createLabel();
     }

     private void createLabel()
     {
        //error "Object reference not set to an instance of an object"
        label.printHeader();
     }
    }//form
   }//test

  // ---------------------------------- labels class-------------------------//
  namespace Test
  {
    class labels
    {
     private Label label1;

     public labels()
     {

     }

     public void printHeader()
     {
        label1 = new Label();

        label1.Location = new System.Drawing.Point(82, 44);
        label1.Size = new System.Drawing.Size(977, 54);
        label1.Text = "MonthCalendar";
        Controls.Add(label1);
     }
   }//form
 }//test
4

3 に答える 3

3

クラスを宣言しますが、インスタンスを作成することはありません。

試す

 private void createLabel()
 {
    label = new labels();
    label.printHeader();
 }
于 2012-09-04T17:18:52.027 に答える
1

インスタンス化するだけ

 private void createLabel()
     {
        label = new labels();        
 //error "Object reference not set to an instance of an object"
        label.printHeader();
     }
于 2012-09-04T17:18:19.800 に答える
1
private void createLabel()
     {
        label =new labels();//add  this
        //error "Object reference not set to an instance of an object"
        label.printHeader();
     }
于 2012-09-04T17:18:20.060 に答える