我有一个带有一个按钮和两个标签的表单
我有一个名为myCounter的单独的类
我希望myCounter类能够访问表单中的标签 通过一个名为changeColor的方法..
如何在此课程中提供标签
表格
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public Color colTurn
{
get { return lblp1Turn.BackColor; }
set { lblp1Turn.BackColor = value; }
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
班级
class myCounter
{
private readonly Form1 Board;
public myCounter(Form1 Board)
{
this.Board = Board;
}
public int turn = 0;
public void changeColor()
{
if (turn == 0)
{
turn = 1;
lbl
//change color code here
}
}
}
答案 0 :(得分:4)
所以看起来你总是将整个表格传递到你的第二课,所以我会做LightStriker所建议的。为所有项目创建一个公共访问者,然后在其他课程中设置它。
public partial class Form1 : Form
{
private myCounter _counterClass;
public Form1()
{
InitializeComponent();
}
public Label MyLabel1
{
get {return mylabel1;}
}
public Label MyLabel2
{
get {return mylabel2;}
}
private void Form1_Load(object sender, EventArgs e)
{
_counterClass = new myCounter(this);
}
protected void ButtonClick(object sender, EventArgs e)
{
_counterClass.changeColor();
}
}
然后在第二堂课中,您可以访问您的标签。
class myCounter
{
private readonly Form1 Board;
public myCounter(Form1 Board)
{
this.Board = Board;
}
public int turn = 0;
public void changeColor()
{
if (turn == 0)
{
turn = 1;
Board.MyLabel1.BackColor = Color.Red;
Board.MyLabel2.BackColor = Color.White;
}
else
{
turn = 0;
Board.MyLabel2.BackColor = Color.Yellow;
Board.MyLabel1.BackColor = Color.White;
}
}
}
请记住,这是我在wiki标记编辑器中编写的代码,未经测试。这应该适合你。
答案 1 :(得分:3)
为此在表单上创建一个公共方法。
public partial class Form1 : Form{
public void SetLabelColor(Color color){
mylabel.BackColor = color;
}
//... Other code
}