2012-10-03 15 views
6

To jest mój kod, który używam ...Jak zmienić tekst na przyciskach skrzynki wiadomości?

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

Chcę zmienić tekst na guziki skrzynka jest to możliwe .. ??

+1

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

+1

Może to będzie pomoc: [http://www.codeproject.com/Articles/18399/Localizing-System-MessageBox](http://www.codeproject.com/Articles/18399/Localizing-System-MessageBox) – SergioMSCosta

Odpowiedz

7

O ile mi wiadomo, nie ma możliwości zmiany domyślnego tekstu na wyskakującym okienku wiadomości.

Najprostszym rozwiązaniem jest stworzenie prostego formularza z etykietą i kilkoma przyciskami. Oto prosty przykład, który możesz wykorzystać do wpisania kodu. Możesz dostosować formularz, jak chcesz.

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

Można połączyć to z miejsca, trzeba lubić to:

 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

myślę MessageBox jest Win32 API bestia, co oznacza, że ​​jest poza sferę .NET. Dlatego jest on nieświadomy personalizacji/lokalizacji. Musisz więc przesyłać własne wiadomości, jak sugeruje James Miller.

Dlaczego MS postanowił nie umieszczać w NET-włączona messagebox w formach poza mną ...

+1

[Dialogi zadań] (https://msdn.microsoft.com/en-us/library/windows/desktop/bb787471%28v=vs.85%29.aspx) mają zastąpić pola wiadomości. – Dialecticus

Powiązane problemy