2

リストビューの項目をマウスでクリックすると、色は「ハイライト」色になりますが、次のようなコードで行うと: ( MultiSelect は True で、HideSelection を False に設定する必要があります)

myListView1.Items[2].Selected = true;

その後、それは灰色になります...悪いです!マウスで手動でクリックしたときに同じハイライト色にしたい:(

私もこのコードを追加しようとしましたが、それもうまくいきませんでした。まだ灰色です

myListView1.Items[2].BackColor = System.Drawing.Color.Blue;
4

2 に答える 2

1

これは、項目が選択されているがフォーカスされていない場合の ListView の動作です。

したがって、目的の「青」の色を取得するには、これを追加するだけです。

listView1.Focus();
于 2012-05-28T02:07:18.463 に答える
0

リストビューの SelectedIndexChanged イベントでこれを試してみてください。

ListViewItem lv = YourListview.GetItemAt(YourListView.PointToClient(Cursor.Position).X, YourListView.PointToClient(Cursor.Position).Y);

// this kind of Control.GetItemAt() works everywhere you need to find your mouse position ;)

// if you need to find position for screen (i.e. if you want to show a messagebox at the center of screen) you can use PointToScreen instead of PointToClient

 if (lv == null) 
 { 
   return; 
 }

else if (yourfirstpossibility == true)
{
  lv.Selected = true;
  lv.BackColor = Color.FromKnownColor(KnownColor.ButtonHighLight);

 // or which color you prefer. FromKnownColor retrieves system colors which you can see in backcolor / forecolor property => "system" named palette

}

リストビューのitem_checkedイベントで使用するこのコードとは少し異なります(より複雑です)..お役に立てば幸いです..

于 2012-05-28T02:20:44.773 に答える