C#如何在一个窗体调用另一个窗体的方法 急!

LovevAnn 2012-09-05 01:30:19
我有两个窗体,一个是添加数据的窗体,一个是显示数据的窗体(Datagridview加载数据),我在添加数据的窗体中添加一条数据后,退出添加数据的窗体 ,退出的方法中如何写,才能调用显示数据窗体中的刷新方法,将添加的数据显示出来?
不知道能不能看明白?
...全文
30436 点赞 收藏 37
写回复
37 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
被调用窗体暴露一个借口就行了。
回复
men52676521 2013-05-10
创建相应类对象对象 用对象调用你想要的方法,或者是跨页面传值吧
回复
古兰色回忆 2013-05-10
用委托吧,很简单。
回复
public partial class Form1 : Form
    {
        TextBox txtBox;
        public Form1()
        {
            InitializeComponent();
            this.Text = "我是窗体1";
            txtBox = new TextBox();
            this.Controls.Add(txtBox);
            
            Form2 f2 = new Form2() { Text = "我是窗体2" };
            f2.ShowDialog(this);
            txtBox.Text = f2.txtBox.Text;
        }
    }

    public class Form2 : Form
    {
        public TextBox txtBox;
        public Form2()
        {
            txtBox = new TextBox();
            this.Controls.Add(txtBox);
        }       
    }
给分
回复
煜宸 2013-05-10
form2里写一个form1的关闭事件(form1_closed)
回复
煜宸 2013-05-10
在form2里一个form1的关闭事件 然后刷新DATAGRIDVIEW就行了
回复
mjay0210 2013-05-10
1. 你是需要第二个窗体类的方法,还是需要第二个窗体的功能? 如果只是需要那个类的一个方法,建议你将此方法封装成一个公用类,然后两个窗口可以一起调用。 如果是需要第二个窗体运作,但又不需要第二个窗体出现,可以创建第二个窗体然后 hiden(), 记得将方法写成pbulic 然后直接用实例调用即可。
回复
xxlxmd521 2013-05-10
直接在new 的时候 给 form2 传过去就OK
回复
Kirin0007 2013-05-10
窗体1: public partial class Form1 : Form { public delegate void DelegateRefreshDGV(); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { DelegateRefreshDGV dgv=new DelegateRefreshDGV (refreshDGV); Form2 f2 = new Form2(dgv);实例化窗体2 f2.Show();弹出窗体2 } private void refreshDGV()// 刷新的方法 { } } 窗体2 调用委托: public partial class Form2 : Form { private Form1.DelegateRefreshDGV dgv; public Form2(Form1.DelegateRefreshDGV _dgv) { InitializeComponent(); this.dgv = _dgv; } private void button1_Click(object sender, EventArgs e) { dgv();调用委托方法 this.Close(); } }
回复
委托是最好的、
回复
回复
jamsunyue 2012-11-01
如果需要直接从窗体之间调函数,需要写成静态对象.

一般会在显示数据的窗体中建立 刷新的函数 和 一个打开按钮

在打开按钮的单击事件中 new 一个 添加数据的窗体用对话框的方式打开调用 ShowDialog() 方法

然后在 ShowDialog() 下面调用 刷新的函数 即可。
回复
tanktang811010 2012-11-01
[Quote=引用 1 楼 的回复:]

退出添加数据的窗体时,将需要添加的数据插入到到数据库中,然后在显示数据的窗体中重新加载数据库即可实现.
[/Quote]
退出时判断下是否成功修改了数据,如果成功就刷新,没有就不调用刷新方法。
回复
wangyizhi58 2012-11-01
this.Close();
frm2 fm=new frm2();
fm2.Show();
窗体也是类,先new个对象,在执行对象的方法
回复
liangchengfck1 2012-11-01
你就是关闭插入页面然后显示查询页面 显示最新数据是吧
单击退出隐藏插入那个窗体
然后显示查询窗体
查询的时候写在load事件不就好了吗
回复
zhugeshibao 2012-11-01
楼主你的问题其实是跨窗体操作,2个方法:
1:................我忘了!
2: 用构造函数做,在Form2里可以操作Form1里所有Public方法
回复
n4167 2012-09-15
请问LZ解决了吗?怎么解决的?
回复
終極尐壊疍 2012-09-06
你的添加数据的窗体应该是从显示数据的窗体上点按钮或其他的调出来的吧

Form1是显示数据的。form2是添加数据的

Form2 f2=new Form2();

f2.ShowDialog();
在这之后调用刷新数据的方法就行了啊
回复
qq672500286 2012-09-06
如果添加窗体是显示窗体show出来的,那在show出来这句的后面加刷新方法不就行了吗
回复
老龙友 2012-09-06
[Quote=引用楼主 的回复:]
我有两个窗体,一个是添加数据的窗体,一个是显示数据的窗体(Datagridview加载数据),我在添加数据的窗体中添加一条数据后,退出添加数据的窗体 ,退出的方法中如何写,才能调用显示数据窗体中的刷新方法,将添加的数据显示出来?
不知道能不能看明白?
[/Quote]

需要这么麻烦吗?

刷新数据的方法应该还是在显示数据的窗体里使用啊
唯一要判断的,是添加数据的窗体到底添加成功了还是没成功,没成功不必刷新

可以用form.DialogResult来判断
回复
加载更多回复
相关推荐
发帖
C#
创建于2007-09-28

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2012-09-05 01:30
社区公告

让您成为最强悍的C#开发者