从下拉列表中的选定文件中读取文本到richtextbox

Posted

技术标签:

【中文标题】从下拉列表中的选定文件中读取文本到richtextbox【英文标题】:Read text from selected file in dropdown to richtextbox 【发布时间】:2021-09-02 03:08:58 【问题描述】:

我正在尝试制作一个快速工具来编辑监视器配置,即确认监视器是否关闭。文件是 .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 并保存它,那将是我的下一个障碍。

非常感谢您。

【问题讨论】:

【参考方案1】:

您的代码似乎工作正常。我怀疑问题在于您的 SelectedIndexChanged 事件未连接。

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

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

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

【讨论】:

以上是关于从下拉列表中的选定文件中读取文本到richtextbox的主要内容,如果未能解决你的问题,请参考以下文章

从下拉列表中获取选定的文本(选择框)

如何使用jquery在标签中显示多选下拉列表的选定文本?

如何从文本文件中读取选定的列

如何将数据绑定下拉列表中的选定项目置于会话状态?

如何在单击角度7中的按钮时获取下拉列表的选定值和选定文本[重复]

在选定的下拉列表中填充固定更改的输入文本[关闭]