リストビューに少し問題があります。
リストビュー項目を正常にロードできますが、背景色を設定すると、行の左側まで色が描画されません [listViewItems は ListViewSubItems でロードされ、グリッド ビューを作成します。最初の列のみです。エラーを表示します]。塗装していない細い帯があります。そのストリップの幅は、行ヘッダーがある場合の行ヘッダーとほぼ同じです。
背景を描画するために何ができるかについて考えがある場合は、ぜひ聞いてください。
新しいアイデアを試すためだけに、疑似グリッド ビューの混乱のこのひどい構成をまだ使用している最初のソリューションに 10 票の報奨金を提供します。[私はレガシーコードが大好きです。]
編集:
問題を示すサンプルを次に示します。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
ListView lv = new ListView();
lv.Dock = System.Windows.Forms.DockStyle.Fill;
lv.FullRowSelect = true;
lv.GridLines = true;
lv.HideSelection = false;
lv.Location = new System.Drawing.Point(0, 0);
lv.TabIndex = 0;
lv.View = System.Windows.Forms.View.Details;
lv.AllowColumnReorder = true;
this.Controls.Add(lv);
lv.MultiSelect = true;
ColumnHeader ch = new ColumnHeader();
ch.Name = "Foo";
ch.Text = "Foo";
ch.Width = 40;
ch.TextAlign = HorizontalAlignment.Left;
lv.Columns.Add(ch);
ColumnHeader ch2 = new ColumnHeader();
ch.Name = "Bar";
ch.Text = "Bar";
ch.Width = 40;
ch.TextAlign = HorizontalAlignment.Left;
lv.Columns.Add(ch2);
lv.BeginUpdate();
for (int i = 0; i < 3; i++)
{
ListViewItem lvi = new ListViewItem("1", "2");
lvi.BackColor = Color.Black;
lvi.ForeColor = Color.White;
lv.Items.Add(lvi);
}
lv.EndUpdate();
}
}