日期:2014-05-17  浏览次数:20908 次

公共类怎么操作窗体控件?
c#做上位机与下位机通讯,我做了一个类,专门用来发送和接收数据,怎么把接收到的数据显示在窗体控件上?
看了些帖子,一般认为有三种方法:1、构造函数;2、public static;3、委托。
是不是第二中方法最简单?按第二种方法,公共类中怎么写?我写成FormAbout.textBox1.Text = "llll";报错。
求大侠详解,谢谢
 

------解决方案--------------------
用委托吧,自定义事件
------解决方案--------------------
1)构造
   class aaa
    FormAbount _f;
   public aaa(FormAbount f)
    {
         _f=f;
         f.text.....
    }
2)静态
     定义一个静态类 list<string> 
     接收类不停外立面插入数据
     窗体用TIMER每个一段时间获取数据
3)委托  建议用这种方式
      代码清晰度最高

------解决方案--------------------
我也做了一个上位机 跟你差不多 用的是委托..

代码差不多就是这个意思..

form代码

delegate void Write(string msg);
void write(string msg)
        {
            if (listBox1.InvokeRequired)
            {
                listBox1.Invoke(new Write(write), msg);
            }
            else
            {
                listBox1.Items.Insert(0, msg);
            }
        }


然后在类里面写了


public delegate void Write(string msg);
public  class ByteDataHandle
{
 public Write write;
 public static void xxoo(string ooxx)
 {
   write("xxoo");
 }
}


调用就是

 ByteDataHandle handle = new ByteDataHandle();
 handle.write = write;

里面就可以输出了...或者给控件赋值啥的
------解决方案--------------------
果断委托!
------解决方案--------------------

      public class ComMachine