Tag: datagridview

如何在编辑DataGridViewTextBoxColumn并按EnterKey后阻止进入下一行?

我正在使用DataGridViews编写程序。 在一个DatagridView有一个DataGridViewTextBoxColumn ,可以由用户编辑。 当用户完成键入数字时,他按下键盘上的ENTER。 现在DataGridView完成所有Events ,在所有Events ,最后一件事就是问题。 一切都完成了,Windows将选择下一个DataGridViewRow ,我无法阻止这一点。 我试过了 if (e.KeyData == Keys.Enter) e.SuppressKeyPress = true; // or e.Handled 在我发现的几乎所有事件中。 遗憾的是,当DataGridViewTextBoxColumn未处于编辑模式时,我只能阻止ENTER键。 在编辑中,我的方法是找到ENTER 添加事件 private void dgr_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { e.Control.KeyPress += new KeyPressEventHandler(dgr_KeyPress_NumericTester); } 这是仅接受数字输入的事件。 private void dgr_KeyPress_NumericTester(object sender, KeyPressEventArgs e) { if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8) e.Handled = true; } 详细解释: […]

如何使用Entity Framework以DataGridView可编辑和上下文跟踪更改的方式过滤数据?

我正在使用C#Windows Form Application使用以下代码使用Entity Framework(EFWinForms)从sql server数据库表填充数据: MyEntityDataModel db = new MyEntityDataModel(); MyEDS = new EntityDataSource(); MyEDS.DbContext = db; MyDataGridView.DataSource = MyEDS; MyDataGridView.DataMember = “MyTable”; 它工作正常。 用户编辑时,添加数据; 可以使用以下代码保存数据: MyEDS.SaveChanges(); 我想要一种通过实体数据源过滤这些数据的方法,以便MyDataGridView保持可编辑状态,用户在过滤数据中完成的任何更新仍然可以保存回数据库。 注意:当使用linq to entity过滤数据时,它工作得很好,但它只是填充了用户无法再次编辑或更新的数据快照。

在datagridview中显示Yes / NO而不是True / False

在显示数据库表的内容的表单中有datagridview,表类型的一列是布尔值,因此在datagridview中显示true / false,但我想自定义它以显示是/否。 你建议哪种方式?

带按钮控件的DataGridView – 删除行

我想在DataGridView的每一行的末尾有一个删除按钮,然后单击我要从绑定列表中删除所需的行,该列是我的网格的数据源。 但我似乎无法做到这一点我在产品类中创建了一个按钮对象,并使用唯一的id实例化它以从列表中删除该对象。 但按钮没有显示在行中。 表单中有TextBox,用户可以输入文本,当他们按下Add按钮时,产品的新对象将使用提供的字段进行实例化,然后将其添加到BindingList 。 最后,此列表绑定到DataGridView并在网格中显示详细信息。 (我已经完成了这一部分)。 最后,通过单击“保存”按钮,列表将保存在数据库中。 public class Product{ public string Brand { get; set; } public int ProductPrice { get; set; } public int Quantity { get; set; } public product(string brand,int productPrice, int quantity){ this.Brand = brand; this.ProductPrice = productPrice; this.Quantity = quantity; } } public partial class MainForm: Form{ ….. […]

为什么我的绑定DataGridView抛出“操作无效,因为它导致对SetCurrentCellAddressCore函数的可重入调用”错误?

将DataGridView控件绑定到绑定源时,我在应用程序中收到以下错误: 操作无效,因为它导致对SetCurrentCellAddressCore函数的可重入调用 绑定源取决于数据表。 我正在从DataGridView过滤记录。 我使用了dataGridView1_CellValueChanged()事件,我正在过滤DataGridView。 但是当我从当前单元格中删除数据时,会发生此错误。 我该如何解决这个问题?

DataGridViewComboBoxColumn向每一行添加不同的项目。

我正在使用DataGridView构建一个表,用户可以从每个单元格的下拉列表中选择项目。 为简化问题,假设我有1列。 我在设计器中使用DataGridViewComboBoxColumn。 我试图支持让该列中的每一行都有不同的项目列表供您选择。 这可能吗?

如何使用C#清除DataGridView中的行?

此行中出现以下错误。 datagridview1.Rows.Clear() 但这一行给出了错误: 无法清除此列表。

Winform DataGridView数据绑定到复杂类型/嵌套属性

我试图将DataGridView数据绑定到包含具有以下结构的类的列表: MyClass.SubClass.Property 当我单步执行代码时,从不请求SubClass 。 我没有得到任何错误,只是没有看到任何数据。 请注意,我可以在具有相同层次结构的编辑表单中进行数据绑定。

如何在没有任何数据源的情况下从DataGridView创建DataTable?

我想从DataGridView获取Grid值的DataTable。 换句话说,DataTable与DataGridView值相同

在列中的DataGridView中搜索值

我希望用户能够在DataGridView(dgv)的列中搜索数字。 dgv可以保存很多记录。 每条记录都有一个项目编号。 所以我希望用户能够在项目编号列中搜索项目编号。 我的列是:ProjectID(不可见); 图像(无headertext); 项目编号; 项目名; 公司; 联系。 这是我的代码: private void btnSearch_Click(object sender, EventArgs e) { string searchValue = textBox1.Text; int rowIndex = -1; dgvProjects.SelectionMode = DataGridViewSelectionMode.FullRowSelect; try { foreach (DataGridViewRow row in dgvProjects.Rows) { if (row.Cells[row.Index].Value.ToString().Equals(searchValue)) { rowIndex = row.Index; dgvProjects.Rows[row.Index].Selected = true; break; } } } catch (Exception exc) { MessageBox.Show(exc.Message); […]