- - PR -
DataGridで下スクロールしてから先頭行に戻ると1行・1列目が反転表示します
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-03-01 10:48
お世話さまです。
VB.NET2003のWindowsフォームでの出来事です。 2列からなるDataGridをフォーム上に表示してるのですが、 下スクロールしてから上スクロールすると、先頭行・先頭列 のセルが反転表示されてしまいます。 この反転表示を抑制する方法はないでしょうか? スクロールイベント内で DataGrid.UnSelect(0) のようにしても、”選択”されているワケではないようで、 変化はありませんでした。 ご参考までに、DataGridの関係のありそうなプロパティを記します。 AllowSorting=False ReadOnly=True TabStop=False 以上、ご教示のほど宜しくお願い致します。 | ||||
|
投稿日時: 2006-03-01 13:16
抑制する方法は判らないのですが、左上のセルが反転表示されるのは
DataGrid#CurrentCell がデフォルトで 0, 0 になっているからだと思います。
とすると、2行目の2列目が選択された状態になります。 | ||||
|
投稿日時: 2006-03-01 13:47
===>きよの様
早速のレス、ありがとうございます。 なるほど、画面に表示されてない行をSelectさせたりすることで 見かけ上、反転表示を回避できそうですね。 ちなみに、下記のような泥臭いやり方で回避を試みてみました。^^; Private Sub MyDataGrid_Scroll(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyDataGrid.Scroll Dim i As Integer 'MyDataGridCtrにはグリッドに表示する全行数がセットされています。 For i = 0 To MyDataGridCtr - 1 If MyDataGrid.IsSelected(i) = False Then MyDataGrid.Select(i) MyDataGrid.UnSelect(i) Exit For End If Next End Sub グリット指定されていない行を選択し、直後に非選択にすることで 見かけ上、反転表示はしなくなりました。 スマートではないですよねぇ。^^; | ||||
|
投稿日時: 2006-03-01 14:45
は、必要なんでしょうか? 全部はがすのであれば、UnSelect メソッドだけで良いように思えます。 もし、見た目が戻らないという意味であれば、Refresh すれば良いと思いますが、適用されないんだったかな? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-03-01 17:53
===>じゃんぬねっと様
こんにちは! お久しぶりです。^^ ご教示頂いた方法を試してみましたところ、 UnSelectだけで反転表示解除できました。 ありがとうございました。 |
1