Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

обратиться к контролам на другой форме (.NET) [D2005]


anton773 ©   (2006-12-16 20:32:00) 

Прошу прощения за глупый вопрос. как в .NET(Windows form) обратиться к контролам на другой форме. Например в win32 все просто : Form2.edit1.text:='привет';а в .NET это не катит


anton773   (2006-12-18 04:17:00) [1]

А что означает свойства family ,assembly?


Eraser   (2006-12-18 00:23:00) [2]

вот еще кое-что накопал (сейчас как раз разбираюсь с C#).

у компонентов есть такое свойство Modifiers, которое собственно и определет модификатор доступа. можно поставить internal или public, чтобы поведение было такое же как в Делфи. По-сути это свойство - просто визуальное представление действия в [7].


anton773   (2006-12-17 18:24:00) [3]


> Eraser ©  

Спасибо за ответ.!


Eraser   (2006-12-17 18:18:00) [4]

> [9] anton773 ©   (17.12.06 18:15)


> P.S А нельзя ли сделать так чтобы все компоненты по умолчанию
> помещались в public?

не в курсе.
ЗЫ можно еще так делать
((CheckBox)fm2.Controls.Find("checkBox1", true)[0]).Checked = true;

ЗЗЫ если можно избежать обращение к компонентам другой формы, лучше избежать :)


anton773   (2006-12-17 18:15:00) [5]

P.S А нельзя ли сделать так чтобы все компоненты по умолчанию помещались в public? Вручную перетаскивать из секции в секцию лень ;-). Работаю с Delphi 2005 (Delphi .NET)


anton773   (2006-12-17 18:10:00) [6]


> Eraser ©

Спасибо ! Затолкал textbox в public.Теперь все работает.


Eraser   (2006-12-17 18:04:00) [7]

ах да. по-умолчанию C# помещает поля компонентов в блок private, т.о. образом, чтобы сделать компонент доступным из других модулей, надо объявить это поле как public, например имеется
private System.Windows.Forms.CheckBox checkBox1;
меняем на
public System.Windows.Forms.CheckBox checkBox1;

однако же, в идеале, лучше делать через свойства, т.е. вот так

       private System.Windows.Forms.CheckBox checkBox1;

       public System.Windows.Forms.CheckBox chBox1
       {
           get
           {
               return (checkBox1);
           }
           set
           {
               checkBox1 = value;
           }
       }


anton773   (2006-12-17 17:37:00) [8]


> Тебе разве компилятор о ней не сказал?

кричит мол не знаю что такое textbox1. Не понимаю в чем дело в разделе uses необходимый юнит вроде прописан. да и   form.Show;работает на ура.


Palladin   (2006-12-17 09:43:00) [9]

Тебе разве компилятор о ней не сказал?


anton773   (2006-12-17 04:25:00) [10]

пробовал так: procedure TWinForm1.ToolBar1_ButtonClick(sender: System.Object; e: System.Windows.Forms.ToolBarButtonClickEventArgs);
var
form:TWinForm;
begin

   if e.Button= ToolBarButton3 then
     begin
      form:= WinForm.TWinForm.Create;
     form.Show;
     form.textbox1.text:='привет';
     end;
end;
даже не компилируется.Где ошибка?


Eraser   (2006-12-16 21:15:00) [11]

   public partial class Form1 : Form
   {
        private Form2 fm2;

       public Form1()
       {
           InitializeComponent();
       }

       private void button1_Click(object sender, EventArgs e)
       {
           fm2 = new Form2();
           fm2.Show();
       }


anton773   (2006-12-16 21:04:00) [12]


> при создании доп. формы нужно сохранить ссылку на неё

например как?


Eraser   (2006-12-16 20:55:00) [13]

> [0] anton773 ©   (16.12.06 20:32)

почему не катит, просто при создании доп. формы нужно сохранить ссылку на неё.


Наверх

Титульная страница Поиск, карта сайта Написать письмо