viernes, abril 29, 2011

UserControl: ToolStripNumericUpDown

Para agregar un control NumericUpDown dentrol de un ToolStrip debemos agregar una nueva clase y copiar el siguiente código.

Imports System.Windows.Forms.Design

_
Public Class ToolStripNumericUpDown : Inherits ToolStripControlHost

Public Event ValueChanged As EventHandler

Public Sub New()
MyBase.New(New NumericUpDown)
End Sub

Public ReadOnly Property ToolStripNumericUpDown() As NumericUpDown
Get
Return CType(Control, NumericUpDown)
End Get
End Property

#Region "Propiedades"
Shared _someSharedValue As Decimal = 100
Public Shared Property SomeSharedValue() As Decimal
Get
Return _someSharedValue
End Get
Set(ByVal value As Decimal)
_someSharedValue = value
End Set
End Property

Public Property Value() As Decimal

Get
Return ToolStripNumericUpDown.Value
End Get

Set(ByVal value As Decimal)
ToolStripNumericUpDown.Value = value
End Set

End Property

#End Region

#Region "Eventos"
Protected Overrides Sub OnSubscribeControlEvents(ByVal c As Control)

MyBase.OnSubscribeControlEvents(c)

Dim toolStripNumericUpDown As NumericUpDown = CType(c, NumericUpDown)

AddHandler toolStripNumericUpDown.ValueChanged, AddressOf HandleValueChanged

End Sub

Protected Overrides Sub OnUnsubscribeControlEvents(ByVal c As Control)

MyBase.OnUnsubscribeControlEvents(Control)

Dim toolStripNumericUpDown As NumericUpDown = CType(c, NumericUpDown)

RemoveHandler toolStripNumericUpDown.ValueChanged, AddressOf HandleValueChanged

End Sub

Private Sub HandleValueChanged(ByVal sender As Object, ByVal e As EventArgs)
RaiseEvent ValueChanged(Me, e)
End Sub
#End Region

End Class



ToolStripNumericUpDown es un control que tiene la misma funcioanlidad que un NumericUpDown pero dentro de un ToolsTrip.

Para ver el resultado volvemos a generar nuestro proyecto y en un formulario agregamos un ToolStrip y añadimos un nuevo elemento, se podrá apreciar que ahora aparece la opción de agregar un NumericUpDown.

1 comentario:

Oscar Garzón dijo...

Muchas gracias por este aporte, me ayudó a mejorar la presentación de un programa que estoy desarrollando hace más de 6 meses