跟小D每日学口语

winform实现嵌套类访问父类的控件[原创]

CSDN上看到别人提了这个问题,线程和控件调用冲突之类的见过不少,嵌套类没有试过,便尝试写下

 1 public delegate void DoEvent();
2
3 public partial class Form1 : Form
4 {
5 checkFlowThread td;
6 DoEvent toDo;
7
8 public Form1()
9 {
10 InitializeComponent();
11 toDo = new DoEvent(checkFlow);
12 if (td == null)
13 td = new checkFlowThread(this);
14 this.Load += (sender, e) => checkFlow();
15 }
16
17 private void checkFlow()
18 {
19 if (this.InvokeRequired)
20 {
21 this.Invoke(toDo);
22 }
23 else
24 {
25 td.checkFlow();
26 }
27 }
28
29 //这是一个嵌套类
30 public class checkFlowThread
31 {
32 Form1 from;
33 public checkFlowThread(Form1 f)
34 {
35 from = f;
36 DoEvent todo = new DoEvent(checkFlow);
37 }
38
39 public void checkFlow()
40 {
41
42 from.label1.Text = "想访问外部类的非静态成员";
43 }
44 }
45 }

  这样label1可以被修改


posted @ 2011-09-03 17:41  腐乳  阅读(460)  评论(0编辑  收藏  举报