Visual Basic.NET - VB .Net Problemas con boton personalizado

 
Vista:

VB .Net Problemas con boton personalizado

Publicado por ICC Jairo A. Segura Morales (3 intervenciones) el 12/04/2010 20:59:01
Hola amigos programadores:

Llevo poco tiempo en el maravilloso y fascinante entorno de desarrollo .Net y pretendo hacer un boton personalizado para una aplicacion que estoy desarrollando pero resulta que no puedo anexar mi control al ToolBox (donde se encuentran todos los controles del VS .NEt para ser agregados en los proyectos) y menos al Formulario. Trato de crear el boton mediante codigo pero no veo ninguna de las propiedades y metodos que tiene mi control mas que los de la clase Button pues de ahi se hereda anexo mi codigo y espero puedan ayudarme a corregirlo y orientarme y decirme donde esta mi error saludos

Imports System
Imports System.ComponentModel
Imports System.Drawing
Imports System.Windows.Forms

Namespace DSINCButton
Partial Public Class clsDSINCButton
Inherits Button

#Region "Variables"
Private imgPress As Image
Private imgOver As Image
Private imgNormal As Image
Private imgDeshabilitado As Image
Private totTooltip As New ToolTip()
Private strMensaje As String = ""
#End Region

#Region "Propiedades"
<Category("DSINC Propiedades")>
<Description("Tooltip que del Control")>
Public Property DSINCTooltip As String
Get
Return strMensaje
End Get
Set(ByVal value As String)
strMensaje = value
End Set
End Property

<Category("DSINC Propiedades")>
<Description("Imagen evento OnClick ó MouseDown")>
Public Property DSINCImgPress As Image
Get
Return imgPress
End Get
Set(ByVal value As Image)
imgPress = value
End Set
End Property

<Category("DSINC Propiedades")>
<Description("Imagen evento OnMouseOver")>
Public Property DSINCImgOver As Image
Get
Return imgOver
End Get
Set(ByVal value As Image)
imgOver = value
End Set
End Property

<Category("DSINC Propiedades")>
<Description("Imagen evento OnMouseLeave o estado normal del control")>
Public Property DSINCImgNormal As Image
Get
Return imgNormal
End Get
Set(ByVal value As Image)
imgNormal = value
End Set
End Property

<Category("DSINC Propiedades")>
<Description("Imagen estado Deshabilitado")>
Public Property DSINCImgDeshabilitado As Image
Get
Return imgDeshabilitado
End Get
Set(ByVal value As Image)
imgDeshabilitado = value
End Set
End Property
#End Region

#Region "Constructor"
Sub New()
MyBase.New()
End Sub
#End Region

#Region "Eventos y Métodos"
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
MyBase.OnPaint(e)

'Add your custom paint code here
End Sub

Protected Overrides Sub OnClick(ByVal e As System.EventArgs)
MyBase.Image = imgPress
MyBase.OnClick(e)
End Sub

Protected Overrides Sub OnMouseHover(ByVal e As System.EventArgs)
MyBase.Image = imgOver
If Trim(strMensaje) <> "" Then totTooltip.SetToolTip(Me, strMensaje)
MyBase.OnMouseHover(e)
End Sub

Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
MyBase.Image = imgOver
MyBase.OnMouseLeave(e)
End Sub

Protected Overrides Sub OnMouseDown(ByVal mevent As System.Windows.Forms.MouseEventArgs)
MyBase.Image = imgPress
MyBase.OnMouseDown(mevent)
End Sub

Protected Overrides Sub OnCreateControl()
MyBase.OnCreateControl()
MyBase.Image = imgNormal
MyBase.FlatStyle = Windows.Forms.FlatStyle.Flat
MyBase.FlatAppearance.MouseDownBackColor = Color.Transparent
MyBase.FlatAppearance.MouseOverBackColor = Color.Transparent
MyBase.FlatAppearance.BorderSize = 0
MyBase.Width = imgNormal.Width
MyBase.Height = imgNormal.Height
End Sub

Protected Overrides Sub OnEnabledChanged(ByVal e As System.EventArgs)
MyBase.OnEnabledChanged(e)
If MyBase.Enabled Then
MyBase.Image = imgNormal
Else
MyBase.Image = imgDeshabilitado
End If
End Sub
#End Region
End Class
End Namespace
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:VB .Net Problemas con boton personalizado

Publicado por OliBeer (391 intervenciones) el 13/04/2010 16:49:01
Hola,

Para agregar tu control personalizado, sólo haz clik derecho en la Barra de herramientas - Elegir elementos, pestaña Componentes de .Net Framework, click en el botoón Examinar y busca la DLL de tu control. Aceptar y de esta manera se agregará.

De preferencia, crea una nueva pestaña en la Barra de herramientas, y en ese espacio haz el click derecho, para que ahí se agregué tu control.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VB .Net Problemas con boton personalizado

