コントロールがデザイン時かどうかを知るにはどうすればいいですか? 質問する

コントロールがデザイン時かどうかを知るにはどうすればいいですか? 質問する

ICustomTypeDescriptor を実装するクラス (コントロール) があり、これは PropertyGrid によってカスタマイズのために設計時と実行時の両方で使用されます。プログラムで PropertyGrid を使用してそのコントロールの他のプロパティを変更する場合、設計時 (などの標準コントロール プロパティ) と実行時に、異なるプロパティを公開する必要がありwidthますheight

私のコードは次のようになります:

class MyControl : UserControl, ICustomTypeDescriptor
{
    //Some code..

    public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
    {
        return GetProperties();
    }

    public PropertyDescriptorCollection GetProperties()
    {
        //I need to do something like this:
        if (designTime)
        { //Expose standart controls properties
            return TypeDescriptor.GetProperties(this, true);
        }
        else
        {
            //Forming a custom property descriptor collection
            PropertyDescriptorCollection pdc = new PropertyDescriptorCollection(null);
            //Some code..
            return pdc;
        }
    }
}

C# のデザインタイム フラグに類似するものはありますか? 条件付きコンパイルを使用する方が良いでしょうか?

ベストアンサー1

チェックするデザインモードtrue または false です。これはコントロール基本クラスに属するプロパティです。

おすすめ記事