我制作了一个带有文本框和富文箱的表格.... 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
答案 0 :(得分:1)
没有。不要再次加载表单。只需在按钮末尾提供逻辑,用于输入命令。类似的东西:
private void commandBtn.Click(object sender, EventArgs e)
{
//other logic
//load text to richtextbox again (update richtextbox)
}
答案 1 :(得分:0)
我建议您在按钮上单击,执行两项活动
如果每次从文件加载,都会导致存储驱动器上的大量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建议的方法。