首页 > 解决方案 > 从下拉列表中的选定文件中读取文本到richtextbox

问题描述

我正在尝试制作一个快速工具来编辑监视器配置,即确认监视器是否关闭。这些文件是 .yml 文件,但内容是明文,具体如下: docMeta.DownAcknowledge: False

我想要一个能够根据具体情况将此行更改为 True 或 False 的工具。

configDropDown.Items.Clear();
string[] files = Directory.GetFiles(@"d:\monitors.d\");
foreach (string file in files)
configDropDown.Items.Add(Path.GetFileNameWithoutExtension(file));

这会填充我的下拉框,但是,我无法弄清楚如何将所选文件的内容放入我的richtextbox。

在 configDropDown_SelectedIndexChanged

我有以下内容:

// get the value (file path)
string fileName = (string)configDropDown.SelectedItem;
string filePath = Path.Combine(@"d:\monitors.d\", fileName + ".yml");

if (File.Exists(filePath))
    configReader.AppendText(File.ReadAllText(filePath));
else
    configReader.Clear();

但是,当我从下拉列表中选择某些内容时,什么也没有发生。最初我只是想拉 docMeta.DownAcknowledge: 行,但无法让它工作,所以尝试只读取整个文件。

如果你能告诉我如何将 docMeta.DownAcknowledge: 行编辑为 True/False 并保存它,那将是我的下一个障碍。

非常感谢您提前。

标签: c#winformsdropdownrichtextboxfilereader

解决方案


您的代码似乎工作正常。我怀疑问题是您的 SelectedIndexChanged 事件没有连接。

如果您打开[FormName] .Designer.cs 文件并查看生成的代码。您能否看到 configDropDown 控件的以下行:

this.configDropDown.SelectedIndexChanged += new System.EventHandler(this.configDropDown_SelectedIndexChanged);

如果不存在,您可以使用上面的代码添加它。


推荐阅读