首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将SoundFile从按钮保存到App.Config

将SoundFile从按钮保存到App.Config
EN

Stack Overflow用户
提问于 2016-06-22 13:24:50
回答 2查看 34关注 0票数 0

我的App.Config中已经有了一个名为“App.Config”的键,如下所示:

代码语言:javascript
复制
<setting name="Alert_Sound_File" serializeAs="String">
<value />
</setting>

我的按钮是这样的:

代码语言:javascript
复制
public OpenFileDialog dialog1 = new OpenFileDialog();
private void browseSoundToolStripMenuItem_Click(object sender, EventArgs e)
    {
        DialogResult result = dialog1.ShowDialog();
        dialog1.Title = "Browse to find sound file to play first sound";
        dialog1.InitialDirectory = @"c:\";
        dialog1.Filter = "Wav Files (*.wav)|*.wav";
        dialog1.FilterIndex = 2;
        dialog1.RestoreDirectory = true;

        Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        AppSettingsSection app = config.AppSettings;
        app.Settings["Alert_Sound_File"].Value = dialog1.FileName;
        config.Save(ConfigurationSaveMode.Modified);
    }

目前我遇到的错误是:

“对象引用未设置为对象的实例。”

但是在按钮中设置了dialog1.FileName,如何获得返回的空值?

我甚至尝试过这个测试&这不会保存到我的App.Config中。

代码语言:javascript
复制
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
AppSettingsSection app = config.AppSettings;
app.Settings.Add("y", "this is Y");
config.Save(ConfigurationSaveMode.Modified);

更新:我添加了

代码语言:javascript
复制
  <appSettings>
<add key="Alert_Sound_File" value="" />
<add key="Error_Sound_File" value="" />

到我的App.Config文件中,并将其放在我的按钮中:

代码语言:javascript
复制
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        AppSettingsSection app = config.AppSettings;
        if (result == DialogResult.OK)
        {
            app.Settings["Alert_Sound_File"].Value = dialog1.FileName;
            config.Save(ConfigurationSaveMode.Modified);
        }

结果是,我不再获得对象引用错误,但是声音文件没有被添加到App.Config文件中。但我没有任何错误!

EN

回答 2

Stack Overflow用户

发布于 2016-06-22 13:47:34

请尝试这样做,以确保您之前选择了一个文件:

代码语言:javascript
复制
if (result == DialogResult.OK) {
    app.Settings["Alert_Sound_File"].Value = dialog1.FileName;
    config.Save(ConfigurationSaveMode.Modified);
}
票数 0
EN

Stack Overflow用户

发布于 2016-06-22 14:27:02

将app.config文件更改为:

代码语言:javascript
复制
<configuration>
   <appSettings>
      <add key="Alert_Sound_File" value="" />
   </appSettings>
</configuration>

您需要在上一篇文章中以wrotes形式检查对话框结果,因为如果用户单击cancel字段被擦除(可能真的需要吗?)

为了保存,您需要在修改后的设置值之后调用save方法:

代码语言:javascript
复制
config.Save(ConfigurationSaveMode.Modified);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37969459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档