Abanoub - Если я понимаю, что вы пытаетесь сделать - вы хотите установить метку уже отображаемой формы без создания нового экземпляра формы.По крайней мере, один из способов сделать это будет с одноэлементным классом, который содержит экземпляр формы.Так что будет только один экземпляр формы.Попробуйте следующее:
Сначала мы создаем одноэлементный класс, который хранит экземпляр формы:
public class Singleton
{
// Modified from: http://csharpindepth.com/articles/general/singleton.aspx
// This will keep ONE instance of the Admin Form
private Admin _adminForm;
public Admin AdminForm
{
get
{
if (_adminForm == null)
{
_adminForm = new Admin();
}
return _adminForm;
}
}
private static Singleton instance = null;
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
Теперь вы создаете экземпляр from из этого экземпляра, например:
Кнопка 1 будет отображать форму:
private void button1_Click(object sender, EventArgs e)
{
var singleton = Singleton.Instance;
var f = singleton.AdminForm;
f.Show();
}
Кнопка 2 будет устанавливать метку уже отображаемой формы (Кстати, я думаю, вы хотите, чтобы свойство устанавливало текст метки, а неметка, верно?)
private void button2_Click(object sender, EventArgs e)
{
// Assuming you clicked button 1 first,
// this will not cause a new instance but use the existing one
var singleton = Singleton.Instance;
var f = singleton.AdminForm;
f.LabelText = "Hello world!";
}
Если вы хотите установить текст метки - вот измененное свойство в Admin:
public string LabelText
{
get { return label8.Text; }
set { label8.Text = value; }
}
Я надеюсь, что этобудет вам полезен - удачи !!