Я знаю, что об этом говорится во многих темах, и поверьте мне, я видел их все, но я думаю, что я немного медлительный и не могу понять, как это сделать, так что вот в чем дело! у меня одна форма
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button4_Click(object sender, EventArgs e)
{
adi mYadi= new adi();
adi.paso();
}
private void Form1_Load(object sender, EventArgs e)
{
}
public void l8u(string l )
{
label8.Text = l;
}
}
Предполагается, что метод l8u
изменяет текст в label8
, поэтому он не может быть статичным, потому что label8
не является статическим (публичным), и у меня есть этот другой класс
public class adi :instrucion
{
private int paso;
private int registroD;
private int registroO;
private int valor;
private int vsin;
public adi()
{
paso = 1;
}
public void setRD(int i){
registroD = i;
}
public void setR0(int i)
{
registroO = i;
}
public void setV(int i)
{
valor = i;
}
public int getRD()
{
return registroD ;
}
public int getR0()
{
return registroO;
}
public int getVf()
{
return vsin;
}
public void paso(){
//in this method I need change the value of label8
}
}
Метод paso отвечает за изменение значения label8
, но я просто не могу этого сделать! Я пробовал много разных способов, например, делать что-то вроде
public void paso()
{
Form1.l8u();
}
Но это невозможно, так как Form1
- это просто имя класса, а l8u - нет, а статический метод, также попытался установить label8
как общедоступный статический, но Visual Studio это не понравилось, и всякий раз, когда я использовал новый элемент управления в форме VS, измените общедоступный статический только для публики.
Надеюсь, вы можете мне помочь!
Label lb = (Label) Application.OpenForms["Form1"].Controls.Find("label8", false).FirstOrDefault(); lb.Text = "Form2";)
Что вы думаете об этом? Это хорошая идея? 27.05.2012