【问题标题】:Read text from selected file in dropdown to richtextbox从下拉列表中的选定文件中读取文本到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 并保存它,那将是我的下一个障碍。

非常感谢您。

【问题讨论】:

    标签: c# winforms dropdown richtextbox filereader


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-01-15
      • 1970-01-01
      • 1970-01-01
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      • 2018-01-10
      • 1970-01-01
      • 2016-11-13
      相关资源
      最近更新 更多