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;
 }
Пример #2
0
 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;
                            }
                        }
                    }
                }
            }
        }
Пример #4
0
    /// <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;
                            }
                        }
                    }
                }
            }
        }