当前位置:首页>区块链

如何货币基金预委托(C# 常见技能_委托)

日期:2023-05-17

来源:玫瑰财经网

浏览:

    大家好,我是华山自控编程朱老师

    前几天一个学员在学习C#与委托交互时。一直是获取不到另一个窗体上文本框的值,

    截图如下:

    C# 常见技能_委托

    不知道什么原因。

    其实很多初学者在学习vs和委托交互时,都会遇到类似的问题,不知道是直接通过窗体对象来获取,还是通过委托获取。下面我们就举一个入门案例来讲解Winform中如何利用委托来实现窗体之间的传值

    Winform中利用委托实现窗体之间的传值 C# 常见技能_委托

    有这样两个窗体,一个是form1,一个是form2.当我点击form1中的按钮,则窗体form2显示出来。

    然后当我在窗体2中的文本框中实时输入字符时,form1中的文本框要跟窗体2中的文本框显示同样的内容。

    这就涉及到了窗体之间的传值问题。

    实现这个效果有很多种方法,这里我说下怎么应用委托来达到窗体之间传值的目的。

    首先点击form1中的按钮来显示Form2

    C# 常见技能_委托

    然后,要想实时获取Form2中的内容,我们就得在Form2的textBox2中创建一个KeyUp事件。

    C# 常见技能_委托

    C# 常见技能_委托

    C# 常见技能_委托

    那么现在的问题就来了,怎么让form1中的文本框显示Form2的文本框中的内容。

    首先,我们可以在form1中定义一个方法,这个方法接受一个字符串参数,方法的作用就是为form1中的文本框赋值

    C# 常见技能_委托

    那么我们只要能够在Form2中调用到这个方法,并且将keywords中的值传给这个方法,那么我们就能让form1来显示Form2中文本框的值。把一个函数当做参数传递,这时候我们就用到了委托。

    新建一个类,名字随便写,里面只需添加这样一句代码。

    C# 常见技能_委托

    public delegate void updataForm1textDelegate (string msg);

    也就是声明一个委托,这个委托必须跟预委托的方法具有相同的签名,也就是要跟它能够委托的方法具有相同的返回值类型和参数。

    之后我们在Form2中添加一个公有字段

    public updataForm1textDelegate updataForm1text;

    C# 常见技能_委托

    同时在TextBox2KeyUp这个事件处理函数中添加

    string keywords = this.textBox2.Text;

    updataForm1text.Invoke(keywords);

    然后在form1的按钮处理函数中添加

    f2.updataForm1text = updateForm1Text;

    把updateForm1Text方法赋值给updataForm1text这个委托。

    C# 常见技能_委托

    到这里,整个案例就讲解完了。当然。我们也可以通过在form1里面定义一个监听线程或者定时器,通过单例模式f2对象拿到textbox2的text值。

    总结如下:

    在form2里面定义一个委托类型,在form2的文本框键盘事件里面调用委托对象。在form1的按钮事件里面,给form2的委托变量赋值 委托方法。在 form1的委托方法里面把接受到的字符串变量赋值给form1的文本框文章如果对你有用,麻烦点赞,评论~

    最近很多小伙伴找我,说想要一些学习资料,然后我根据自己从业二十年经验,精心整理了一份「上位机编程入门到高级教程+工具包」,点个关注,以下是领取入口:

    点击领取上位机编程全套入门教程+工具

    C# 常见技能_委托

相关文章阅读

Copyright (c) 2022 玫瑰财经网 版权所有

备案号:冀ICP备17019481号

玫瑰财经网发布此信息的目的在于传播更多信息,与本站立场无关。玫瑰财经网不保证该信息(包含但不限于文字、视频、音频、数据及图表)全部或者部分内容的准确性、真实性、完整性、有效性、及时性、原创性等。
相关信息并未经过本网站证实,不对您构成任何投资建议,据此操作,风险自担。