Form内のDatagridview書式指定を.Showメソッド実行前に行った場合の描画の立ち遅れを解消したい
- 題名: Form内のDatagridview書式指定を.Showメソッド実行前に行った場合の描画の立ち遅れを解消したい
- 著者: kane123
- 日時: 2013/12/08 13:18:59
- ID: 31985
- この記事の返信元: 
- この記事への返信: 
- ツリーを表示
 
 
- 題名: Re[1]: Form内のDatagridview書式指定を.Showメソッド実行前に行った場合の描画の立ち遅れを解消したい
- 著者: 魔界の仮面弁士
- 日時: 2013/12/08 22:20:33
- ID: 31986
- この記事の返信元: 
- この記事への返信: 
- ツリーを表示
 
 
- 題名: Re[2]: Form内のDatagridview書式指定を.Showメソッド実行前に行った場合の描画の立ち遅れを解消したい
- 著者: kane123
- URL: http://Windows7  VB.net
- 日時: 2013/12/09 9:30:34
- ID: 31987
- この記事の返信元: 
- この記事への返信: 
- ツリーを表示
 
 
- 題名: Re[3]: Form内のDatagridview書式指定を.Showメソッド実行前に行った場合の描画の立ち遅れを解消したい
- 著者: 魔界の仮面弁士
- 日時: 2013/12/09 11:13:31
- ID: 31989
- この記事の返信元: 
- この記事への返信: 
- ツリーを表示
 
 
- 題名: Re[4]: Form内のDatagridview書式指定を.Showメソッド実行前に行った場合の描画の立ち遅れを解消したい
- 著者: kane123
- URL: http://Windows7  VB.net
- 日時: 2013/12/09 12:41:43
- ID: 31991
- この記事の返信元: 
- この記事への返信: 
- ツリーを表示
 
 
 
分類:[.NET]
いつもお世話になっております。 あるFormを.Showdialogする前に、そのForm上のDatagridviewの更新を行った場合、その Datagridviewの描画(BackColorやFontStyle.Bold)が追いつかないようで、解決法を 探しています。 厳密に言うと、Form1からForm2のインスタンスを作り、Showする前に、Form2上の Datagridviewの更新/書式指定処理を呼び出し、その後、Form2を.Showdialogした場合、 Form2上のDataGridviewの書式の描画は指定した通り行われません。 下記がコードです。 ちなみに、コメントアウトしている箇所をコメントインすると、 一旦Showして、DGVを更新して、またhideして、Showdialogするので、ひとまずは 描画遅れの現象を回避することに成功するようです。ただし、このような姑息な 方法でなく、もっとスマートなコーディングは無いものかと思い質問させて頂いた次第 です。 また、なぜDatagridviewの描画においてこのようなことが発生するかという原因も気に なっております。 Public Class Form1 'Button : Button1をデザイナ上で載せたフォーム。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim F2 As New Form2 'F2.Show() F2.REFRESH_DGV() 'F2.Hide() F2.ShowDialog() End Sub End Class Public Class Form2 'Datagridview : DGV をデザイナ上で載せたフォーム。 Public Sub REFRESH_DGV() Dim DT As New DataTable DT.Columns.Add("aa") DT.Columns.Add("bb") DT.Rows.Add(New Object() {100, 200}) DT.Rows.Add(New Object() {300, 400}) DGV.AutoGenerateColumns = True DGV.DataSource = DT DGV.Rows(0).DefaultCellStyle.BackColor = Color.LightBlue DGV.Rows(1).DefaultCellStyle.Font = New Font(DGV.Font, FontStyle.Bold) End Sub End Class (上記コードForm1の最後での.Showdialogはマストです。.Showだけだったら.Showしてから 更新処理を呼び出せばいい話なので、その場合は問題にならないので。 また、Form2のLoadイベントに処理を記述するというのも、わけあって使いたくない 手段です。) 宜しくお願いいたします。