0

我在按选定选项卡显示数据时遇到问题RichTextBox,但我不需要在选定选项卡中显示,我需要RichTextBox运行显示。

    private void btn_Runserver_Click(object sender, EventArgs e)
    {
       AddTab();
       StartCMD();

    }

    private void AddTab()
    {
        TabPage newTab = new TabPage((string)cbConfig.SelectedItem);

        RichTextBox rtb = new RichTextBox();

        rtb.Dock = DockStyle.Fill;
        rtb.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
        rtb.BorderStyle = System.Windows.Forms.BorderStyle.None;
        rtb.BackColor = System.Drawing.Color.White;
        rtb.ReadOnly = true;

        newTab.Tag = rtb;
        newTab.Name = (string)cbConfig.SelectedItem;
        newTab.Controls.Add(rtb);

        tabControl.Controls.Add(newTab);
        tabControl.SelectTab(newTab);
    }

    private void build_ErrorDataReceived(object sender, DataReceivedEventArgs e)
    {
        string strMessage = e.Data;
        if (tabControl.InvokeRequired)
        {
            tabControl.Invoke(new Action(() =>
            {
                RichTextBox rtb = (RichTextBox)tabControl.SelectedTab.Tag;
                rtb.AppendText(strMessage + Environment.NewLine);
                rtb.Select(rtb.Text.Length - 1, 0);
                rtb.ScrollToCaret();
            }));
        }
    }

代码运行CMD表单

        proc.OutputDataReceived += build_ErrorDataReceived;
        proc.BeginOutputReadLine();

现在我的问题是,如果我运行程序并通过选定的选项卡在 RichTextbox 中显示数据,但我需要RichTextboxRichText选项卡安全中显示数据

有人说“改变RichTextBox rtb = (RichTextBox)tabControl.SelectedTab.Tag;,不要使用SelectedTab”,但我不知道如何相应地改变它。

4

1 回答 1

0

我相信您在一个事件中添加 RichTextBox 并在另一个事件中添加文本。所以在添加文本时有一个回帖。在这种情况下,您需要重新添加动态创建的控件。请参阅此链接,它解释了如何在 asp.net 中处理动态控件。

于 2013-09-23T05:47:33.070 回答