Форум: "Начинающим";
Текущий архив: 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