private void AddField(DataGridViewColumn column, QueryConditionItem condition = null) { foreach (DataGridViewRow row in this.dgvFilter.Rows) { if (row.Cells["ColumnName"].Value.ToString() == column.Name) { return; } } int rowIndex = this.dgvFilter.Rows.Add(column.Name); this.dgvFilter.Rows[rowIndex].Tag = condition; if (condition != null) { this.dgvFilter.Rows[rowIndex].Cells["Filter"].Value = condition.ToString(); } }
private void dgvFilter_CellClick(object sender, DataGridViewCellEventArgs e) { DataGridViewColumn column = this.dgvFilter.Columns[e.ColumnIndex]; if (column.Name == "Filter" && e.RowIndex > -1 && e.ColumnIndex > -1) { string columnName = this.dgvFilter.Rows[e.RowIndex].Cells["ColumnName"].Value.ToString(); frmDataFilterCondition filterCondition = new frmDataFilterCondition() { Column = this.Columns.FirstOrDefault(item => item.Name == columnName) }; filterCondition.Condition = this.dgvFilter.Rows[e.RowIndex].Tag as QueryConditionItem; if (filterCondition.ShowDialog() == DialogResult.OK) { QueryConditionItem condition = filterCondition.Condition; this.dgvFilter.Rows[e.RowIndex].Tag = condition; this.dgvFilter.Rows[e.RowIndex].Cells["Filter"].Value = condition.ToString(); } } }