Red de conocimiento informático - Problemas con los teléfonos móviles - Introducción al diseño de menús de VB.NET [3]

Introducción al diseño de menús de VB.NET [3]

V. Dibujar un menú personalizado

Primero realice los siguientes pasos. Los siguientes pasos son para usar el editor de menú para diseñar un menú simple como base para volver a dibujar el menú más adelante.

Inicie Visual. Studio Net

p>

Después de seleccionar el menú "Archivo | Nuevo | Proyecto", aparecerá el cuadro de diálogo "Nuevo proyecto". Después del menú Archivo|Nuevo|Proyecto, aparecerá el cuadro de diálogo Nuevo proyecto

Establezca el tipo de proyecto en Proyecto de Visual Basic

Establezca la plantilla en Windows Aplicación

Escriba Dibuje su propio menú en el cuadro de texto Nombre

Escriba E: Escriba E:\VS NET Project en el cuadro de texto Ubicación y haga clic en el botón Aceptar. Esto estará en E : Cree una carpeta llamada Dibuje su propio menú en el directorio del proyecto \VS NET.

Cree una carpeta llamada Draw Your Own Menu en el directorio del proyecto E:\VS NET y cree un archivo de proyecto llamado Draw Your Own Menu en ella.

Cambie la ventana actual de Visual Studio Net a la ventana Forms vb y luego arrastre los siguientes componentes desde la pestaña Componentes de Windows Forms de la caja de herramientas a la ventana Forms. Menú principal

Seleccione el componente Menú principal y haga clic derecho, seleccione Editar menú en el menú emergente y luego siga el diagrama

para diseñar una de sus propias interfaces de elementos de menú

p>

En este momento, guarde los pasos anteriores y haga clic en la tecla de acceso directo F, aparecerá la interfaz como se muestra en la figura

Una de las interfaces para ejecutar su propio menú

Fig. ejecutando tu propio menú Una de las interfaces para menús

De esta manera, puedes ejecutar menús y crear tus propios menús. p>

Ahora que has utilizado el Editor de menús para crear un menú muy básico que puedes transformar. Antes de eso, debe establecer el valor de la propiedad OwnerDraw de las tres instancias de la clase MenuItem en el proyecto en True, porque solo cuando esta propiedad sea True, se activarán los eventos DrawItem y MeasureItem, y luego podrá configurar DrawItem y Los eventos MeasureItem en el proyecto sirven como base para los proyectos anteriores. Después de eso, puede continuar con el siguiente paso basado en el proyecto anterior

Cambie la ventana actual de Visual Stuido Net a la ventana de edición de código de Form vb y agregue el siguiente código después del procedimiento almacenado InitializeComponent. Se dibuja el elemento del menú Archivo, lo que cambia el tamaño de fuente del elemento del menú Archivo, así como el tamaño del elemento del menú, que es el nombre del elemento del menú.

Consulte los comentarios en el siguiente código para conocer métodos de dibujo específicos

Private Sub MenuItem _DrawItem ( ByVal sender As Object ByVal e As System Windows Forms DrawItemEventArgs ) Handles MenuItem DrawItem Dim rfBound As TriangleF = New TriangleF ( e Bounds X e Límites Y e Límites Ancho e Límites Alto ) Obtener Dim rfBound As Rectángulo = Nuevo Rectángulo (e Bounds Las instancias de Rectángulo son similares a las instancias de RectánguloF. FillMenuFillRectangle(New SolidBrush(Color LightGreen) rfBound) llena el menú con color LightGreen. Rellene el área rectangular correspondiente al elemento de menú MenuItem con color verde claro Dim s As MenuItem = CType (Sender MenuItem) Dim s As String = s Text Obtenga el nombre del elemento de menú MenuItem Dim sfTemp As StringFormat = NewsfTemp Alignment = StringAlignment Center Establezca el objeto que se dibujará Alineación de los nombres del menú Alineación media e Gráficos DrawString ( s Nueva fuente ( Song Dynasty FontStyle Bold ) Nuevo SolidBrush ( Color Negro ) rfBound sfTemp ) Si e State = ( DrawItemState NoAccelerator o DrawItemState Selected ), el elemento del menú se dibuja de acuerdo al estado de dibujo actual del elemento de menú Elemento de menú e Graphics FillRectangle ( New SolidBrush ( Color LightYellow ) rfBound ) rellena con color el rectángulo donde se encuentra el elemento de menú e Graphics DrawString ( s New Font ( 宋体FontStyle Bold ) New SolidBrush ( Color Black ) rfBound sfTemp ) dibuja el nombre del elemento del menú End If e DrawFocusRectangle ( ) dibuja el cuadro de enfoque dentro del rectángulo obtenido por DrawFocusRectangle ( ). Gráficos DrawRectangle ( New Pen ( New SolidBrush ( Color Black ) ) rfBound ) Dibuja un rectángulo alrededor del área rectangular del elemento del menú dentro del rectángulo obtenido por el parámetro DrawItemEventArgs End Sub

Cuando se complete la operación, guarde los cambios. y haga clic en la tecla de acceso directo F para ejecutar el programa nuevamente.

Los elementos del menú no se muestran completamente y los siguientes elementos del menú tampoco se muestran. Esto se debe a que el área de visualización de los elementos del menú no está configurada y el espacio predeterminado no se puede mostrar en su totalidad. Los elementos del menú no están configurados y el espacio predeterminado no puede mostrar completamente los elementos del menú de configuración. El tamaño del área de visualización se puede lograr mediante el evento MeasureItem. La operación específica es agregar el siguiente código después del evento DrawItem de MenuItem. El siguiente código define el tamaño del área de visualización de MenuItem y el espacio predeterminado. El siguiente código define el evento MeasureItem del MenuItem, en el que se establecerá el ancho (y el alto, etc., por supuesto) del elemento del menú. )

