【发布时间】:2012-05-27 01:01:04
【问题描述】:
我知道有很多线程在谈论这个,相信我我已经看到了所有这些,但我觉得我有点慢,无法弄清楚如何做到这一点,所以这就是问题所在! 我有一个表格
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的形式将公共静态更改为仅公共。
希望你能帮助我!
【问题讨论】:
-
您需要将 Form1 的一个实例传递给您的
adi类的实例。获得更好的接受率也不会对您造成伤害。 -
我不知道接受百分比是做什么的.....
-
接受您之前一些问题的一些答案:stackoverflow.com/faq#howtoask
-
您应该考虑在以后的问题中将您的代码翻译成英文。
标签: c# forms class methods label