【问题标题】:BrightIdeasSoftware.FastObjectListView.CellEditFinished e.Cancel not workingBrightIdeasSoftware.FastObjectListView.CellEditFinished e.Cancel 不起作用
【发布时间】:2020-02-20 09:10:09
【问题描述】:

我有一个列表视图,用户可以在其中双击单元格进行编辑。我正在验证用户输入,如果输入不正确,我不希望实施更改。

问题是 e.Cancel 没有取消事件?属性中有什么需要设置的吗?

private void HoursListView_CellEditFinished(object sender, CellEditEventArgs e)
    {
        string originalValue = e.Value.ToString();
        string newValue = e.NewValue.ToString();

        string[] timeSplit = e.NewValue.ToString().Split(':');

        if (!Regex.IsMatch(newValue, @"^\d{2}:\d{2}:\d{2}"))
        {
            e.Cancel = true;
            MessageBox.Show("Incorrect hours format!", "Edit Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
        else if (Convert.ToDouble(timeSplit[0]) > 24)
        {
            e.Cancel = true;
            MessageBox.Show("Hours cannot be over 24!", "Edit Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
        else if (Convert.ToDouble(timeSplit[1]) > 59)
        {
            e.Cancel = true;
            MessageBox.Show("Minutes value cannot be over 59!", "Edit Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
        else if (Convert.ToDouble(timeSplit[2]) > 59)
        {
            e.Cancel = true;
            MessageBox.Show("Seconds value cannot be over 59!", "Edit Error", MessageBoxButtons.OK, MessageBoxIcon.Error);                
        }
        else
        {
            UpdateTotalHoursForTheWeek();
        }
    }

【问题讨论】:

    标签: c# winforms event-handling


    【解决方案1】:

    排序...原来你需要使用事件 CellEditFinished 而不是 CellEditFinished!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-20
      • 1970-01-01
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      • 2016-09-12
      相关资源
      最近更新 更多