我在使用VS2005,C#开发C/S结构程序中用到了datagridview控件。并使用了DataGridViewCheckBoxColumn和DataGridViewLinkColumn,可得到显示结果的最后一行多了带CHECKBOX的空行。有什么方法不让最后带CHECKBOX的空行显示。我试了循环隐藏最后一行和移除最后一行都没有成功。忘达人指点!简单代码如下: this.dataGridView1.DataSource = dt; //dt为从ORACLE9I中读取的DataTable
this.dataGridView1.AutoGenerateColumns = false;
dataGridView1.Columns.Insert(0, new DataGridViewCheckBoxColumn());
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
dataGridView1.Rows[i].Cells[0].Value = false;
}
dataGridView1.Columns[0].Resizable = DataGridViewTriState.False;
dataGridView1.Columns[0].Frozen = true;
dataGridView1.Columns[0].Width = 25;
DataGridViewLinkColumn dc = new DataGridViewLinkColumn();
dc.Text = "详细";
dc.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
dc.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline;
dc.UseColumnTextForLinkValue = true;
dc.Frozen = true;
dc.Width = 21;
this.dataGridView1.Columns.Insert(1,dc);
MessageBox.Show(dataGridView1.Rows.Count.ToString()); dataGridView1.Rows.RemoveAt(dataGridView1.Rows.Count-2);
foreach (DataGridViewColumn c in dataGridView1.Columns)
if (c.Index != 0 && c.Index != 1) c.ReadOnly = true;
this.dataGridView1.AutoGenerateColumns = false;
dataGridView1.Columns.Insert(0, new DataGridViewCheckBoxColumn());
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
dataGridView1.Rows[i].Cells[0].Value = false;
}
dataGridView1.Columns[0].Resizable = DataGridViewTriState.False;
dataGridView1.Columns[0].Frozen = true;
dataGridView1.Columns[0].Width = 25;
DataGridViewLinkColumn dc = new DataGridViewLinkColumn();
dc.Text = "详细";
dc.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
dc.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline;
dc.UseColumnTextForLinkValue = true;
dc.Frozen = true;
dc.Width = 21;
this.dataGridView1.Columns.Insert(1,dc);
MessageBox.Show(dataGridView1.Rows.Count.ToString()); dataGridView1.Rows.RemoveAt(dataGridView1.Rows.Count-2);
foreach (DataGridViewColumn c in dataGridView1.Columns)
if (c.Index != 0 && c.Index != 1) c.ReadOnly = true;
dv.AllowNew = false;
this.dataGridView1.DataSource = dv;