0

我有以下代码行来在 MessageBox 中显示一个窗口:

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

问题是,当我关闭它时,另一个 MessageBox 以trueor开头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());
                    }
4

4 回答 4

4

为了显示调用ShowDialog它的表单就足够了,调用 toMessageBox.Show是不必要的。尝试;

new ElbaKostenstellen(titel, loginid).ShowDialog();

代替

MessageBox.Show(new ElbaKostenstellen(titel, loginid).ShowDialog().ToString());
于 2012-04-19T14:43:28.000 回答
1

让我们看看

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

被评估的第一位是

new ElbaKostenstellen(titel, loginid).ShowDialog()

这显示了对话框,并且代码的执行被阻止,直到对话框关闭。

然后

MessageBox.Show(...)

被执行并显示上一个对话框结果的字符串表示。

MessageBox.Show(..)我怀疑你不需要new ElbaKostenstellen(titel, loginid).ShowDialog()

于 2012-04-19T14:48:26.387 回答
1

你在写这个字符串的时候告诉过它

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

因此,您需要在不调用 ShowDialog() 的情况下从 ElbaKostenstellen 获取消息

于 2012-04-19T14:44:31.317 回答
0

这是因为 ShowDialog 的返回值是 true 或 false。

如此处所写 - http://msdn.microsoft.com/en-us/library/system.windows.window.showdialog.aspx

返回值

类型:System.Nullable 布尔类型的 Nullable 值,指定活动是被接受 (true) 还是被取消 (false)。返回值是窗口关闭前 DialogResult 属性的值。

于 2012-04-19T14:43:34.980 回答