Я пытаюсь открыть файл в текстовом поле, которое динамически создается на вкладке при нажатии. Но он находится внутри разделенного контейнера вместе с другим элементом. По какой-то причине, когда я пытаюсь получить к нему доступ, я получаю ссылку на объект, не установленную на экземпляр ошибки объекта.Доступ к дочерним элементам управления сплит-контейнером .net
Вот код:
Динамическое создание указанной закладке:
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);
}
Спасибо, любая помощь по этому вопросу оценивается. Я почти уверен, что проблема связана с контролем разделения. Еще раз спасибо!
Yup that the trick! Спасибо. @dharshana jagoda – gregyjames