2012-10-03 15 views
6

Dies ist mein Code, ich verwende ...Wie ändert man den Text auf den Schaltflächen der MessageBox?

MessageBox.Show("Do you want to save changes..?", "Save", MessageBoxButtons.YesNoCancel); 

ich den Text auf Meldungsfeld Tasten ändern möchten, ist es möglich, .. ??

+1

http://www.codeproject.com/Articles/18399/Localizing-System-MessageBox – alexn

+1

Vielleicht wird dies Ihnen helfen: [http://www.codeproject.com/Articles/18399/Localizing-System-MessageBox](http://www.codeproject.com/Articles/18399/Localizing-System-MessageBox) – SergioMSCosta

Antwort

7

Soweit mir bekannt ist, gibt es keine Möglichkeit, den Standardtext in einem MessageBox Popup zu ändern.

Die einfachste Sache für Sie wäre, ein einfaches Formular mit einem Etikett und ein paar Tasten zu erstellen. Hier ist ein einfaches Beispiel, in das Sie Ihren Code einfügen können. Sie können das Formular wie gewünscht anpassen.

public class CustomMessageBox:System.Windows.Forms.Form 
{ 
    Label message = new Label(); 
    Button b1 = new Button(); 
    Button b2 = new Button(); 

    public CustomMessageBox() 
    { 

    } 

    public CustomMessageBox(string title, string body, string button1, string button2) 
    { 
     this.ClientSize = new System.Drawing.Size(490, 150); 
     this.Text = title; 

     b1.Location = new System.Drawing.Point(411, 112); 
     b1.Size = new System.Drawing.Size(75, 23); 
     b1.Text = button1; 
     b1.BackColor = Control.DefaultBackColor; 

     b2.Location = new System.Drawing.Point(311, 112); 
     b2.Size = new System.Drawing.Size(75, 23); 
     b2.Text = button2; 
     b2.BackColor = Control.DefaultBackColor; 

     message.Location = new System.Drawing.Point(10, 10); 
     message.Text = body; 
     message.Font = Control.DefaultFont; 
     message.AutoSize = true; 

     this.BackColor = Color.White; 
     this.ShowIcon = false; 

     this.Controls.Add(b1); 
     this.Controls.Add(b2); 
     this.Controls.Add(message); 
    }   
} 

Anschließend können Sie diese anrufen, egal wo Sie diese benötigen mögen:

 CustomMessageBox customMessage = new CustomMessageBox(
      "Warning", 
      "Are you sure you want to exit without saving?", 
      "Yeah Sure!", 
      "No Way!" 
      ); 
     customMessage.StartPosition = FormStartPosition.CenterParent; 
     customMessage.ShowDialog(); 
0

Ich denke, die MessageBox ein API Tier Win32 ist, das heißt, sie außerhalb des Bereichs der .NET ist. Es ist daher nicht auf Anpassung/Lokalisierung. Sie müssen also eine Nachrichtenbox wie James Miller rollen.

Warum MS beschlossen, nicht auf .NET-fähigen messagebox in Forms zu setzen, ist mir ...

+1

[Task-Dialoge] (https://msdn.microsoft.com/en-us/library/windows/desktop/bb787471%28v=vs.85%29.aspx) sollen Nachrichtenboxen ersetzen. – Dialecticus

Verwandte Themen