gpt4 book ai didi

工作流程事件

转载 作者:行者123 更新时间:2023-12-02 22:15:27 24 4
gpt4 key购买 nike

假设我有一个自定义事件,它具有 GUID 类型的依赖属性。

我希望在我的自定义设计器中显示一个组合框(或我自己的用户控件),其中包含可供选择的可能值(这些值应来自数据库)。

这可能吗?

最佳答案

您需要创建一个UITypeEditor。以下是组合框编辑器的模板:-

public class MyCustomEditor : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.DropDown;
}
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider)
{
var editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
var list = new ListBox();

// Your code here to populate the list box with your items

EventHandler onclick = (sender, e) => {
editiorService.CloseDropDown();
};

list.Click += onclick;

myEditorService.DropDownControl(list);

list.Click -= onclick;

return (list.SelectedItem != null) ? list.SelectedItem : Guid.Empty;
}
}

在事件中您的属性(property)上:-

[Editor(typeof(MyCustomEditor), typeof(UITypeEditor)]
public Guid MyGuidValue
{
get { return (Guid)GetValue(MyGuidValueProperty); }
set { SetValue(MyGuidValueProperty, value); }
}
  • Editor 属性将告诉 PropertyGrid 您已为此属性创建了自定义编辑器。
  • 编辑器的 GetEditStyle 方法告诉属性网格在属性值上显示一个下拉按钮。
  • 单击时,属性网格会调用自定义编辑器的 EditValue 方法。
  • 编辑器服务用于通过 DropDownControl 方法显示下拉菜单,该方法采用要在下拉区域中显示的控件。
  • DropDownControl 方法将阻塞,直到调用编辑器服务 CloseDropDown 方法。

关于工作流程事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1785396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com