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