C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: .net 特定のイベントが連続実行される


(過去ログ 63 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■36693 / inTopicNo.1)  .net 特定のイベントが連続実行される
  
□投稿者/ ヤット (1回)-(2009/06/03(Wed) 21:41:20)

分類:[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





引用返信 編集キー/
■36695 / inTopicNo.2)  Re[1]: .net 特定のイベントが連続実行される
□投稿者/ オショウ (210回)-(2009/06/03(Wed) 21:47:32)
> DBよりDataSetを使用してバイドさせています。
> 問題のカ所ですが、データを保存後に再描画の為に、DataSet.Clearを使用した
> ときに発生します。グリッド自体は共通的にコントロール化したものを使用しているのですが
> DataSet.Clear時にグリッドのイベントである「AfterDataRefresh」が数万回走ってしまう為
> 画面の再描画に1分半ほどかかってしまう為、困ってしまいます。
> デバックすると「AfterDataRefresh」をその他の処理には移らずに実行されています。

  バインドしたままClearすれば、AfterDataRefreshが発生するのは
  至極当たり前な動作と思いますが・・・(回数は別として・・・)

  仕様通りの動作だと思ってます。

以上。
引用返信 編集キー/
■36708 / inTopicNo.3)  Re[2]: .net 特定のイベントが連続実行される
□投稿者/ ヤット (2回)-(2009/06/04(Thu) 09:57:42)
回答ありがとうございます。

AfterDataRefreshが発生するが問題では無くて
(回数は別として・・・)で頭を悩ませています。
グリッドが複数毎ある為、何回かAfterDataRefreshが走るのはわかるのですが
レスポンスに影響を与えるほど迄、繰り返される理由が解りません。


>   バインドしたままClearすれば、AfterDataRefreshが発生するのは
>   至極当たり前な動作と思いますが・・・(回数は別として・・・)


引用返信 編集キー/
■36710 / inTopicNo.4)  Re[3]: .net 特定のイベントが連続実行される
□投稿者/ 魔界の仮面弁士 (1120回)-(2009/06/04(Thu) 10:05:46)
2009/06/04(Thu) 10:06:28 編集(投稿者)

# 私は該当製品を使ったことが無いので、答えられませんが…。

No36708 (ヤット さん) に返信
> レスポンスに影響を与えるほど迄、繰り返される理由が解りません。
それは掲示板ではなく、メーカーに聞くべき内容かと思いますよ。

で、オショウさんは
>>  バインドしたままClearすれば、AfterDataRefreshが発生するのは
と書かれていましたが、『バインドを解除してから Clear した場合』にも再現するのでしょうか?

もし、バインドしていなければ問題が起きないなら、バインド解除→Clear→再バインドで
回避できるかも知れません。
引用返信 編集キー/
■36713 / inTopicNo.5)  Re[4]: .net 特定のイベントが連続実行される
□投稿者/ ヤット (3回)-(2009/06/04(Thu) 10:36:03)
返信、ありがとうございます。

バインドを外してからクリアを試してみたいと思います。
結果は掲示板に載せさせて頂きます。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -