'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
'Elle peut être modifiée en utilisant le Concepteur Windows Form.
'Ne la modifiez pas en utilisant l'éditeur de code.
Friend WithEvents TabControl1 As TabControlPerso
Friend WithEvents TabPage1 As System.Windows.Forms.TabPage
Friend WithEvents TabPage2 As System.Windows.Forms.TabPage
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.TabControl1 = New TabControlPerso()
Me.TabPage1 = New System.Windows.Forms.TabPage
Me.TabPage2 = New System.Windows.Forms.TabPage
Me.TabControl1.SuspendLayout()
Me.SuspendLayout()
'
'TabControl1
[...]
Voilà, on va y arriver.
Et il est dans la boîte a outils.
cs_Sipat
Messages postés71Date d'inscriptionmardi 26 octobre 2004StatutMembreDernière intervention15 avril 2007 14 févr. 2007 à 21:11
Bonsoir et merci.Merci de m'avoir aidé et merci pour la grande patience que tu a eu avec moi !
Je vais remettre le code en entier.
Deux lignes à remplacer (lignes soulignées):
'Requis par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
'Elle peut être modifiée en utilisant le Concepteur Windows Form.
'Ne la modifiez pas en utilisant l'éditeur de code.
'Friend WithEvents TabControl1 As System.Windows.Forms.TabControl par
Friend
WithEvents TabControl1
As TabControlPerso
<System.Diagnostics.DebuggerStepThrough()>
Private
Sub InitializeComponent()
'Me.TabControl1 = New System.Windows.Forms.TabControlpar
Me.TabControl1 =
New TabControlPerso()
Ajouter le code suivant :
End
Sub
Protected
Overrides
Sub OnDrawItem(
ByVal e
As System.Windows.Forms.DrawItemEventArgs)
Dim TxtAttr
As
New System.Drawing.StringFormat
TxtAttr.LineAlignment = System.Drawing.StringAlignment.Center
TxtAttr.Alignment = System.Drawing.StringAlignment.Center
Dim FontStyle
As System.Drawing.FontStyle = System.Drawing.FontStyle.Regular
If
CBool(e.State
And System.Windows.Forms.DrawItemState.Selected)
Then FontStyle = System.Drawing.FontStyle.Bold
e.Graphics.DrawString(
MyBase.TabPages(e.Index).Text,
New System.Drawing.Font(e.Font, FontStyle), System.Drawing.Brushes.Black,
New System.Drawing.RectangleF(
CSng(e.Bounds.Left),
CSng(e.Bounds.Top),
CSng(e.Bounds.Width),
CSng(e.Bounds.Height)), TxtAttr)
MyBase.OnDrawItem(e)
End
Sub
Private
Sub TabControlPerso_Click(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Click
MsgBox("Merci pour le code Kenji.")
End
Sub
Protected
Overrides
Sub Finalize()
MyBase.Finalize()
End
Sub
End
Class
Encore Merci et bonne soirée ça fonctionne vraiment bien merci Kenji.
cs_Sipat
Messages postés71Date d'inscriptionmardi 26 octobre 2004StatutMembreDernière intervention15 avril 2007 11 févr. 2007 à 18:45
Bonsoir,
J'ai essayé de poser un GroupBox1 et de mettre dessus un TabControl1 effectivement le titre passe en gras, mais de tous les onglets .
J'aimerai avoir l'onglet qui a le Focus en gras mais pas les autres !
Ce code met tout en gras, à toi de mettre en gras ceux qui doivent l'être et de ne pas mettre en gras les autres.
Public Class TabControlPerso
Inherits System.Windows.Forms.TabControl
Public Sub New()
MyBase.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed
End Sub
Protected Overrides Sub OnDrawItem(ByVal e As System.Windows.Forms.DrawItemEventArgs)
Dim TxtAttr As New System.Drawing.StringFormat()
TxtAttr.LineAlignment = System.Drawing.StringAlignment.Center
TxtAttr.Alignment = System.Drawing.StringAlignment.Center
e.Graphics.DrawString(MyBase.TabPages(e.Index).Text, New System.Drawing.Font(e.Font, _
System.Drawing.FontStyle.Bold), New System.Drawing.SolidBrush(e.ForeColor), _
e.Bounds, TxtAttr)
Dim FontStyle As System.Drawing.FontStyle = System.Drawing.FontStyle.Regular
If CBool(e.State And System.Windows.Forms.DrawItemState.Selected) Then FontStyle = System.Drawing.FontStyle.Bold
e.Graphics.DrawString(MyBase.TabPages(e.Index).Text, New System.Drawing.Font(e.Font, _
FontStyle), System.Drawing.Brushes.Black, e.Bounds, TxtAttr)
cs_Sipat
Messages postés71Date d'inscriptionmardi 26 octobre 2004StatutMembreDernière intervention15 avril 2007 11 févr. 2007 à 20:10
Bonsoir,
je viens d'essayer mais il y a une erreur avec VB.NET 2003
e.Graphics.DrawString(
MyBase.TabPages(e.Index).Text,
New System.Drawing.Font(e.Font, System.Drawing.FontStyle.Bold),
New System.Drawing.SolidBrush(e.ForeColor), e.Bounds, TxtAttr)
une valeur de type "System drawing... ne peut être convertie en...
cs_Sipat
Messages postés71Date d'inscriptionmardi 26 octobre 2004StatutMembreDernière intervention15 avril 2007 12 févr. 2007 à 09:47
Bonjour,
Voilà l'erreur :
C:\Doc\AT\Visual Studio\WindowsApp\Form1.vb(263): La résolution de surcharge a échoué, car aucun 'DrawString' accessible ne peut être appelé avec ces arguments :
'Public Sub DrawString(s As String, font As System.Drawing.Font, brush As System.Drawing.Brush, layoutRectangle As System.Drawing.RectangleF, format As System.Drawing.StringFormat)' : Une valeur de type 'System.Drawing.Rectangle' ne peut pas être convertie en 'System.Drawing.RectangleF'.
'Public Sub DrawString(s As String, font As System.Drawing.Font, brush As System.Drawing.Brush, point As System.Drawing.PointF, format As System.Drawing.StringFormat)' : Une valeur de type 'System.Drawing.Rectangle' ne peut pas être convertie en 'System.Drawing.PointF'.
'Public Sub DrawString(s As String, font As System.Drawing.Font, brush As System.Drawing.Brush, x As Single, y As Single)' : Une valeur de type 'System.Drawing.Rectangle' ne peut pas être convertie en 'Single'.
'Public Sub DrawString(s As String, font As System.Drawing.Font, brush As System.Drawing.Brush, x As Single, y As Single)' : Une valeur de type 'System.Drawing.StringFormat' ne peut pas être convertie en 'Single'.
Dans VB6 les onglets sont en gras et celui qui est sélectionné est normale.Je ne comprends pas pourquoi c'est différent en VB.NET.2003.
cs_Sipat
Messages postés71Date d'inscriptionmardi 26 octobre 2004StatutMembreDernière intervention15 avril 2007 12 févr. 2007 à 10:47
Bonjour,
J'ai remplacé :
e.Bounds par:
CType(e.Bounds, System.Drawing.RectangleF)
Erreur:
vb(264): Une valeur de type 'System.Drawing.Rectangle' ne peut pas être convertie en 'System.Drawing.RectangleF'.
Il y a que deux erreurs maintenant c'est e.Bounds qui est souligné en bleu et non pas toute la ligne.
P.S je vais devoir m'absenter je reviendrais vers 21 h.
Merci.
cs_Sipat
Messages postés71Date d'inscriptionmardi 26 octobre 2004StatutMembreDernière intervention15 avril 2007 12 févr. 2007 à 22:15
Bonsoir,
J'ai remplacé comme cela :
If
e.Graphics.DrawString(
MyBase.TabPages(e.Index).Text,
New System.Drawing.Font(e.Font, System.Drawing.FontStyle.Bold),
New System.Drawing.SolidBrush(e.ForeColor),
New System.Drawing.RectangleF(
CSng(e.Bounds.Left),
CSng(e.Bounds.Top),
CSng(e.Bounds.Width),
CSng(e.Bounds.Height)), TxtAttr)
Then e.Graphics.DrawString(
MyBase.TabPages(e.Index).Text,
New System.Drawing.Font(e.Font, System.Drawing.FontStyle.Bold),
New System.Drawing.SolidBrush(e.ForeColor),
New System.Drawing.RectangleF(
CSng(e.Bounds.Left),
CSng(e.Bounds.Top),
CSng(e.Bounds.Width),
CSng(e.Bounds.Height)), TxtAttr)
Erreur: qui s'arrête à
Then : et aprés c'est bon.
vb(267): Cette expression ne produit pas de valeur.
Merci bonne soirée.
cs_Sipat
Messages postés71Date d'inscriptionmardi 26 octobre 2004StatutMembreDernière intervention15 avril 2007 13 févr. 2007 à 11:01
Bonjour,
Je viens de faire un petit récapitulatif je n'ai pas d'erreur, mais comment je determine que je veux le texte de mon onglet en gras quand je clic dessus?
End
Sub
Protected
Overrides
Sub OnDrawItem(
ByVal e
As System.Windows.Forms.DrawItemEventArgs)
Dim TxtAttr
As
New System.Drawing.StringFormat
TxtAttr.LineAlignment = System.Drawing.StringAlignment.Center
TxtAttr.Alignment = System.Drawing.StringAlignment.Center
Dim FontStyle
As System.Drawing.FontStyle = System.Drawing.FontStyle.Regular
If
CBool(e.State
And System.Windows.Forms.DrawItemState.Selected)
Then FontStyle = System.Drawing.FontStyle.Bold
e.Graphics.DrawString(
MyBase.TabPages(e.Index).Text,
New System.Drawing.Font(e.Font, FontStyle), System.Drawing.Brushes.Black,
New System.Drawing.RectangleF(
CSng(e.Bounds.Left),
CSng(e.Bounds.Top),
CSng(e.Bounds.Width),
CSng(e.Bounds.Height)), TxtAttr)
Ben la il affiche en gras pour l'onget séléctionner. C'est pas ce que tu voulais ?
Sinon tu ajoute une propriété pour définirs quels sont les onglets à mettre en gras
cs_Sipat
Messages postés71Date d'inscriptionmardi 26 octobre 2004StatutMembreDernière intervention15 avril 2007 13 févr. 2007 à 19:20
Bonsoir,
Oui il affiche en gras quand je selectionne TabControl1 et je selectionne gras tous ce qui se trouve sur le control tab et gras même les onglets et je déselectionne un par un les gras que je ne veux pas.
Mais les onglets sont tous gras aussi et la je ne vois pas comment j'enleve le gras !
Parce que j'aimerai que l'onglet perde sont gras quand il a le focus ,mais que le grass des autres onglets garde le leurs .
Tu crois que c'est possible?
Merci pour ta réponse.