1

MSDNのウォークスルーhttp://msdn.microsoft.com/en-us/library/ms171840.aspxに従って、自分のタイプSmiley用のカスタムUITypeEditorを作成しました。

ユーザーが省略記号をクリックすると、UITypeEditorはモーダルダイアログボックスを起動します。

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

多くの苦痛の後、私のタイプがクラスの場合は機能するが、列挙型の場合は機能しないことがわかりました。どうしたの?

    [Editor(typeof(SmileyEditor), typeof(System.Drawing.Design.UITypeEditor))]
    public Smiley face { get; set; }

タイプSmileyが列挙型の場合、プロパティグリッドには省略記号ボタンは表示されず、ドロップダウンのみが表示されます。なんで?

4

1 に答える 1

1

どうやら、システムタイプエディタが存在する場合、PropertyGridはカスタムエディタよりもそれを優先します。回避策は、メソッドをオーバーライドするTypeConvertorを参照して、TypeConvertorAttributeでタイプに注釈を付けることGetStandardValuesSupportedです。https://stackoverflow.com/a/4067173/284795を参照してください

于 2012-09-25T11:03:17.633 に答える