Private Sub MenuItem _MeasureItem ( ByVal sender As Object ByVal e As System Windows Forms MeasureItemEventArgs ) Maneja MenuItem MeasureItem e ItemWidth = Establece el ancho del elemento del menú End Sub

Guarde lo anterior cambios y haga clic en Después de presionar la tecla de acceso directo F para ejecutar el programa, puede obtener la interfaz como se muestra en la figura

Dibuje su propio menú ejecutando la interfaz III

Como puede ver, Se dibuja el elemento del menú Archivo. Como puede ver, el elemento del menú Archivo se ha dibujado, pero otros elementos del menú aún no se han dibujado y, por lo tanto, no se pueden mostrar. El método de dibujo de otros elementos del menú es básicamente similar al método de dibujo del elemento del menú de archivo. Los siguientes son los pasos para dibujar otros elementos del menú según lo anterior y obtener el menú como se muestra en la figura.

Dibuja tu propio menú ejecutando la interfaz No.4

MenuItem (elemento de menú) de forma vb. ByVal e As System Windows Forms DrawItemEventArgs ) Maneja MenuItem DrawItem Dim rfBound As RectánguloF = Nuevo RectánguloF ( e Límites Rectángulo = Nuevo rectángulo ( e Límites Las funciones son diferentes.

e Graphics FillRectangle (New SolidBrush (Color LightGray) rfBound)Dim s As MenuItem = CType (remitente MenuItem)Dim s As String = s Text Obtener el nombre de texto del elemento de menú Dim sfTemp As StringFormat = New StringFormat ()sfTemp Alignment = StringAlignment Centro Establece la alineación del texto en el área del rectángulo sfTemp LineAlignment = StringAlignment CenterDim rcText As RectánguloF = rfBound rcText Ancho =e Graphics DrawString ( s New Font ( 宋体) New SolidBrush ( Color Blue ) rcText sfTemp )e Graphics DrawRectangle ( New Pen ( ) rcText sfTemp )e Graphics DrawRectangle(si e State = ( DrawItemState NoAccelerator o DrawItemState seleccionado ) Luego e Graphics FillRectangle ( Nuevo SolidBrush ( Color LightYellow ) ) e Graphics FillRectangle ( Nuevo SolidBrush ( Color LightYellow ) ) e Graphics FillRectangle ( Nuevo SolidBrush ( Color LightYellow ) ) e Graphics FillRectangle ( Nuevo SolidBrush ( Color LightYellow ) ) rfBound )rfBound ) e Graphics DrawString ( s New Font ( 宋体FontStyle Bold o FontStyle Subrayado ) Nuevo SolidBrush ( Color Rojo ) rcText sfTemp ) e Graphics DrawRectangle ( New Pen ( Nuevo SolidBrush ( Color Negro ) ) rfBound ) e DrawFocusRectangle ( )End IfEnd Sub

Agregue el siguiente código después del código del controlador de eventos DrawItem de MenuItem. Private Sub MenuItem _MeasureItem ( ByVal sender As Object ByVal e As System Windows Forms MeasureItemEventArgs ) Maneja MenuItem MeasureItem e ItemWidth = Establece el ancho del elemento del menú ItemHeight = Establece la altura del elemento del menú End Sub

Después de completar Después de los pasos anteriores, puede establecer la longitud y la altura de los elementos del menú en el evento MenuItem.

Después de completar los pasos anteriores, agregue el siguiente código después del controlador de eventos MeasureItem de MenuItem. El siguiente código define el evento DrawItem de MenuItem. Su función es volver a dibujar el elemento del menú privado Sub MenuItem _DrawItem (ByVal sender As Object ByVal e As. Sistema Windows Forms DrawItemEventArgs ) Maneja MenuItem DrawItem Dim rfBound As RectánguloF = Nuevo RectánguloF ( e Límites X e Límites Y e Límites Ancho e Límites Alto ) Obtiene el rectángulo del elemento de menú.

Dim rfBound As Rectángulo = Nuevo Rectángulo ( e Límites Dim s As String = s Texto Dim sfTemp As StringFormat = New StringFormat ( ) sfTemp Alignment = StringAlignmentsfTemp LineAlignment = StringAlignment Center Dim rcText As RectánguloF = rfBound rcText Ancho = e Graphics DrawString ( s Nueva fuente ( Veranda ) Nuevo SolidBrush ( Color azul ) rcText sfTemp ) e Graphics DrawRectangle ( New Pen ( NewIf e State = ( DrawItemState NoAccelerator or DrawItemState Selected ) Luego e Graphics FillRectangle ( New SolidBrush ( Color LightYellow ) ) rfBound ) e Graphics DrawString ( s New Fuente (Veranda)) rcTexte Graphics DrawRectangle (Nuevo lápiz (Nuevo SolidBrush (Color negro)) rfBound) e Graphics DrawRectangle (Nuevo lápiz (Nuevo SolidBrush (Color negro)) rfBound) e Graphics DrawRectangle (Nuevo lápiz (Nuevo SolidBrush (Color negro)) ) rfBound ) e Graphics DrawRectangle ( New Pen ( New SolidBrush ( Color Black ) ) rfBound )Color Black ) rfBound ) e DrawFocusRectangle ( ) End IfEnd Sub

