2008-10-23 11 views

Respuesta

2

Como HTH se ha explicado anteriormente, hay formas feas para hacerlo. Aquí hay una clase simple que ajustará el cuadro de diálogo y lo centrará en la aplicación/formulario principal.

Toma las formas feas y las envuelve en algo un poco más simple.

Si bien no lo he implementado o realmente he profundizado en la fuente, es un buen lugar para comenzar. CodeProject CenterDialog

Espero que esto ayude.

+0

Esto también funciona. – jyoung

0

No sé mucho sobre los cuadros de diálogo o mensajes, pero puede colocar un nuevo formulario como está buscando con su propiedad StartPosition.

System.Windows.Forms.Form f = new Form(); 
f.StartPosition = FormStartPosition.CenterParent; 
+1

El problema es que no tiene una nueva forma. MessageBox usa un método Show() estático. – itsmatt

1

sin cavar en alguna fea P/invocar código para encontrar y movimiento la ventana después de que se muestra, esto simplemente imposible. Si persigue esto, el cuadro de mensaje "saltará" a la nueva posición, que generalmente es peor que no tenerlo centrado. Si el puesto es realmente tan importante, es mucho mejor que crees tu propio cuadro de mensaje, o adoptes uno del CodeProject.

HTH

0

Puede usar el método VB.NET Interaction.InputBox. Si está trabajando en C#, simplemente agregue una referencia a Microsoft.VisualBasic, luego llámelo. Este método te permite especificar coordenadas X e Y. Tendrías que conformarte con un diálogo que tenga un cuadro de entrada, pero eso podría ser preferible a ti mismo.

Creo que esa es su única otra opción, como usted dijo, MessageBox, etc. son sealed clases, por lo que tendría que hacer una copia de seguridad en CommonDialog y derivar su propia clase (de posición-específica) de eso. De acuerdo, no debería ser difícil, pero puedo entender si no desea tener que escribir/mantenerlo.

0

que son mucho mejor crear su propio cuadro de mensaje

OT, pero esta es una de mis manías. El equipo de Office hizo esto y a su MessageBox le falta una capacidad del MessageBox estándar: la capacidad de copiar el MessageBox como texto en el portapapeles usando Ctrl-C (útil para informes de errores, etc.).

0

Extended MessageBox .NET Library (assembly)

Entre otras características útiles, incluye dos modos de posicionamiento: por coordenadas absolutas, mediante la alineación de frontera especificada de monitor activo.

Esto no sustituye a MessageBox.Show, sino a una extensión de este.Otras características: selección de fuente de letra y color de fuente, color de fondo ajustable, títulos de botones definidos por el usuario y fuentes de botones, captura de entrada de texto del usuario y más.

Cuestiones relacionadas