首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

非静态方法的调用有关问题

2012-03-05 
非静态方法的调用问题?非静态方法的调用问题?我现在在FrmMain上有一个非静态的方法initLv_obj,我在另一个

非静态方法的调用问题?
非静态方法的调用问题?

我现在在FrmMain上有一个非静态的方法initLv_obj,我在另一个窗体里不用new   FrmMain要怎么去调用?

注:不用new   的原因是因为用了后会再次重绘FrmMain.

[解决办法]
除非你在FrmMain里的构造函数里写了绘制FrmMain的代码
否则New的时候怎么可能重绘

如果你的另一个窗体是在FrmMain中创建的
那么initLv_obj可以使用委托传到另一个窗体中
并且调用的时候保证FrmMain不能关闭

否则 就不知道了 或许使用反射也能搞定也说不定
[解决办法]
改为静态的不行么?
[解决办法]
如果又不能new
那你就把这个方法单独做在一个类里面
大家都调用
new也就new这个类
[解决办法]
Form1:
public static Form1 fm1;
public Form1()
{
InitializeComponent();
fm1 = this;
Form2 fm2 = new Form2();
fm2.Show();

}
public initLv_obj()
{
................
}
---------------------
Form2:
Form1.fm1.initLv_obj()


请参考:愚翁专栏 ---主窗体和子窗体之间如何相互操作对方的控件
[解决办法]
把FrmMain的对象的指针this传给另外的窗体就好了。
[解决办法]
方法该为PUBLIC,在另外一个窗体调用就可以了,或者写个委托

热点排行