viernes, 13 de mayo de 2011

NetBarControl


Actualización.
NetBarControl - Description Item Style (New)


NetBarControl_1

NetBarControl (Outlook Bar) es uno de los controles que muchas veces buscamos para usar en nuestras aplicaciones, pero siempre encontramos en internet versiones pagables y tal vez no contamos con el presupuesto esperado como para comprar uno y las versiones gratis que se logran encontrar, pues como son gratis no implementan en su totalidad la funcionalidad que esperamos encontrar en un control de este tipo.
Antes de comenzar a escribir este control dedique tiempo en buscar uno por internet que tuviera toda la funcionalidad o por lo menos una interfaz disponible en modo de diseño, pero, no logre encontrar uno, así que me propuse crearlo como a mí me gustaría que funcionara uno gratis y al final llegue a la conclusión de ¿Porque no hay uno completo, gratis y que incluya el código fuente? y la respuesta es: No es fácil, pero tampoco es cosa de otro mundo. Con esto no digo que otro programador no lo pueda hacer o que los ejemplos encontrados sean malos o que no puedan llegar a tener esta complejidad, claro que podrían
Bien, Contribuyendo a la comunidad he puesto el control que he creado y llamado NetBarControl para que lo puedan descargar, pero… no incluye el código fuente, no por el momento
En fin… espero les guste este control, así que aquí les dejo un proyecto donde pueden evaluar el producto y dejar sus comentarios
FreeDownload2
Esta es la primera versión, según sus comentarios, veremos si le seguimos agregando más funcionalidades como ser: Skins y Estilos, como también mejoras al control.

Veamos las propiedades y controles relacionados al control.

Propiedades de NetBarControl

ActiveGroup
Muestra el grupo activo actualmente.
CaptionFont
Permite modificar el tipo de letra a utilizar en el titulo del Control
Groups
Permite Agregar, Modificar y Eliminar los grupos que contendra el control
GroupsFont
Permite definir el tipo de letra utilizado en los controles NetBarGroup.
ItemsFont
Permite definir el tipo de letra utilizado en los controles NetBarItem
PanelState
Propiedad que indica el estado actual del control, los cuales son: Expande/Collapsed
ShowExpandButton
true/false Propiedad que indica si el control debe mostrar u ocultar el boton para Expandir o Contraer el control.
ShowHorizontalSplitter
true/false Propiedad que indica si se debe de mostrar el control Splitter horizontal que permite redimencionar el control.
ShowOverflowPanel
true/false Propiedad que indica si se debe mostrar el panel de desbordamiento de grupos.
ShowOverflowButton
true/false, Propiedad que permite mostrar u ocultar el menú en el panel de desbordamiento.
ShowPopupShadow
true/false, Propiedad que permite mostrar u ocultar sombra en la ventana emergente cuando el control esta contraido (Collapsed)
ShowVerticalSplitter
true/false, Propiedad que permite mostrar u ocultar el control splitter vertical para ocultar o mostrar grupos.


NetBarGroup

Font
Tipo de letra que se utilizara para dibujar el Texto del grupo.
ForeColor
Color del texto del grupo
Items
NetBarItemCollection, permite agregar, modificar y eliminar los items que se mostraran dentro del grupo.
ShowInOverflowPanel
true/false, indica si el grupo se debe de mostrar en el panel de desbordamiento.
SmallImage Imagen que representa el grupo
Style
Propiedad que permite cambiar el estilo del grupo, como ser: ItemList,
LargeItemList
ControlContainer
Tag
Propiedad para asociar información adicional al grupo
Text Texto asociado con el grupo
Visible
true/false, Determina si el grupo es visible u oculto al usuario.

NetBarItem


Enabled
true/false, Indica si el Item esta habilitado o desabilitado.
Font
Tipo de letra usada para mostrar el texto en el Item.
ForeColor
El color usando para mostrar el texto.
LargeImage
Imagen utilizada para mostrar cuando el Grupo del Item esta en estilo LargeItemList
SmallImage
Imagen que se mostrara al lado izquierdo del texto cuando el Grupo al cual esta asociado el Item utilize el estilo “ItemList
Tag Propiedad para asociar información adicional al control
Text Texto a mostrar en el control
Visible
true/false, Indicar si el control debe ser visible u oculto al usuario.

Pantallas en modo de Diseño:

En el SmartTasks podemos encontrar de modo rapido algunas de las propiedades importantes del control.
image

image
image
¿Como agregar un nuevo grupo en tipo de ejecución por código?
if (netBarControl1.Groups["groupContainer"] != null) 
{
 MessageBox.Show("Grupo ya existe"); 
 return; 
}

Label label = new Label() 
{ 
 Text = "Ingreso texto:",
 Dock = DockStyle.Top 
};
TextBox tbox = new TextBox() 
{ 
 Multiline = true, 
 Dock = DockStyle.Fill 
};

NetBarGroup group = netBarControl1.Groups.Add(NetBarGroupStyle.ControlContainer); 
group.Text = "Grupo de prueba";
group.Name = "groupContainer";
group.ControlContainer.Padding = new Padding(10); 
group.ControlContainer.Controls.AddRange(new Control[] { tbox, label }); 

¿Como agregar un nuevo Item en ejecución por código?

if (netBarControl1.ActiveGroup.Style == NetBarGroupStyle.ControlContainer) 
{ 
 MessageBox.Show("No puede agregar Items a este grupo"); 
 return; 
}

NetBarItem item = new NetBarItem(); 
item.Text = "Item de Prueba";
item.Name = "itemPrueba";
item.ItemClick += new EventHandler(netBarItem_ItemClick); 
netBarControl1.ActiveGroup.Items.Add(item);


Actualizaciones





Miércoles, 18/May/2011



  • Se corrigio problema al remover Item o Grupo en tiempo de diseño desde el menú de acceso rapido.





Lunes, 07/Nov/2011



  • Se ha agregado la funcionalidad en tiempo de diseño para que al momento de precionar doble clic sobre un item crear/abrir el evento “ItemClick”.