如果带公式了,可以不可以做数字校验
如果带公式了,可以不可以做数字校验,如图。不好意思我没有理解您的需求,可否详细描述下 已经电话和你们沟通,你看一下如何解决。 这个可以在ValueChanged事件里去做,
gcSpreadSheet1.ValueChanged += GcSpreadSheet1_ValueChanged;
private void GcSpreadSheet1_ValueChanged(object sender, CellEventArgs e)
{
if (!string.IsNullOrEmpty(gcSpreadSheet1.ActiveSheet.Cells.Formula))
{
MessageBox.Show(e.Column.ToString());
}
} DataValidator NumberValidator = DataValidator.CreateNumberValidator(ComparisonOperator.Between, -999999999999, 999999999999, false);
if (col.ColumnType == ColumnType.Number)
{
cell.DataValidator = NumberValidator;
if (string.IsNullOrEmpty(cell.Text))
{
cell.Value = 0.0;
}
}
怎么让这个又校验公式,又校验数字
DataValidator 会验证这个单元格最终的Value,如果是公式,那么也是会验证公式最终计算后的结果。所以即使输入的是公式也可以做公式结果的数字校验。
gcSpreadSheet1.HighlightInvalidData = true;
var valid1 = DataValidator.CreateNumberValidator(ComparisonOperator.Between, -999999999999, 999999999999, false);
gcSpreadSheet1.Sheets.Cells.DataValidator = valid1;
gcSpreadSheet1.Sheets.Cells.Text = "A number";
用您的这个方法做不到弹出。 Message 需要您在事件中弹出来。
gcSpreadSheet1.HighlightInvalidData = true;
gcSpreadSheet1.ValidationError += GcSpreadSheet1_ValidationError;
var valid1 = DataValidator.CreateNumberValidator(ComparisonOperator.Between, -999999999999, 999999999999, false);
valid1.ErrorStyle = ErrorStyle.Stop;
valid1.ErrorMessage = "请输入数字";
gcSpreadSheet1.Sheets.Cells.DataValidator = valid1;
gcSpreadSheet1.Sheets.Cells.Text = "A number";
private void GcSpreadSheet1_ValidationError(object sender, GrapeCity.Windows.SpreadSheet.UI.ValidationErrorEventArgs e)
{
if (e.Validator.ErrorStyle == ErrorStyle.Stop)
{
e.ValidationResult = DataValidationResult.Retry;
MessageBox.Show(e.Validator.ErrorMessage);
}
}
页:
[1]