我在使用Listview时遇到了一点小问题。
虽然我可以成功地加载listview项,但当我设置背景颜色时,它并没有将颜色绘制到行的左侧 [listViewItems通过ListViewSubItems加载以创建网格视图,只有第一列显示错误]。会有一个狭窄的条纹没有被绘制。那个条纹的宽度与如果我有一个行标题,行标题的宽度大致相同。
如果你有任何想法可以让背景颜色绘制出来,我很想听听。
现在,为了尝试一个新的想法,我提供了10票的奖励,给第一个解决方案,仍然让我使用这个可怕的伪网格视图的混乱结构。[我喜欢旧代码。]
编辑:
以下是展示问题的示例。
虽然我可以成功地加载listview项,但当我设置背景颜色时,它并没有将颜色绘制到行的左侧 [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();
}
}