private static void dataGridView_KeyDown(object sender, KeyEventArgs e) { DevExpress.XtraGrid.Views.Grid.GridView dataGridView = sender as DevExpress.XtraGrid.Views.Grid.GridView; if (e.KeyCode == Keys.Enter) { if (dataGridView != null && dataGridView.SelectedRowsCount > 0) { if (dataGridView.Tag == null || !(dataGridView.Tag is EventHandler)) { return; } EventHandler eventHandle = dataGridView.Tag as EventHandler; if (eventHandle != null) { //if (multiSelect) //{ // //List<int> selectedIndexes = new List<int>(); // //foreach (DataGridViewCell cell in dataGridView.SelectedCells) // //{ // // selectedIndexes.Add(_showListItems[cell.RowIndex].Index); // //} // //selectedIndexes.Reverse(); // //eventHandle(selectedIndexes.ToArray(), null); //} //else { eventHandle(dataGridView.GetDataRow(dataGridView.GetSelectedRows()[0]), null); } } dataGridView.KeyPress -= dataGridView_KeyPress; dataGridView.KeyDown -= dataGridView_KeyDown; if (dataGridView.GridControl.Parent != null && dataGridView.GridControl.Parent is DevExpress.XtraEditors.XtraForm) { (dataGridView.GridControl.Parent as DevExpress.XtraEditors.XtraForm).Close(); } //dataGridView.GridControl.Dispose(); dataGridView.Dispose(); } } else if (e.KeyCode == Keys.Escape) { dataGridView.KeyPress -= dataGridView_KeyPress; dataGridView.KeyDown -= dataGridView_KeyDown; if (dataGridView.GridControl.Parent != null && dataGridView.GridControl.Parent is DevExpress.XtraEditors.XtraForm) { (dataGridView.GridControl.Parent as DevExpress.XtraEditors.XtraForm).Close(); } dataGridView.GridControl.Dispose(); dataGridView.Dispose(); if (_callControl != null) { _callControl.Focus(); } } }
/// <summary> /// Clean up any resources being used. /// </summary> protected override void Dispose(bool disposing) { if (disposing) { if (components != null) { components.Dispose(); } if (gridView1 != null) { gridView1.Dispose(); gridView1 = null; } if (colCompanyName != null) { colCompanyName.Dispose(); colCompanyName = null; } } base.Dispose(disposing); }
private static void ShowDevGridView(DataTable dataTable, string displayName, Control parent, Point point, Size size, EventHandler eventHandle, bool multiSelect, bool autoCalPoint, DataGridViewCellPaintingEventHandler cellPaintingEventHandle, ContextMenuForm contextMenuForm) { _callControl = parent; DevExpress.XtraGrid.GridControl gridControl = new DevExpress.XtraGrid.GridControl(); DevExpress.XtraGrid.Views.Grid.GridView dataGridView = new DevExpress.XtraGrid.Views.Grid.GridView(); gridControl.MainView = dataGridView; dataGridView.OptionsView.ShowColumnHeaders = false; dataGridView.OptionsView.ShowGroupPanel = false; dataGridView.OptionsView.ShowIndicator = false; //dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; //dataGridView.ColumnHeadersHeight = 18; //dataGridView.BackgroundColor = dataGridView.DefaultCellStyle.BackColor; //dataGridView.CellPainting += cellPaintingEventHandle; //dataGridView.CellPainting += new DataGridViewCellPaintingEventHandler(dataGridView_CellPainting); //dataGridView.GridColor = dataGridView.BackgroundColor; dataGridView.KeyPress += new KeyPressEventHandler(dataGridView_KeyPress); dataGridView.OptionsBehavior.ReadOnly = true; dataGridView.Tag = eventHandle; //DevExpress.XtraGrid.Columns.GridColumn column = dataGridView.Columns.Add(); //column.FieldName = //"字典选择器", "字典选择器"); //dataGridView.AllowUserToResizeRows = false; //dataGridView.AllowUserToResizeColumns = false; //dataGridView.ScrollBars = ScrollBars.Vertical; //dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //dataGridView.Cursor = Cursors.Hand; string[] displayNames = null; string ddd = displayName; if (displayName != null) { displayNames = displayName.Split(new char[] { ',', ';' }); for (int i = 0; i < displayNames.Length; i++) { DevExpress.XtraGrid.Columns.GridColumn column = dataGridView.Columns.Add(); column.FieldName = displayNames[i]; column.OptionsColumn.AllowEdit = false; column.OptionsFilter.AllowAutoFilter = false; column.OptionsFilter.AllowFilter = false; column.Visible = true; column.VisibleIndex = 0; if (i == 0) { ddd = displayNames[i]; } } } _displayNames = displayNames; SetDataGridViewList(dataGridView, TransTable(dataTable, ddd)); //dataGridView.Resize += new EventHandler(delegate(object sender1, EventArgs e1) //{ // for (int i = 0; i < dataGridView.Columns.Count - 1; i++) // { // dataGridView.Columns[i].Width = 120; // } // int width = dataGridView.Width - 120 * (dataGridView.Columns.Count - 1); // if (width < 1) // { // dataGridView.Columns[dataGridView.Columns.Count - 1].Visible = false; // } // else // { // dataGridView.Columns[dataGridView.Columns.Count - 1].Width = width; // } //}); //dataGridView.CellDoubleClick += new DataGridViewCellEventHandler(delegate(object sender, DataGridViewCellEventArgs e) //{ // if (dataGridView.CurrentRow != null && dataGridView.CurrentRow.Index >= 0) // { // if (eventHandle != null) // { // if (multiSelect) // { // List<int> selectedIndexes = new List<int>(); // foreach (DataGridViewCell cell in dataGridView.SelectedCells) // { // selectedIndexes.Add(_showListItems[cell.RowIndex].Index); // } // selectedIndexes.Reverse(); // eventHandle(selectedIndexes.ToArray(), null); // if (dataGridView.Parent != null && dataGridView.Parent is DevExpress.XtraEditors.XtraForm) // { // (dataGridView.Parent as DevExpress.XtraEditors.XtraForm).Close(); // } // dataGridView.Dispose(); // } // } // } //}); dataGridView.KeyDown += new KeyEventHandler(dataGridView_KeyDown); if (!multiSelect) { //dataGridView.MouseMove += new MouseEventHandler(delegate(object sender, MouseEventArgs e) //{ // int rowIndex = dataGridView.get .HitTest(e.X, e.Y).RowIndex; // if (rowIndex >= 0) // { // dataGridView.CurrentCell = dataGridView.Rows[rowIndex].Cells[0]; // } //}); //dataGridView.CellClick += new DataGridViewCellEventHandler(delegate(object sender, DataGridViewCellEventArgs e) dataGridView.RowCellClick += new DevExpress.XtraGrid.Views.Grid.RowCellClickEventHandler(delegate(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) { if (eventHandle != null) { eventHandle(dataGridView.GetDataRow(e.RowHandle), e); } try { if (gridControl.Parent != null && gridControl.Parent is DevExpress.XtraEditors.XtraForm) { (gridControl.Parent as DevExpress.XtraEditors.XtraForm).Close(); } dataGridView.Dispose(); gridControl.Dispose(); } catch { } }); } if (size.Width < 100) { size.Width = 100; } //dataGridView.CellMouseDown += new DataGridViewCellMouseEventHandler(dataGridView_CellMouseDown); //dataGridView.CellMouseMove += new DataGridViewCellMouseEventHandler(dataGridView_CellMouseMove); //dataGridView.CellMouseUp += new DataGridViewCellMouseEventHandler(dataGridView_CellMouseUp); DevExpress.XtraEditors.XtraForm form = new DevExpress.XtraEditors.XtraForm(); form.TopMost = true; form.StartPosition = FormStartPosition.Manual; form.Location = parent.PointToScreen(point); form.Size = size; if (parent != null && !(parent is DataGridView)) { form.Width = parent.Width; } form.Controls.Add(gridControl); gridControl.Dock = DockStyle.Fill; form.Deactivate += new EventHandler(form_Deactivate); form.FormBorderStyle = FormBorderStyle.None; if (form.Bottom > Screen.PrimaryScreen.Bounds.Height) { if (form.Top >= form.Height) { form.Top -= form.Height; } else { form.Top = 0; } } form.Width = size.Width; form.Show(); }