ListViewに3つの列があり、3列目のすべての値を緑色の前景色に変更したいと考えています。ListViewの列全体の色を変更します
ユーザー名、電子メール、ステータス
ものは見られるように、すべての列も名前が付けられ、私の3つの列です。
私はこれを試しましたが、listViewに追加されたときに3番目の列値の色を変更するのではなく、listviewに追加するだけです。
var Status = new ListViewItem("Status");
Status.SubItems[0].ForeColor = Color.FromArgb(-16711936);
Status.UseItemStyleForSubItems = false;
Pless_ListView.Items.Add(Status);
私はまた、これほど簡単なものを試しましたが、まだ運がありません。
Pless_ListView.Items[2].ForeColor = Color.Green;
私はまた、次のようにステータス値をListViewに追加するところで編集を試みました。
account.SubItems.Add(Status).ForeColor = Color.Green;
この場合でも、これは不運です。
私はまた、検索しようとしましたが、これに対する答えを見つける場所がありませんでした。
編集:
これは私のリストビューコードへの追加です。
void ColorLvColumn(ListView lv, int columnIndex, Color color, bool foreground)
{
foreach (ListViewItem lvi in lv.Items)
{
lvi.UseItemStyleForSubItems = false; // allow individual styles for subitems!
if (columnIndex < lvi.SubItems.Count)
{
if (foreground) lvi.SubItems[columnIndex].ForeColor = color;
//else lvi.SubItems[columnIndex].BackColor = color;
}
}
}
private void addAccountToPlessLV(String Username, String Password, PlessHTTP captured)
{
if (InvokeRequired)
{
Invoke(new MethodInvoker(delegate
{
ColorLvColumn(Pless_ListView, 2, Color.Green, true);
ListViewItem account = new ListViewItem { Text = Username };
account.SubItems.Add(Email);
account.SubItems.Add(captured.Status).BackColor = Color.Green;
Pless_ListView.Items.Add(account);
}));
}
else
{
ColorLvColumn(Pless_ListView, 2, Color.Green, true);
ListViewItem account = new ListViewItem { Text = Username };
account.SubItems.Add(Email);
account.SubItems.Add(captured.Status)
Pless_ListView.Items.Add(account);
}
}
唯一の問題は、複数のインスタンスが、それは問題を持っている原因となっている一度にリストビューに追加されるので、これらの項目は、マルチスレッド追加されています。それをテストするときにも、それは私のためにそれを変更しませんでした。 – Dzje
私の更新された答えを見てください! – TaW
アップデートは私を助けてくれてありがとうございましたが、今は実際のテキストの色ではなく、背景が色づいているようです。列の代わりにテキストの色を塗りつぶすだけの方法を教えてください。非常に感謝して、私は運がないとそれを一緒に混乱しようとしました。 – Dzje