• ベストアンサー

ListViewのサブアイテムの文字色

C# .NET のListViewのItem(行)毎の背景や文字色を変えることはできますが、SubItem毎の設定をすることはできるのでしょうか? SubItemのBackColorやForeColorプロパティーを変更してもも見た目には変化がありません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jyuzou
  • ベストアンサー率41% (97/231)
回答No.2

リベンジ。 listViewItem1.UseItemStyleForSubItems = false; これ追加する。 その後、サブアイテムの色変えればok

Poko-08
質問者

お礼

ありがとうございました。 できました。

その他の回答 (1)

  • jyuzou
  • ベストアンサー率41% (97/231)
回答No.1

例えばListViewのItemをlistViewItem1とすれば、次のコードでうちではうまくいくいきました。 listViewItem1.ForeColor = Color.Yellow; listViewItem1.BackColor = Color.Black; でも出来ないんですよね・・

Poko-08
質問者

お礼

ご回答、ありがとう御座います。 そのコードだと、1行全ての色が変わると思います。 そうではなくて、行の中の特定のColumn(つまり、Itemの中のSubItemの1つ)の色を変えたいのです。

関連するQ&A

  • ListViewで任意の行の背景色を変化

    Listviewで指定した行の背景色を変化させたいのですが、どうしたらよいでしょうか? 開発環境はBorlandのC++Builderです。 よろしくお願いします。

  • VB2010の TextBox文字について の 質問

    VB2010の TextBox文字について の 質問 お尋ねします VB2010_Express版で プログラムを作っている者です Form1にTextBox1を貼付け、 そのTextBox内に 複数行に別けて 文字を記入します しかしDebug開始=run を すると、 TextBox内の文字列の背景が暗転し、 TextBoxのBackColorの色の上に 表示してくれません 念のために BackColorは薄黄色[MS 255 255 192 ]で、 ForeColorは 焦茶色の[Web Maroon]です runさせた後の 文字表記位置に 各文字ごとに 青色のBackColorが 現れ、 即ち、青色の枡目ごとに 焦茶色の 文字列が 現れ、 ForeColorの薄黄色の上に焦茶色の文字が 出てくれません そうして Form1.Designer.VB の コマンド群を眺めても、 TextBox1の プロパティウィンドウ を 見て廻っても、 それらを変更しそうなコマンド文や項目が 判らないのです 文字位置の背景色が青色に変らずに、指定したBackColor上で表示させるには、 どうしたら良いのか、お教え下さい 宜しくお願い申し上げます ____ akqsp より ____

  • Excel VBA ListViewサブアイテムの文字色

    Excel VBA ListViewにおいて、特定の行のサブアイテム(2列目以降)の文字色を変更することは可能でしょうか?

  • Exce VBA ListViewの文字位置

    ExcelのUserForm内のListViewで文字位置を設定しようと思いますが、ヘッダー行とデータ行で位置が連動しているようです。 ヘッダー行はすべてセンター、データ行は文字は左、数値は右という風にはできないのでしょうか? よろしくお願いいたします。

  • Listviewに表示された文字のコピーペースト

    VB2005を使っています。 Listviewに表示された文字をコピーペーストを試みましたができませんでした。 プロパティを見ても、設定箇所が見あたりませんでした。 コピーペーストする方法をご存じでしたらご教授お願いします。

  • ListViewについて

    いつもお世話になっています。 タイトルの通り、ListViewについて2つ質問があります。 (1)ListViewにDBから検索したデータを代入してますが、動きが遅いんです。  各項目ごとで色を変更したりするためだと思いますが、ListViewの表示を速くする方法はなにかありませんか?  ちなみに今は、ListViewを2枚使って、データをセットしている間は、VisibleをFalseにして、  データセットが完了した時点で、Trueに切り替えています。 (2)(1)の動きで、ListViewを使っているところ、今表示されているListView(Iとします)で  クリックしたデータを次に表示させるListView(IIとします)に引き継がせたいです。  Iで、選択している行をIIで選択状態にすることはできたのですが、  Iで選択している行がスクロールして下にあった場合、IIでもスクロールした場所に  ListViewを移動させたいのですが、その方法が分かりません。 何かご存知の方がいましたら、教えてください。 よろしくお願いいたします。

  • [C#]ListView一覧表示時の幅設定について

    [開発言語] C# [開発環境] Visual Studio 2005 C#のListViewに関して質問です。 ViewプロパティにListを指定した場合のItemの幅はどのように設定するのでしょうか? 理想としては、エクスプローラのように ItemのTextの長さに応じて最適な幅に調節したいのです。 よろしくお願いいたします。

  • ボタンの文字色を変更したい

    Visual Basicで、 ボタンの上にある文字の色を変更することはできますか。 ボタンそのものの色はBackColorプロパティーで設定できますが、文字色の設定がわかりません。良い方法はないでしょうか

  • ListViewにて行追加

    Visual C# 2005初心者です。 ListViewを使用して、データを表示するのに、 listView1.Items.Add("1111111", 3); listView1.Items.Add("2222222", 3); listView1.Items.Add("3333333", 3); と書くと、列が追加されます。 行を追加するには、どうすればよいのでしょうか? どうか、教えてください。

  • ListViewとArrayListの連動がうまくいきません

    メールソフトの中で既読、未読を設定するフラグを実装しているのですが ListViewのカラムクリック時の昇順・降順設定を追加するとなぜか おかしな表示になってしまいます。 未読(フラグがtrue)の時は太字で表示されて、既読(フラグがfalse)の 場合は通常のフォントで表示するようにしてあるのですが、 指定している配列ですべてtrueにしているのにもかかわらず表示されるのは trueとfalseの結果の表示がまばらに出てしまって何が原因なのかが 分かりません。 どうすればこれを解決する事が出来るでしょうか? 環境はVS2005(C#)、.NET Framework 2.0です。 リストビューの昇順・降順ロジックはどぼんの.NET Tipsに 載っている文字列、数字、日付で比較が可能なタイプのを 使用しています。 public void UpdateListView() { ArrayList list = null; int i = 0; if (listView1.Columns[1].Text == "差出人") { // 受信メールの場合 list = collectionMail[RECEIVE]; } else if (listView1.Columns[1].Text == "差出人または宛先") { // 削除メールの場合 list = collectionMail[DELETE]; } listView1.BeginUpdate(); // リストビューの内容をクリアする listView1.Items.Clear(); // ListViewを設定する foreach (Mail mail in list) { ListViewItem item = new ListViewItem(mail.subject); item.SubItems.Add(mail.address); item.SubItems.Add(mail.date); // この2行を追加 item.Tag = i; i++; listView1.Items.Add(item); // 未読(未送信)の場合は、フォントを太字にする int index = listView1.Items.Count - 1; if (mail.notReadYet == true) { listView1.Items[index].Font = new Font(this.Font, FontStyle.Bold); } } listView1.EndUpdate(); } private void listView1_DoubleClick(object sender, EventArgs e) { Mail mail = null; ListViewItem item = listView1.SelectedItems[0]; if (listView1.Columns[1].Text == "差出人") { mail = (Mail)collectionMail[RECEIVE][(int)item.Tag]; } else if (listView1.Columns[1].Text == "差出人または宛先") { mail = (Mail)collectionMail[DELETE][(int)item.Tag]; } mail.notReadYet = false; textBox1.Text = mail.body; UpdateListView(); } private void Form1_Load(object sender, EventArgs e) { // ListViewにアイテムを追加する for (int no = 0; no < subject.Length; no++) { Mail mail = new Mail(subject[no], address[no], date[no], body[no], read[no]); collectionMail[RECEIVE].Add(mail); } UpdateTreeView(); UpdateListView(); // ListViewItemComparerの作成と設定 listViewItemSorter = new ListViewItemComparer(); listViewItemSorter.ColumnModes = new ListViewItemComparer.ComparerMode[] { ListViewItemComparer.ComparerMode.String, ListViewItemComparer.ComparerMode.String, ListViewItemComparer.ComparerMode.DateTime }; // ListViewItemSorterを指定する listView1.ListViewItemSorter = listViewItemSorter; }