showDialog() 显示不带调用的结果

本文关键字:调用 结果 显示 showDialog | 更新日期: 2023-09-27 18:31:44

我有以下代码行来显示消息框中的窗口:

MessageBox.Show(new ElbaKostenstellen(titel, loginid).ShowDialog().ToString());

问题是,当我关闭它时,另一个 MessageBox 以 truefalse 开头,但我从未告诉它这样做。我该如何解决这个问题?

下面是更相关的代码:

                    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() 显示不带调用的结果

为了显示一个表单调用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) 还是已取消 (错)。返回值是对话框结果属性的值 在窗口关闭之前。