我有一个具有datagridview的窗体。在这个datagridview中,我动态添加两列,如下面的代码所示。我的问题是,当我点击这些添加的列时,Multiselect属性不是选择完整行,但是当我点击网格的第一列时,它选择了完整的行。
if (gvlayoutload.Columns.Count == 0)
{
DataGridViewTextBoxColumn comboBoxColumnRInfo =
new DataGridViewTextBoxColumn();
comboBoxColumnRInfo.Name = "RowInfo";
comboBoxColumnRInfo.HeaderText = "";
comboBoxColumnRInfo.DataPropertyName = "RowInfo";
comboBoxColumnRInfo.ReadOnly = true;
comboBoxColumnRInfo.Width = 25;
comboBoxColumnRInfo.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
//comboBoxColumnRInfo.Frozen = true;
this.gvlayoutload.Columns.Add(comboBoxColumnRInfo);
DataGridViewTextBoxColumn comboBoxColumn =
new DataGridViewTextBoxColumn();
comboBoxColumn.HeaderText = "Row #";
comboBoxColumn.DataPropertyName = "RowNo";
comboBoxColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet;
comboBoxColumn.Width = 45;
comboBoxColumn.FillWeight = 45;
//comboBoxColumn.Frozen = true;
FRColumn col = new FRColumn();
col.Name = comboBoxColumn.HeaderText;
col.Type = 1;
col.Variable1 = variable1;
col.Variable2 = variable2;
col.Percent = Percent;
col.Rowno = Rowno;
col.Headersize = 8;
col.Bodysize = 8;
col.HeaderAlign = 0;
col.BodyAlign = 0;
lstcolumn.Add(col);
this.gvlayoutload.Columns.Add(comboBoxColumn);
当我点击RowInfo列或Row#列Multiselect属性未选择完整行时。我已将multiselect属性设置为true,多选模式为fullrowmode。
答案 0 :(得分:0)
DataGridView.SelectionMode属性指示如何选择DataGridView的单元格。默认值为RowHeaderSelect
。此MSDN链接中描述了每种模式的行为。
DataGridView
中的第一列包含行标题。如果您在此列中选择任何单元格,则会在SelectionMode
为RowHeaderSelect
或FullRowSelect
时选择整行。
如果要选择多行,请设置DataGridView.MultiSelect = true
。
您还可以通过设置DataGridView.RowHeadersVisible = false
隐藏该列。