showDialog() 显示不带调用的结果
本文关键字:调用 结果 显示 showDialog | 更新日期: 2023-09-27 18:31:44
我有以下代码行来显示消息框中的窗口:
MessageBox.Show(new ElbaKostenstellen(titel, loginid).ShowDialog().ToString());
问题是,当我关闭它时,另一个 MessageBox 以 true
或 false
开头,但我从未告诉它这样做。我该如何解决这个问题?
下面是更相关的代码:
string ganzes = sr.ReadToEnd();
string[] allezeilen = ganzes.Split(''n');
for (int i = 0; i < allezeilen.Length - 1; i++)
{
string[] separated = allezeilen[i].Split(';');
String datum = separated[0];
String titel = separated[1];
if (titel.Contains('"'))
{
titel = titel.Replace('"', ' ');
}
String betrag = separated[3];
buchrep.bookFromElbaCSV(datum, titel, betrag, loginid);
//ElbaKostenstellen ek = new ElbaKostenstellen(titel, loginid);
//ek.Show();
MessageBox.Show(new ElbaKostenstellen(titel, loginid).ShowDialog().ToString());
}
为了显示一个表单调用ShowDialog
就足够了,调用MessageBox.Show
是不必要的。尝试;
new ElbaKostenstellen(titel, loginid).ShowDialog();
而不是
MessageBox.Show(new ElbaKostenstellen(titel, loginid).ShowDialog().ToString());
你在写这个字符串时告诉了它
MessageBox.Show(new ElbaKostenstellen(titel, loginid).ShowDialog().ToString());
所以你需要从ElbaKostenstellen获取消息,而不调用ShowDialog()
让我们看看
MessageBox.Show(new ElbaKostenstellen(titel, loginid).ShowDialog().ToString());
计算的第一个位是
new ElbaKostenstellen(titel, loginid).ShowDialog()
这将显示对话框,并且在对话框关闭之前,代码的执行将被阻止。
然后
MessageBox.Show(...)
执行并显示上一个对话框结果的字符串表示形式。
我怀疑你不需要MessageBox.Show(..)
,只需要new ElbaKostenstellen(titel, loginid).ShowDialog()
这是因为 ShowDialog 的返回值是真或假。
正如这里所写 - http://msdn.microsoft.com/en-us/library/system.windows.window.showdialog.aspx
返回值
类型:System.Nullable 布尔类型的可为空值 指定活动是被接受 (true) 还是已取消 (错)。返回值是对话框结果属性的值 在窗口关闭之前。