public DataGridViewColumnDividerDoubleClickEventArgs(int columnIndex, HandledMouseEventArgs e) : base(e.Button, e.Clicks, e.X, e.Y, e.Delta, e.Handled) { if (columnIndex < -1) { throw new ArgumentOutOfRangeException("columnIndex"); } this.columnIndex = columnIndex; }
protected override void OnMouseWheel(MouseEventArgs e) { if (this.Parent != null) { this.Parent.Focus(); } System.Windows.Forms.HandledMouseEventArgs hme = (System.Windows.Forms.HandledMouseEventArgs)e; hme.Handled = true; }
/// <include file='doc\DataGridView.uex' path='docs/doc[@for="DataGridView.OnMouseDoubleClick"]/*' /> protected override void OnMouseDoubleClick(MouseEventArgs e) { base.OnMouseDoubleClick(e); if (!this.dataGridViewState2[DATAGRIDVIEWSTATE2_messageFromEditingCtrls] && !this.dataGridViewOper[DATAGRIDVIEWOPER_trackColResize] && !this.dataGridViewOper[DATAGRIDVIEWOPER_trackRowResize] && !this.dataGridViewOper[DATAGRIDVIEWOPER_trackColHeadersResize] && !this.dataGridViewOper[DATAGRIDVIEWOPER_trackRowHeadersResize]) { HitTestInfo hti = HitTest(e.X, e.Y); if (this.ptMouseDownCell.X == hti.col && this.ptMouseDownCell.Y == hti.row) { DataGridViewCellMouseEventArgs dgvcme = null; if (hti.Type != DataGridViewHitTestType.None && hti.Type != DataGridViewHitTestType.HorizontalScrollBar && hti.Type != DataGridViewHitTestType.VerticalScrollBar) { int mouseX = e.X - hti.ColumnX; if (this.RightToLeftInternal) { mouseX += ((hti.col == -1) ? this.RowHeadersWidth : this.Columns[hti.col].Thickness); } dgvcme = new DataGridViewCellMouseEventArgs(hti.col, hti.row, mouseX, e.Y - hti.RowY, e); OnCellMouseDoubleClick(dgvcme); } if (!this.dataGridViewOper[DATAGRIDVIEWOPER_trackColRelocation]) { switch (hti.typeInternal) { case DataGridViewHitTestTypeInternal.ColumnHeader: case DataGridViewHitTestTypeInternal.ColumnHeaderLeft: case DataGridViewHitTestTypeInternal.ColumnHeaderRight: case DataGridViewHitTestTypeInternal.FirstColumnHeaderLeft: { Debug.Assert(dgvcme != null); if (dgvcme.ColumnIndex < this.Columns.Count && dgvcme.RowIndex < this.Rows.Count) { OnColumnHeaderMouseDoubleClick(dgvcme); } break; } case DataGridViewHitTestTypeInternal.ColumnResizeLeft: case DataGridViewHitTestTypeInternal.ColumnResizeRight: { int columnIndex = (hti.typeInternal == DataGridViewHitTestTypeInternal.ColumnResizeRight) ? hti.col : hti.adjacentCol; if (columnIndex < this.Columns.Count) { HandledMouseEventArgs hme = new HandledMouseEventArgs(e.Button, e.Clicks, e.X, e.Y, e.Delta, false /*defaultHandledValue*/); DataGridViewColumnDividerDoubleClickEventArgs dgvcddce = new DataGridViewColumnDividerDoubleClickEventArgs(columnIndex, hme); Debug.Assert(this.Columns[columnIndex].Resizable == DataGridViewTriState.True); OnColumnDividerDoubleClick(dgvcddce); } break; } case DataGridViewHitTestTypeInternal.TopLeftHeaderResizeTop: case DataGridViewHitTestTypeInternal.TopLeftHeaderResizeBottom: case DataGridViewHitTestTypeInternal.ColumnHeadersResizeTop: case DataGridViewHitTestTypeInternal.ColumnHeadersResizeBottom: { HandledMouseEventArgs hme = new HandledMouseEventArgs(e.Button, e.Clicks, e.X, e.Y, e.Delta, false /*defaultHandledValue*/); DataGridViewRowDividerDoubleClickEventArgs dgvrddce = new DataGridViewRowDividerDoubleClickEventArgs(-1, hme); Debug.Assert(this.columnHeadersHeightSizeMode == DataGridViewColumnHeadersHeightSizeMode.EnableResizing); OnRowDividerDoubleClick(dgvrddce); break; } case DataGridViewHitTestTypeInternal.RowHeader: { Debug.Assert(dgvcme != null); if (dgvcme.ColumnIndex < this.Columns.Count && dgvcme.RowIndex < this.Rows.Count) { OnRowHeaderMouseDoubleClick(dgvcme); } break; } case DataGridViewHitTestTypeInternal.RowResizeBottom: case DataGridViewHitTestTypeInternal.RowResizeTop: { int rowIndex = (hti.typeInternal == DataGridViewHitTestTypeInternal.RowResizeBottom) ? hti.row : hti.adjacentRow; if (rowIndex < this.Rows.Count) { HandledMouseEventArgs hme = new HandledMouseEventArgs(e.Button, e.Clicks, e.X, e.Y, e.Delta, false /*defaultHandledValue*/); DataGridViewRowDividerDoubleClickEventArgs dgvrddce = new DataGridViewRowDividerDoubleClickEventArgs(rowIndex, hme); Debug.Assert(this.Rows[rowIndex].Resizable == DataGridViewTriState.True); OnRowDividerDoubleClick(dgvrddce); } break; } case DataGridViewHitTestTypeInternal.TopLeftHeaderResizeLeft: case DataGridViewHitTestTypeInternal.TopLeftHeaderResizeRight: case DataGridViewHitTestTypeInternal.RowHeadersResizeLeft: case DataGridViewHitTestTypeInternal.RowHeadersResizeRight: { HandledMouseEventArgs hme = new HandledMouseEventArgs(e.Button, e.Clicks, e.X, e.Y, e.Delta, false /*defaultHandledValue*/); DataGridViewColumnDividerDoubleClickEventArgs dgvcddce = new DataGridViewColumnDividerDoubleClickEventArgs(-1, hme); Debug.Assert(this.rowHeadersWidthSizeMode == DataGridViewRowHeadersWidthSizeMode.EnableResizing); OnColumnDividerDoubleClick(dgvcddce); break; } } } } } }
/// <summary> /// Implements the observer pattern for the mouse down event, /// communicating the event to all listeners implementing the /// necessary interface. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The /// <see cref="T:System.Windows.Forms.MouseEventArgs"/> instance /// containing the event data.</param> protected virtual void OnSurfaceMouseDown( object sender, MouseEventArgs e) { #region Coordinates logic // Get a point adjusted by the current scroll position and zoom factor Point p = Point.Round( this.View.ViewToWorld(this.View.DeviceToView(e.Location))); HandledMouseEventArgs ce = new HandledMouseEventArgs( e.Button, e.Clicks, p.X, p.Y, e.Delta); #endregion if (eventsEnabled) RaiseOnMouseDown(ce); if (!controllerEnabled || ce.Handled) return; this.parentControl.Focus(); //(parentControl as Win.DiagramControl).toolTip.Show("Yihaaa", parentControl as Win.DiagramControl, ce.Location); //this selection process will work independently of the tools because //some tools need the current selection or hit entity //On the other hand, when drawing a simple rectangle for example the selection //should be off, so there is an overhead. //Selection.CollectEntitiesAt(e.Location); //raise the event to give the host the opportunity to show the properties of the selected item(s) //Note that if the selection is empty the property grid will show 'nothing'. RaiseOnShowSelectionProperties(new SelectionEventArgs(this.Model.Selection.SelectedItems.ToArray())); foreach (IMouseListener listener in mouseListeners) { if (listener.MouseDown(ce)) break; } }
protected override void OnMouseDoubleClick(MouseEventArgs e) { base.OnMouseDoubleClick(e); if (((!this.dataGridViewState2[0x8000000] && !this.dataGridViewOper[1]) && (!this.dataGridViewOper[2] && !this.dataGridViewOper[0x80])) && !this.dataGridViewOper[0x100]) { HitTestInfo info = this.HitTest(e.X, e.Y); if ((this.ptMouseDownCell.X == info.col) && (this.ptMouseDownCell.Y == info.row)) { DataGridViewCellMouseEventArgs args = null; if (((info.Type != DataGridViewHitTestType.None) && (info.Type != DataGridViewHitTestType.HorizontalScrollBar)) && (info.Type != DataGridViewHitTestType.VerticalScrollBar)) { int localX = e.X - info.ColumnX; if (this.RightToLeftInternal) { localX += (info.col == -1) ? this.RowHeadersWidth : this.Columns[info.col].Thickness; } args = new DataGridViewCellMouseEventArgs(info.col, info.row, localX, e.Y - info.RowY, e); this.OnCellMouseDoubleClick(args); } if (!this.dataGridViewOper[0x20]) { switch (info.typeInternal) { case DataGridViewHitTestTypeInternal.ColumnHeader: case DataGridViewHitTestTypeInternal.FirstColumnHeaderLeft: case DataGridViewHitTestTypeInternal.ColumnHeaderLeft: case DataGridViewHitTestTypeInternal.ColumnHeaderRight: if ((args.ColumnIndex < this.Columns.Count) && (args.RowIndex < this.Rows.Count)) { this.OnColumnHeaderMouseDoubleClick(args); } return; case DataGridViewHitTestTypeInternal.RowHeader: if ((args.ColumnIndex < this.Columns.Count) && (args.RowIndex < this.Rows.Count)) { this.OnRowHeaderMouseDoubleClick(args); } return; case DataGridViewHitTestTypeInternal.ColumnResizeLeft: case DataGridViewHitTestTypeInternal.ColumnResizeRight: { int columnIndex = (info.typeInternal == DataGridViewHitTestTypeInternal.ColumnResizeRight) ? info.col : info.adjacentCol; if (columnIndex < this.Columns.Count) { HandledMouseEventArgs args2 = new HandledMouseEventArgs(e.Button, e.Clicks, e.X, e.Y, e.Delta, false); DataGridViewColumnDividerDoubleClickEventArgs args3 = new DataGridViewColumnDividerDoubleClickEventArgs(columnIndex, args2); this.OnColumnDividerDoubleClick(args3); } return; } case DataGridViewHitTestTypeInternal.RowResizeTop: case DataGridViewHitTestTypeInternal.RowResizeBottom: { int rowIndex = (info.typeInternal == DataGridViewHitTestTypeInternal.RowResizeBottom) ? info.row : info.adjacentRow; if (rowIndex < this.Rows.Count) { HandledMouseEventArgs args6 = new HandledMouseEventArgs(e.Button, e.Clicks, e.X, e.Y, e.Delta, false); DataGridViewRowDividerDoubleClickEventArgs args7 = new DataGridViewRowDividerDoubleClickEventArgs(rowIndex, args6); this.OnRowDividerDoubleClick(args7); } return; } case DataGridViewHitTestTypeInternal.TopLeftHeader: return; case DataGridViewHitTestTypeInternal.TopLeftHeaderResizeLeft: case DataGridViewHitTestTypeInternal.TopLeftHeaderResizeRight: case DataGridViewHitTestTypeInternal.RowHeadersResizeRight: case DataGridViewHitTestTypeInternal.RowHeadersResizeLeft: { HandledMouseEventArgs args8 = new HandledMouseEventArgs(e.Button, e.Clicks, e.X, e.Y, e.Delta, false); DataGridViewColumnDividerDoubleClickEventArgs args9 = new DataGridViewColumnDividerDoubleClickEventArgs(-1, args8); this.OnColumnDividerDoubleClick(args9); return; } case DataGridViewHitTestTypeInternal.TopLeftHeaderResizeTop: case DataGridViewHitTestTypeInternal.TopLeftHeaderResizeBottom: case DataGridViewHitTestTypeInternal.ColumnHeadersResizeBottom: case DataGridViewHitTestTypeInternal.ColumnHeadersResizeTop: { HandledMouseEventArgs args4 = new HandledMouseEventArgs(e.Button, e.Clicks, e.X, e.Y, e.Delta, false); DataGridViewRowDividerDoubleClickEventArgs args5 = new DataGridViewRowDividerDoubleClickEventArgs(-1, args4); this.OnRowDividerDoubleClick(args5); return; } } } } } }