2017-12-31 35 views
0

DataGridViewにsetting.settingファイルの内容を表示しようとしています。DataGridViewの設定ファイル(settings.settings)の内容を編集します。

私はDataGridViewのは、以下のようにデフォルト値が移入されます、このコードを使用して

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

を次のようにのBindingSourceを使用してデータを結合することによって、そうすることに成功している

enter image description here

Setting Name読み取り専用です。
Settings Valueは編集可能です。

私は考えは、単純なインターフェイスを使用して設定を変更する制御をユーザに与えることである OnClickイベント

Properties.user.Default.Save(); 

内のコードを以下たフォームにSaveボタンを提供しています。

残念ながら、これはトリックを行いません。 Saveボタンはsettings.settingsファイル内の値を変更せず、アプリケーション実行の間に変更されたデータは維持されません。

私の質問:私が間違っているのは何

  1. どうすればこの問題を解決できますか?

皆さん、本当にありがとうございます。

+0

あなたはアプリ設定ではなくユーザー設定として設定をマークしましたか? –

+0

@HeribertoLugo:はいそれは「ユーザー」設定です –

+0

ユーザースコープの設定は、アプリケーションフォルダに表示される設定ファイルには保存されませんが、アプリケーション実行の間は設定が保持されないという不満があります。あなたはビルドし、デバッグ環境の外でリリースモードであなたのアプリを実行し、結果が異なるかどうかを確認しようとしましたか?私。ビジュアルスタジオでPlayをクリックしないで、アプリケーションをビルドしてから、ユーザーのようにexeをダブルクリックし、いくつかの設定を変更してダブルクリックしてアプリを再起動します。 –

答えて

0

PropertyGridのを使用しても結構です場合:

  1. ダブル
  2. ツールボックスからフォームにPropertyGridの追加にpropertyGrid1.SelectedObject = Properties.Settings.Default; propertyGrid1.BrowsableAttributes = new AttributeCollection(new UserScopedSettingAttribute());
  3. クリックを追加Form_Loadイベント
  4. を作成するフォームをクリックしますPropertyGridを作成し、PropertyValueChangedイベントを作成します。
  5. 追加Properties.Settings.Default.Save();
  6. 例えば、PropertyGridのスタイルを設定するためにDesignerで遊んでください。ドック、PropertySort、HelpVisible、ToolbarVisible

コードは次のようになります。

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(); 
     } 
    } 
} 

を設定ファイルスコープ「ユーザー」と設定が含まれている場合は変更している場合、彼らが表示され、保存されなければなりません。

関連する問題