Tag: datagridview

在子窗体关闭后更新DataGridView

我知道很多类似的问题都在那里。 但是,我对C#真的很陌生,所以无法弄清楚如何解决这个问题。 我在主窗体上有一个DataGridView ,我有一个对话框来添加新记录。 所以,我想要的是在对话框关闭时重新加载/刷新主窗体上的DataGridView 。 (按对话框上的“ 保存”按钮)。 所以,我在这个主窗体上有一个公共方法,我使用这个方法加载数据: public void UpdateProductsList() { String query = “SELECT * FROM product”; con = new SqlConnection(conString); con.Open(); SqlDataAdapter sda = new SqlDataAdapter(query, con); DataTable dt = new DataTable(); sda.Fill(dt); dataGridView1.DataSource = dt; } 我使用此代码打开子表单: private void AddProductButton_Click(object sender, EventArgs e) { Add_product obj = new Add_product(); obj.ShowDialog(); […]

如何比较dataGridView中的2行并突出显示不同的单元格?

如何比较dataGridView中的两个选定行? 1.-我需要知道如何检测两个选定的行2.-比较两个选定的行3.-突出显示差异“单元格” 我试过这个但不幸的是我迷路了…… DataTable src1 = dataGridView1.DataSource as DataTable; //THIS IS PROBABLY NOT NEEDED DataTable src2 = dataGridView1.DataSource as DataTable; int index1 = 0; for (int i = 0; i < src1.Rows.Count; i++) { var row1 = src1.Rows[i].ItemArray; var row2 = src2.Rows[i].ItemArray; for (int j = 0; j < row1.Length; j++) { if (!row1[j].ToString().Equals(row2[j].ToString())) { […]

DataGridView – 父级到子级数据库关系 – 更新子级DataGridView数据

有人会帮助我以下吗? 我有两个DataGridView对象,每个对象都显示一个DataTable,其中两个数据表与以下代码相关: DataSet dSet = new DataSet(); DataTable ParentList = ListToDataTable(_listOfAllAlbumObjects); DataTable ChildList = ListToDataTable(_listOfAllTrackObjects); dSet.Tables.AddRange(new DataTable[]{ParentList, ChildList}); DataColumn parentRelationColumn = ParentList.Columns[“AlbumId”]; DataColumn childRelationColumn = ChildList.Columns[“AlbumId”]; dSet.Relations.Add(“ParentToChild”, parentRelationColumn, childRelationColumn); ParentDataGridView.DataSource = dSet; ParentDataGridView.DataMember = “ParentList”; ChildDataGridView.DataSource = ???; ChildDataGridView.DataMember = “ParentToChild”; 两个DataTable实际上是List 转换为DataTables,具有以下内容:` public static DataTable ListToDataTable( IList data) { var props = TypeDescriptor.GetProperties(typeof(T)); var […]

复制并粘贴到DataGridView单元格(C#)

我需要能够从一个应用程序复制一个或多个名称(使用普通的复制命令),然后能够双击DataGridView中的文本单元格将数据粘贴到网格单元格中。 有关如何实现这一目标的任何想法? 我试图最小化键盘使用此function。

如何控制DataGridView中绑定到CustomObject的列类型?

我在C#WinForms应用程序中有一个DataGridView,它在运行时是DataBound(通过Form_Load)到自定义对象。 在DataGridView的设计视图中,我没有设置列。 当Form加载时,将根据DataBound所在的Custom对象中的数据自动创建列。 我的问题是如何控制自动创建的列。 例如,如果我希望其中一列是DataGridViewLinkColumn而不是自动创建的DataGridViewTextBoxColumn?

DataGridView列数据到数组

是否可以将所有数据从DataGridView列传输到string[] array ? 到目前为止,这是我的代码,遗憾的是,它无法将DataGridViewRow转换为int foreach (DataGridViewRow dgvrows in dgvDetail.Rows) { array[dgvrows] = dgvDetail.Rows[dgvrows].Cell[3].value.ToString().Trim; }

Datagridview上的ComboBoxColumn中的“SelectedIndexChanged”事件

我想在DataGridViewComboBoxColumn上处理此事件“SelectedIndexChanged”,并将其设置在gridview的“EditingControlShowing”事件中。 问题:首次尝试从comboBox中选择一个项目时,不会触发“SelectedIndexChanged”事件,但是在第二次选择该项目后,事件被触发,一切正常! 这是代码: private void dgvRequest_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { ComboBox combo = e.Control as ComboBox; if (combo != null) { if (dgvRequest.CurrentCell.ColumnIndex == col_ConfirmCmb.Index) { combo.SelectedIndexChanged -= combo_ConfirmSelectionChange; combo.SelectedIndexChanged += combo_ConfirmSelectionChange; return; } } } void combo_ConfirmSelectionChange(object sender, EventArgs e) { if (dgvRequest.CurrentCell.ColumnIndex != col_ConfirmCmb.Index) return; ComboBox combo = sender as ComboBox; if (combo […]

如何识别DataGridView中hover的特定单元格

我在所有datagridview行的末尾放了一张图片,以便在按下时删除行。 我想在特定的单元格鼠标hover上更改该图片的颜色(为了表明它是用户的交互式按钮)。 然而,在所有解决方案中,我发现完整的DGV鼠标hover已被删除。 我需要的是:了解如何找到在细胞鼠标hover期间hover的特定细胞 。

禁用DataGridView系统ContextMenu

当用户右键单击DataGridViewTextBoxCell时,是否有人知道如何禁用系统上下文菜单? 我试图在DataGridView级别覆盖WndProc(因为没有WndProc在Cell级别上覆盖),但似乎没有任何效果。 任何帮助将不胜感激。 以下是我在常规TextBox中实现此目的的方法,但是,我需要以相同的方式为DataGridViewCell工作吗? public class NoContextTextBox : TextBox { private static readonly int WM_CONTEXTMENU = 123; protected override void WndProc(ref Message m) { if (m.Msg != WM_CONTEXTMENU) { base.WndProc(ref m); } } }

如何同步Database和DataGridView

我一直在尝试通过DataGridView同步数据库。 到目前为止,我已经创建了一个数据模型类。 此类包含与数据库匹配的多个属性。 它们使用System.Data.Linq.Mapping命名空间中的[Table]和[Column]属性进行映射。 好。 所以我使用DataSource -Property将DataGridView绑定到连接到数据库(MSSQL)的DataContext 。 这个逻辑是在单例类中实现的,所以我可以保证这个DataContext有一个实例。 this.m_context = new DataContext(conn); this.m_VisitorTable = m_context.GetTable(); 好吧,如果我将表绑定到DataGridView.DataSource我可以看到数据库中的所有条目都已加载并正确显示。 然后,如果我改变了一些东西,我发现自己面临同步问题。 更改的单元格在数据库端没有更改。 为了保存更改,我实现了这个方法: public void SaveChanges() { try { // I have no idea what I’m doing here. VisitorLogic.Instance.m_VisitorTable.Context.SubmitChanges(System.Data.Linq.ConflictMode.Con // I’m also trying to see if changes were made so I can save them before closing. this.m_bChangesMade = […]