【问题标题】:Why do I get dialogResult = cancel [duplicate]为什么我得到 dialogResult = cancel [重复]
【发布时间】:2021-07-22 16:55:33
【问题描述】:

我正在用 C# 编写一个与足球相关的项目 winForms。我正在尝试制作一个打开另一个窗口的更新按钮。 这是我的课

public class Match
{
    public string team1 { get; set; }
    public string team2 { get; set; }
    public string pariu { get; set; }
    public float cota { get; set; }
    public DateTime data { get; set; }
}

这是在 Form1 中

List<Match> m = new List<Match>();
//UPDATE
    private void btEdit_Click(object sender, EventArgs e)
    {
        if (listView1.SelectedItems.Count != 0)
        {
            Match p = m.ElementAt(listView1.SelectedIndices[0]);

            Form2 edit = new Form2(p);
            DialogResult dialogResult = edit.ShowDialog();//this is everytime = cancel

            if (dialogResult == DialogResult.OK)
            {
   
                PopulateListView();//so this never happens
            }
        }
    }

这是form2

 private void button2_Click(object sender, EventArgs e)
    {
        this.Close();//cancel
    }

    private void button1_Click(object sender, EventArgs e)
    {
        match.team1 = textBox1.Text;
        match.team2 = textBox2.Text;
        float.TryParse(textBox3.Text, out float value);
        match.cota = value;
        this.Close();//save edit
    }

为什么我每次更新我的 listView 中的内容时都会得到 showDialog = 'Cancel'?

【问题讨论】:

  • 你在做 Instat 吗?
  • @Kamiky 不,这只是一个大学项目,我正在尝试为足球比赛做一个投注平台。
  • 您可以使用其DialogResult 属性直接将DialogResult 设置为按钮。单击 Button 时,它还定义了 Dialog 的结果。 -- 使用 DialogResult 时删除 Close(),因为设置它也会关闭 Dialog。

标签: c# winforms


【解决方案1】:

在方法button1_Click()中替换

this.Close()

Close();
DialogResult = DialogResult.OK;

【讨论】:

  • 如果你设置DialogResult,当当前方法返回时它会自动关闭对话框,所以你根本不需要调用.Close()
  • @Fildor: “我实际上是在调用 Close() 之前设置结果”——从可读性的角度来看,这可能不是一个坏主意。但在实践中,这并不重要。唯一关心DialogResult 属性值的代码在该方法返回之前无法运行,因此顺序无关紧要。当然,最好只设置AcceptButton 和/或按钮自己的DialogResult 属性,这样就不需要处理Click 事件了。当然,即使处理事件,甚至不需要调用Close()...只需设置DialogResult
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-21
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
  • 2011-01-08
  • 2020-02-28
相关资源
最近更新 更多