如何从我的文本文件中创建实时加载richbox?

时间:2014-05-15 11:33:07

标签: c#

我制作了一个带有文本框和富文箱的表格.... thextbox是:命令编辑器 Richbox是:命令历史记录 我在命令编辑器中输入的所有命令都进入“QueryCommands.txt”。 在将命令编写到命令编辑器后,如何使Richbox自动更新。

private void WW_Shown(object sender, EventArgs e)
{
    string strfilename = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "QueryCommands.txt");
    string commandstext = File.ReadAllText(strfilename);
    richTextBox2.Text = commandstext;
}

这是Richbox加载器...我需要每次加载表单进行更新..我希望richbox自动加载命令来自我的QueryCommands.txt

3 个答案:

答案 0 :(得分:1)

没有。不要再次加载表单。只需在按钮末尾提供逻辑,用于输入命令。类似的东西:

private void commandBtn.Click(object sender, EventArgs e)
{
   //other logic


   //load text to richtextbox again (update richtextbox)
}

答案 1 :(得分:0)

我建议您在按钮上单击,执行两项活动

  1. 将命令附加到文本文件
  2. 在RichTextBox结尾附加命令
  3. 如果每次从文件加载,都会导致存储驱动器上的大量I / O操作。

    如果您希望在上次会话期间(程序关闭之前)显示命令历史记录;然后在Form_Load

    期间从文本文件加载命令历史记录

答案 2 :(得分:0)

我的活动是分开的,您希望通知您的RichTextBox例如文件更新后,您可以使用FileSystemWatcher class监控要更改的文件。示例代码如下所示:

// monitor all *.dat files in the d:\temp directory
var fsw = new FileSystemWatcher("d:\\temp\\", "*.dat");
// only when they are changed
fsw.NotifyFilter = NotifyFilters.LastWrite;
// register to change event
fsw.Changed += OnChanged;

private static void OnChanged(object source, FileSystemEventArgs e)
{
    // for example reload file using File.ReadAllText(e.FullPath);
   Console.WriteLine("File: " +  e.FullPath + " " + e.ChangeType);
}

如果一切都在同一个应用程序中进行,那么考虑实施@Manish Dalal建议的方法。