private void c1FlexGrid1_BeforeMouseDown(object sender, BeforeMouseDownEventArgs e) { if (c1FlexGrid1.HitTest().Type == HitTestTypeEnum.Checkbox) { if (cRange.r1 != cRange.r2) { int col, row; col = c1FlexGrid1.HitTest(e.X, e.Y).Column; row = c1FlexGrid1.HitTest(e.X, e.Y).Row; //Cancel the default mouse down action e.Cancel = true; C1.Win.C1FlexGrid.CheckEnum chValue = c1FlexGrid1.GetCellCheck(row, col); List <DataRowView> drList = new List <DataRowView>(); for (int i = cRange.r1; i <= cRange.r2; i++) { drList.Add(c1FlexGrid1.Rows[i].DataSource as DataRowView); } foreach (DataRowView dr in drList) { switch (chValue) { case C1.Win.C1FlexGrid.CheckEnum.Checked: case C1.Win.C1FlexGrid.CheckEnum.TSChecked: dr["chon"] = false; break; case C1.Win.C1FlexGrid.CheckEnum.Unchecked: case C1.Win.C1FlexGrid.CheckEnum.TSUnchecked: dr["chon"] = true; break; } } } } }
// ** overrides // get data for display (evaluates formulas) public override string GetDataDisplay(int row, int col, out System.Drawing.Image img, out C1.Win.C1FlexGrid.CheckEnum chk) { // no image, no checkbox img = null; chk = C1.Win.C1FlexGrid.CheckEnum.None; // get raw value object val = null; try { val = Evaluate(row, col); } catch (Exception x) { val = "ERR: " + x.Message; } // apply cell format var ifmt = val as IFormattable; if (ifmt != null) { var s = GetCellStyleDisplay(row, col); var fmt = !string.IsNullOrEmpty(s.Format) ? s.Format : "#,##0.#########"; // set default precision to 9 digits val = ifmt.ToString(fmt, CultureInfo.CurrentCulture); } else { // remove leading quotes (as Excel) var text = val as string; if (!string.IsNullOrEmpty(text) && text[0] == '\'') { val = text.Substring(1); } } // done return(val != null?val.ToString() : null); }