将两个C#消息框的内容合并为一个

将两个C#消息框的内容合并为一个,c#,messagebox,C#,Messagebox,我的程序中有如下代码。弹出其中一个消息框以显示字段表单的内容。点击OK后,会弹出另一个对话框,询问用户信息是否正确。我想将两者结合起来,在这里会弹出一个消息框,显示表单内容,询问信息是否正确,并伴有一个是/否按钮。我试着把两者结合起来,但没有用。我相信我遗漏了一个句法概念。有什么想法吗 //shows contents of form fields StringBuilder MessageText = new StringBuilder(); MessageText.

我的程序中有如下代码。弹出其中一个消息框以显示字段表单的内容。点击OK后,会弹出另一个对话框,询问用户信息是否正确。我想将两者结合起来,在这里会弹出一个消息框,显示表单内容,询问信息是否正确,并伴有一个是/否按钮。我试着把两者结合起来,但没有用。我相信我遗漏了一个句法概念。有什么想法吗

   //shows contents of form fields
  StringBuilder MessageText = new StringBuilder();
        MessageText.AppendLine(string.Format("Coil#: {0}", coil_Num.Text));
        MessageText.AppendLine(string.Format("Location: {0}", location_box.Text));
        MessageText.AppendLine(string.Format("Sub-Area: {0}", sub_area_box.Text));
        MessageText.AppendLine(string.Format("Row: {0}", row_Num.Text));
        MessageBox.Show(MessageText.ToString());

  //asks if info is correct, with a YES/NO button and question mark
  DialogResult result1 = MessageBox.Show("Information is correct?",
        "Double Check Form Information",
        MessageBoxButtons.YesNoCancel,
        MessageBoxIcon.Question);
像这样的?当然,最后一个文本也可以附加到StringBuilder中

如果只需要是/否按钮,请将
MessageBoxButtons.YesNoCancel
更改为
MessageBoxButtons.YesNo

最后检查如下结果:

switch (result1)
{
   case DialogResult.Yes:
      // ... Do stuff if Yes is choosen
      break;

   case DialogResult.No:
      // ... Do stuff if No is choosen
      break;

   case DialogResult.Cancel:
      // ... Do stuff if Cancel is choosen
      break;
}
当然,您必须添加/删除“取消”选项,具体取决于是否包含该按钮

像这样的?当然,最后一个文本也可以附加到StringBuilder中

如果只需要是/否按钮,请将
MessageBoxButtons.YesNoCancel
更改为
MessageBoxButtons.YesNo

最后检查如下结果:

switch (result1)
{
   case DialogResult.Yes:
      // ... Do stuff if Yes is choosen
      break;

   case DialogResult.No:
      // ... Do stuff if No is choosen
      break;

   case DialogResult.Cancel:
      // ... Do stuff if Cancel is choosen
      break;
}

当然,您必须根据是否包含按钮来添加/删除取消选项。

我假设您想在信息之后提问,在这种情况下,您需要在传递到相关MessageBox参数之前将问题附加到stringbuilder,就像在第一个MessageBox中一样:

StringBuilder MessageText = new StringBuilder();
MessageText.AppendLine(string.Format("Coil#: {0}", coil_Num.Text));
MessageText.AppendLine(string.Format("Location: {0}", location_box.Text));
MessageText.AppendLine(string.Format("Sub-Area: {0}", sub_area_box.Text));
MessageText.AppendLine(string.Format("Row: {0}", row_Num.Text));
MessageText.AppendLine("Is this information correct?");

DialogResult result1 = MessageBox.Show(MessageText.ToString(),
    "Double Check Form Information",
    MessageBoxButtons.YesNoCancel,
    MessageBoxIcon.Question);

我假设您想在信息之后提问,在这种情况下,您需要在传递到相关MessageBox arg之前将问题附加到stringbuilder,就像您在第一个MessageBox中一样:

StringBuilder MessageText = new StringBuilder();
MessageText.AppendLine(string.Format("Coil#: {0}", coil_Num.Text));
MessageText.AppendLine(string.Format("Location: {0}", location_box.Text));
MessageText.AppendLine(string.Format("Sub-Area: {0}", sub_area_box.Text));
MessageText.AppendLine(string.Format("Row: {0}", row_Num.Text));
MessageText.AppendLine("Is this information correct?");

DialogResult result1 = MessageBox.Show(MessageText.ToString(),
    "Double Check Form Information",
    MessageBoxButtons.YesNoCancel,
    MessageBoxIcon.Question);
只要做:

MessageBox.Show(MessageText.ToString(), MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
第二个参数(MessageBoxButtons.YesNoCancel)决定了它将有哪些按钮(在本例中为yes、no和cancel)

只需执行以下操作:

MessageBox.Show(MessageText.ToString(), MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);

第二个参数(MessageBoxButtons.YesNoCancel)决定了它将拥有哪些按钮(在本例中为yes、no和cancel)

为什么不简单地连接字符串呢

    DialogResult result1 = MessageBox.Show(MessageText.ToString() + 
"\nInformation is correct?",
        "Double Check Form Information",
        MessageBoxButtons.YesNoCancel,
        MessageBoxIcon.Question);

为什么不简单地将字符串连接起来呢

    DialogResult result1 = MessageBox.Show(MessageText.ToString() + 
"\nInformation is correct?",
        "Double Check Form Information",
        MessageBoxButtons.YesNoCancel,
        MessageBoxIcon.Question);

是的,这正是我需要的。我没有想到要添加两个appendline()。非常感谢你!检查我的编辑:)您还可以使用
StringBuilder.AppendFormat()
在一行中执行
AppendLine
string.Format()
,这正是我需要的。我没有想到要添加两个appendline()。非常感谢你!检查我的编辑:)您还可以使用
StringBuilder.AppendFormat()