0

メッセージボックスにウィンドウを表示するための次のコード行があります。

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

true問題は、それを閉じると、別のMessageBoxがまたはで始まる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十分であるために、への呼び出しMessageBox.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());

したがって、ShowDialog()を呼び出さずにElbaKostenstellenからメッセージを取得する必要があります

于 2012-04-19T14:44:31.317 に答える
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 に答える
0

これは、ShowDialogの戻り値がtrueまたはfalseであるためです。

ここに書かれているように-http://msdn.microsoft.com/en-us/library/system.windows.window.showdialog.aspx

戻り値

タイプ:System.Nullableアクティビティが受け入れられた(true)かキャンセルされたか(false)を指定するブール型のNullable値。戻り値は、ウィンドウが閉じる前のDialogResultプロパティの値です。

于 2012-04-19T14:43:34.980 に答える