DataGridViewのエラー? への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2015/6/25 22:50:53
赤バツは、レンダリングエラー時に表示されることがあります。
(レンダリングされていないだけならば、単に白くなるか、残像が残るだけですが)
一例としては、DoEvents によるイベント再入などにより、セルの描画中に
バインドデータが変更された場合などでしょうか。
単純な再現実験としてはこんなのとか。
(レンダリングされていないだけならば、単に白くなるか、残像が残るだけですが)
一例としては、DoEvents によるイベント再入などにより、セルの描画中に
バインドデータが変更された場合などでしょうか。
単純な再現実験としてはこんなのとか。
Public Class Form1
Private tbl1, tbl2 As DataTable
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
tbl1 = New DataTable()
tbl1.Columns.Add("F1")
tbl1.Columns.Add("F2")
For n = 1 To 1000
tbl1.Rows.Add(CStr(n), StrDup(n, "@"))
Next
tbl2 = New DataTable()
tbl2.Columns.Add("F1")
tbl2.Columns.Add("F2")
For n = 1 To 1000
tbl2.Rows.Add(CStr(n), StrDup(n, "="))
Next
Me.DataGridView1.DataSource = tbl1
End Sub
Private Sub DataGridView1_CellPainting(sender As Object, e As DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting
If e.RowIndex < 500 Then
Me.DataGridView1.DataSource = tbl1
Else
Me.DataGridView1.DataSource = tbl2
End If
End Sub
End Class
投稿者 YUU  (社会人)
投稿日時
2015/6/25 22:07:36
現在リリース中のアプリにてエラーが発生し、調べても同様の現象を見つけることができません。
DataGridVeiwコントロールに赤い×印が大きく表示されているものです。
コード内の処理で行っているものではなく原因がつかめません。(スクショでのみ確認。)
再度アプリケーション起動後問題なしとのことでしたが続くようであれば対策を考えなくてはならないのですが現状不明です。
今回2度目とのこともあって質問させていただきます。
頻度は月1、毎日利用されているアプリですが処理時間は短いかと。グリッドの描画時エラーなのか?
某知恵袋に類似の現象と見受けられるものがありましたがそれ以外見つかりませんでした。
DataGridVeiwコントロールに赤い×印が大きく表示されているものです。
コード内の処理で行っているものではなく原因がつかめません。(スクショでのみ確認。)
再度アプリケーション起動後問題なしとのことでしたが続くようであれば対策を考えなくてはならないのですが現状不明です。
今回2度目とのこともあって質問させていただきます。
頻度は月1、毎日利用されているアプリですが処理時間は短いかと。グリッドの描画時エラーなのか?
某知恵袋に類似の現象と見受けられるものがありましたがそれ以外見つかりませんでした。
この一週間再現しませんでした。
しかし、ご助言通りバインド時に不要なイベントが生じコントロールがおかしくなるのが原因ではないかと思っております。
如何せん再現性が低いのでもう少し様子見もかねてイベントの制御を視野に考察してみます。