首页 > 解决方案 > 如何更改 UITypeEditor 按钮上的“...”文本?

问题描述

我有一个包含许多属性的 PropertyGrid,如下所示:

属性网格

我想让用户调整这些,但除此之外,我想给他们一个显示“猜测”的按钮,它将尝试为属性选择“最佳”值。我发现这UITypeEditor几乎可以满足我的需求。

我有以下代码

public class GuessMyValueTypeEditor : UITypeEditor
{
    public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
    {
        return UITypeEditorEditStyle.Modal;
    }

    public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
    {
        return ((MyClass)context.Instance).GuessMyValue();
    }
}
[System.ComponentModel.Category("Adjustable")]
[EditorAttribute(typeof(GuessMyValueTypeEditor), typeof(UITypeEditor))]
public int MyValue
{
    get;
    set;
}

当用户试图改变MyValue时,他会得到一个按钮,上面写着...。按下时,它会调用我的代码GuessMyValue,并将属性设置为新值。

属性网格

这一切都很好,但我发现“...”提示非常不直观。用户在按下显示“...”的按钮时期望一个对话框,并且我的代码在没有任何用户交互的情况下重置属性,因此此功能看起来像一个错误。

如何将按钮上的提示更改为类似的内容Guess

如果不可能,如何自定义 aUITypeEditor以显示我选择的按钮,而不是其标准的“编辑”按钮?

标签: c#winformsuser-experiencepropertygrid

解决方案


推荐阅读