C#将一个RichTextBoxes数组添加到for循环中的TabPages数组中

时间:2015-07-11 06:16:42

标签: c# arrays tabcontrol

Picture of my c# form

我的代码:

 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个标签处加了限制而且我想做更多。 我尝试在互联网上阅读一些页面,但似乎没有任何工作,我将不胜感激任何帮助。

2 个答案:

答案 0 :(得分: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)
    {

    }
}

答案 1 :(得分:1)

试试这个

javascript