无法写入RichTextBox控件

时间:2012-11-24 13:38:47

标签: c# winforms richtextbox

我不能用richTextBox或textBox写,每当我开始写一些它冻结我的程序。知道它是什么?我没有改变textBox的代码或属性。

using System.Text;
using System.Windows.Forms;
using System.IO;

public partial class Form1 : Form
{
  public Form1()
  {
    InitializeComponent();
  }

  private void saveToolStripMenuItem_Click(object sender, EventArgs e)
  {
    File.WriteAllText("TextFile1.txt", richTextBox1.Text);
  }

  private void richTextBox1_TextChanged(object sender, EventArgs e)
  {
    richTextBox1.LoadFile ("TextFile1.txt");
  }
}

2 个答案:

答案 0 :(得分:1)

看起来您正在将文件加载到您正在编写的文本框中:

所以摆脱这段代码:

 private void richTextBox1_TextChanged(object sender, EventArgs e)
 {
    richTextBox1.LoadFile ("TextFile1.txt");
 }

尝试将其移动到表单的OnLoad方法中(假设您希望在表单打开时填充文本框):

protected override void OnLoad(EventArgs e) {
  base.OnLoad(e);

  richTextBox1.LoadFile ("TextFile1.txt");
}

RichTextBox也有一个SaveFile方法。从您的代码中可以看出,"富人"文本对于应用程序很重要。

答案 1 :(得分:1)

bool _isLoading = false;

private void richTextBox1_TextChanged(object sender, EventArgs e)
{
    if(_isLoading) return;
    _isLoading = true;
    richTextBox1.LoadFile ("TextFile1.txt");
    _isLoading = false;
}