Vis*_*Dav 2 .net propertygrid uitypeeditor editing
我有一个propertygrid,它使用UITypeEditor来显示一个Listbox并选择一个项目.这个项目在选择时在proertygrid上返回.但是如何直接禁用所选项目的编辑,readonly选项可以防止它被编辑.
假设我正在从另一个表单中更改属性国家/地区,该表单会在列表框中显示国家/地区列表.当我选择"阿尔及利亚"并按"确定"时,"阿尔及利亚"会显示在整个国家/地区,但我可以直接将阿尔及利亚编辑为任何其他值,从而无法选择列表的目的.
如果您只想显示要从中选择的值的下拉列表,但阻止用户在PropertyGrid控件中的属性值中键入任何内容,则可以从TypeConverter派生并覆盖GetStandardValuesExclusive方法以返回true.
要提供要在下拉列表中显示的允许值集,您需要覆盖GetStandardValuesSupported方法以返回true,然后重写GetStandardValues以返回要在下拉列表中显示的允许值列表.
一旦你有了这个,你只需要在属性上指定你的自定义类型转换器,如下所示:
public class MyTypeConverter : TypeConverter
{
//Override GetStandardValuesExclusive,
//GetStandardValues and GetStandardValuesSupported
}
public class SomeClass
{
[TypeConverter(typeof(MyTypeConverter))]
public string SomePropertry
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1640 次 |
| 最近记录: |