【问题标题】:Get data back to the original form from a second form将数据从第二个表单恢复到原始表单
【发布时间】:2012-10-22 08:14:03
【问题描述】:

我有两个表单,我使用以下方法创建第二个:

Form2 f2 = new Form2();
f2.Show();

Form2 有一个公开的变量,每次鼠标移动都会改变。我在该表单上有一个按钮,按下时可以保存变量。现在的问题是我不知道如何将它传递回Form1

【问题讨论】:

    标签: c# forms variables public


    【解决方案1】:

    你应该使用事件。 Form2 应该定义一个适当触发的事件(听起来应该是单击按钮时)。然后Form1 可以订阅该事件并做...任何事情。

    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
    
        public event Action<string> MyEvent; //TODO give better name and set arguments for the Action
    
        private void button1_Click(object sender, EventArgs e)
        {
            string someValue = "Hello World!";  //TODO get value that you want to share
    
            if (MyEvent != null)
            {
                MyEvent(someValue);
            }
        }
    }
    

    然后在你的主要形式中:

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 otherForm = new Form2();
    
        //subscribe to the event.  You could use a real method here, rather than an anonymous one, but I prefer doing it this way.
        otherForm.MyEvent += value =>
        {
            //do other stuff with "value".
            label1.Text = value;
        };
    
        otherForm.Show();
    }
    

    【讨论】:

    • @KollingMaster 好的;你不明白什么?告诉我你不明白并不能让我帮助你。您是否尝试将此代码放入空白解决方案以查看它的工作原理?从那里进行一些小的修改,特别是尝试发送不同的数据,或者对主窗体上的数据做不同的事情。从那里考虑将代码实际移动到您的实际应用程序中。
    • 非常感谢您现在知道了。问题是我以前从未处理过事件,所以我现在需要学习它。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 2019-12-24
    • 2020-02-06
    • 2020-07-15
    • 2021-01-23
    • 1970-01-01
    相关资源
    最近更新 更多