Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.15.156.140] |
|
Сообщ.
#1
,
|
|
|
Есть форма Form1. В ней создаётся переменная класса class1. На форме есть элемент label1. Я хочу из класса назначить метке какую-то надпись, label1.Text="Hello...". В большом .NET есть довольно простое управление уже открытыми формами, типа:
class class1 { public void showBase() { Form f1 = Application.OpenForms["Form1"]; Label lab1 = (Label)f1.Controls["label1"]; lab1.Text = "Helllo ... "; } А вот как это сделать на .NET: Compact Framework? Есть подозрение, что в этом компакт урезан. |
Сообщ.
#2
,
|
|
|
а зачем обращаться таким образом? почему не написать lab1.Text = Form1.label1.Text? вообще так обращаться по имени, вроде как, не очень хорошо. например, после обфускации такой проект работать по идее должен перестать
|
Сообщ.
#3
,
|
|
|
Если я так пишу в классе то получается ошибка "An object reference is required for the non-static field, method, or property"
|
Сообщ.
#4
,
|
|
|
ну, так форма к тому моменту должна быть тоже открыта, насколько я в курсе
|
Сообщ.
#5
,
|
|
|
Спасибо Vitik, проблему я решил. Для этого в конструкторе формы надо сделать функуии get set
public string StandLab { set { StandLabel.Text=value; } get { return (StandLabel.Text); } } А в конструктор класса добавить параметром форму class1 { Form1 mainForm; public Class1(Form1 _form) { mainForm = _form; } Тогда можно обращаться к элементам формы mainForm.StandLab="qqq" |