Я разрабатываю приложение WinForm для Windows Mobile с C # и .Net Compact Framework 2.0 SP2.

У меня есть элемент управления, унаследованный от System.Windows.Form.Control, который я хочу сделать частным свойством Size. Как я могу это сделать?

Я пробовал это:

new private Size;

Но он не компилируется.

Любая идея?

0
VansFannel 19 Ноя 2009 в 13:30

2 ответа

Лучший ответ

Просто создайте публичное свойство с тем же именем Size в вашем элементе управления:

public Size Size
{
    get { return base.Size; }
    set { base.Size = value; }
}

Затем вы можете сделать что-нибудь в установщике, чтобы предотвратить изменение размера вашего элемента управления до размера, не соответствующего вашему изображению.

2
Tom van Enckevort 19 Ноя 2009 в 14:57

Это будет работать:

    new private Size Size
    {
        get { return Size; }
        set { Size = value; }
    }

Однако скрывать свойство Size не рекомендуется. Вы в основном нарушаете контракт, который ожидается от Control, и можете получить исключения времени выполнения, когда другие классы пытаются с ним взаимодействовать.

1
kgiannakakis 19 Ноя 2009 в 14:29
Возможно, закрытие установленной части свойства может решить выявленную вами проблему. Мой элемент управления содержит изображение, и я хочу, чтобы этот элемент управления имел тот же размер, что и изображение, и никто не может изменить его размер.
 – 
VansFannel
19 Ноя 2009 в 14:46