0

私はデスクトップアプリに取り組んでおり、このコードに感銘を受けました.15個のリッチテキストボックスを互いに直接作成したいと考えています. しかし、「オブジェクト参照が...に設定されていません」というエラーが表示されます。

        RichTextBox[] richboxes = new RichTextBox[14];
        Array rboxarray = Array.CreateInstance(typeof(RichTextBox),14);
        int y = 128;
        int j = 0;
        foreach(RichTextBox rbox in rboxarray)
        {
            Controls.Add(rbox);
            rbox.Location = new System.Drawing.Point(14, y);
            rbox.Name = "richTextBox"+ (12+j);
            rbox.Size = new System.Drawing.Size(671, 68);
            rbox.TabIndex = 41 + j;
            rbox.Text = "";
            y += 70;
            j++;
        }

しかし、行にエラーがありますrbox.Location = new System.Drawing.Point(14, y);。正しいコードを教えてください。

4

2 に答える 2

4

RichTextBoy-Array-Instance で For-Loop を使用すると、次のように動作します。

        for (int i = 0; i < richboxes.Length; i++)
        {
            richboxes[i] = new RichTextBox(); // Instance the TextBox

            Controls.Add(richboxes[i]);
            richboxes[i].Location = new System.Drawing.Point(14, y);
            richboxes[i].Name = "richTextBox" + (12 + j);
            richboxes[i].Size = new System.Drawing.Size(671, 68);
            richboxes[i].TabIndex = 41 + j;
            richboxes[i].Text = "";
            y += 70;
            j++;
        }
于 2013-06-27T06:21:03.227 に答える
0
      RichTextBox[] txt = new RichTextBox[15];

        for (int i = 0; i < 15; i++)
        {
            txt[i] = new RichTextBox();
            txt[i].Text = "";
            if (i > 0)
            {
                txt[i].Left = txt[i - 1].Right;
            }

            this.Controls.Add(txt[i]);
        }
于 2013-06-27T06:40:19.627 に答える