c# - 从下拉列表中的选定文件中读取文本到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 并保存它,那将是我的下一个障碍。
非常感谢您提前。
解决方案
您的代码似乎工作正常。我怀疑问题是您的 SelectedIndexChanged 事件没有连接。
如果您打开[FormName] .Designer.cs 文件并查看生成的代码。您能否看到 configDropDown 控件的以下行:
this.configDropDown.SelectedIndexChanged += new System.EventHandler(this.configDropDown_SelectedIndexChanged);
如果不存在,您可以使用上面的代码添加它。
推荐阅读
- vue.js - 如何从使用 v-for 循环显示的项目的属性中呈现 HTML?
- java - 未找到 id viewpager (ScaleFragment) 的视图
- python - 生成要导入到 pandas df 的元组列表
- tensorflow - Keras 为什么二进制分类不如分类分类准确
- java - 无法识别的工件类型:轨道,不会将其添加为 IntelliJ 中的依赖项
- python - 如何从 base64 Python 发送 multipart/form 文件
- laravel - 我如何将 laravel 设置为 nuxtjs 的后端 api
- php - `phpize' 失败,同时安装 Imagick
- keycloak - 无法使用 Keycloak 8.0.1 启用脚本验证器
- javascript - 如何将二进制字符串传递给“btoa”以编码原始值