- - PR -
DataGrid (System.Windows.Forms) のスクロールバーについて
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-01-15 15:16
いつも御世話になります。
System.Windows.Form の DataGrid の DataSource (DataTable) に、 下記のように Thread を実行して新しい行を追加すると、 DataGrid の縦方向のスクロールバーが正常に表示できません。 (縦方向のスクロールバーが 2 つ表示されます)。 private System.Windows.Forms.Button button1; private System.Windows.Forms.DataGrid dataGrid1; private System.Data.DataTable dataTable1; void Button1Click(object sender, System.EventArgs e) { dataTable1 = new DataTable(); dataTable1.Columns.Add(); dataGrid1.DataSource = dataTable1; Thread thread1 = new Thread(new ThreadStart(ThreadProc)); thread1.Start(); } void ThreadProc() { for (int i = 0; i < 20; i++) { DataRow dr = dataTable1.NewRow(); dr[0] = i; dataTable1.Rows.Add(dr); Thread.Sleep(100); } } どなたかこの現象 (原因) をご存知の方、ご教示下さいますよう 宜しくお願い申し上げます。 | ||||||||
|
投稿日時: 2005-01-15 23:45
諸農です。
とりあえず、同じスレッド上で操作しないといけないようですので。。。 スレッドの開始前に一度datasourceからデータテーブルを外して、 スレッドの終了時に再度設定しなおすとか。
または、非同期呼出で非同期処理が終了した時点で コールバックメソッド内から呼び出すフォームコントロールの メソッドであらためてデータソースにセットするとか。
_________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ |
1