我在MainFrm这个窗体上添加了一个listview控件listview1,然后在MainFrm.Designer.cs这个文件里把listview1的权限改为public。
现在我在另外一个源文件BLL.cs里面的一个函数里对这个listview调用。
string[] Msg = { counter(i).ToString(), msg, DateTime.Now.ToString( "yyyy-MM-dd HH:mm:ss") };
ListViewItem lvi = new ListViewItem(Msg);
MainForm mf = new MainForm();
mf.listView1.Items.Add(lvi);
函数主题大致如此。
现在我在其他文件里再调用这个函数,程序可以顺利编译通过,但是listview单元格获取不到函数输出值。
请问这是什么问题?怎么解决?
谢谢。

解决方案 »

  1.   

    MainForm mf = new MainForm(); 
    ----------------------------------
    你操作的是mf这个对象,并不是已显示的那个MainForm窗体。你要解决的是,怎么获取MainForm窗体,然后操作MainForm的listview1。
    方法挺多
    1.用事件通知
    2.把MainForm窗体当参数传给这个函数所在对象
    3.用Application.OpenForms来获取MainForm窗体
    ……
      

  2.   

    问题解决了,谢谢cja03,我用的你提示的第二个方法。
    但是我还是不明白,为什么说我以前的做法是操作的是mf这个对象,并不是已显示的那个MainForm窗体呢?
      

  3.   

    MainForm mf = new MainForm(); 
    这样就是new一个新的MainForm,它和你之前打开的MainForm并不是同一个呀,每new一个都是一个新的对象。
    所以,你要操作之前打开的MainForm,就需要获取它的引用。
      

  4.   

    明白了,明白了。
    谢谢cja03兄弟。。
    我是小菜鸟。在低端思维圈圈里徘徊不前呢。
    结贴。