showDialog()显示没有调用的结果

时间:2012-04-19 14:38:05

标签: c# .net wpf messagebox showdialog

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

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());
                    }

4 个答案:

答案 0 :(得分:4)

为了显示调用ShowDialog的表单就足够了,不需要调用MessageBox.Show。尝试;

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

而不是

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

答案 1 :(得分:1)

你写这个字符串时告诉它

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

所以你需要在不调用ShowDialog()的情况下从ElbaKostenstellen获取消息

答案 2 :(得分:1)

让我们来看看

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

评估的第一位是

new ElbaKostenstellen(titel, loginid).ShowDialog()

这表示对话框和代码的执行被阻止,直到对话框关闭。

然后

MessageBox.Show(...)
执行

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

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

答案 3 :(得分:0)

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

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

  

返回值

     

类型:System.Nullable类型为Boolean的Nullable值   指定活动是接受(true)还是取消   (假)。返回值是DialogResult属性的值   在窗口关闭之前。