0
我想在PropertyGrid
上實現輸入驗證。我發現我需要一個TypeConverter
並在ConvertFrom
方法中拋出異常。這工作得很好,只是它顯示了一個標準的「消息框」。我想展示我自己的。根據MSDN,在IsValid
方法中捕捉到了異常。所以我試圖覆蓋它,做我的事情,但它甚至不會觸發。TypeConverter IsValid未啓用
我的代碼:
public class ParameterNameConverter : TypeConverter
{
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
Debug.Print("ConvertFrom");
if (Convert.ToString(value).Contains(" "))
{
throw new NotSupportedException("Invalid input");
}
return value;
}
public override bool IsValid(ITypeDescriptorContext context, object value)
{
MessageBox.Show("Invalid input");
return false;
}
}
嗯謝謝,它以某種方式幫助我。似乎要走的路是自己調用IsValid(),但我不知道在哪裏...... ConferFrom會是個好地方,因爲我在那裏有新的值,但是如果IsValid返回,我該怎麼辦?假...如果我拋出一個異常,我最終有2個消息框... –