2015-06-14 58 views
1

所以我创建了一个文本编辑器,当用户尝试关闭应用程序时询问他们是否确实想要这样做,这很像在Windows'记事本中。我没有使用MessageBoxes,而是使用自定义窗体。我如何从Form2中按下的按钮获取信息并在Form1中访问它?如何从不同的表单访问按钮按钮? C#

在此先感谢您的回复。如果有任何其他信息我可以提供,这将是有用的,请让我知道!

编辑我的意思:我创建了一个带有3个按钮的表单:保存,不保存和取消。我想获得他们所按的信息。我只需要返回按钮并从那里出发?

+0

使用'的ShowDialog()'和评估返回 – Plutonix

+0

请解释一下你的意思是“得到他们按下按钮的信息”。你想获得什么信息?如果确定用户是否点击是或否,那么Plutonix就有正确的想法。 –

回答

1

您需要有一个属性才能将信息从辅助表单中提取出来。你仍然想使用ShowDialog(),然后你可以检查对话框的结果。这是来自内存,所以代码可能不会构建,但应该给你这个想法。

在你的窗体2

public string Text 
{ 
    get { return this.SomeTextBoxOnTheForm.Text; } 
    set { this.SomeTextBoxOnTheForm.Text = value; } 
} 

//called from your "Save" button. 
public void Save() 
{ 
    this.DialogResult = DialogResult.Ok; 
    this.Close(); 
} 

//called from either your "DontSave" button or your "Cancel" button. 
public void Cancel() 
{ 
    this.DialogResult = DialogResult.Cancel; 
    this.Close(); 
} 

在你的其他Form1中

public void ShowForm2() 
{ 
    var form = new Form2(); 

    //you could even set default text here 
    form.Text = "Enter a message..."; 

    var result = form.ShowDialog(); 
    if(result == DialogResult.Ok) 
    { 
     var finalText = form.Text; 

     //do something with the text 
    } 
}