问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c# 一个winform调用另外一个winform的函数

发布网友 发布时间:2022-05-17 15:02

我来回答

3个回答

热心网友 时间:2023-10-25 23:24

Form1 调用 Form2的代码,可以利用 委托进行实现,写了一个例子参考一下

//主窗体
public partial class MainForm : Form
    {
        private Form1 form1 = null;
        private Form2 form2 = null;
        public MainForm()
        {
            InitializeComponent();
            form1 = new Form1();
                       
            form2 = new Form2();
            //传递 Form2 的 Fun1 方法 到 Form1 的委托
            form1.Function = new Form1.FunctionDelegate(form2.Fun1);
        }
        private void btnForm1_Click(object sender, EventArgs e)
        {
            form1.Show();
        }
        private void btnForm2_Click(object sender, EventArgs e)
        {
            form2.Show();
        }
    }

//Form1
    public partial class Form1 : Form
    {
        //定义一个委托类型
        //根据需要可以修改是否带参数和返回值
        public delegate void FunctionDelegate(string text);
        //些委托的值 由 Form2 函数 给出
        public FunctionDelegate Function;
        public Form1()
        {
            InitializeComponent();
        }
        private void btnStart_Click(object sender, EventArgs e)
        {
            //如果委托不为空时,进行调用
            if (Function != null) {
                Function("Hello");
            }
        }
    }

//Form2
public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        //定义一个由 Form1 调用的方法
        //此方法的参数和返回值要和Form2的委托一致
        public void Fun1(string text)
        {
            label1.Text = text;
        }
    }


热心网友 时间:2023-10-25 23:25

邮件已发送,记得采纳追问看到了。但是你这个程序是form1中调用自己的函数。
我想要的是form1中的按钮,调用form2中的函数。

热心网友 时间:2023-10-25 23:25

思路:
1、form中将f2设为公共字段,对应窗体2的实例
2、在f1的构造函数中传入form实例
3、在f1的按钮事件中:
if (form.f2 != null)
{ form.f2.xx函数(); }

补充:f2中的该函数须为public
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
你觉得hx100在长焦机中怎样?处于什么水平? 索尼DSC-HX100显示功能 美的kfr-51lw/ y- pa1是什么故障代码 索尼DSC-HX100V基本参数 索尼DSC-HX100显示功能 索尼DSC-HX100主要参数 金龙鱼深海鱼油好不好? Y一60C81显示E5什么故障? 索尼DSCHX100质量如何 索尼DSC-HX100存储性能 电脑刚开机怎样直接进入XP,跳过检测? 如何将windows xp的开机登录设置为直接进入桌面 创建C#的wpf项目(C/S架构),不知道C/S架构中能不能用webapi,请高人解答,谢谢! 在web中调用winform怎么弄 winform 怎么新建webapi 想问一下Winform和WebApi搭配着好用么 如何做一个节粮的手抄报 节粮我先行,勤俭树新风怎么做一份手抄报? 突发奇想,我要是能娶一对双胞胎,该有多好 我想要对双胞胎,该怎样才能怀上? 做试管想要一对双胞胎,能实现吗? 大家都想要一对双胞胎吗? 怎么样可以怀一对双胞胎 为什么在电脑里下载了芒果tv后用优盘插到海信电视里在电视里找不到安装不了 QQ在没有添加好友的情况下怎样才能看对方的空间 中华娄步甲虫有什么危害吗 局域网的传输介质有哪四种 QQ币有什么用呢 QQ钱包中 的Q币,Q点,积分是 什么意思?有什么用? 对方QQ是一个垃圾骗子,加在我的QQ里面,我怎么烦它、搞它,才可以让它把我的Q拉黑 如何在启动后首先进入DOS系统,从DOS系统手动进入Windows XP系统? C#的winform程序,主窗体的调用问题 winform窗体内函数调用 windows xp怎么开机直接进入系统,不用在按确定了(我没有设置密码,但每次开机都要按确定才能 - 信息提示 亲人要杀鱼念什么佛号 佛:每当屠夫要动手杀鱼杀鸡的时候…… 杀鱼时念阿弥陀佛好吗 怎样念往生咒 我在菜市场买活鱼直接让摊主给杀了,可是到了晚上我就会做噩梦,好像每次都这样,弄得我都不敢吃鱼了 做水产生意每天都会杀鱼,能信佛吗 我父亲学佛我也受到点感染,因为工作原因不得已要经常杀鱼,有什么方法杀鱼能让鱼的痛苦减轻一点吗? 我母亲杀生了我该怎样念往生咒 本人不喜欢杀生,但不得已要经常杀鱼,有什么方法杀鱼能让鱼痛苦减轻一点吗? 我今年20,男,看到亲戚杀鱼先拍晕,然后挖内脏,鱼还没死。再用刀子刮鳞,还在动。最后又在伤口上撒了 滕州市灵动网络科技有限公司怎么样? 早上杀鱼了可以去寺庙拜佛吗 滕州市东捷网络科技有限公司怎么样? 滕州金源网络科技有限公司怎么样? 滕州和信网络科技有限公司怎么样?