如何从另一个类访问winform组件?
我有一个带有一个按钮和两个标签的表单
我有一个名为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 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标记编辑器中编写的代码,未经测试。 这应该适合你。
为此在表单上创建一个公共方法。
public partial class Form1 : Form{ public void SetLabelColor(Color color){ mylabel.BackColor = color; } //... Other code }