2015-07-11 55 views
1

Picture of my c# formC#添加RichTextBoxes的數組的TabPages的陣列中的for循環

而且我的代碼:

using System; 
    using System.Collections.Generic; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Linq; 
    using System.Text; 
    using System.Threading.Tasks; 
    using System.Windows.Forms; 

namespace inform 
{ 
    public partial class Form1 : Form 
    { 
     public static TabPage[] TabPages = new TabPage[20]; 
     public static RichTextBox[] TextBoxes = new RichTextBox[20]; 

     public Form1() 
     { 
      InitializeComponent(); 
      TabControl.TabPages.Clear(); 
      for (int x = 0; x < 19; x++) 
      { 
       TabPages[x].Controls.Add(TextBoxes[x]); //ERROR HERE 
       //Object reference not set to an instance of an object. 
       TabControl.TabPages.Add(TabPages[x]); 
       } 
      } 

      private void Form1_Load(object sender, EventArgs e) 
      { 

      } 
     } 
    } 

我試圖讓使用一個TabControl組織各一個基本的打字程序數組中的richtextbox。但是當我運行該程序時,它返回

未將對象引用設置爲對象的實例。

我已經制作了一個RichTextBoxes和TabPages都可以容納20個元素的數組(這是正確的單詞嗎?),但會出現問題。 Control.Add()的函數被假設爲一個控制值。

for循環旨在通過每個TabPage並向其中添加正確的RichTextBox。

我已經在MSDN,看看他們有什麼,但他們卻只有

tabPage1.Controls.Add(new Button()); 

我代替:

TabPages[x].Controls.Add(TextBoxes[x]); 

但即使如此,它不工作,我以前做過這個但沒有陣列,最後一個我在6個選項卡上加標,我想做更多。 我嘗試閱讀互聯網上的一些網頁,但似乎沒有任何工作,我會感激任何幫助。

回答

1

你寫這樣的事情

public partial class Form1 : Form 
{ 
    public static TabPage[] TabPages = new TabPage[20]; 
    public static RichTextBox[] TextBoxes = new RichTextBox[20]; 
    public Form1() 
    { 
     InitializeComponent(); 

     tabControl1.TabPages.Clear(); 
     for (int x = 0; x < 19; x++) 
     { 
      TabPages[x] = new TabPage(); 

      TabPages[x].Controls.Add(TextBoxes[x]); //ERROR HERE 
      //Object reference not set to an instance of an object. 
      tabControl1.TabPages.Add(TabPages[x]); 
     } 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 

    } 
} 
+0

謝謝你,這個工作!現在有一些道理! –

1

試試這個

for (int a = 0; a < 20;a++) 
     { 
      RichTextBox textBox = new RichTextBox(); 
      TextBoxes[a] = textBox; 
      TabPage tabPage = new TabPage(); 
      TabPages[a] = tabPage; 
     } 
      for (int x = 0; x < 19; x++) 
      { 
       TabPages[x].Controls.Add(t);  
       TabControl.TabPages.Add(TabPages[x]); 
      }