SOCORROOOO, AUXILIOOO, la he mangao y no se como

06/07/2005 - 16:25 por Ch0rY | Informe spam
Pos si, como leeis, estoy haciendo un control user ( para pasar el rato ) con este código

'************************** Inicio del código ***************************

'Imports System.Drawing.Design
'Imports System.Globalization
Imports System.ComponentModel

Public Class chory_TabPage
Inherits System.Windows.Forms.UserControl

#Region " Código generado por el Diseñador de Windows Forms "

Public Sub New()
MyBase.New()

'El Diseñador de Windows Forms requiere esta llamada.
InitializeComponent()

'Agregar cualquier inicialización después de la llamada a InitializeComponent()

End Sub


'UserControl reemplaza a Dispose para limpiar la lista de componentes.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

'Requerido por el Diseñador de Windows Forms
Private components As System.ComponentModel.IContainer

'NOTA: el Diseñador de Windows Forms requiere el siguiente procedimiento
'Puede modificarse utilizando el Diseñador de Windows Forms.
'No lo modifique con el editor de código.
Friend WithEvents Contenedor As System.Windows.Forms.Panel
Friend WithEvents Titulo As System.Windows.Forms.PictureBox
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.Contenedor = New System.Windows.Forms.Panel
Me.Titulo = New System.Windows.Forms.PictureBox
Me.SuspendLayout()
'
'Contenedor
'
Me.Contenedor.Location = New System.Drawing.Point(0, 24)
Me.Contenedor.Name = "Contenedor"
Me.Contenedor.Size = New System.Drawing.Size(248, 176)
Me.Contenedor.TabIndex = 1
'
'Titulo
'
Me.Titulo.Dock = System.Windows.Forms.DockStyle.Top
Me.Titulo.Location = New System.Drawing.Point(0, 0)
Me.Titulo.Name = "Titulo"
Me.Titulo.Size = New System.Drawing.Size(248, 24)
Me.Titulo.TabIndex = 2
Me.Titulo.TabStop = False
'
'chory_TabPage
'
Me.Controls.Add(Me.Titulo)
Me.Controls.Add(Me.Contenedor)
Me.Name = "chory_TabPage"
Me.Size = New System.Drawing.Size(248, 208)
Me.ResumeLayout(False)

End Sub

#End Region

Private _Texto As String = "Pestaña"
Private _Icono As String = "(ninguno)"
Private _ColorTexto As Color = System.Drawing.Color.Black
Private _ColorSombraTexto As Color = System.Drawing.SystemColors.Control

Private _AltoPest As Single = 18

Public Sub New(ByVal Texto As String)
Me.Texto = Texto
End Sub

#Region "Propiedades"

<Category("Pestaña")> Public Property Texto() As String
Get
Return _Texto
End Get
Set(ByVal Value As String)
_Texto = Value
End Set
End Property
<Category("Pestaña"), Description("Icono que se mostrará en la pestaña")> Public Property
Icono() As String
Get
Return _Icono
End Get
Set(ByVal Value As String)
If Value.Trim = "" Then Value = "(ninguno)"
_Icono = Value
End Set
End Property
<Category("Pestaña"), Description("Alto de la Pestaña")> Public Property Alto() As Single
Get
Return _AltoPest
End Get
Set(ByVal Value As Single)
_AltoPest = Value
End Set
End Property
<TypeConverter(GetType(ColorConverter)), _
Category("Pestaña"), Description("Color del texto")> _
Public Property ColorTexto() As Color
Get
Return _ColorTexto
End Get
Set(ByVal Value As Color)
_ColorTexto = Value
End Set
End Property
<TypeConverter(GetType(ColorConverter)), _
Category("Pestaña"), Description("Color de la sombra del texto")> _
Public Property ColorSombraTexto() As Color
Get
Return _ColorSombraTexto
End Get
Set(ByVal Value As Color)
_ColorSombraTexto = Value
End Set
End Property


#End Region