Agregue el siguiente código después del código del controlador de eventos DrawItem de MenuItem. El siguiente código define el evento MeasureItem de MenuItem. La longitud y la altura del elemento de menú recién creado se establecerán en este evento. Longitud y alturaPrivate Sub MenuItem _MeasureItem (ByVal remitente como objeto ByVal y como sistema Windows Forms MeasureItemEventArgs) Maneja MenuItem MeasureItem e ItemWidth = Establece el ancho del elemento del menú e ItemHeight = Establece la altura del elemento del menú End Sub

En la forma correcta Después de completar todos los pasos anteriores, se completará el menú dibujado a mano descrito en este artículo.

En este momento, haga clic en la tecla de acceso directo F para ejecutar el programa y obtendrá la interfaz de ejecución como se muestra en la figura.

VI.

El contenido principal de este artículo es presentar el diseño y creación de menús en VB NET. No solo presenta el uso del diseñador de menús para diseñar menús estáticamente. También presenta el uso de la clase MainMenu. La clase MenuItem y la clase ContextMenu crean menús dinámicamente. Al implementar la creación dinámica, primero debe comprender que el tipo de menú que se creará es un menú desplegable. Si es un menú desplegable, primero cree una instancia de MainMenu; si es un menú emergente, primero cree una instancia de ContextMenu y luego cree el menú correspondiente de acuerdo con la estructura del menú, es decir, el menú principal; -relación secundaria de los elementos del menú; y finalmente mostrar el menú. Si es un menú desplegable, asígnelo a la propiedad Menú del formulario. Si es un menú desplegable, asígnelo a la propiedad ContextMenu del componente visual o formulario, para que se pueda mostrar el menú creado dinámicamente. Se completa la creación dinámica del menú

Además, también se presenta en Visual Basic Net Métodos de implementación y precauciones para dibujar menús personalizados Al dibujar menús personalizados, lo más importante es dominar el uso de los eventos DrawItem y MeasureItem, y comprender cómo usarlos. Lo más importante es comprender los eventos DrawItem y MeasureItem y los métodos utilizados para dibujar el menú. Aunque el menú dibujado en este artículo no es bonito, puedes modificarlo utilizando los métodos descritos en este artículo para obtener un menú más bonito y personalizado. Finalmente, recuerde que al dibujar un menú, primero debe establecer la propiedad OwnerDraw del elemento del menú en True

lishixinzhi/Article/program/net/201311/15454

.