我有一个带有一个按钮和两个标签的表单
我有一个单独的类叫做 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)
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
}
}
}
最佳答案
所以看起来您无论如何都要将整个表单传递给您的第二个类,所以我会按照 LightStriker 的建议进行操作。为您的所有项目创建一个公共(public)访问器,然后将其设置在您的其他类中。
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 标记编辑器中编写的代码,未经测试。不过,这应该对您有用。
关于c# - 如何从另一个类访问winform组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13233431/