DOBON.NET DOBON.NETプログラミング掲示板過去ログ

選択行

  • 題名: 選択行
  • 著者: なるしま
  • 日時: 2004/08/30 16:56:58
  • ID: 5904
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[WinXP .Net2003]
分類:[.NET]

検索したときにデータグリッドにデータを表示し、1行目を選択状態(色をつける)にし、クリックされたら、1行目の選択状態(色付け)を外して、選択した行を色を付けた状態にするにはどうすればいいのですか?
検索した後に一行目を選択常態にすることはできます。選択された行を色つけることもできます。
ただ、最初に検索した後に、一行目に色を付けて"一回目"に選択したところに色を付けると、選択された行 + 一行目に色が付いています。2回目以降は選択されたところにしか色が付かないのですが、なぜ一回目の選択したところだけ、検索した後の一行目の色が付いたままなのでしょうか?
教えてください。
  • 題名: Re[1]: 選択行
  • 著者: 深山
  • 日時: 2004/08/30 17:13:49
  • ID: 5906
  • この記事の返信元:
    • [5904] 選択行 なるしま 2004/08/30 16:56:58
  • この記事への返信:
  • ツリーを表示
■No5904に返信(なるしまさんの記事)

 過去ログより

DataGridの行選択について
http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=4940&no=0&KLOG=2
■No5906に返信(深山さんの記事)
> ■No5904に返信(なるしまさんの記事)
>
>  過去ログより
>
> DataGridの行選択について
> http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=4940&no=0&KLOG=2

えっとですね・・・。深山さんが教えてくれたリンク先は「書き込みエラー」になってしまうのですが・・・(汗)

聞きたいことは

検索した後にDataGridが表示されますよね?検索した後に、一行目を選択状態に
し、ユーザーがクリックした所に色を付けたいのですが、

・DataGrid1.Select(0)で一行目に色を付ける
・DataGridを選択したところに色を付ける場合は、0をCurrentRowIndexにするじゃないですか。DataGridのCurrentCellChangedイベントで。

実行してみると、検索した後は一行目に色が付きます。ユーザが選択した行をクリックすると、色が付きます。但し、検索した後に一行目に色を付けたところが消えません。この原因がわかりません。
  • 題名: Re[3]: 選択行
  • 著者: SH
  • 日時: 2004/08/31 11:20:08
  • ID: 5924
  • この記事の返信元:
  • この記事への返信:
  • ツリーを表示
なるしまさん、深山さん こんにちわ。

リンク先の記事でも同様のことを書きましたが・・・

> ・DataGrid1.Select(0)で一行目に色を付ける
> ・DataGridを選択したところに色を付ける場合は、0をCurrentRowIndexにするじゃないですか。DataGridのCurrentCellChangedイベントで。
>
> 実行してみると、検索した後は一行目に色が付きます。ユーザが選択した行をクリックすると、色が付きます。但し、検索した後に一行目に色を付けたところが消えません。この原因がわかりません。

一つ前の選択行を変数など、何らかの場所にとっておき、
DataGrid1.UnSelect(前の選択行)
とする必要があります。

あと、選択と解除のタイミングはCurrentCellChangedじゃ無くてPaintイベントのほうがいいと思いますよ。
■No5924に返信(SHさんの記事)

> 一つ前の選択行を変数など、何らかの場所にとっておき、
> DataGrid1.UnSelect(前の選択行)
> とする必要があります。
>
なるほど。色を付けるのを止めるメソッドがあるのですね。

> あと、選択と解除のタイミングはCurrentCellChangedじゃ無くてPaintイベントのほうがいいと思いますよ。

なぜCurrentCellChangedではなく、Paintイベントの方がいいのですか?
色を付けるからPaintイベントの方がいいとか?ですかね?
ご指導よろしくお願いします。
  • 題名: Re[5]: 選択行
  • 著者: SH
  • 日時: 2004/08/31 11:59:33
  • ID: 5926
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
こんにちわ。

> なぜCurrentCellChangedではなく、Paintイベントの方がいいのですか?
> 色を付けるからPaintイベントの方がいいとか?ですかね?
> ご指導よろしくお願いします。

2つのイベントをハンドルして、
発生の頻度を見るとわかると思います。

Panitイベントのほうが起きる頻度が少ないので、
Paintの時にやれば十分。という感じですね。

気になるほど差はないと思いますが。
  • 題名: Re[3]: 選択行
  • 著者: 深山
  • 日時: 2004/08/31 12:22:22
  • ID: 5927
  • この記事の返信元:
  • この記事への返信:
  • ツリーを表示
■No5920に返信(なるしまさんの記事)
> えっとですね・・・。深山さんが教えてくれたリンク先は「書き込みエラー」になってしまうのですが・・・(汗)

 え? ‥‥ありゃ、過去ログ2と3が見れなくなってますね(汗)
 なるしまさん、すいません。そしてSHさん、フォローありがとうございますm(__)m


 リンク先の方では過去(古い過去ログ http://dobon.net/vb/bbs/log.html の方ですね)
にも同様の質問がありましたよという話と、管理人さまの発行されてるメルマガの内容
( http://backno.mag2.com/reader/Back?id=0000104516 )も参考になると思いますとか
いう話をしておりました。<私
  • 題名: Re[4]: 選択行
  • 著者: なるしま
  • 日時: 2004/08/31 12:34:55
  • ID: 5929
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
深山さん、SHさんありがとうございます。
勉強になりました。
またわからないことがあるときはアドバイスよろしくお願いします

DOBON.NET | プログラミング道 | プログラミング掲示板