访问拆分容器.net的子控件

本文关键字:控件 net 拆分 访问 | 更新日期: 2023-09-27 18:20:55

我正试图在一个富文本框中打开一个文件,该文件是在单击时在选项卡页面中动态创建的。但它和另一个元素一起在一个分开的容器中。出于某种原因,当我尝试访问它时,我得到了一个对象引用,该引用没有设置为对象错误的实例。

这是代码:

所述标签页的动态创建:

public class Texttab : TabPage
{
    readonly RichTextBox _text = new RichTextBox();
    ConsoleControl.ConsoleControl ca = new ConsoleControl.ConsoleControl();
    private SplitContainer split = new SplitContainer();
    public Texttab()
    {
        split.Dock = DockStyle.Fill;
        split.Orientation = Orientation.Horizontal;
        split.Name = "split";
        _text.Dock = DockStyle.Fill;
        _text.Name = "textbox";
        _text.Font = fontx;
        _text.BackColor = Color.FromName(back);
        _text.ForeColor = Color.FromName(front);
        ca.Dock = DockStyle.Fill;
        ca.Name = "cmdbox";
        ca.StartProcess("cmd", null);
        ca.Font = fonty;
        Controls.Add(split);
        split.Panel1.Controls.Add(_text);
        split.Panel2.Controls.Add(ca);

    }

}

访问TEXTBOX并打开文本文件的代码:

    private void OpenToolStripMenuItemClick(object sender, EventArgs e)
    {
            var dx = new OpenFileDialog();
            dx.ShowDialog();
            dx.Filter = Resources.Form1_openToolStripMenuItem_Click_Text_Files___txt____txt_Python_Files___py____py_Javascript_Files___js____js_C_Files___c____c_CPP_Files___cpp____cpp_Shell_Files___sh__bat____sh___bat_All_Files__________;
            RichTextBox selectedRtb = (RichTextBox)tabControl1.SelectedTab.Controls["split"].Controls["textbox"];
            selectedRtb.LoadFile(dx.FileName, RichTextBoxStreamType.PlainText);
    }

谢谢,在此问题上的任何帮助都将不胜感激。我几乎可以肯定,这个问题与分割控制有关。再次感谢!

访问拆分容器.net的子控件

您将不得不像这样访问RichTextBox,因为SplitContainer中的面板不是命名项。

(RichTextBox)((SplitContainer )tabControl1.SelectedTab.Controls["split"]).Panel1.Controls["textbox"]