Foros del Web » Programación para mayores de 30 ;) » .NET »

Ayuda con tabControl "Propio" basado en datos q observ en el web

Estas en el tema de Ayuda con tabControl "Propio" basado en datos q observ en el web en el foro de .NET en Foros del Web. Ayuda, el control funciona a para mi a la perfeccion en las pruebas que hice pero una vez que lo inicio a usar en la ...
  #1 (permalink)  
Antiguo 03/03/2005, 17:27
 
Fecha de Ingreso: marzo-2005
Mensajes: 4
Antigüedad: 19 años, 2 meses
Puntos: 0
Ayuda con tabControl "Propio" basado en datos q observ en el web

Ayuda, el control funciona a para mi a la perfeccion en las pruebas que hice pero una vez que lo inicio a usar en la aplicacion que estoy desarrollando algo falla... En la aplicacion hay aproximadamente 6 a ocho tabscontrol pero por alguna razon uno me da problemas y no entiendo porq si esta exactamente igual q los otros o al menos eso me parece.. Ayuda please... Gracias de antemano ak les dejo el codigo...

Public Class MyTabControl
Inherits System.Windows.Forms.TabControl
Private miColorFondoActivo As Color = Color.Gray
Private miColorFondoActivoSel As Color = Color.WhiteSmoke
Private miColorFondoInactivo As Color = Color.LightGray
Private miColorLetraActivo As Color = Color.Red
Private miColorLetraActivoSel As Color = Color.OrangeRed
Private miColorLetraInactivo As Color = Color.LightCoral
Private miEstiloFuente As fontStyle = fontStyle.Bold
Private miColorGradientFondoActivo As Color = Color.Gray
Private miColorGradientFondoActivoSel As Color = Color.WhiteSmoke
Private miColorGradientFondoInactivo As Color = Color.LightGray
Private miGradient As Boolean = False


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

Public Sub New(ByVal Container As System.ComponentModel.IContainer)
MyClass.New()

'Requerido para la compatibilidad con el Diseñador de composiciones de clases Windows.Forms
Container.Add(Me)
End Sub

Public Sub New()
MyBase.New()

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

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

End Sub

'Component 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 componentes
Private components As System.ComponentModel.IContainer

'NOTA: el Diseñador de componentes requiere el siguiente procedimiento
'Se puede modificar utilizando el Diseñador de componentes.
'No lo modifique con el editor de código.
Friend WithEvents TabControl1 As System.Windows.Forms.TabControl
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.TabControl1 = New System.Windows.Forms.TabControl
'
'TabControl1
'
Me.TabControl1.Location = New System.Drawing.Point(17, 17)
Me.TabControl1.Name = "TabControl1"
Me.TabControl1.SelectedIndex = 0
Me.TabControl1.TabIndex = 0
'
'MyTabControl
'

End Sub

#End Region

#Region "SEt y Gets de Variables"

#Region "variable pàra saber si quieren en gradient"
Public Property Gradient() As Boolean
Get
Gradient = Me.miGradient
End Get
Set(ByVal Value As Boolean)
Me.miGradient = Value
End Set
End Property
#End Region

#Region "fondo"
Public Property colorFondoActivo() As Color
Get
colorFondoActivo = miColorFondoActivo
End Get
Set(ByVal Value As Color)
miColorFondoActivo = Value
End Set
End Property
Public Property colorFondoActivoSel() As Color
Get
colorFondoActivoSel = miColorFondoActivoSel
End Get
Set(ByVal Value As Color)
miColorFondoActivoSel = Value
End Set
End Property
Public Property colorFondoInactivo() As Color
Get
colorFondoInactivo = miColorFondoInactivo
End Get
Set(ByVal Value As Color)
miColorFondoInactivo = Value
End Set
End Property

Public Property colorGradientFondoActivo() As Color
Get
colorGradientFondoActivo = miColorGradientFondoActivo
End Get
Set(ByVal Value As Color)
miColorGradientFondoActivo = Value
End Set
End Property
Public Property colorGradientFondoActivoSel() As Color
Get
colorGradientFondoActivoSel = miColorGradientFondoActivoSel
End Get
Set(ByVal Value As Color)
miColorGradientFondoActivoSel = Value
End Set
End Property
Public Property colorGradientFondoInactivo() As Color
Get
colorGradientFondoInactivo = miColorGradientFondoInactivo
End Get
Set(ByVal Value As Color)
miColorGradientFondoInactivo = Value
End Set
End Property
#End Region

