public void AddDgvTitle(string ColName, string HeaderText, int Width) { if (_Dgv.Columns.Contains(ColName)) { return; } DataGridViewColumn colitem = new DataGridViewTextBoxColumn(); colitem.Name = colitem.DataPropertyName = ColName; colitem.Width = Width; colitem.HeaderText = HeaderText; colitem.DisplayIndex = _Dgv.Columns.Count; colitem.ReadOnly = true; colitem.Frozen = false; _Dgv.Columns.Add(colitem); HeadColFilter var = HeadColList.Find(a => a.ColName == ColName); if (var == null) { HeadColList.Add(new HeadColFilter() { ColName = ColName, FilterStr = "" }); dgvFilterColHeadCell dgvheadercell = new dgvFilterColHeadCell(colitem.HeaderCell, ColFilterType.list.ToString()); dgvheadercell.AutomaticSortingEnabled = true; dgvheadercell.eventFilterEx += new dgvFilterColHeadCell.delegateFilterEx(dgvheadercell_eventFilterEx); colitem.HeaderCell = dgvheadercell; } }
private void dgvheadercell_eventFilterEx(string Filterstr, string ColName) { try { HeadColFilter var = HeadColList.Find(a => a.ColName == ColName); if (var != null) { string Filters = string.Empty; var.FilterStr = Filterstr; bool ta = true; foreach (HeadColFilter str in HeadColList) { if (!string.IsNullOrEmpty(str.FilterStr)) { if (ta) { Filters = str.FilterStr; ta = false; } else { Filters = Filters + " AND ( " + str.FilterStr + " )"; } } } dataSource.Filter = Filters; } } catch { dataSource.Filter = ""; } }
private void InitDgv() { _Dgv.AllowUserToAddRows = false; //禁止用户添加行; _Dgv.AllowUserToDeleteRows = false; //禁止用户删除行; _Dgv.AllowUserToOrderColumns = false; //允许用户拖动列顺序; _Dgv.EnableHeadersVisualStyles = false; //显示格式; _Dgv.AutoGenerateColumns = false; _Dgv.MultiSelect = false; _Dgv.RowHeadersWidth = 15; _Dgv.BorderStyle = BorderStyle.Fixed3D; _Dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing; _Dgv.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; _Dgv.CellMouseDown += new DataGridViewCellMouseEventHandler(dgv_CellMouseDown); _Dgv.CurrentCellDirtyStateChanged += new EventHandler(dgvSelectAll_CurrentCellDirtyStateChanged); _Dgv.DataSourceChanged += new EventHandler(dgv_DataSourceChanged); //新增在表头显示行数 _Dgv.RowPostPaint += _Dgv_RowPostPaint; System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle = new System.Windows.Forms.DataGridViewCellStyle(); dataGridViewCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; _Dgv.DefaultCellStyle = dataGridViewCellStyle; _Dgv.Columns.Clear(); { DataGridViewCheckBoxColumn col = new DataGridViewCheckBoxColumn(); col.Name = col.DataPropertyName = dgv_chk_tag; col.Width = 10; col.HeaderText = ""; col.DisplayIndex = 0; col.ReadOnly = false; col.Frozen = true; col.Visible = _IsCheckBox; col.SortMode = DataGridViewColumnSortMode.Automatic; _Dgv.Columns.Add(col); HeadColFilter var = HeadColList.Find(a => a.ColName == dgv_chk_tag); if (var == null) { HeadColList.Add(new HeadColFilter() { ColName = dgv_chk_tag, FilterStr = "" }); dgvFilterColHeadCell dgvheadercell = new dgvFilterColHeadCell(col.HeaderCell, ColFilterType.Check.ToString()); dgvheadercell.AutomaticSortingEnabled = true; dgvheadercell.eventFilterEx += new dgvFilterColHeadCell.delegateFilterEx(dgvheadercell_eventFilterEx); col.HeaderCell = dgvheadercell; } } }