C# 在RichTextBox而不是选项卡名称中打开

C# 在RichTextBox而不是选项卡名称中打开,c#,winforms,tabcontrol,C#,Winforms,Tabcontrol,我遇到的问题是,当我试图打开一个文档时,它会将其打开到选项卡名称中,而不是选项卡内的富文本框中。我已经将“mod_tab.SelectedTab”部分更改为选项卡中的富文本框的名称,但是我需要它,因此无论用户选择哪个选项卡,它都会在其中打开。有什么建议吗?多谢各位 您已将该值指定给所选选项卡的文本属性。相反,您应该将值分配给RichTextBox的属性,或者使用RichTextBox的方法加载内容。例如: // add a module tab private void add_

我遇到的问题是,当我试图打开一个文档时,它会将其打开到选项卡名称中,而不是选项卡内的富文本框中。我已经将“mod_tab.SelectedTab”部分更改为选项卡中的富文本框的名称,但是我需要它,因此无论用户选择哪个选项卡,它都会在其中打开。有什么建议吗?多谢各位

您已将该值指定给所选选项卡的
文本属性。相反,您应该将值分配给
RichTextBox
的属性,或者使用
RichTextBox
的方法加载内容。例如:

    // add a module tab
    private void add_mod_Click(object sender, EventArgs e)
    {

        int TabCount = 0;

        int? index = searchIndex(mod_add_textbox.Text);
        if (index == null)
        {
            RichTextBox new_rich = new RichTextBox();
            new_rich.Dock = DockStyle.Fill;
            TabPage NewPage = new TabPage();
            TabCount += 1;
            string DocumentText = mod_add_textbox.Text;
            NewPage.Name = DocumentText;
            NewPage.Text = DocumentText;
            NewPage.Controls.Add(new_rich);
            mod_tab.TabPages.Add(NewPage);

        }

        else
        {
            mod_tab.SelectedIndex = Convert.ToInt32(index);
        }


    }     


    private async void btn_file_note_Click(object sender, EventArgs e)
    {
        using(OpenFileDialog ofd = new OpenFileDialog() { Filter="Text Documents|*.txt", ValidateNames = true, Multiselect = false })
        {
            if(ofd.ShowDialog() == DialogResult.OK)
            {
                using (StreamReader sr = new StreamReader(ofd.FileName))
                {
                    mod_tab.SelectedTab.Text = await sr.ReadToEndAsync();
                }
            }
        }
    }
此外,当您像在代码中那样动态创建选项卡和
RichTextBox
时,您可以通过以下方式找到它:

this.richTextBox1.Text = ....
//It means: Find  all RichTextBox control which are children of mod_tab.SelectedTab
//And return first of them.

var rtb = this.mod_tab.SelectedTab.Controls.OfType<RichTextBox>().FirstOrDefault();
rtb.Text = ...

您已将该值指定给所选选项卡的
文本
属性。相反,您应该将值分配给
RichTextBox
Text
属性,或使用
RichTextBox
Load
方法来加载内容。我将“SelectedTab”替换为RichTextBox,但它没有帮助,“它没有帮助”也不会帮助我们找到问题。如果有任何错误,您应该共享一个错误,或者让我知道您要设置其文本的富文本框的名称。我怀疑它的名字是RichTextBox。我有它,所以当点击一个按钮时,它会添加一个新的标签,里面有一个RichTextBox,所以它实际上被称为RichTextBox。我只想让它打开一个包含已放置RichTextBox的选定选项卡的文件。因此,请共享动态创建选项卡和RichTextBox的代码。当然,我现在可以为您提供一些选择,但是看到代码我可以更好地指导您。
//It means get the first child control of mod_tab.SelectedTab
//And convert it to RichTextBox.

var rtb = this.mod_tab.SelectedTab.Controls[0] as RichTextBox;
rtb.Text = ...