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