bool IsOverCheckBox(int r, int c, MouseEventArgs e)
        {
            GridStyleInfo        style    = grid.Model[r, c];
            GridCellRendererBase renderer = grid.CellRenderers[style.CellType];

            renderer.PerformLayout(r, c, style, grid.RangeInfoToRectangle(GridRangeInfo.Cell(r, c)));
            if (renderer.RaiseHitTest(r, c, e, null) == GridHitTestContext.CheckBoxChecker)
            {
                return(true);
            }

            return(false);
        }
Esempio n. 2
0
        private void gridGroupingControl1_TableControlCellClick(object sender, GridTableControlCellClickEventArgs e)
        {
            GridTableCellStyleInfo         style = (GridTableCellStyleInfo)e.TableControl.Model[e.Inner.RowIndex, e.Inner.ColIndex];
            GridTableCellStyleInfoIdentity id    = style.TableCellIdentity;

            if (id.TableCellType == GridTableCellType.ColumnHeaderCell
                )
            {
                // Workaround - gridGroupingControl1_TableControlCellButtonClicked does not get hit so
                // we'll check for the area where the button is and set e.Inner.Cancel = true
                GridCellRendererBase r = e.TableControl.CellRenderers[style.CellType];
                r.PerformLayout(e.Inner.RowIndex, e.Inner.ColIndex, style, e.TableControl.RangeInfoToRectangle(GridRangeInfo.Cell(e.Inner.RowIndex, e.Inner.ColIndex)));
                if (r.RaiseHitTest(e.Inner.RowIndex, e.Inner.ColIndex, e.Inner.MouseEventArgs, null) == GridHitTestContext.CellButtonElement)
                {
                    string column = (id.Column != null) ? id.Column.ToString() : "";
                    string s      = "Clicked on " + id.TableCellType.ToString() + "(" + column + ", " + id.DisplayElement.GetType().Name + ")";

                    MessageBox.Show(s);
                    e.Inner.Cancel = true;
                }
            }
        }