|
分類:[VB.NET/VB2005 以降]
以下の状況が回避できなくて困っています。 識者の方、助言をいただければ幸いです。
環境 WindowsXP VB.NET2008(VB.NET2003からのリメイク) flexGrid4.0j(flexgrid2.0jからVerUP)
状況 1つのフォームに複数のタグを設定し、そのタグ毎にグリッドを配置して DBよりDataSetを使用してバイドさせています。 問題のカ所ですが、データを保存後に再描画の為に、DataSet.Clearを使用した ときに発生します。グリッド自体は共通的にコントロール化したものを使用しているのですが DataSet.Clear時にグリッドのイベントである「AfterDataRefresh」が数万回走ってしまう為 画面の再描画に1分半ほどかかってしまう為、困ってしまいます。 デバックすると「AfterDataRefresh」をその他の処理には移らずに実行されています。
(ちなみにWindows Vistaで実行した場合は数十回でとまります) よろしくお願いします。 以下は「AfterDataRefresh」になります。
Private Sub BaseGrid_AfterDataRefresh(ByVal sender As Object, ByVal e As System.ComponentModel.ListChangedEventArgs) Handles MyBase.AfterDataRefresh
'固定行 Me.Styles.Fixed.BackColor = _ Common.Data.SystemColor.GridRowFixed '選択行 Me.Styles.Highlight.BackColor = _ Common.Data.SystemColor.GridHighlight '空白領域 Me.Styles.EmptyArea.BackColor = _ Common.Data.SystemColor.GridEmptyArea 'フォーカスセル Me.Styles.Focus.Border.Color = _ Common.Data.SystemColor.GridCellFocusLine
If _ShowMode = enmShowMode.Normal Or _ _ShowMode = enmShowMode.InputSingleList Or _ _ShowMode = enmShowMode.InputMulitiList Or _ _ShowMode = enmShowMode.ViewSingleList Or _ _ShowMode = enmShowMode.ViewMultiList Then
'通常行1 Me.Styles.Alternate.BackColor = _ Common.Data.SystemColor.GridRowAlternate '通常行2 Me.Styles.Normal.BackColor = _ Common.Data.SystemColor.GridRowNormal Else '通常行1 Me.Styles.Alternate.BackColor = _ Common.Data.SystemColor.GridRowNormal '通常行2 Me.Styles.Normal.BackColor = _ Common.Data.SystemColor.GridRowNormal End If
End Sub
|