Tag: datagridview

使用DataGridViewCheckboxCell在DataGridView中禁用复选框

有没有人知道使用DataGridViewCheckboxCell禁用DataGridView中的复选框的方法? 我可以将它设为只读,并设置背景颜色,但我不能让复选框本身显示为禁用。 有什么想法吗?

使用自定义对象的动态列表,无法动态更改dataGrid的单元格属性

我是新来发布在Stack上的。 我已经搜索了一段与我类似的问题。 我试图动态地根据对象的布尔值将WinForms DataGridView中的复选框从非只读更改为只读。 它在调试模式下显示已发生更改,但一旦完全运行,应该只读取的复选框单元仍然允许检查和取消选中function。 我已经离开了已注释的部分,以表明我已尝试这样做。 m_SingletonForm.dataGridView1.DataSource = list; m_SingletonForm.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells; m_SingletonForm.dataGridView1.Columns[“StoreGroup”].ReadOnly = true; m_SingletonForm.dataGridView1.Columns[“Message”].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; m_SingletonForm.dataGridView1[0, 0].ReadOnly = true; foreach (DataGridViewRow row in m_SingletonForm.dataGridView1.Rows) { //var isChecked = Convert.ToBoolean(row.Cells[“SendFile”].Value); //if (!isChecked) //{ //m_SingletonForm.dataGridView1.Rows[0].Cells[“SendFile”].Style.BackColor = Color.Red; //m_SingletonForm.dataGridView1.Rows[0].Cells[“SendFile”].ReadOnly = true; //m_SingletonForm.dataGridView1.Rows[row.Index].Cells[“SendFile”].Style.BackColor = Color.Red; //m_SingletonForm.dataGridView1.Rows[row.Index].Cells[“SendFile”].ReadOnly = true; //m_SingletonForm.dataGridView1[“SendFile”, row.Index].ReadOnly = true; //m_SingletonForm.dataGridView1[“SendFile”, row.Index].Style.BackColor = Color.Red; […]

删除gridview选择器列

我确信这个问题的答案非常明显,但对于我的生活,我无法弄清楚如何从默认的winforms gridview中删除“selector”列。 (红色箭头指向的列)。 我已尝试以编程方式删除列gridview.Columns[0].Remove 。删除,但刚刚删除了我的第一个数据列。 它也没有出现在“列集”中,而且我玩过所有看似有希望的设置。 谢谢您的帮助!

如何使用TableAdapter进行更新?

我正在WindowsApplication编写一个使用数据库的程序。 我用DataGridView显示数据库值。 目前,我希望有可能通过DataGridView更新数据库,因此我编写了这段代码: private void MainForm_Load(object sender, EventArgs e) { // TODO: This line of code loads data into the ‘databaseDataSet1.products’ table. You can move, or remove it, as needed. this.productsTableAdapter1.Fill(this.databaseDataSet1.products); } private void upButton1_Click(object sender, EventArgs e) { this.productsTableAdapter1.Update(this.databaseDataSet1.products); MessageBox.Show(“הנתונים עודכנו בהצלחה!”); } 问题是没有将值更新到数据库中。 如果有人可以帮我解决这个问题,我会很高兴,甚至更好,解释如何使用DataGridView ,因为我没有在互联网上找到任何有用的东西。

保存dataGridView中的更改

我有C#Window Forms项目和MySQL ODBC连接器到localhost服务器具有所有权限。 我还成功用数据填充dataGridView,但我所做的更改不会存储回数据库。 如何创建保存按钮?

DataGridView绑定问题:“索引-1没有值。”

我有一个datagridview绑定到绑定源和窗体上的几个按钮。 一个按钮将一个项目添加到绑定源,另一个按钮删除当前选定的项目。 还有一个事件处理程序,它侦听CurrentChanged事件并更新“删除”按钮的“已启用”状态。 在我从datagridview中删除最后一项之前,所有东西都是笨拙的。 然后我看到一个非常丑陋的例外: at System.Windows.Forms.CurrencyManager.get_Item(Int32 index) at System.Windows.Forms.CurrencyManager.get_Current() at System.Windows.Forms.DataGridView.DataGridViewDataConnection.OnRowEnter(DataGridViewCellEventArgs e) at System.Windows.Forms.DataGridView.OnRowEnter(DataGridViewCell& dataGridViewCell, Int32 columnIndex, Int32 rowIndex, Boolean canCreateNewRow, Boolean validationFailureOccurred) at System.Windows.Forms.DataGridView.SetCurrentCellAddressCore(Int32 columnIndex, Int32 rowIndex, Boolean setAnchorCellAddress, Boolean validateCurrentCell, Boolean throughMouseClick) at System.Windows.Forms.DataGridView.SetAndSelectCurrentCellAddress(Int32 columnIndex, Int32 rowIndex, Boolean setAnchorCellAddress, Boolean validateCurrentCell, Boolean throughMouseClick, Boolean clearSelection, Boolean forceCurrentCellSelection)\r\n at System.Windows.Forms.DataGridView.MakeFirstDisplayedCellCurrentCell(Boolean includeNewRow) at System.Windows.Forms.DataGridView.OnEnter(EventArgs […]

Winform Datagridview处理选项卡和箭头键

我想处理DataGridView单元格上的KeyDown事件。 我使用以下代码获取单元格上的KeyDown事件: private void dgvData_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { var tb = (DataGridViewTextBoxEditingControl)e.Control; tb.KeyDown += cell_KeyDown; } 但看起来我无法处理像tab和箭头这样的特殊键。 这些键不会转到我的cell_KeyDown方法。 所以我尝试在DataGridView的KeyDown事件中处理它们: private void dgvData_KeyDown(object sender, KeyEventArgs e) { // handle keys } 在那种情况下,我仍然无法捕获Tab键。 我可以捕获箭头键,但是,在处理我的自定义事件后,它仍然会通过箭头转到其他单元格。 我想留在牢房里。 然后我像这样扩展DataGridView: class DataGridViewSp : DataGridView { protected override bool ProcessDialogKey(Keys keyData) { if (keyData == Keys.Tab) { //todo special handling return […]

如何在排序后在给定位置的bindingsource中添加一行? C#

我使用绑定源构建我的数据网格: SqlDataAdapter adapter = new SqlDataAdapter(Datenbank.cmd); dataSet1.Tables.Clear(); adapter.Fill(dataSet1, “Table”); bs = new BindingSource(); bs.DataSource = dataSet1.Tables[“Table”]; dataGridView1.DataSource = bs; 现在我对它进行排序: bs.Sort = “customer DESC”; 现在我想在0处添加新行 dataSet1.Tables[0].Rows.InsertAt(newRow, 0); 但是,它不会插入位置0 删除位置x的类似问题 – 这里解决了>>堆栈溢出问题 想到使用bs.insert(0,newRow)但它说外部对象无法添加到此列表中 如何在排序后在给定位置的bindingsource中添加一行?

获取已删除的DataGridView行的单元格值

我的datagridview itemDelete函数: this.dgv_items.RowsRemoved += this.dgv_items_itemDelete; private void dgv_items_itemDelete(object sender, DataGridViewRowsRemovedEventArgs e) { try { int row = e.RowIndex; string name = dgv_items.Rows[row].Cells[0].Value.ToString(); deleteFromDB(name); } catch (Exception) { } } 但是当我们到达此代码时,该行将被删除,这意味着dgv_items.Rows[row].Cells[0].Value获取该行的下一行的值。 我想获取已删除行的Cells[0]值,因此我也可以从数据库文件中删除该项目。 我怎样才能做到这一点?

C#DataGridView虚拟模式:启用排序

有没有办法在虚拟模式下对DataGridView进行排序? 我在此微软示例之后以虚拟模式实现了Gridview: http : //msdn.microsoft.com/de-de/library/ms171624.aspx 。 我也修改了示例,以便能够将数据写入数据库。 这很好,虚拟模式可以大大提高速度,但我的客户需要对列进行排序。 在搜索网页一段时间后,我找到了链接http://social.msdn.microsoft.com/forums/en-US/winformsdatacontrols/thread/25b3f7c3-95b6-4c49-802b-b5a2a62915ac ,但无法获取工作。 有人能指出如果有办法在虚拟模式下对列进行排序,如果是这样,我将如何做到这一点? 非常感谢提前!