【发布时间】:2018-09-25 04:45:28
【问题描述】:
我在 VisualStudio 中工作。
我有这个表格:
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 Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void Form1_Load(object sender, EventArgs e)
{
}
public static int signal = 0;
public void button1_Click(object sender, EventArgs e)
{
}
}
}
还有这个用户控制:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Test
{
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
if (Form1.signal == 1)
{
MessageBox.Show("Signal received!", "Atention!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
private void UserControl1_Load(object sender, EventArgs e)
{
}
}
}
当单击“Form1”中的“button1”时,我拼命尝试显示“UserControl1”中的“MessageBox”。基本上,我想在按下“button1”时将“signal”的值更改为 1。我是新手,但我在这里时间紧迫,所以非常欢迎提供很好的帮助。有任何想法吗?谢谢!
【问题讨论】:
-
即使你在你的Form中改变了变量“signal”的值,当这种情况发生时,UserControl现在怎么可能呢?需要定义一个自定义的事件,定义对应的事件处理函数,将两者连接起来。
-
就像我说的,我是新手,我的知识非常有限。当然,解决这个问题的最好方法是花时间学习这个程序,但不幸的是我没有那个时间。我稍后会这样做。以我的例子来说明你所说的会很棒!