在DataGridView中编辑设置文件(settings.settings)的内容

时间:2017-12-31 05:11:04

标签: c# .net winforms datagridview settings.settings

我正在尝试在DataGridView中显示setting.setting文件的内容。

通过使用BindingSource绑定数据,我成功地完成了这项工作,如下所示

        BindingSource bindingSource1 = new BindingSource();
        bindingSource1.DataSource = Properties.user.Default.Properties;
        settingsDataGridView.DataSource = bindingSource1;

使用此代码,我的DataGridView将填充默认值,如下所示

enter image description here

Setting Name是只读的 Settings Value可编辑。

我在表单上提供了一个Save按钮,其中包含以下代码    OnClick事件

Properties.user.Default.Save();

我们的想法是控制用户使用简单的界面更改设置。

不幸的是,这不是诀窍。 Save按钮不会更改settings.settings文件中的值,并且修改后的数据在应用程序运行之间不会保留。

我的问题:

  1. 我做错了什么?
  2. 我怎样才能让这件事有效?
  3. 任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:0)

如果使用PropertyGrid也可以:

  1. 将工具箱中的PropertyGrid添加到表单
  2. 双击表单以创建Form_Load事件
  3. 添加propertyGrid1.SelectedObject = Properties.Settings.Default; propertyGrid1.BrowsableAttributes = new AttributeCollection(new UserScopedSettingAttribute());
  4. 单击PropertyGrid并创建PropertyValueChanged事件
  5. 添加Properties.Settings.Default.Save();
  6. 使用Designer来设置PropertyGrid的样式,例如Dock,PropertySort,HelpVisible,ToolbarVisible
  7. 代码看起来应该类似于:

    using System;
    using System.ComponentModel;
    using System.Configuration;
    using System.Windows.Forms;
    
    namespace YourAppNamespace
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                propertyGrid1.SelectedObject = Properties.Settings.Default;
                propertyGrid1.BrowsableAttributes = new AttributeCollection(new UserScopedSettingAttribute());
            }
    
            private void propertyGrid1_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
            {
                Properties.Settings.Default.Save();
            }
        }
    }
    

    如果“设置”文件包含范围“用户”的设置,则应在更改时显示和保存这些设置。