Private Sub chory_TabPage_Paint(ByVal sender As Object, ByVal e As
System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
Dim Incremento_X As Single = 0
Dim Icono As Icon
If _Icono <> "(ninguno)" Then
Icono = New Icon(_Icono)
Incremento_X += Icono.Width + 3
End If
Dim gr As Graphics
gr = Me.Titulo.CreateGraphics


Dim TamanioTexto As SizeF = gr.MeasureString(_Texto, Me.Font)
Dim TamanioCuadro As SizeF = TamanioTexto
TamanioCuadro.Height += 5
TamanioCuadro.Width += 10
TamanioCuadro.Width += Incremento_X
Dim CentroVertical As Single = TamanioCuadro.Height / 2
Dim CentroHorizontal As Single = TamanioCuadro.Width / 2
Dim RecIcono As New Rectangle
If _Icono <> "(ninguno)" Then
With RecIcono
.X = 2
If Icono.Height <= Me.Titulo.Height Then
.Y = CentroVertical - (Icono.Height / 2)
.Width = Icono.Width
.Height = Icono.Height
Else
.Y = 1
.Width = Me.Titulo.Height - 6
.Height = Me.Titulo.Height - 6
End If
End With
'Dibujamos el Icono
gr.DrawIcon(Icono, RecIcono)
End If

' "Pintamos la etiqueta"
Dim brochaTexto As New SolidBrush(_ColorTexto)
Dim brochaSombra As New SolidBrush(_ColorSombraTexto)

Dim X_Texto As Single = (CentroHorizontal - (TamanioTexto.Width / 2)) + 2
Dim Y_Texto As Single = CentroVertical - (TamanioTexto.Height / 2)

gr.DrawString(_Texto, Me.Font, brochaSombra, X_Texto + 1, Y_Texto + 1)
gr.DrawString(_Texto, Me.Font, brochaTexto, X_Texto, Y_Texto)


'Dibujamos la Pestaña
Dim Pestania As PointF() = {New PointF(0, TamanioCuadro.Height), _
New PointF(0, 0), _
New PointF(TamanioCuadro.Width - 10, 0), _
New PointF(TamanioCuadro.Width, 10), _
New PointF(TamanioCuadro.Width, TamanioCuadro.Height), _
New PointF(0, TamanioCuadro.Height) _
}
gr.DrawLines(Pens.Black, Pestania)


End Sub

Private Sub chory_TabPage_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.Titulo.Height = _AltoPest
End Sub
End Class

'**************************** Fin del código ****************************

En un principio funcionaba +o- bien, + xq se veia lo q queria y -xq para que se viese
tenia que maximizar el formulario donde habia colocado el comtrol ¿xq?

Pero ahora no funciona de ninguna manera, solo hice un cambio

' Codigo INICIAL
Dim Pestania As PointF() = {New PointF(0, TamanioCuadro.Height), _
New PointF(0, 0), _
New PointF(TamanioCuadro.Width - 10, 0), _
New PointF(TamanioCuadro.Width, 10), _
New PointF(TamanioCuadro.Width, TamanioCuadro.Height), _
New PointF(0, TamanioCuadro.Height)}
gr.DrawLines(Pens.white, Pestania)

' Codigo CAMBIADO
Dim Pestania As PointF() = {New PointF(0, TamanioCuadro.Height), _
New PointF(0, 0)}
Dim Pestania2 as PointF()= {New PointF(TamanioCuadro.Width - 10, 0), _
New PointF(TamanioCuadro.Width, 10), _
New PointF(TamanioCuadro.Width, TamanioCuadro.Height), _
New PointF(0, TamanioCuadro.Height)}
gr.DrawLines(Pens.Black, Pestania2)

Y dejo de funcionar, lo puse como al principio y sigue sin funcionar, he generado,
regenerado, degenerado una y otra vez el control y na.

Q ha pasado?
 

Leer las respuestas

#1 Anonimo
06/07/2005 - 18:09 | Informe spam
Puede que tengas la referencia de tu proyecto de prueba
desincronizado con el proyecto de controles. ¿Te has
asegurado que generas/degeneras con las referncias
apropiadas?


Pos si, como leeis, estoy haciendo un control user ( para


pasar el rato ) con este código

'************************** Inicio del código


***************************

'Imports System.Drawing.Design
'Imports System.Globalization
Imports System.ComponentModel

Public Class chory_TabPage
Inherits System.Windows.Forms.UserControl

#Region " Código generado por el Diseñador de Windows


Forms "

Public Sub New()
MyBase.New()

'El Diseñador de Windows Forms requiere esta


llamada.
InitializeComponent()

'Agregar cualquier inicialización después de la


llamada a InitializeComponent()

End Sub


'UserControl reemplaza a Dispose para limpiar la lista


de componentes.
Protected Overloads Overrides Sub Dispose(ByVal


disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

'Requerido por el Diseñador de Windows Forms
Private components As System.ComponentModel.IContainer

'NOTA: el Diseñador de Windows Forms requiere el


siguiente procedimiento
'Puede modificarse utilizando el Diseñador de Windows


Forms.
'No lo modifique con el editor de código.
Friend WithEvents Contenedor As


System.Windows.Forms.Panel
Friend WithEvents Titulo As


System.Windows.Forms.PictureBox
<System.Diagnostics.DebuggerStepThrough()> Private Sub


InitializeComponent()
Me.Contenedor = New System.Windows.Forms.Panel
Me.Titulo = New System.Windows.Forms.PictureBox
Me.SuspendLayout()
'
'Contenedor
'
Me.Contenedor.Location = New System.Drawing.Point


(0, 24)
Me.Contenedor.Name = "Contenedor"
Me.Contenedor.Size = New System.Drawing.Size(248,


176)
Me.Contenedor.TabIndex = 1
'
'Titulo
'
Me.Titulo.Dock = System.Windows.Forms.DockStyle.Top
Me.Titulo.Location = New System.Drawing.Point(0, 0)
Me.Titulo.Name = "Titulo"
Me.Titulo.Size = New System.Drawing.Size(248, 24)
Me.Titulo.TabIndex = 2
Me.Titulo.TabStop = False
'
'chory_TabPage
'
Me.Controls.Add(Me.Titulo)
Me.Controls.Add(Me.Contenedor)
Me.Name = "chory_TabPage"
Me.Size = New System.Drawing.Size(248, 208)
Me.ResumeLayout(False)

End Sub

#End Region

Private _Texto As String = "Pestaña"
Private _Icono As String = "(ninguno)"
Private _ColorTexto As Color =


System.Drawing.Color.Black
Private _ColorSombraTexto As Color =


System.Drawing.SystemColors.Control

Private _AltoPest As Single = 18

Public Sub New(ByVal Texto As String)
Me.Texto = Texto
End Sub

#Region "Propiedades"

<Category("Pestaña")> Public Property Texto() As String
Get
Return _Texto
End Get
Set(ByVal Value As String)
_Texto = Value
End Set
End Property
<Category("Pestaña"), Description("Icono que se


mostrará en la pestaña")> Public Property
Icono() As String
Get
Return _Icono
End Get
Set(ByVal Value As String)
If Value.Trim = "" Then Value = "(ninguno)"
_Icono = Value
End Set
End Property
<Category("Pestaña"), Description("Alto de la Pestaña")
Public Property Alto() As Single
Get
Return _AltoPest
End Get
Set(ByVal Value As Single)
_AltoPest = Value
End Set
End Property
<TypeConverter(GetType(ColorConverter)), _
Category("Pestaña"), Description("Color del texto")> _
Public Property ColorTexto() As Color
Get
Return _ColorTexto
End Get
Set(ByVal Value As Color)
_ColorTexto = Value
End Set
End Property
<TypeConverter(GetType(ColorConverter)), _
Category("Pestaña"), Description("Color de la sombra del


texto")> _
Public Property ColorSombraTexto() As Color
Get
Return _ColorSombraTexto
End Get
Set(ByVal Value As Color)
_ColorSombraTexto = Value
End Set
End Property


#End Region


Private Sub chory_TabPage_Paint(ByVal sender As


Object, ByVal e As
System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
Dim Incremento_X As Single = 0
Dim Icono As Icon
If _Icono <> "(ninguno)" Then
Icono = New Icon(_Icono)
Incremento_X += Icono.Width + 3
End If
Dim gr As Graphics
gr = Me.Titulo.CreateGraphics


Dim TamanioTexto As SizeF = gr.MeasureString


(_Texto, Me.Font)
Dim TamanioCuadro As SizeF = TamanioTexto
TamanioCuadro.Height += 5
TamanioCuadro.Width += 10
TamanioCuadro.Width += Incremento_X
Dim CentroVertical As Single =


TamanioCuadro.Height / 2
Dim CentroHorizontal As Single =


TamanioCuadro.Width / 2
Dim RecIcono As New Rectangle
If _Icono <> "(ninguno)" Then
With RecIcono
.X = 2
If Icono.Height <= Me.Titulo.Height Then
.Y = CentroVertical - (Icono.Height / 2)
.Width = Icono.Width
.Height = Icono.Height
Else
.Y = 1
.Width = Me.Titulo.Height - 6
.Height = Me.Titulo.Height - 6
End If
End With
'Dibujamos el Icono
gr.DrawIcon(Icono, RecIcono)
End If

' "Pintamos la etiqueta"
Dim brochaTexto As New SolidBrush(_ColorTexto)
Dim brochaSombra As New SolidBrush


(_ColorSombraTexto)

Dim X_Texto As Single = (CentroHorizontal -


(TamanioTexto.Width / 2)) + 2
Dim Y_Texto As Single = CentroVertical -


(TamanioTexto.Height / 2)

gr.DrawString(_Texto, Me.Font, brochaSombra,


X_Texto + 1, Y_Texto + 1)
gr.DrawString(_Texto, Me.Font, brochaTexto,


X_Texto, Y_Texto)


'Dibujamos la Pestaña
Dim Pestania As PointF() = {New PointF(0,


TamanioCuadro.Height), _
New PointF(0, 0), _
New PointF


(TamanioCuadro.Width - 10, 0), _
New PointF


(TamanioCuadro.Width, 10), _
New PointF


(TamanioCuadro.Width, TamanioCuadro.Height), _
New PointF(0,


TamanioCuadro.Height) _
}
gr.DrawLines(Pens.Black, Pestania)


End Sub

Private Sub chory_TabPage_Load(ByVal sender As


System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.Titulo.Height = _AltoPest
End Sub
End Class

'**************************** Fin del código


****************************

En un principio funcionaba +o- bien, + xq se veia


lo q queria y -xq para que se viese
tenia que maximizar el formulario donde habia colocado el


comtrol ¿xq?

Pero ahora no funciona de ninguna manera, solo


hice un cambio

' Codigo INICIAL
Dim Pestania As PointF() = {New PointF(0,


TamanioCuadro.Height), _
New PointF(0, 0), _
New PointF


(TamanioCuadro.Width - 10, 0), _
New PointF


(TamanioCuadro.Width, 10), _
New PointF(TamanioCuadro.Width,


TamanioCuadro.Height),
_
New PointF(0,


TamanioCuadro.Height)}
gr.DrawLines(Pens.white, Pestania)

' Codigo CAMBIADO
Dim Pestania As PointF() = {New PointF(0,


TamanioCuadro.Height), _
New PointF(0, 0)}
Dim Pestania2 as PointF()= {New PointF


(TamanioCuadro.Width - 10, 0), _
New PointF


(TamanioCuadro.Width, 10), _
New PointF(TamanioCuadro.Width,


TamanioCuadro.Height),
_
New PointF(0,


TamanioCuadro.Height)}
gr.DrawLines(Pens.Black, Pestania2)

Y dejo de funcionar, lo puse como al principio y sigue


sin funcionar, he generado,
regenerado, degenerado una y otra vez el control y na.

Q ha pasado?







.

Preguntas similares