2011-03-13 14 views
10

Devo modificare la posizione della finestra di messaggio. Non voglio che sia al centro della pagina.Come si modifica la posizione del MessageBox?

MessageBox.Show("Hello"); 
+19

Ho cambiato il titolo da 'massagebox' (suona adorabile) a' messagebox'. – jgauffin

+2

@jgauffin, tag 'winforms' un po 'errato, perché' MessageBox' è disponibile anche in WPF. –

+0

possibile duplicato di [Winforms-Come posso far apparire MessageBox centrato su MainForm?] (Http://stackoverflow.com/questions/2576156/winforms-how-can-i-make-messagebox-appear-centered-on-mainform) –

risposta

2

Sarà necessario creare un nuovo modulo che eredita dal modulo MessageBox. Questo è l'unico modo per accedere alle proprietà della posizione.

11

Normalmente, non è possibile modificare la posizione di avvio della finestra di messaggio standard.

Soluzioni per il tuo domanda:

2

C'è un modo per cambiare la posizione, ma è troppo complicato per un compito così piccolo.
Se è davvero necessario cambiarne la posizione, è possibile visualizzarlo, quindi utilizzare GetForegroundWindow per ottenere un handle di finestra, quindi MoveWindow nella posizione desiderata.
Ma, come ho già messo in discussione, questo è troppo complicato.
Basta creare il proprio modulo con un'etichetta su di esso e un pulsante "OK". Imposta il pulsante come pulsante della finestra predefinito, quindi, in Form1 fai MyWndName.ShowDialog();

+0

Grazie mille come ho detto e il suo funzionamento è – guy

+0

non puoi essere sicuro che 'GetForegroundWindow' ti darà la gestione della finestra di messaggio creata. Possibile che un'altra applicazione vada in primo piano in quel momento. –

2

Ciò che puoi fare è creare una nuova finestra, impostare la proprietà su Trasporta allineamento su True e impostare lo sfondo su Trasparente. In quella finestra puoi inserire un TextBlock o un'etichetta e aggiungere anche i pulsanti Sì/No. Imposta la posizione di questa finestra usando Canvs.SetTop (Window, TopPosition) e Canvas.SetLeft (Window, LeftPosition). successivamente, chiama la finestra con il metodo Show() o ShowDialog().

Problemi correlati