2

是否可以在 Winforms Propertgrid 控件中实现输入验证?例如,我如何验证/定义“必填字段”?我可以使用错误提供程序吗?是否可以使用RequiredAttribute(System.ComponentModel.DataAnnotations)?

4

1 回答 1

6

注册 OnValueChanged 事件并在那里完成工作!

propertyGrid.PropertyValueChanged+=  new PropertyValueChangedEventHandler(propertyGrid_PropertyValueChanged ); 


private void propertyGrid_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) 
    { 
        if (e.ChangedItem.Label == "???" && !IsValid((int)e.ChangedItem.Value) ) 
        { 
            // the entered value is wrong - show error message 
            e.ChangedItem.PropertyDescriptor.SetValue( propertyGrid.SelectedObject, e.OldValue); 
            MessageBox.Show("Wrong Data", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 
        } 
    }


    private static bool IsValid( int inputData) 
    { 
      // logic here
    } 

我希望这能帮助你解决问题!

于 2013-10-16T08:55:15.507 回答