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

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

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

[C#]ListViewの選択行について


(過去ログ 5 を表示中)

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

■5146 / inTopicNo.1)  [C#]ListViewの選択行について
  
□投稿者/ 池山 公也 二等兵(1回)-(2006/07/27(Thu) 19:28:43)

分類:[C#] 


分類:[C#] 

はじめまして池山と申します。
現在、検索結果をリストビューに表示する処理を作っているのですが、
リストビューの選択行について困っています。

検索→リストビュー表示→検索結果の1行を選択→別処理→再検索→表示
という流れの処理で、最初の検索後リストビューの選択行を記憶しておき、
再検索後の表示の際に記憶しておいた行数を選択する、
という処理なのですが、

int選択行 = 現在の選択行;

if (this.liv検索結果.Items.Count-1 >= int選択行)
{
this.liv検索結果.Items[int選択行].Selected = true;
this.liv検索結果.SelectedItems[0].EnsureVisible();
this.liv検索結果.Focus();
}
else
{
if (this.liv検索結果.Items.Count > 0)
{
this.liv検索結果.Items[this.liv検索結果.Items.Count-1].Selected = true;
this.liv検索結果.SelectedItems[0].EnsureVisible();
this.liv検索結果.Focus();
}
else
{

}
}

というコードでちゃんと記憶しておいた行が反転表示されています。

が、
表示後、↓キーを押下すると選択行の1つ下の行に移ると思ってたのですが
結果は2行目に選択行が移ってしまいます。
表示後のリストビューをよく見ると1行目に点線で選択されているような
状態になっており、点線行と反転行ではキー操作は点線行が優先されるようで
選択行のデータは反転行が握っている状態です。
上記処理の後には処理はなく、処理を抜ける寸前までウォッチ式では
記憶行のINDEXがしっかり変数に入っていました。

もしわかる方がおられたら教えていただきたいのですが、
点線行と反転行を一致させた上で任意の行を選択する方法がありますでしょうか?
点線行だけでも制御できれば何とかなると思っているのですが・・・。

よろしくお願いいたします。
Visual Studio 2003 C#で作っております。


0
引用返信 編集キー/
■5147 / inTopicNo.2)  Re[1]: [C#]ListViewの選択行について
□投稿者/ Hongliang 軍曹(72回)-(2006/07/27(Thu) 22:28:58)
Hongliang さんの Web サイト

分類:[C#] 

選択行とカーソル位置とは別物ですからね。
Ctrl+カーソル上下を入力してやるとよく分かります。

ListViewItem.Focused を使えばどうでしょう。

0
引用返信 編集キー/
■5152 / inTopicNo.3)  Re[2]: [C#]ListViewの選択行について
□投稿者/ 池山 公也 二等兵(2回)-(2006/07/28(Fri) 09:51:39)

分類:[C#] 

>Hongliangさん
レスありがとうございます。
さっそく試したところ、行を選択した後に
ListViewItem.Focusedをtrueにしてやると
カーソル位置も動いてくれました。

ありがとうございました。
おかげでかなり助かりました。

というかもっと自分で調べないと、と反省もかなりですが・・・。
本当にありがとうございました!


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


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

このトピックに書きこむ

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

管理者用

- Child Tree -