我有一个绑定到数据表的 datagridview。这些列不是自动生成的,我是在代码中创建的。我希望我的用户能够添加和删除行,因此我有AllowUserToAddRows = true,AllowUserToDeleteRows = true。
问题是:当他们选择一行并按 DEL 时,信息将被行单元格的默认值替换。行并没有消失。
这是什么行为(为什么/发生了什么),我该如何解决它?
这是我的网格创建代码:
private void resetDowntimeGrid()
{
downtimeEntries = new DataTable();
downtimeEntries.Columns.Add("Category", typeof(int));
downtimeEntries.Columns.Add("HoursDown");
downtimeEntries.Columns.Add("Reason");
//deptDowntimeCategories.Select("", "ListOrder ASC");
gridDowntime.Columns.Clear();
DataGridViewComboBoxColumn cboCategory = new DataGridViewComboBoxColumn();
{
cboCategory.HeaderText = "Category";
cboCategory.DataSource = deptDowntimeCategories;
cboCategory.DisplayMember = "Name";
cboCategory.ValueMember = "CategoryID";
cboCategory.DataPropertyName = "Category";
cboCategory.Width = Convert.ToInt16(gridDowntime.Width * 0.20);
cboCategory.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox;
cboCategory.AutoComplete = true;
gridDowntime.Columns.Add(cboCategory);
}
DataGridViewTextBoxColumn txtDowntime = new DataGridViewTextBoxColumn();
txtDowntime.HeaderText = "HoursDown";
txtDowntime.DataPropertyName = "HoursDown";
txtDowntime.Width = Convert.ToInt16(gridDowntime.Width * 0.15);
gridDowntime.Columns.Add(txtDowntime);
DataGridViewTextBoxColumn txtReason = new DataGridViewTextBoxColumn();
txtReason.HeaderText = "Reason";
txtReason.DataPropertyName = "Reason";
txtReason.Width = Convert.ToInt16(gridDowntime.Width * 0.60);
gridDowntime.Columns.Add(txtReason);
gridDowntime.DataSource = downtimeEntries;
lblStatus.Text = "Downtime grid reset.";
}
我创建了一个空的winform,然后将网格代码放入其中。不同之处在于我的方式DataGridView.EditMode
放。我有它= EditOnEnter
,但是如果我设置它,删除效果会很好= EditOnKeystroke.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)