C# 属性网格--编辑器省略号不随下拉列表显示
在属性网格中,我为属性实现了StringConverter以显示值列表和UITypeEditor以打开表单进行编辑 每一个单独工作都很好。但是,当我将StringConverter和UITypeEditor放在一起时,我看不到用于编辑属性的省略号。 省略号隐藏在下拉列表的箭头下方 有什么想法吗 下面的代码——如果有帮助的话C# 属性网格--编辑器省略号不随下拉列表显示,c#,propertygrid,C#,Propertygrid,在属性网格中,我为属性实现了StringConverter以显示值列表和UITypeEditor以打开表单进行编辑 每一个单独工作都很好。但是,当我将StringConverter和UITypeEditor放在一起时,我看不到用于编辑属性的省略号。 省略号隐藏在下拉列表的箭头下方 有什么想法吗 下面的代码——如果有帮助的话 [Editor(typeof(VideoDeviceEditor), typeof(UITypeEditor))] [TypeConverter(typ
[Editor(typeof(VideoDeviceEditor), typeof(UITypeEditor))]
[TypeConverter(typeof(VideoDevicesList))]
public class VideoDevices
{
}
public class VideoDevicesList : System.ComponentModel.StringConverter
{
public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
ChannelPropertyConfiguration inst = (ChannelPropertyConfiguration)context.Instance;
List<string> lgs = new List<string>();
lgs.Add("Microsoft Life Cam");
lgs.Add("Logitech Web Cam");
return new StandardValuesCollection(lgs);
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;
}
}
public class VideoDeviceEditor : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService svc = provider.GetService(typeof(IWindowsFormsEditorService)) as IWindowsFormsEditorService;
if (svc != null)
{
MessageBox.Show("OK");
}
return value;
}
}
[Editor(typeof(VideoDeviceEditor),typeof(UITypeEditor))]
[类型转换器(类型(视频设备列表))]
公共级视频设备
{
}
公共类视频设备列表:System.ComponentModel.StringConverter
{
公共重写系统.ComponentModel.TypeConverter.StandardValues集合GetStandardValues(ITypeDescriptor上下文)
{
ChannelPropertyConfiguration inst=(ChannelPropertyConfiguration)context.Instance;
List lgs=新列表();
lgs.Add(“Microsoft Life Cam”);
lgs.Add(“罗技网络摄像头”);
返回新的标准值集合(lgs);
}
公共覆盖布尔GetStandardValuesSupported(ITypeDescriptorContext上下文)
{
返回true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptor上下文)
{
返回true;
}
}
公共类视频设备编辑器:UITypeEditor
{
公共重写UITypeEditorEditStyle GetEditStyle(ITTypeDescriptorContext上下文)
{
返回UITypeEditorEditStyle.Modal;
}
公共重写对象EditValue(ITypeDescriptorContext上下文,System.IServiceProvider提供程序,对象值)
{
IWindowsFormsEditorService svc=provider.GetService(typeof(IWindowsFormsEditorService))作为IWindowsFormsEditorService;
如果(svc!=null)
{
MessageBox.Show(“OK”);
}
返回值;
}
}
我认为不可能同时拥有标准值列表和模式编辑器。你必须选择一个。我认为不可能同时拥有标准值列表和模式编辑器。你必须选择一个。我认为不可能同时拥有标准值列表和模式编辑器。你必须选择一个。