C# 如何在form1中的值更改时更新form2
在C#中,我有两种形式“Form1”和“Form2”。Form1创建存储在文件夹中的图像。Form2显示该文件夹中的图像数 假设我用Form1制作了两张图片,然后打开Form2。Form2现在显示有两张图片。现在,在保持两个表单打开的同时,我希望能够添加新的图像和Form2更新。如果在Form2打开时使用Form1添加更多图像,Form2将继续显示打开Form2时文件夹中的图像数 我已经找到了解决方案,包括关闭和重新打开Form2,但我不想这样。对于用户来说,每次按下按钮都会打开和关闭窗口,这是不和谐的。我只希望Form2在我使用Form1进行更改时实时更新C# 如何在form1中的值更改时更新form2,c#,forms,visual-studio,C#,Forms,Visual Studio,在C#中,我有两种形式“Form1”和“Form2”。Form1创建存储在文件夹中的图像。Form2显示该文件夹中的图像数 假设我用Form1制作了两张图片,然后打开Form2。Form2现在显示有两张图片。现在,在保持两个表单打开的同时,我希望能够添加新的图像和Form2更新。如果在Form2打开时使用Form1添加更多图像,Form2将继续显示打开Form2时文件夹中的图像数 我已经找到了解决方案,包括关闭和重新打开Form2,但我不想这样。对于用户来说,每次按下按钮都会打开和关闭窗口,这是
任何帮助都将不胜感激!!谢谢 您可以使用Form2中的public方法执行此操作 在Form1中,需要将Form2对象保存在属性中 表格1
public partial class Form1 : Form
{
public Form2 MyProperty { get; set; }
public Form1()
{
InitializeComponent();
}
// for opening form 2
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
MyProperty = f2;
}
// adding new image
private void button_ADD_Click(object sender, EventArgs e)
{
MyProperty.updateCounter();
}
}
添加新图像时,可以从Form2调用metoh来更新计数器
在表格2中您需要板条箱公共方法来更新计数器
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
// default value
label1.Text = "0";
}
// update counter
public void updateCounter()
{
label1.Text = (int.Parse(label1.Text) + 1).ToString();
}
}
您可能需要查看事件和代理。基本上,每当您对
Form1
执行可能影响其他表单的操作时,您都希望触发一个事件。在Form2
中,您有一个方法,每当事件触发时,您都会调用该方法。这样,您可以打开多个表单,只要将它们设置为“侦听”给定的事件,它们都可以做出反应
您可以在此处的。中阅读更多关于这些事件的信息,请参阅以下关于事件的内容。