访问拆分容器.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);
}
谢谢,在此问题上的任何帮助都将不胜感激。我几乎可以肯定,这个问题与分割控制有关。再次感谢!
您将不得不像这样访问RichTextBox,因为SplitContainer中的面板不是命名项。
(RichTextBox)((SplitContainer )tabControl1.SelectedTab.Controls["split"]).Panel1.Controls["textbox"]