C#成神之路 <22> 窗体跳转以及数据传递
发布日期:2021-05-07 18:45:11 浏览次数:20 分类:精选文章

本文共 2557 字,大约阅读时间需要 8 分钟。

这里的知识内容参考网络层面较多: 设计窗体数据传递必然少不了委托和事件。我参考的学习资料:

感谢那些在技术分享和协作中给予帮助的人们。

下面列出本人关于窗体之间跳转和数据传递所编写的简单代码:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace 窗体数据传递{    public delegate void MyInvoke(string Item1);    public partial class frmMain : Form    {        public frmMain()        {            InitializeComponent();        }        public static void Main()        {            frmMain main = new frmMain();            Application.Run(main);        }        private void btnClose_Click(object sender, EventArgs e)        {            Close();        }        private void btnGo_Click(object sender, EventArgs e)        {            Form1 sonForm1 = new Form1(this, new MyInvoke(UpdatetxtOutput));            sonForm1.Show();            this.Hide();        }        private void UpdatetxtOutput(string Item1)        {            txtOutput.Text = Item1;        }        private void frmMain_Load(object sender, EventArgs e)        {            string k = @"F:\学习文件\C++练习\窗体数据传递\bin\Ramin Djawadi - Main Titles 音频已提取.wav";            SoundPlayer sp = new SoundPlayer(k);            sp.PlayLooping();            ToolTip a = new ToolTip();            a.AutoPopDelay = 200;            a.SetToolTip(txtOutput, "my output");        }        private void txtOutput_TextChanged(object sender, EventArgs e)        {        }        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)        {        }        private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)        {            cmbIn.Items.Add(clbSelect.CheckedItems);        }    }}
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace 窗体数据传递{    public partial class Form1 : Form    {        private MyInvoke mi = null;        Form f1 = new Form();        public Form1(Form f, MyInvoke myInvoke)        {            this.mi = myInvoke;            InitializeComponent();            f1 = f;        }        private void btnClose_Click(object sender, EventArgs e)        {            this.Close();            f1.Show();        }        private void btnIn_Click(object sender, EventArgs e)        {            this.mi(this.textBox1.Text);        }    }}

以上代码展示了通过委托和事件实现窗体之间数据传递的实现方法。主窗体通过创建子窗体并传递一个委托实例,将数据更新事件传递给子窗体。子窗体则通过调用委托实例中的方法来更新父窗口的文本内容。

上一篇:本科教育忽略的黄金C++<2> 顺序容器
下一篇:C#成神之路 <21> 窗体操作相关

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年03月19日 16时08分02秒