Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : TextBox, une question simple mais qui me pose problème : [ Divers / Débutants ] (benji78)

vendredi 18 juillet 2008 à 22:55:41 | TextBox, une question simple mais qui me pose problème :

benji78

Bonjour/Bonsoir à tous,
J'aurais besoins de votre aide pour résoudre un problème simple sur le papier, mais où je ne trouve pas de solution (Je suis débutant, c'est donc normal ? ) ;
En faite mon problème est divisé en deux parties, qui sont relativement proches.

Mon application ressemble à ceci :


Comme vous pouvez le voir en bas de l'application il y a un TextBox (ayant la propriété) ReadOnly vérifiée (True) et

j'aimerais que pour chaque item que je vais ajouter dans mes List mes variables CD (référant à Commandes de Déclenchement), et CE (référant à Commandes de l'événement) soient modifiée ainf que le text de mon TextBox soit modifié.

Comme vous pouvez le voir le text lors du lancement de l'application est le suivant :

<html><style type=text/css>TEXTAREA { background-color : white; font-family : MS Sans Serif; font-size : 8px;}</style><center><table cellspacing=2><tr height=25><th colspan=3 align=left>Page 1</th></tr><tr><td><b>Conditions d'événements</b></td><td></td><td><b>Commande événements</b></td></tr><tr><td><TEXTAREA ROWS=7 COLS=30 SIZE=255 WRAP=soft readonly>"

+ CD + "</TEXTAREA></td><td width=20></td><td><TEXTAREA ROWS=7 COLS=50 SIZE=255 WRAP=soft readonly>" + CE + "</TEXTAREA></td></tr></table></html>

(Donc CD et CE n'ont pas de valeurs se qui est normal)

Mon second problème qui s'en rapproche est :
 Dans une autre fenêtre de mon application, dont voici à quoi cette dernière ressemble pour le moment :


Et lorsque je clique sur l'item : "Message('Entrez votre message ici')"
Une autre fenêtre s'ouvre, et l'utilisateur est invité à entrer dans un TextBox son message.
Puis lorsque celui-ci clique sur le bouton Ok, j'aimerais que son message soit inséré dans le TextBox situé à gauche du bouton Ajouter (et Annuler).



Merci d'avance pour l'aide que vous pourrez m'apporter. 

vendredi 18 juillet 2008 à 23:18:18 | Re : TextBox, une question simple mais qui me pose problème :

nhervagault

Administrateur CodeS-SourceS
Salut,

Peux-tu rexpliquer j'ai rien compris, c'est pas clair

Que veux-tu faire pour la question 1, la question 2?



Merci

vendredi 18 juillet 2008 à 23:27:44 | Re : TextBox, une question simple mais qui me pose problème :
samedi 19 juillet 2008 à 00:21:07 | Re : TextBox, une question simple mais qui me pose problème :

gillardg

un bout de code est plus parlant qu'une belle image ou un long discours

il y a 10 sortes de gens: ceux qui comprennent le binaire, et les autres


samedi 19 juillet 2008 à 06:33:49 | Re : TextBox, une question simple mais qui me pose problème :

sturtrid

Membre Club
Salut !

Vi, c'est pas faux gillardg...
Bon j'ai pas bien cerné ton 1er problème, tu redéfinis le contenu de ta textbox après modification de ton CD et CE... non?

Pour le second problème (si c'est ça ta question):

- Soit tu utilises une nouvelle form et tu t 'embêtes pour une simple saisie :

  => Soit tu gères l'action du coté de ta form appelante:

  (Dans ta newForm, tu devras mettre la valeur "OK" à la
  propriété "DialogResult" de ton bouton d'acceptation)
  If (newForm.ShowDialog = DialogResult.OK) Then
      Me.TextBoxDeGauche.Text = newForm.TextBoxDeSaisie.Text
  EndIf

  => Soit tu gères l'action du coté de ta form appelée:

  newForm.Show() --> A mettre dans la classe de ta formAppelante
  (Code ci-dessous à placer dans la classe de ta newForm)
  Private Sub tonBouton_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles
tonBouton.Click

     
formAppelante.TextBoxDeGauche.Text =Me.TextBoxDeSaisie.Text
      Me.Close()
  End Sub
   

- Soit tu utilises une InputBox :
  
  TextBoxDeGauche.Text = _
  InputBox("Ton message""Titre fenêtre", _
  "Réponse si aucune entrée utilisateur")
 
    => Et avec un test pour savoir si l 'utilisateur à bien entré un message...
  
  Dim userMsg As String = _
  InputBox("Ton message", "Titre fenêtre",_
  "Réponse par défaut si aucune entrée utilisateur"
)
  
  If (userMsg <> "Réponse par défaut si aucune entrée utilisateur") Then
      TextBoxDeGauche.Text = userMsg
  End If

    (Le "mieux", c'est de mettre String.Empty ou "" à la place de
  "Réponse par défaut si aucune entrée utilisateur"comme ça tu testes
    si l'entrée n'est pas nulle en même temps...)

Bon voilà... Si ça résoud ton problème ;-)
++

samedi 19 juillet 2008 à 12:13:00 | Re : TextBox, une question simple mais qui me pose problème :

benji78

Alors premier problème -> je réexplique , en mieux :)

En faite oui , j'aimerais que pour chaque item que va venir s'ajouter dans mes deux listes, j'extrait l'item puis je l'ajoute à CD pour les items du groupe Commandes de Déclenchement, séparé par un retour chariot en html, donc "<br>",ainsi que tous les items qui viendront s'ajouter à ma liste du groupe Commande de l'événement, pour CE.

J'espère que vous comprennez mieux.

Sinon -> "tu redéfinis le contenu de ta textbox après modification de ton CD et CE... non?"
C'est ça.

Ensuite second problème:

"  => Soit tu gères l'action du coté de ta form appelée:
  newForm.Show() --> A mettre dans la classe de ta formAppelante
  (Code ci-dessous à placer dans la classe de ta newForm)

 
Private Sub tonBouton_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles
tonBouton
.Click
     
formAppelante.TextBoxDeGauche.Text =Me.TextBoxDeSaisie.Text
      Me.Close()
  End Sub"

C'est comme cette solution que j'ai choisi car j'effectue une action du côté de la Form appellée (comptage des caractères entrés).


J'ai essayé pour mon test d'utiliser des commandes simples :

Private

Sub ButtonCEMessageOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonCEMessageOk.Click
   If TextBox1.Text.Length > 5 Or TextBox1.Text.Length = 5 Then
      FormCEajouter.TextBoxCE.Text = Me.TextBox1.Text
      FormCEajouter.ListBoxCommandes.SelectedItem = "Message('Entrez votre message ici')"
      FormCEajouter.Update()
      Me.Close()
   ElseIf TextBox1.Text.Length < 5 Then
      FormCEajouter.TextBoxCE.Text = "Test"
      FormCEajouter.ListBoxCommandes.SelectedItem = "Message('Entrez votre message ici')"
      FormCEajouter.Update()
      Me.Close()
   EndIf
EndSub

Et voici se que j'utilise pour appeler la fenêtre FormCEMessage

Private

Sub ListBoxCommandes_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBoxCommandes.DoubleClick
   If ListBoxCommandes.SelectedItem = "Message('Entrez votre message ici')"Then
      Dim frm AsNew FormCEMessage
      TextBoxCE.Text = "Message('Votre Message')"
      Me.Update()
      frm.ShowDialog()

   ElseIf ListBoxCommandes.SelectedItem = "Condition('Appuie Sur Bouton')"Then
      Dim frm AsNew FormCEcondition
      frm.ShowDialog()
   ElseIf ListBoxCommandes.SelectedItem = "AddObject(Nom Objet)"
Then
      Dim frm AsNew FormCEAddObject
      frm.ShowDialog()

   EndIf
EndSub


Ce qui m'étonne c'est que le message "Message('Votre Message')", s'affiche correctement, mais qu'avec la méthode que vous me conseillez, cela ne change pas le text affiché par TextBoxCE...

Merci de votre aide.

samedi 19 juillet 2008 à 16:49:55 | Re : TextBox, une question simple mais qui me pose problème :

sturtrid

Membre Club
Salut  Benji ! 

Bein pour redéfinir le contenu de ta TextBox, tu fais comme pour la remplir la 1er fois...
Par exemple tu peux faire une petite sub qui s'en chargera à chaque fois :


Sub RedefTextBox(ByVal CD As String ,
ByVal CE As String)
    TextBox.Text= "
<html><style type=text/css>TEXTAREA { background-color : white; font-family : _
    MS Sans Serif; font-size : 8px;}</style><center><table cellspacing=2><tr height=25><th colspan=3 _
    align=left>Page 1</th></tr><tr><td><b>Conditions d'événements</b></td><td></td><td><b>Commande _
    événements</b></td></tr><tr><td><TEXTAREA ROWS=7 COLS=30 SIZE=255 WRAP=soft readonly>"
_
    +
CD+ "</TEXTAREA></td><td width=20></td><td><TEXTAREA ROWS=7 COLS=50 SIZE=255 _
    WRAP=soft readonly>" +CE+
"</TEXTAREA></td></tr></table></html>"
End Sub

Dans cet exemple tu passes CD et CE en paramètre si ce sont des variables locales (Déclarées dans une procédure). Si ce sont des variables globales (Déclarées dans la zone de déclaration d'un module), tu n'as pas besoin de les passer en paramètre et la déclaration de ta Sub sera donc :

Sub RedefTextBox( )
[...]
End Sub

++

samedi 19 juillet 2008 à 17:55:11 | Re : TextBox, une question simple mais qui me pose problème :

sturtrid

Membre Club
Re

Pour ton test de comptage des caractères entrés, tu peux simplifier un peu...

If (TextBox1.TextLength >= 5)Then   Ici tu regroupes tes 2 tests et ton opérateur logique...
    [...]
Else      
    [...]
End If

Du coup ton Else représente le seul cas restant... Soit TextBox1.TextLength < 5
Petite astuce obsolète...
Tu peux mettre
TextBox1.TextLength à la place de TextBox1.Text.Length

Sinon tu peux aussi gérer ça coté formAppelante (autre solution) :

If (newForm.ShowDialog = DialogResult.OK)Then

        If
(TextBox1.TextLength >= 5)Then   Ici tu regroupes tes 2 tests et ton opérateur logique...
            [...]
        Else      
            [...]
        End If

End If

Et même en utilisant une InputBox :

Dim userMsg As String = _
InputBox("Ton message""Titre fenêtre"_
"Réponse par défaut")

If (userMsg <> "Réponse par défaut") Then
   If (userMsg.Length >= 5) Then
      [...]
   Else
      [...]
   End If
End If


"Ce qui m'étonne c'est que le message "Message('Votre Message')", s'affiche correctement, mais qu'avec la méthode que vous me conseillez, cela ne change pas le text affiché par TextBoxCE..."

C'est ce que je t'ai proposé qui ne marche pas? Je ne comprends pas... (Fait attention à l'emploi de .Show et .ShowDialog suivant la méthode choisie [voir mon exemple coté form appelante ou appelée])

Dans ton code tu mets :

[...]
TextBoxCE.Text ="Message('Votre Message')"
      Me.Update()
      frm.ShowDialog()
[...]

Or
frm.ShowDialog() envoie vers la form qui modifiera le contenu de ta TextBoxCE, donc je ne vois pas l'utilité d'en modifier le contenu juste avant...

Bye ++


samedi 19 juillet 2008 à 20:46:36 | Re : TextBox, une question simple mais qui me pose problème :

benji78

Salut, J'ai utilisé la technique expliqué dans ton premier post avec le code suivant :

Sub

RedefTextBox()
   
Dim cditem AsObject
   ForEach cditem In CDList.Items
      CD = CD + cditem +
"<br>"
   Next
   Dim ceitem AsObject
   ForEach ceitem In CDList.Items
      CE = CE + ceitem +
"<br>"
   Next
   Html.Text = "<html><style type=text/css>TEXTAREA { background-color : white; font-family : MS Sans Serif; font-size : 8px;}</style><center><table cellspacing=2><tr height=25><th colspan=3 align=left>Page 1</th></tr><tr><td><b>Conditions d'événements</b></td><td></td><td><b>Commandes événements</b></td></tr><tr><td><TEXTAREA ROWS=7 COLS=30 SIZE=255 WRAP=soft readonly>" + CD + "</TEXTAREA></td><td width=20></td><td><TEXTAREA ROWS=7 COLS=50 SIZE=255 WRAP=soft readonly>" + CE + "</TEXTAREA></td></tr></table></html>"
EndSub

Mais je me demandais : pour actualiser mon TextBox, donc lorsque j'ajouterais, ou modifierais des items sur mon ListBox, quelle commande dois-je utiliser pour appeler le
Sub RedefTextBox()
[...]
End Sub
?

"Pour ton test de comptage des caractères entrés, tu peux simplifier un peu..."

Merci, effectivement c'est mieux, ça évite les commandes implicites.



Pour le second problème :
"Orfrm.ShowDialog() envoie vers la form qui modifiera le contenu de ta TextBoxCE, donc je ne vois pas l'utilité d'en modifier le contenu juste avant..."

C'est vrai que ce n'est pas très utile la commande modifiant le texte lors du clique sur l'item, mais là n'est pas le but de se que je souhaite faire ^^, j'aimerais qu'à la place de "Votre message" apparaisse,  justement, le message de l'utilisateur.

Par ailleurs je note que la méthode utilisant l'inputbox marche.
Mais pour que je puisse l'utiliser j'aimerais savoir s'il était possible d'utiliser cette Sub :

Private

Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
' compter le nombre de caractères entrés dans la texte box :
If TextBox1.Text.Length = 5 Then
' remplacer la dernière touche espace préssée :
ind = TextBox1.Text.LastIndexOf(" ")
' par " /n " :
txt = TextBox1.Text.Substring(0, ind) & " /n "
restant = TextBox1.Text.Substring(ind + 1)
EndIf 
EndSub

Merci des informations et de l'aide :)

dimanche 20 juillet 2008 à 19:54:43 | Re : TextBox, une question simple mais qui me pose problème :

sturtrid

Membre Club
"Mais je me demandais : pour actualiser mon TextBox, donc lorsque j'ajouterais, ou modifierais des items sur mon ListBox, quelle commande dois-je utiliser pour appeler le Sub RedefTextBox()"

Je ne dois pas avoir bien compris ta question car je ne vois pas trop le souci. Tu fais ton appel à la suite des instructions qui te permettent d'ajouter ou de modifier tes items... Par contre, je vois que tu ne passes pas CD,CE... en paramètre donc comme je te disais, il faut que tes variables soient globales sinon ça marchera pô... Ou alors il s'agit de leur déclaration implicite (Option Explicit off), mais ça c'est pas conseillé.

"Mais pour que je puisse l'utiliser j'aimerais savoir s'il était possible d'utiliser cette Sub : Sub TextBox1_TextChanged(...)"

La pour le coup je comprends vraiment pas le rapport avec l'InputBox...
D'ailleurs, c'est quoi ce programme ?

++


1 2

Cette discussion est classé dans : message, problème, textbox, application, simple


Répondre à ce message

Sujets en rapport avec ce message

problème av Rich TextBox [ par Stan62970 ] Salut !mon probléme est le suivant : j'ai une rich TextBox dans laquelle j'inssert des messages (texte) les message sont envoyé par un client et s'ajo petit problème winsock [ par alfarabi ] Bonsoir,Aprés avoir envoyé un message depuis l'application client vers une application serveur, si "j'unload" aussitôt (même évènement) la form client VBA [ par gpo13 ] Bonjour à tous,mon problème est simple, j'ai une form contenant  97 textbox, quand je fait une raz de cette form, via un bouton, je veux effacer le co envoyer un message à partir de vb [ par amer_triki ] j'ai developpe une application de gestion vb/SQL et je veux envoyer des email à partir de cette application le code que je dois ecrire ? Problème d'affichage du contenu d'une TextBox [ par ZCyril ] Bonjour,    J'ai un petit soucis avec une TextBox. Mon programme modifie le contenu de la TextBox de cette façon :Dim TextAdd as String...MaTextBox.Te Problème avec deuxième session d'Excel [ par SnapFAB ] Bonjour,J'arrive bien à ouvrir une deuxième session d'Excel et à cacher l'application avec les lignes de commandes suivantes :Private Sub Workbook_Ope Problème de TextBox : [ par benji78 ] Bonjour à toutes, et à tous.J'ai un petit problème de TextBox ;Lorsque je clique sur un des éléments de mon ListBox (sur la Form 1), une Form s'ouvre Problème de génération Word lorsque plusieurs documents sont ouverts [ par wismerhillbest ] Bonjour, Je vous expose mon problème :Grace à une application Access, je dois générer un document Word dont la plupart des informations proviennent de Un petit problème avec NomApplication.application : [ par benji78 ] Bonjour à tous, J'ai récement créé une application que j'ai déployé sur mon site internet (Free).Le problème est que les personnes étant sous Firefox, Erreur d'Installation de mon application [ par chefinf ] Bonjour,J'ai un petit problème lors de l'installation de mon application VB6, (Setup):Le système detecte des fichiers DLL périmés et il me demande un


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,41 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.