在C#中调用另一个表单上的方法

时间:2009-05-08 00:58:11

标签: c# winforms

我正在构建一个基本的图像编辑器。在我的应用程序中,如果用户想要调整图像大小,则会弹出一个新表单并要求用户输入图像的新宽度和高度。

public partial class Form1 : Form
{
...
    private void resizeToolStripMenuItem_Click(object sender, EventArgs e)
    {
        resize resizeForm = new resize();
        resizeForm.ShowDialog();
    }
...
}

我想知道如何从resizeForm获取值并使用它们来改变父窗体(Form1实例)上的图像。

如果这个问题需要澄清,请告诉我。

谢谢!

3 个答案:

答案 0 :(得分:4)

我假设有很多方法可以做到这一点。我可能在resizeForm上使用公共属性,然后在resizeForm.ShowDialog()返回时获取它们。

if (resizeForm.ShowDialog() == DialogResult.OK) // or whatever
{
   myVal = resizeForm.Val;
   ...
}

或类似的东西。

答案 1 :(得分:3)

在“resize”类中为要检索的值设置属性。例如,如果添加width属性:

public int Width { get; set; }

您将能够从Form1类获得宽度。

答案 2 :(得分:2)

在调整大小表单关闭后,您的主窗体可以查询调整大小窗体的属性,例如......

DialogResult dr = resizeForm.ShowDialog();

if( dr != DialogResult.Cancel )
{
  var newH = resizeForm.Height;
  var newW = resizeForm.Width;

  // do something with new vals.
}