1

直接取自 C# 文档:

使用数据绑定时,控件中的数据会在执行 Validating 事件期间与数据源同步。如果取消 Validating 事件,数据将不会与数据源同步。

我实际上是在打电话:

private void textBoxGrainWidth_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
    int result;
    if(!int.TryParse(textBoxGrainWidth.Text,out result))
    {
        e.Cancel = true;
        return;
    }
}

这实际上调用了它绑定到的属性上的设置:

this.textBoxGrainWidth.DataBindings.Add(
    new System.Windows.Forms.Binding("Text",
        this.bindingSourceControlData, "GrainWidth", true));

所以我在文档上打电话给 BS。这篇文章提到了同样的问题,但没有真正的解决方案。

有什么建议吗?不要同时使用 Winforms & Binding & Validation?

4

1 回答 1

0

根据我已经体验过的情况,如果您的来源是一个int字段并且您输入了无效数据,它将不会被同步。所以,我不知道你的类型是什么this.bindingSourceControlData,但如果不是int,也许应该是。

于 2013-06-19T20:04:45.393 回答