Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];

Вниз

обратиться к контролам на другой форме (.NET)   Найти похожие ветки 

 
anton773 ©   (2006-12-16 20:32) [0]

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


 
Eraser ©   (2006-12-16 20:55) [1]

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

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


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


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

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


 
Eraser ©   (2006-12-16 21:15) [3]

   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-17 04:25) [4]

пробовал так: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;
даже не компилируется.Где ошибка?


 
Palladin ©   (2006-12-17 09:43) [5]

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


 
anton773 ©   (2006-12-17 17:37) [6]


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

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


 
Eraser ©   (2006-12-17 18:04) [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 18:10) [8]


> Eraser ©

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


 
anton773 ©   (2006-12-17 18:15) [9]

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


 
Eraser ©   (2006-12-17 18:18) [10]

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


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

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

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


 
anton773 ©   (2006-12-17 18:24) [11]


> Eraser ©  

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


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

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

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


 
anton773 ©   (2006-12-18 04:17) [13]

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



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.01 c
15-1166204561
Ламот
2006-12-15 20:42
2007.01.07
Вопрос по экселю...


15-1166106278
shulcsan
2006-12-14 17:24
2007.01.07
О среде разработки


15-1166345397
Павел Калугин
2006-12-17 11:49
2007.01.07
Помогите студиозусу...


2-1166530373
vitv
2006-12-19 15:12
2007.01.07
Поиск текста в документах


15-1166272732
Cyrax
2006-12-16 15:38
2007.01.07
Calling convension и name mangling в BCB и MSVC





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский