C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

データグリッドのクリック時


(過去ログ 6 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■6585 / inTopicNo.1)  データグリッドのクリック時
  
□投稿者/ のの 二等兵(1回)-(2006/09/19(Tue) 14:34:31)

分類:[C#] 


分類:[C#] 

分類:[C#] 

こんにちは、いつもお世話になっています。
バグではないのですが、気になってしまうので直したいと思い質問させて頂きます。
データグリッドのセルをクリックしたとき、色が変わってしまうのですが、
ただの表のため、色は変わって欲しくありません。
セルをクリックしたとき、色が変わらないようにするにはどうすればよいのでしょうか?

0
引用返信 編集キー/
■6634 / inTopicNo.2)  Re[1]: データグリッドのクリック時
□投稿者/ trapemiya 曹長(92回)-(2006/09/20(Wed) 15:39:17)
trapemiya さんの Web サイト

分類:[C#] 

クリックができなくなるのがいいんでしょうか? もしくはクリックをするとキャレットが現れるような形がいいんでしょうか?

0
引用返信 編集キー/
■6651 / inTopicNo.3)  Re[2]: データグリッドのクリック時
□投稿者/ のの 二等兵(3回)-(2006/09/21(Thu) 09:27:51)

分類:[C#] 

レスありがとうございます。
表示している表は、見るだけなので、編集は出来ない方がよいです。
そのため、キャレットは表示されない方がいいです。
ただ、今後データグリッド内にチェックボックスを置くことも検討しているので、
チェックボックス列のみ反応して,その他は全く無反応というような形が取りたいのですが、クリックできなくするという場合、チェックボックスも無反応になってしまう恐れがありますが、何かよい解決策はないでしょうか。
説明不足かもしれませんが、どうぞ宜しくお願いします。

0
引用返信 編集キー/
■6673 / inTopicNo.4)  Re[3]: データグリッドのクリック時
□投稿者/ trapemiya 曹長(93回)-(2006/09/21(Thu) 17:39:14)
trapemiya さんの Web サイト

分類:[C#] 

DataGridViewってフォーカスを制御するようなものは持ってないんですよね。

なので、CellEnter、CellClick、CellDoubleClickイベントプロシージャに、
if (e.ColumnIndex == 1)
  ((DataGridView)sender)[e.ColumnIndex, e.RowIndex].Selected = false;
を書いて、2列目をReadOnlyにしてしまうとかでしょうか? ただし、セルを囲む
点線は出ます。でも、これはいいですよね。どこにフォーカスがあるかわかりますし。

クリックを完全に無視させるなら、以下みたいな感じになりますが、キーボードの
アローキーで操作されると、そのセルが選択状態になるので、上のCellEnterと組
み合わせる必要があるでしょう。

public class dataGridView1RistrictFocus : DataGridView
{
protected override void OnMouseDown(MouseEventArgs e)
{

if (this.HitTest(e.X, e.Y).ColumnIndex == 1)
return;

base.OnMouseDown(e);
}
}


0
引用返信 編集キー/
■6793 / inTopicNo.5)  Re[4]: データグリッドのクリック時
□投稿者/ のの 二等兵(4回)-(2006/09/25(Mon) 10:43:02)

分類:[C#] 

レスありがとございます!
体調を崩して返信が遅れてしまい申し訳ありませんでした。
なるほど、たしかにこの手は使えるようです。大変助かりました。
本当にありがとうございました!!

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -