TextBox.Lines() dans un Control TextBox multiline..

Résolu
tinux Messages postés 244 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 21 octobre 2013 - 3 août 2006 à 12:57
 Utilisateur anonyme - 3 août 2006 à 21:50
Nouvelle question lool, cette fois-ci la source me pose des soucis ...

Voilà, pourquoi la propriété Lines d'un Textbox ne marche pas quand c'est défini par un control.. je m'explique :
J'ai une fonction qui parcours tous les textbox de ma forms, seulement ces textbox sont en fait des txtbx multiline.. mais seul la 2ème ligne m'intérèsse dans Ma fonction ! j'ai donc fait ça :

____
Dim Composant As Control
For Each Composant In formulaire.Controls
       If TypeOf Composant Is TextBox Then

                Dim cRubrique As String
                cRubrique = Composant.Lines(1)
                
'... suite de la fonction

     End If
Next
____

Mais vb me dit que Lines n'est pas un attribut de 'Windows.Form.Control' alors que l'on peut faire Composant.Text, Composant.ForeColor etc... pourquoi le lines ne passe pas ?

Merci !

12 réponses

Utilisateur anonyme
3 août 2006 à 19:19
Non ca marchera pas. Dommage !
Il faut vérifier la longelur du tableau:



If
txtboxctrl.Lines.Length > 1
Then

  [...]

End

If





Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a nous. Merci
3
Utilisateur anonyme
3 août 2006 à 14:44
Salut,

La base des controles windowsforms est un System.Windows.Forms.Control qui comprend les propriété Text, ForeColor ... donc on retrouvera ces propriétés sur tous les windowsforms. Après, chaque contrôle a ses propriétés spécifique.
Donc pour avoir accés, il faut que tu cast ton control en textbox:



Dim
Composant
As
System.Windows.Forms.Control

For

Each
Composant
In
formulaire.Controls

  
If

TypeOf
Composant
Is
System.Windows.Forms.TextBox
Then

    
Dim
TxtBoxCtrl
As
System.Windows.Forms.TextBox =
CType
(Composant, System.Windows.Forms.TextBox)

    
Dim
cRubrique
As

String

    cRubrique = TxtBoxCtrl.Lines(1)

    
'... suite de la fonction

  
End

If

Next





Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a nous. Merci
0
tinux Messages postés 244 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 21 octobre 2013
3 août 2006 à 15:05
Ok donc si j'ai bien compris en fait 'Control' regroupe tous les contrôles que l'on peut avoir dans la fenêtre 'Propriétés'.. Et bien encore une fois merci, décidément tu as réponse à tout
0
tinux Messages postés 244 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 21 octobre 2013
3 août 2006 à 15:33
Oups j'ai été un peu trop vite lool :

Déjà pour :





Dim
cRubrique
As


String


    cRubrique = TxtBoxCtrl.Lines(1)




il me met :





'Index was outside the bounds of the array.'

Et ensuite pour la suite de la fonction (que tu connais d'ailleurs ) ne fonctionne plus non plus : il me met qu'elle ne peut convertir string en integer.. pourtant il y a pas de string .. :

        DimComposant As System.Windows.Forms.Control
        For Each Composant In formulaire.Controls
            If TypeOf Composant Is System.Windows.Forms.TextBox Then
                Dim TxtBoxCtrl As System.Windows.Forms.TextBox = CType(Composant, System.Windows.Forms.TextBox)

                Dim cRubrique As String
                cRubrique = TxtBoxCtrl.Lines(1)

                Dim cKey As String = "CouleurText"
                Dim cKey1 As String = "CouleurCell"

                Dim cRepertoire As String = Space(255)
                Dim cRepertoire1 As String = Space(255)

                Dim cIniFile As String = "C:\WINDOWS\Coloration.ini"

                Dim istat As Integer
                Dim istat1


As Integer











                istat = Get_Private_Profile_String(cRubrique, cKey, "", cRepertoire, cIniFile)
                istat1 = Get_Private_Profile_String(cRubrique, cKey1, "", cRepertoire1, cIniFile)

                TxtBoxCtrl.ForeColor = System.Drawing.Color.FromArgb(cRepertoire)
                TxtBoxCtrl.BackColor = System.Drawing.Color.FromArgb(cRepertoire1)

            End If
        Next
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
3 août 2006 à 16:01
Ok ... alors,
L'erreur, c'est que tu as un textbox dans le tas, qui n'a qu'une ligne. D'ou, il la trouve pas, et bam ... erreur.
Donc, il faut que tu fasse un teste si cette deuxième ligne existe avant de passer a la suite.

Pour la deuxieme erreur, travaille avec Option Strict. Tu melange tout les type de donnée.




Le compilateur, il sait pas faire System.Drawing.Color.FromArgb(       ...*255"),
il veut un integer


Dim

cRepertoire As String = Space(255) ' Ceci aurais du être un integer (Dim cRepertoire As Integer)
'pareil pour



cRepertoire1






Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a nous. Merci
0
tinux Messages postés 244 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 21 octobre 2013
3 août 2006 à 18:24
Ok, première erreur résolue

Sinon je travaille avec l'option strict on, mais il y a un truc qui m'échappe, pourquoi ce mêli-melo à t-il fonctionné en dehors de la fonction ?
J'essaye de démêler les noeuds là
0
Utilisateur anonyme
3 août 2006 à 18:29
Alors la va savoir, tout dépend de ce qui se passe dans ton code.



Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a nous. Merci
0
tinux Messages postés 244 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 21 octobre 2013
3 août 2006 à 18:36
Bas c'est le couac.. :

la f° que tu m'as donnée convertir la couleur en integer et est enregistrée en string dans le fichier ini

Ma f° récupère les valeurs du fichiers ini : que des strings

-- donc jusqu'à la tout ce passe bien.. mais problème :

la f° que tu m'as donnée pour reconvertir l'integer en couleur ne marche plus, puisque notre nombre n'est plus integer mais string...

Donc je sais plus quoi faire.. on peut pas enregistrer sous forme d'integer et que ça reste tout le temps integer ? lool
0
Utilisateur anonyme
3 août 2006 à 18:47
Il faut que tu le convertise en integer



TaCouleurEnInt
= System.Convert.ToInt32(TaCouleurEnString)





Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a nous. Merci
0
tinux Messages postés 244 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 21 octobre 2013
3 août 2006 à 19:12
Ok c'est bon mais le problème de la deuxième ligne revient !

Peut être qu'avec if not txtboxctrl.lines(1) = '' '' then.. ça va marcher.. je vais essayer plus tard

En tout cas merci et bonne soirée !
0
tinux Messages postés 244 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 21 octobre 2013
3 août 2006 à 21:47
lol effectivement.. Bon bah voilà, ya plus qu'a parfaire le code, régler les ptis soucis pis voilà... Grand Grand Merci à toi ;)
0
Utilisateur anonyme
3 août 2006 à 21:50
Mais de rien



Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a nous. Merci
0
Rejoignez-nous