我制作了一个消息框,一个包含消息标签和标题标签的表单。
一个OK按钮(什么都不做)。
我可以从我程序中的任何表单中提取此消息框。
我需要一个消息框,其中包含是按钮和否按钮,并知道是否按下是或否,我该怎么做?
这样的代码是什么?
答案 0 :(得分:17)
// 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:
答案 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()
。