![](/img/trans.png)
[英]Disable default cell selection in a datagridview after form load in WinForm Application
[英]how to prevent datagridview cell selection at form load
如何为此在表格加载时未选择的数据网格视图单元格
我已经尝试了太多
我的dgvproducts属性是(readonly = false,selection mode = CellSelect)
1)我已经将此代码放置在form shown
事件中,但这对我不起作用..
dgvProducts.Clearselection();
2)我把上面的代码放在如下所示的databinding event
中。
private void dgvProducts_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
//dgvProducts.ClearSelection();
((DataGridView)sender).ClearSelection();
}
它对我不起作用...
3)我已经放置了类似的代码,并且在form load event
添加了额外的行,但是对我不起作用..
dgvProducts.ClearSelection();
dgvProducts.currentcell = null;
但这对我不起作用....
这是我的表单加载代码
private void SellEquipment_Load(object sender, EventArgs e)
{
getProductDetails();
dgvProducts.Columns[0].Visible = false;
for (int i = 0; i < dgvProducts.Columns.Count; i++)
if (dgvProducts.Columns[i] is DataGridViewImageColumn)
{
((DataGridViewImageColumn)dgvProducts.Columns[i]).ImageLayout = DataGridViewImageCellLayout.Stretch;
break;
}
}
这是我的getproductdetails代码
private void getProductDetails()
{
var products = from productlist in dbcontext.products
select new
{
productid = productlist.productId,
Name = productlist.Name,
Image = productlist.Image,
Description = productlist.Description,
Price = productlist.Price
};
BindingProductsource.DataSource = products;
dgvProducts.DataSource = BindingProductsource;
dgvProducts.ClearSelection();
}
任何人都可以帮上忙..
非常感谢...
尝试创建一个新的事件OnShow并执行以下代码:
protected override void OnShown(EventArgs e)
{
if (this.dataGridView1.SelectedCells.Count > 0)
{
for (int i = 0; i < this.dataGridView1.SelectedCells.Count; i++)
this.dataGridView1.SelectedCells[i].Selected = false;
}
}
我发现按照Form.OnShown()
的答案中的建议重写Form.OnShown()
确实可以达到我的目的。 但是,我发现利用DataGridView.ClearSelection()
可以实现更精简的解决方案:
protected override void OnShown(EventArgs e)
{
this.dataGridView1.ClearSelection();
base.OnShown(e);
}
关于对base.OnShown()
的调用,Microsoft在其文档中建议:
给继承者的说明
在派生类中重写OnShown时,请确保调用基类的OnShown方法,以便已注册的委托接收事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.