ホーム>source

私の顧客が私のソフトウェアのグラフィカルな不具合を報告した後でサンプルプロジェクトを作成し、問題を簡単に再現することができました。単純なドッキングされたDataGridViewをフォームに作成し、次のようなランダムデータを入力します。

<前>ウィズウィズ

次に、プログラムを起動し、ウィンドウの一部がタスクバーで覆われるようにウィンドウを移動し、スクロールバーを使用します。突然、すべてのデータがめちゃくちゃになります:

更新:

<前>ウィズウィズ

この背後にある理由は何ですか?

var ds = new DataSet(); var table = ds.Tables.Add(); Enumerable.Range(0, 100).ForEach(i => table.Columns.Add(i.ToString())); Enumerable.Range(0, 100).ForEach(i => { var row = table.NewRow(); Enumerable.Range(0, 100).ForEach(j => row[j.ToString()] = Guid.NewGuid().ToString()); table.Rows.Add(row); }); dataGridView1.DataSource = table;
あなたの答え
  • 解決した方法 # 1

    したがって、解決策として、 .Invalidate()  メソッドを使用できます。それは最善の方法ではありませんが。 invalidateメソッドの詳細については、こちらをご覧ください。 https://msdn.microsoft.com/en-us/library/598t492a(v=vs.110).aspx

  • 解決した方法 # 2

    私の場合、問題はそれでした 一部のDataGridViewセルの背景色が透明に設定されました

    <前>ウィズウィズ g[x,y].Style.BackColor = Color.Transparent;

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ c# - ファイル名にファイル名全体にいくつかの文字列値が含まれているかどうかを確認する方法