winform1中有一个addnewnode()这个方法,我想在winform2中去调用该方法,使winform1的数据刷新,可是不知道怎么调用啊???
解决方案 »
- 如何动态构造dataset
- C# datagridview问题
- System.IndexOutOfRangeException
- 请问各位高手:在类项目中怎么使用web方面的对象,如server,request,response等
- 两台机子间,传递字符串文本数据,需要考虑编码问题,发送端和接收端编解码都要一致。
- (急```)我想禁用鼠标及键盘的所有操作,是否有API可以完成??在线等
- 求 .NET C# 2.0的混淆器工具!
- 加载不了动态连接库
- 听说c#与Java不同的地方有一个是C#可以生成本机代码?讨论.
- mvc4 表单赋值 再次到后台取不到数值!!
- 提供一个免费网站空间,想要空间的朋友可以来看看。每晚00:00开放注册限量1000个。全能的哦。
- C# WinForm中窗口调用问题
{
}
f1.addnewnode(...)
将Form1的实例frm传给Form2
在Form2中调用frm.addnewnode()即可
{
......................
...................... public void addnewnode()
{
..........//刷新treeview的代码
}}
public class winform2 : System.Windows.Forms.Form
{
...................
................... private void btOK_Click(object sender, System.EventArgs e)
{
..........//添加到数据库
..........//调用winform1中的addnewnode(),刷新winform1中的treeview(这应该怎么写???)
MessageBox("add new node OK");
}}
interface IForm
{
public virtual void addnewnode();
}
让winform1继承IForm,并实现addnewnode()方法。winform2添加IForm接口
class winForm2 : System.Windows.Forms.Form
{
private IForm _f;
public winForm2(IForm f)
{
InitializeComponent();
_f = f;
}
//调用addnewnode
private void Invokeaddnewnode()
{
_f.addnewnode();
}
}
1.用winform1 f1=new winform1();f1.addnewnode();是不可行的.
2.应该用委托
public class winform1 : System.Windows.Forms.Form
{
......................
...................... public void addnewnode()
{
..........//刷新treeview的代码
}
private void btAddnode_Click(object sender, System.EventArgs e)
{
winform2 f2=new winform2(this)
}}
public class winform2 : System.Windows.Forms.Form
{
...................
...................
private winform1 _wf1;
public winform2(winform1 wf1)
{
_wf1=wf1;
}
private void btOK_Click(object sender, System.EventArgs e)
{
..........//添加到数据库
_wf1.addnewnode();//调用winform1中的addnewnode(),刷新winform1中的treeview(
MessageBox("add new node OK");
}}这样调试通过了,不过,感觉是不是有什么更好的方法去实现啊????有什么更好的方法请指教????
http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx
http://blog.csdn.net/zhzuo/archive/2006/05/05/708941.aspx