Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > User Control: как получить свойства контролов?


Автор: Voyager 28.2.2007, 18:27
Суть такая - есть User Control. На нем кнопка Button1.
Делаю свойство, управляющее текстом кнопки Button1 на контроле:
Код

public string Button1Text
        {
            get
            {
                return Button1.Text;
            }
            set
            {
                Button1.Text = value;
            }
        }

В итоге задавая свойство Button1Text у User Control, можно менять текст кнопки Button1, находящейся в контроле.
Вопрос: можно ли как-то получать/задавать сразу все свойства Button1?

Например, вроде так можно получить свойства кнопки Button1:
Код

public System.Windows.Forms.Button _Button1
        {
            get
            {
                return this.Button1;
            }
        }

Но вот как их можно задать (что-то вроде добавив 1 поле к User Control, например, _Button1)?
Надеюсь проблему описал понятно. smile

Автор: mr.DUDA 28.2.2007, 18:41
В дизайнере юзерконтрола делаешь свойство кнопки Modifiers = Public, после этого можно обращаться к кнопке из любого внешнего метода, через точку после юзерконтрола.

По-моему в аське ты спрашивал про взаимодействие двух разных программ smile.

Автор: Voyager 28.2.2007, 19:00
Спасибо! Теперь доступ к вложенным контролам есть, а как сделать свойство у контрола, чтобы вынести в него объект кнопку?

Автор: Voyager 5.3.2007, 14:20
Разве никто такого не делал или может кто знает как сделать?

Автор: ivashkanet 5.3.2007, 14:34
Voyager, а чем тебя твой вариант не устраивает?
Цитата(Voyager @  28.2.2007,  17:27 Найти цитируемый пост)
public System.Windows.Forms.Button _Button1
        {
            get
            {
                return this.Button1;
            }
        }

А потом меняй свойства кнопки как тебе вздумается:
Код

_Button1.Text="Привет";
_Button1.Click+=...
_Button1.Width = 100;

Автор: Voyager 5.3.2007, 16:01
Меня устраивает. Но по заданию нужно вынести кнопку в качестве свойства User control, чтобы можно было менять все свойства этой кнопки прямо в дизайнере. Неделю бьюсь, а все никак.

Автор: ivashkanet 5.3.2007, 16:12
Voyager, так это же и есть СВОЙСТВО  smile  smile  smile  smile 
Называется _Button1. В чем проблема?

Автор: Voyager 5.3.2007, 16:47
Ну и как тогда изменить Button1 в контроле, изменяя это свойство?

Дело в том, что при изменении свойства у User Control, после билда настройки Button1 не сохраняются, сбрасываются.

Автор: bend0r 5.3.2007, 20:01
не то я чета написал smile 

Автор: Voyager 6.3.2007, 13:07
Все, проблема решена.
http://msdn2.microsoft.com/en-us/library/system.componentmodel.designerserializationvisibilityattribute(VS.71).aspx
http://msdn2.microsoft.com/ru-ru/library/system.windows.forms.design.controldesigner.enabledesignmode(VS.80).aspx
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwindowsformsdesignparentcontroldesignerclasstopic.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemComponentModelDesignerAttributeClassTopic.asp

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)