2009-08-14 8 views
3

データグリッドビューがあり、ユーザが変更を保存できるようにします。データが変更されるのではなく、幅、高さ、列の順序、おそらくそれらの表示のようなレイアウトの変更だけです。私はそれが自動かボタンをクリックすることによって気にしません...Visual Studioでデータグリッドビュー(幅、順序)のレイアウトを保存する

編集:設定を使用してこれを行う方法を見つけました。私は設定ファイルを追加しましたが、これらの設定で列の順序や列のサイズを追加するはずです

+0

これはWinFormsまたはWebFormsですか? – JMP

+0

Windowsフォームアプリケーション – Ant

答えて

0

私はエンドユーザーを意味すると仮定しています。その場合、その情報をCookie /データベースに格納し、負荷をかけて自分の経験をカスタマイズします。

+0

それは私がやっていることだと思っているが、私はどのようにわかっていない... – Ant

0

リサイズ/ソート用の各イベントハンドラには、レイアウト命令をdb、registry、xml、configなどのような記憶媒体に書き込むヘルパ関数を持たせることができます。アプリケーションがロードされたときのインタフェース。

+0

私はデータグリッドビューのために持っているすべてのコントロールはデザイナーによって自動的に生成されるので、リオーダリングは関数であり、MSの事前ビルドされた関数やクラスに何かを追加することはできません(または少なくともわからない) – Ant

+0

その場合、明示的にそれらのイベントを管理する必要があるかもしれませんあなたが探している高度な機能を実装できるようにしたい。すなわち、レイアウト/ソート情報を保存するために呼び出すことのできるSaveLayout()型の関数はありません。申し訳ありません:( – JMP

+0

私はそれが自動かボタンのクリックで起こるかどうかは気にしません – Ant

0

保存する書式情報の種類は、DataGridGiewのさまざまなプロパティにあります。 object model documentationで質の良い時間を過ごさなければならないかもしれませんが、探しているもののほとんどを見つけることができます。例えば

は、あなたがこれらの2つのプロパティを永続化することができ、行がソートされている方法を保存するには:

DataGridView.SortedColumn行がソートされた列の値を説明します。 DataGridView.SortOrderはあなたのために(すなわち、昇順または降順)

を伝えそして、あなたはDataGridView.Columnsコレクションのメンバーの列幅と順序についての情報を見つけることができるはずです。

これらの値をすべて一度に記録するかどうか(たとえば、「設定を保存」ボタンをクリックするかどうか)、またはプロパティが変更されるとイベントハンドラで1つずつ処理するかどうかが重要です。フォームが閉じられたときに自動的に保存したいと思っています。このようなことを実装してからしばらく時間がかかりましたが、アプリ設定はこの種の情報を保持するのに非常に便利です。プロジェクトプロパティ設定デザイナーでは、保存するアイテムの設定を定義するだけです(スコープを "ユーザー"に設定してください)。そして、割り当てなどのように、実行時にコード内の実際の値をロードします。私は思い出すことができ

// e.g. you defined an integer user setting at design time called ColA_Width, to 
// hold the value of the width of "ColA" in your DataGridView. 

// Use this code to save the value (either in a specific event handler, or a 
// global "save settings" routine). 
Properties.Settings.Default.ColA_Width = MyDataGridViewInstance.Columns["ColA"].Width; 
Properties.SEttings.Default.Save(); 

// Then you'd reverse the assignments when the app next loads so that the saved 
// settings are "remembered" between user sessions. 
MyDataGridViewInstance.Columns["ColA"].Width = Properties.Settings.Default.ColA_Width; 

唯一の注意点は、DataGridViewのプロパティ値のいくつかは、文字列として保存するのは簡単ではないということです(ユーザーことを覚えておいてください設定は最終的にXMLとして保存されます)、実際に保存している設定の種類によって異なります。

関連する問題