18 Stimmen

Nicht-autoblockierende MessageBoxen in c#

Kennt jemand eine MessageBox in .NET, die den Thread, der sie erstellt hat, nicht blockiert, bis sie geschlossen wird?

30voto

private void ShowMessageBox(string text, string caption)
{
    Thread t = new Thread(() => MyMessageBox(text, caption));
    t.Start();
}

private void MyMessageBox(object text, object caption)
{
    MessageBox.Show((string)text, (string)caption);
}

Sie können anrufen ShowMessageBox() mit Ihrem Text und Ihrer Kappe

18voto

user5419026 Punkte 141

Sie können die

new Thread(() => System.Windows.Forms.MessageBox.Show(text)).Start();

15voto

User1 Punkte 16932

Wahrscheinlich ist das einfachste i

Thread t = new Thread(() => MessageBox.Show(text));
t.Start();

10voto

Aamir Punkte 14354

Der Standard MessageBox die Sie über System.Windows.Forms Namespace ist immer modal (d.h. blockierend). Wenn Sie ein modellloses Nachrichtenfeld haben möchten, sollten Sie Ihr eigenes erstellen WindowsForm das aussieht wie ein MessageBox .

Dieses Formular wird dann wie folgt angezeigt:

// C#
//Display frmAbout as a modeless dialog
Form f= new Form();
f.Show();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X