DataGridViewEx

「DataGridViewEx」の編集履歴(バックアップ)一覧はこちら

DataGridViewEx」(2007/11/19 (月) 22:22:12) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

&html(<!-- [FC2 Analyzer] http://analyzer.fc2.com/ --><script language="javascript" src="http://analyzer5.fc2.com:8080/ana/processor.php?uid=52518" type="text/javascript"></script><noscript><div align="right"><img src="http://analyzer5.fc2.com:8080/ana/icon.php?uid=52518&ref=&href=&wid=0&hei=0&&col=0" /></div></noscript><!-- [FC2 Analyzer] -->) PageLastUpdate:&date()/today:&counter(today)/yesterday:&counter(yesterday) #openclose(show=クリックすると見出し一覧を表示します){ #contents() } *&aname(DataGridViewEx){DataGridViewEx} DataGridViewの拡張クラス。まずは列の位置、幅、表示をユーザー設定として保存/読み出しするメソッドから。 読み出しを自動化したかったんですが、Newを拡張するとデザイナからの設定のほうが後なのでうまくいきません。 保存を自動化したかったんですが、DisposeだとすでにDataColumnが破棄されていてNothingを喰らいます(苦)。 LoadColumnStateはForm_Loadで、SaveColumnStateはForm_Closingで呼ぶのがよいでしょう。 誰かよいタイミングを知っていたら教えてください。 今後の予定 -列の表示状態を制御できるなんらかのインターフェースの供給 -CSVやTAB出力機能の供給 -各機能のコンテキストメニューへの供給 など。なんかネタを振ってくれる人がいれば拡張するかもしれません。 #highlight(vb.net){Option Strict On Imports System.IO Public Class DataGridViewEx Inherits DataGridView Public Sub SaveColumnState() Try If Directory.Exists(Application.UserAppDataPath) = False Then Directory.CreateDirectory(Application.UserAppDataPath) End If Dim savepath As String = Path.Combine( _ Application.UserAppDataPath, _ "DataGridEx.ColumnState." & Me.Name) Dim dt As New DataTable(Me.Name) dt.Columns.Add("Name", Type.GetType("System.String")) dt.Columns.Add("Width", Type.GetType("System.Int32")) dt.Columns.Add("DisplayIndex", Type.GetType("System.Int32")) dt.Columns.Add("Visible", Type.GetType("System.Boolean")) For Each Column As DataGridViewColumn In Me.Columns Dim row As DataRow = dt.NewRow row("Name") = Column.Name row("Width") = Column.Width row("DisplayIndex") = Column.DisplayIndex row("Visible") = Column.Visible dt.Rows.Add(row) Next dt.WriteXml(savepath) Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub Public Sub LoadColumnState() Try Dim loadpath As String = Path.Combine( _ Application.UserAppDataPath, _ "DataGridEx.ColumnState." & Me.Name) If File.Exists(loadpath) = False Then Exit Sub Dim dt As New DataTable(Me.Name) dt.Columns.Add("Name", Type.GetType("System.String")) dt.Columns.Add("Width", Type.GetType("System.Int32")) dt.Columns.Add("DisplayIndex", Type.GetType("System.Int32")) dt.Columns.Add("Visible", Type.GetType("System.Boolean")) dt.ReadXml(loadpath) dt.DefaultView.Sort = "DisplayIndex" For Each drv As DataRowView In dt.DefaultView Dim column As DataGridViewColumn = Me.Columns(drv.Row("Name").ToString) column.DisplayIndex = CType(drv.Row("DisplayIndex"), Int32) column.Width = CType(drv.Row("Width"), Int32) column.Visible = CType(drv.Row("Visible"), Boolean) Next Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub End Class} ---- *comment このページの記述で聞きたいこととか間違ってることとかありましたらコメントを。 #comment_num2 ----

表示オプション

横に並べて表示:
変化行の前後のみ表示: