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