![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
обратиться к контролам на другой форме (.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)
почему не катит, просто при создании доп. формы нужно сохранить ссылку на неё.