0

我不能在 richTextBox 或 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");
  }
}
4

2 回答 2

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 方法。从您的代码中不清楚“富”文本是否对应用程序很重要。

于 2012-11-24T13:45:32.710 回答
1
bool _isLoading = false;

private void richTextBox1_TextChanged(object sender, EventArgs e)
{
    if(_isLoading) return;
    _isLoading = true;
    richTextBox1.LoadFile ("TextFile1.txt");
    _isLoading = false;
}
于 2012-11-24T13:47:25.980 回答