Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我得到dialogResult=取消_C#_Winforms - Fatal编程技术网

C# 为什么我得到dialogResult=取消

C# 为什么我得到dialogResult=取消,c#,winforms,C#,Winforms,我正在winForms的C#中从事一个与足球相关的项目。我正在尝试创建一个更新按钮,它将打开另一个窗口。 这是我的课 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

我正在winForms的C#中从事一个与足球相关的项目。我正在尝试创建一个更新按钮,它将打开另一个窗口。 这是我的课

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; }
}
这是表格一

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
            }
        }
    }

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

替换方法按钮1\u Click()


你在Instat上工作吗?@Kamiky Nope,这只是一个大学项目,我正在尝试为足球比赛制作一个投注平台。你可以使用它的
DialogResult
属性直接将
DialogResult
设置为按钮。单击按钮时,它还定义对话框的结果。-使用DialogResult时,请删除
Close()
,因为设置此选项也会关闭对话框。如果设置了
DialogResult
,当当前方法返回时,它会自动关闭对话框,因此您根本不需要调用
.Close()
。@Fildor:“实际上,在调用Close()之前,我已经设置了结果。”--从可读性的角度来看,这可能不是个坏主意。但实际上这并不重要。唯一关心
DialogResult
属性值的代码在该方法返回之前无法运行,因此顺序无关。当然,最好只设置
AcceptButton
和/或按钮自己的
DialogResult
属性,这样就不必处理
Click
事件。当然,即使处理事件,也不需要调用
Close()
…只需设置
DialogResult
 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
    }
this.Close()
Close();
DialogResult = DialogResult.OK;