【问题标题】:Why do I get no additional MessageBoxes?为什么我没有收到额外的 MessageBox?
【发布时间】:2014-01-15 13:21:36
【问题描述】:
namespace övning_2._2_mitt_första_program
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            DialogResult dialogResult  = MessageBox.Show("Är det roligt att programera", "Övning", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if ( DialogResult == DialogResult.No)
            {
                MessageBox.Show("Du suger", "ÅSNA", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

            else if (DialogResult == DialogResult.Yes)
            {
                MessageBox.Show("Klart du gör", "Duktig", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
    }
}

【问题讨论】:

  • 为什么投反对票?一个简单但比看起来更有趣的问题。

标签: c# winforms dialog


【解决方案1】:

您当前正在使用Form1 的当前实例的Form.DialogResult 属性,而不是从消息框中获得的dialogResult 变量。这个:

if ( DialogResult == DialogResult.No)

应该是:

if (dialogResult == DialogResult.No)

(当然,另一个分支也是如此。)

【讨论】:

    【解决方案2】:

    你应该使用你的 dialogResult 变量:

    private void button1_Click(object sender, EventArgs e)
    {
        DialogResult dialogResult  = MessageBox.Show("Är det roligt att programera", "Övning", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
    
        if (dialogResult == DialogResult.No)
        {
            MessageBox.Show("Du suger", "ÅSNA", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }
        else if (dialogResult == DialogResult.Yes)
        {
            MessageBox.Show("Klart du gör", "Duktig", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }
    }
    

    【讨论】:

    • 有趣的是它可以编译。它从表单实例中获取DialogResult property,默认情况下为None。这就是为什么对属性使用与其返回的类/结构的名称相同的名称可能会出现问题的原因。
    【解决方案3】:

    这看起来你犯了类型错误,你将输出存储在变量 strong text 中并在变量 DialogResult 中进行比较

    试试这个。

      private void button1_Click(object sender, EventArgs e)
                {
                    DialogResult dialogResult = MessageBox.Show("Är det roligt att programera", "Övning", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
    
                    if (dialogResult == DialogResult.No)
                    {
                        MessageBox.Show("Du suger", "ÅSNA", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
    
                    else if (dialogResult == DialogResult.Yes)
                    {
                        MessageBox.Show("Klart du gör", "Duktig", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-07
      • 2018-12-20
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多