lunes, 30 de diciembre de 2013

Ejercicio C# No. 2.7

Tabla de Contenido

1. Planteamiento
2. Solución
3. Discusión
4. Código Fuente C#
Conclusiones
Glosario
Literatura & Literatura

1. Planteamiento

En la Figura 1 se incluye el planteamiento original (en inglés) del Ejercicio 2.7.
Ejercicio 2.7
Figura 1. Planteamiento del Ejercicio 2.7 [1].

2. Solución

La solución a este problema consiste básicamente en la manipulación de los siguientes tipos de datos:
  • Form [2]: Clase que representa una formulario (lienzo) para la incrustación de otro tipos de controles. Aquí es donde he colocado los dos objetos requeridos a dibujar: un menú, y un área de texto.

  • MenuStrip [3]: Barra de menú que ocupa la posición superior del área (lienzo) del formulario.
  • ToolStripMenuItem [4]: Representa ítems de menú (análogos a los comandos de operaciones).
  • RichTextBox [5]: Representa un área de texto enriquecida.
En la sección 4 veremos que la implementación de la solución se realiza escribiendo todo el código manualmente, sin la ayuda del entorno de desarrollo integrado Visual Studio.

3. Discusión de la Solución

Fundamentalmente la solución consiste en un sólo archivo de código fuente C# en donde se especifica un nombre de espacio que corresponde con el nombre del capítulo del ejercio (i.e. Ch02). En este namespace se crean el tipo MyNotepad que hereda de la clase Form [2].

En el método InitializeComponent se crear los componentes necesarios para ser incluídos en el fomulario princial. Desde aquí ocurren llamadas a los métodos ayudantes (código personalizado) CreateMenuBarCreateRichTextBox. Aunque todas las operaciones de la implementación de cada método anterior se pudo haber realizado dentro del cuerpo de InitializeComponent, se optó por crear un método por cada control a agregar al formulario para evitar toneladas de código en un sólo método: va a resultar más fácil de administrar las secciones de código. En la región CUSTOM_CODE se incluye todo el código personalizado (es decir, el generado por el mismo programador).

Aclaro que InitializeComponent sólo se incluye la manipulación de las propiedades del objeto Form FrmMyNotepad. Como:
  • Imposibilidad de redimensionamiento del formulario:

    this.FormBorderStyle = FormBorderStyle.FixedDialog;
  • Desactivación del botón de minimizar:

    this.MaximizeBox = false;
  • Establecimiento de la posición inicial de la ventana del formulario:

    this.StartPosition = FormStartPosition.CenterScreen;

4. Código Fuente C#


5. Ejecución y Resultado

Para poner a prueba la implementación anterior (4), usamos los siguientes comandos desde la línea de comandos a través del compilador de C#:


Cuando hayamos ejecutado el último comando obtendremos en pantalla:
Resultado Ejercicio 2.7.
Figura 2. Resultado Ejercicio 2.7.

Conclusiones

Én la solución de este ejercicio hemos aprendido cómo crear un formulario sin el uso del IDE Visual Studio. Todo hecho a mano. Es importante conocer cómo ocurre en estas operaciones escribiendo, inspeccionando, manipulando, &c., todos los artefactos visuales que provee el modelo de programación visual del Framework .NET.

Glosario

- Formulario
- GUI

Enlaces & Literatura

[1]: Visual C# 2012 How To Programa by Paul Deitel and Harvey Deitel. Copyright 2012 Deitel & Associates, Inc., 978-0-13-337933-4.
[2]: Form Class (System.Windows.Forms) - http://msdn.microsoft.com/en-us/library/System.Windows.Forms.Form(v=vs.110).aspx
[3]: MenuStrip Class (System.Windows.Forms) - http://msdn.microsoft.com/en-us/library/vstudio/system.windows.forms.menustrip(v=vs.100).aspx
[4]: ToolStripMenuItem Class (System.Windows.Forms) - http://msdn.microsoft.com/en-us/library/system.windows.forms.toolstripmenuitem(v=vs.110).aspx
[5]: RichTextBox Class (System.Windows.Controls) - http://msdn.microsoft.com/en-us/library/system.windows.controls.richtextbox(v=vs.110).aspx
[6]: C# InitializeComponent Method - http://www.dotnetperls.com/initializecomponent


O

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.