Publicado por ICC Jairo A. Segura Morales  (3 intervenciones) el 19/04/2010 17:50:40
Bueno pues como soy un poco necio y las cosas se pueden hacer estuve buscando y probando como hacer que el botón funcionara solo con mi código sin necesidad de crear una dll, ya que si genero la dll cada vez que modifique mi código del boton debo compilar la nueva dll y cambiarla en los proyectos que la use más sin embargo si solo creo mi clase puedo modificarla cuando guste y se vera reflejado el cambio en TODOS mis proyectos.

Como no me gusta ser egoista ni nada por el estilo y me agrada que las nuevas generaciones de programadores aprendan les dejo el codigo puede servirles de algo saludos.

El código quedo así:

Imports System
Imports System.ComponentModel
Imports System.Drawing
Imports System.Windows.Forms

Namespace MiDSINCButton
Partial Public Class clsDSINCButton
Inherits Button

#Region "Variables"
Dim imgDisable As Image
Dim imgDown As Image
Dim imgLeave As Image
Dim imgOver As Image
Dim strMessage As String = ""
Dim totMessage As New ToolTip()
#End Region

#Region "Constructor"
Public Sub New()
MyBase.New()
End Sub
#End Region

#Region "Propiedades"
<Category("Mis Propiedades"), Description("Asigna la imagen a establecer cuando el botón este deshabilitado")>
Public Property Disable() As Image
Get
Return imgDisable
End Get
Set(ByVal value As Image)
imgDisable = value
End Set
End Property

<Category("Mis Propiedades"), Description("Asigna la imagen a establecer cuando se pulse el botón")>
Public Property Down() As Image
Get
Return imgDown
End Get
Set(ByVal value As Image)
imgDown = value
End Set
End Property

<Category("Mis Propiedades"), Description("Asigna la imagen a establecer cuando el botón este en modo normal")>
Public Property Normal() As Image
Get
Return imgLeave
End Get
Set(ByVal value As Image)
imgLeave = value
End Set
End Property

<Category("Mis Propiedades"), Description("Asigna la imagen a establecer cuando el botón el mouse este sobre el botón")>
Public Property Over As Image
Get
Return imgOver
End Get
Set(ByVal value As Image)
imgOver = value
End Set
End Property

<Category("Mis Propiedades"), Description("Establece el Tooltip del Botón")>
Public Property Message() As String
Get
Return strMessage
End Get
Set(ByVal value As String)
strMessage = value
End Set
End Property
#End Region

#Region "Métodos"
Protected Overrides Sub OnClick(ByVal e As System.EventArgs)
MyBase.Image = imgDown
MyBase.OnClick(e)
End Sub

Protected Overrides Sub OnCreateControl()
MyBase.OnCreateControl()
MyBase.Image = imgLeave
MyBase.FlatStyle = Windows.Forms.FlatStyle.Flat
MyBase.FlatAppearance.MouseDownBackColor = Color.Transparent
MyBase.FlatAppearance.MouseOverBackColor = Color.Transparent
MyBase.FlatAppearance.BorderSize = 0
If Not (imgLeave Is Nothing) Then MyBase.Size = New Size(imgLeave.Width + 1, imgDisable.Height + 1)
End Sub

Protected Overrides Sub OnEnabledChanged(ByVal e As System.EventArgs)
MyBase.OnEnabledChanged(e)
If MyBase.Enabled Then
MyBase.Image = imgLeave
Else
MyBase.Image = imgDisable
End If
End Sub

Protected Overrides Sub OnMouseDown(ByVal mevent As System.Windows.Forms.MouseEventArgs)
MyBase.Image = imgDown
MyBase.OnMouseDown(mevent)
End Sub

Protected Overrides Sub OnMouseHover(ByVal e As System.EventArgs)
If Trim(strMessage) <> "" Then totMessage.SetToolTip(Me, strMessage)
MyBase.Image = imgOver
MyBase.OnMouseHover(e)
End Sub

Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
MyBase.Image = imgLeave
MyBase.OnMouseLeave(e)
End Sub

'Protected Overrides Sub OnMouseUp(ByVal mevent As System.Windows.Forms.MouseEventArgs)
'If mevent.Button = Windows.Forms.MouseButtons.Left Then
'MyBase.Image = imgLeave
'MyBase.OnMouseUp(mevent)
'End If
'End Sub

Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
MyBase.OnPaint(e)

'Add your custom paint code here
End Sub
#End Region
End Class
End Namespace
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VB .Net Problemas con boton personalizado

Publicado por Olvin (1 intervención) el 19/10/2015 03:09:42
BUnas Tardes Jairo, despues de haber buscado intensamente, me he encontrado con su codigo, es posible que me indique los pasos a seguir para porder utilizarlo, disculpe mi falta de conocimiento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar