You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将RichTextBox中选中的文本保存到TXT文件?解决全量输出问题

解决RichTextBox选中文本无法保存为TXT的问题

你的问题出在代码里遍历了richTextBox1.Lines——这个属性会返回控件里的全部文本行,不管你有没有选中内容,所以自然会把所有文本都存进去。要只保存选中的部分,直接用richTextBox1.SelectedText就可以了,这才是专门获取选中内容的属性。

修改后的代码如下:

SaveFileDialog saveFiles = new SaveFileDialog();
saveFiles.DefaultExt = "*.txt";
saveFiles.Filter = "txt Files | *.txt";

// 先判断是否有选中的文本,避免保存空文件
if (!string.IsNullOrEmpty(richTextBox1.SelectedText) && saveFiles.ShowDialog() == DialogResult.OK)
{
    using (StreamWriter sw = File.CreateText(saveFiles.FileName))
    {
        // 直接写入选中的文本,它会保留原有的换行格式
        sw.Write(richTextBox1.SelectedText);
    }
}

这里还有两个实用优化:

  • 用using语句包裹StreamWriter,它会自动帮你释放资源,不用手动调用Flush()和Close(),代码更简洁安全。
  • 先判断SelectedText是否为空,避免用户没选内容就弹出保存对话框或者生成空文件。

如果你的需求是保存选中的整行(而非任意选中片段),可以通过richTextBox1.SelectionStart和richTextBox1.GetLineFromCharIndex()定位选中行的范围,但从你的描述来看,上面的代码已经能满足保存选中内容的需求。

内容的提问来源于stack exchange,提问作者JohnDown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:40:40