2011-08-11 13 views
2

私はUITypeEditorを使用してリストボックスを表示し、項目を選択するプロパティグリッドを持っています。このアイテムは選択時にプロタジーグリッドに返されます。しかし、どのようにして選択した項目の編集を直接無効にするのですか?readonlyオプションは編集できないようにします。Propertygridキーボードによる値編集を無効にするUIEditor

私は、リストボックス内の国のリストを表示する別のフォームからProperty Countryを変更しているとします。 「アルジェリア」を選択してOKを押すと、「アルジェリア」が国全体に表示されますが、アルジェリアを他の値に直接編集して、リストの目的を無効にできます。

+0

こんにちは、私は同じ問題を抱えています。あなたが適切な解決策を見つけたら教えてください。 –

答えて

5

値のドロップダウンリストを表示して、PropertyGridコントロール内のプロパティ値に何も入力しないようにする場合は、TypeConverterから派生し、GetStandardValuesExclusiveメソッドをオーバーライドするだけで簡単に戻ります本当。

許容値のセットをドロップダウンに表示するには、GetStandardValuesSupportedメソッドをオーバーライドしてtrueを返し、GetStandardValuesをオーバーライドして、ドロップダウンリストに表示する許容値のリストを返す必要があります。あなたの場所で、あなただけのようにようにプロパティにカスタム型コンバータを指定する必要があるとしたら

public class MyTypeConverter : TypeConverter 
{ 
    //Override GetStandardValuesExclusive, 
    //GetStandardValues and GetStandardValuesSupported 
} 

public class SomeClass 
{ 

    [TypeConverter(typeof(MyTypeConverter))] 
    public string SomePropertry 
    { 
     ... 
    } 
} 
+1

私のカスタムコンバータはTypeConverterではなくStringConverterから継承されていました。上記の手順を実行した場合でも、StringConverterではなくTypeConverterから継承しない限り、PropertyGridに入力することができます。私はTypeConverterを使うことに切り替えました。 –

関連する問題