#Region "letra"
Public Property colorLetraActivo() As Color
Get
colorLetraActivo = miColorLetraActivo
End Get
Set(ByVal Value As Color)
miColorLetraActivo = Value
End Set
End Property
Public Property colorLetraInactivo() As Color
Get
colorLetraInactivo = miColorLetraInactivo
End Get
Set(ByVal Value As Color)
miColorLetraInactivo = Value
End Set
End Property
Public Property colorLetraActivoSel() As Color
Get
colorLetraActivoSel = miColorLetraActivoSel
End Get
Set(ByVal Value As Color)
miColorLetraActivoSel = Value
End Set
End Property
Public Property fontStyle() As fontStyle
Get
fontStyle = miEstiloFuente
End Get
Set(ByVal Value As fontStyle)
miEstiloFuente = Value
End Set
End Property
#End Region

#End Region

#Region "Control de las etiquetas de los Tabs"

Private Sub MyTabControl_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles MyBase.DrawItem
Dim f As Font
Dim foreBrush As Brush
Dim backbrush As System.Drawing.Drawing2D.LinearGradientBrush

If sender.TabPages(e.Index).enabled = True Then
If e.Index = sender.SelectedIndex Then
If miGradient Then
backbrush = New System.Drawing.Drawing2D.LinearGradientBrush(e.Bou nds, miColorFondoActivoSel, miColorGradientFondoActivoSel, Drawing2D.LinearGradientMode.ForwardDiagonal)
Else
backbrush = New System.Drawing.Drawing2D.LinearGradientBrush(e.Bou nds, miColorFondoActivoSel, miColorFondoActivoSel, Drawing2D.LinearGradientMode.ForwardDiagonal)
End If
foreBrush = New SolidBrush(miColorLetraActivoSel)
Else
If miGradient Then
backbrush = New System.Drawing.Drawing2D.LinearGradientBrush(e.Bou nds, miColorFondoActivo, miColorGradientFondoActivo, Drawing2D.LinearGradientMode.BackwardDiagonal)
Else
backbrush = New System.Drawing.Drawing2D.LinearGradientBrush(e.Bou nds, miColorFondoActivo, miColorFondoActivo, Drawing2D.LinearGradientMode.BackwardDiagonal)
End If
foreBrush = New SolidBrush(miColorLetraActivo)
End If
Else
If Gradient Then
backbrush = New System.Drawing.Drawing2D.LinearGradientBrush(e.Bou nds, miColorFondoInactivo, miColorGradientFondoInactivo, Drawing2D.LinearGradientMode.Horizontal)
Else
backbrush = New System.Drawing.Drawing2D.LinearGradientBrush(e.Bou nds, miColorFondoInactivo, miColorFondoInactivo, Drawing2D.LinearGradientMode.Horizontal)
End If
foreBrush = New SolidBrush(miColorLetraInactivo)
End If
e.Graphics.FillRectangle(backbrush, e.Bounds)
f = New Font(e.Font, miEstiloFuente)
Dim tabName As String = sender.TabPages(e.Index).Text
Dim sf As New StringFormat
sf.Alignment = StringAlignment.Center
Dim r As RectangleF = New RectangleF(e.Bounds.X, e.Bounds.Y + 4, e.Bounds.Width, e.Bounds.Height - 4)
e.Graphics.DrawString(tabName, f, foreBrush, r, sf)
sf.Dispose()
f.Dispose()
foreBrush.Dispose()
backbrush.Dispose()
End Sub
Private Sub MyTabControl_StyleChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.StyleChanged
'Para que se lea los cambios hechos, se vea el contenido de lsa tabs ...
MyBase.DrawMode = TabDrawMode.OwnerDrawFixed
End Sub
#End Region

Private Sub MyTabControl_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.SelectedIndexChanged
Dim a As TabControl
a = sender
If a.TabPages.Count > 0 Then
If sender.TabPages(a.SelectedIndex()).enabled = False Then
If a.SelectedIndex > 1 Then
a.SelectedIndex = a.SelectedIndex - 1
Else
If a.TabPages.Count > a.SelectedIndex + 1 Then
a.SelectedIndex = a.SelectedIndex + 1
End If
End If
End If
End If
End Sub

End Class

Ayudenme a ver si esta algo mal con mi dll
  #2 (permalink)  
Antiguo 08/03/2005, 09:20
 
Fecha de Ingreso: marzo-2005
Mensajes: 4
Antigüedad: 19 años, 2 meses
Puntos: 0
Bueno, ya no tengo creo ningun problema con mi control... Todo parece estar ahora bien. Para q se actualizen los colores al hacer un cambio en el color de activo o inactivo hago un refresh o update en la aplicacion que lo usa del tabcontrol. Pro ahoro tengo el problema que las paginas se reorganizan como al .net se le antoja.. ¿Como soluciono esto? Gracias. Si desean micódigo del mitabcontrol yo se los envio aunq para uds ha de ser pan comido lo q he hecho.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:03.