我创建了一个具有自定义数组值的属性网格。当用户选择其中一个下拉菜单时,我希望它显示一个表单。我的问题不是它不起作用,不是它过度活跃并且尽管只声明了一次,但它显示了大约 6 次表单。如果我选择 ShowDialog,它会显示表单两次,并在尝试关闭第二个对话框时创建另外两个表单实例。下面是我正在使用的代码。我不知道出了什么问题。
//Property Grid Type
internal class TransferConnectionPropertyConverter : StringConverter
{
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;
}
public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
return new StandardValuesCollection(new string[] { "", NEW_CONN });
}
}
//Property Grid Node
[Category("Connection"),
Description("Specifies the type of connection for this task.")]
[TypeConverter(typeof(TransferConnectionPropertyConverter))]
public string TransferProtocol
{
get
{
if (stConnectionType == NEW_CONN)
{
ConnectionDetailsForm connDetails = new ConnectionDetailsForm();
connDetails.Show();
}
return stConnectionType;
}
set
{
stConnectionType = value;
}
}