如何从我制作的消息框中返回是或否?

时间:2011-02-16 20:02:16

标签: c# winforms

我制作了一个消息框,一个包含消息标签和标题标签的表单。

一个OK按钮(什么都不做)。

我可以从我程序中的任何表单中提取此消息框。

我需要一个消息框,其中包含按钮和按钮,并知道是否按下,我该怎么做?

这样的代码是什么?

6 个答案:

答案 0 :(得分:17)

来自MSDN MessageBox.Show(...)

// Initializes the variables to pass to the MessageBox.Show method.

string message = "You did not enter a server name. Cancel this operation?";
string caption = "Error Detected in Input";
MessageBoxButtons buttons = MessageBoxButtons.YesNo;
DialogResult result;

// Displays the MessageBox.

result = MessageBox.Show(message, caption, buttons);

if (result == System.Windows.Forms.DialogResult.Yes)
{
    // Closes the parent form.
    this.Close();
}

答案 1 :(得分:4)

在按钮的点击事件处理程序中使用

this.DialogResult = System.Windows.Forms.DialogResult.Yes;

而不是

this.Close();

然后在您的主叫代码中正常处理。

答案 2 :(得分:2)

使用:

dialogResult dr;
dr = MessageBox.show("Do you want to save the record", "Confirm", MessageBoxButtons.YesNo);
if (dr == DialogResult.yes)
{
    //Code for inserting the data into the database
    messageBox.show("Record saved successfully");
}

如果要在确认后将表单数据保存到数据库,则此代码适用。这里我只展示如何访问用户按下哪个按钮的消息框的值。

答案 3 :(得分:1)

MessageBox.Show具有以下方法签名:

public static DialogResult Show(
    string text,
    string caption,
    MessageBoxButtons buttons
)

这意味着您可以指定要显示的按钮。

实施例

var dialogResult = MessageBox.Show("Do you have socks?", "Question.", MessageBoxButtons.YesNo);

以下是您可以选择的MessageBoxButtons:

  • 艾伯塔省
  • AbortRetryIgnore
  • YesNoCancel
  • YESNO
  • RetryCancel

答案 4 :(得分:1)

如果你想要返回不同类型的结果(例如,一串文字),你可以这样做:

public class MyMessageBox : Form
{
    // You can add parameters here if needed
    public static string Ask()
    {
        var form = new MyMessageBox();
        form.ShowDialog();
        return form.ResponseTextBox.Text;
    }
    // regular stuff
}

然后就这样做

string answer = MyMessageBox.Ask();

如果在Windows Vista或更高版本上运行,您可以使用Windows API Code Pack来使用新的TaskDialog

答案 5 :(得分:0)

有一个内置函数可以执行此操作:

var result = MessageBox.Show("your message here", "title", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes) {
    // .. 
}

如果您想使用自己的自定义表单进行类似操作,只需将“是”按钮的DialogResult设置为Yes,将“否”按钮设置为No,然后在表单上致电ShowDialog()