2013-10-16 67 views
1

是否可以在Winforms屬性控件中實現輸入驗證?例如,我如何驗證/定義「必填字段」?我可以使用錯誤提供程序? 是否可以使用RequiredAttribute(System.ComponentModel.DataAnnotations)?Winforms Propertygrid中的驗證

回答

3

註冊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 
    } 

我希望這會幫助你解決問題!