PictureBox + 4 ComboBox + 1 Richtexbox aider moi gros boulot

Résolu
cartman16 Messages postés 18 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014 - 19 oct. 2014 à 02:33
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 24 oct. 2014 à 14:11
Bonjour a tous,
Voila j'ai 1600 images dans les ressources de mon logiciel et 1600 fichiers txt
qui son renommé pareil que les images
exemple ---> bmw.jpg et bmw.txt
bmw525.jpg et bmw.txt
j'ai 4 ComboBox 1 PictureBox 1 RichtexBox 1 Label

Question: comment faire pour que quand je choisi un titre dans ma combobox et que je clic sur un bouton sa ouvre le fichier txt et l'image en même temps

j'ai pensé a:
Code a taper dans le bouton:

If ComboBox1.Text = "nom du texte de la combobox" Then

PictureBox1.Image = My.Resources.nom de l'image
Label1.Text = " nom de l'image"

end if

mais comment on peu faire pour que le nom selectionner dans la combox sois le meme dans picturebox style plus comme ça?

If ComboBox1.Text = "" Then

PictureBox1.Image = My.Resources.????<-----faire que sa sois égale
combobox1.textl

Richtexbox1.??????? <-------la je c'est pas quoi mettre

Label1.Text = " "<---------la je veu que sa sois égale a combobox1.text

end if
je sais pas si quelqu'un vois ce que je veu dire help me please
Merci a tous

20 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
21 oct. 2014 à 08:39
J'ai trouvé une solution pour rendre autonome l'executable sans dossier. Je suis pugnace et reconnais mes erreurs:

Avec le stockage des données images et textes dans My resources c'est impossible.

Si c'est possible. Par contre mes fichiers textes dans les Resources s'affichent avec 1. J'ai ajouté une recherche de nom dans ta listBox (1600), c'est nécessaire. Il faudra que tu ajoutes une TexBox et un Button.

voici le code:

Imports System.Resources
Imports System.Reflection
Imports System.IO
Public Class Form1
    Public Sub New()
        ' Cet appel est requis par le concepteur.
        InitializeComponent()
        ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
        Dim loEnumerator As IDictionaryEnumerator
        Dim loManager As ResourceManager
        Dim loReader As ResourceReader
        Dim lcName As String
        loManager = My.Resources.ResourceManager
        lcName = loManager.BaseName & ".resources"
        With Assembly.GetExecutingAssembly
            loReader = New ResourceReader(.GetManifestResourceStream(lcName))
        End With

        loEnumerator = loReader.GetEnumerator
        While loEnumerator.MoveNext
            Dim A As Object
            A = My.Resources.ResourceManager.GetObject(CStr(loEnumerator.Key))
            If A.GetType = GetType(Bitmap) Then
                ListBox1.Items.Add(loEnumerator.Key)
            End If
        End While

        loReader.Close()
    End Sub
    Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        Dim auto As String
        auto = ListBox1.SelectedItem.ToString()
        RichTextBox1.Clear()
        Dim ResourceName As String = auto & "1"
        Dim ResourceContents As String = CStr(My.Resources.ResourceManager.GetObject(ResourceName))
        RichTextBox1.Text = ResourceContents
        PictureBox1.Image = CType(My.Resources.ResourceManager.GetObject(ListBox1.SelectedItem.ToString), Image)
    End Sub
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim i As Integer
        Dim listString As String
        Dim reponse As String
        reponse = TextBox1.Text
        If reponse = "" Then Exit Sub
        For i = 0 To ListBox1.Items.Count - 1
            listString = CStr(ListBox1.Items.Item(i))
            If CBool(InStr(listString.ToLower, reponse.ToLower)) Then
                ListBox1.SelectedItems.Add(listString)
            End If
        Next
        ' MessageBox.Show("Recherche terminée.", "Recherche", MessageBoxButtons.OK, MessageBoxIcon.Information)
            listString = Nothing
    End Sub
End Class



Voilà je pense que cela devrait convenir à défaut de comboBox.
1
cartman16 Messages postés 18 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014
Modifié par cartman16 le 21/10/2014 à 13:18
Donc je supprime mes combobox que je remplace par une textbox et non plus par une listbox ? ou je rajoute une textbox en plus et je la rend invisible?
si j'ai mi 4 combobox c'est parce-que j'ai 4 listes d'item (sommaire différent) au chargement de la form 3 combobox son invisible une seul reste visible le changement de visibilité ce fait par des radiobouton (4)
je te donne mon adresse email envoi moi un mail que je puisse t'envoyer des screens de ma form réel car c'est un projet très personnel je peu pas publier sur le forum; enfin si tu est d'accort pour m'aider.
Merci pour tout ce que tu fait mille merci ;)
email: fortheworld@hotmail.fr
0
cartman16 Messages postés 18 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014
21 oct. 2014 à 14:00
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
21 oct. 2014 à 14:29
Voilà ce que cela donne:


1
cartman16 Messages postés 18 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014
Modifié par cartman16 le 21/10/2014 à 14:47
Merci cs_Le Pivert tu est un tueur trop fort t'assure grave tu est trop sympa de pas avoir lâcher l'affaire, je citerais ton pseudo et celui de CGSI3 dans les remerciements de mon logiciel ;+) et un gros merci a CGSI3 aussi qui a donné le 1er code primordial.
...Thank You les gars...
Cartman éric
0
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
Modifié par CGSI3 le 21/10/2014 à 22:10
Bonsoir a tous,

( Désolé j'ai un peu délaissé la discussion. Je suis très occupé en ce moment )
Je suis content que tu ai approfondi le problème et suivi les conseils qui t'on été donnés.
Je remercie et salut également Mon ami Pivert pour son complément essentiel et son aide a finaliser l'ensemble.

Tu as l'essentiel pour produire ton appli.

Bonne Prog
CGSI3

( Petite remarque au gestionnaire du site: Avec les +1 , l'ensemble de la discussion est un peu décousu )
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
21 oct. 2014 à 22:11
( Petite remarque au gestionnaire du site: Avec les +1 , l'ensemble de la discussion est un peu décousu )

Oui on a du mal à s'y faire au début.... puis on s'aperçoit qu'en haut de la discussion ( SOUS la question).. il y a une option pour trier par date à la place de trier par votes. )
;-)
0
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
21 oct. 2014 à 22:15
Bonjour et Merci Jordane
Info très utile

j essai de suite
0
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
Modifié par CGSI3 le 19/10/2014 à 11:01
Bonjour Cartman,

Voici déjà comment lister les images de My.Ressources.
J'ai utilisé une listbox mais la conversion avec une combobox est très similaire.

Imports System.Resources
Imports System.Reflection

Public Class Form1

Public Sub New()

' Cet appel est requis par le concepteur.
InitializeComponent()

' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
Dim loEnumerator As IDictionaryEnumerator
Dim loManager As ResourceManager
Dim loReader As ResourceReader
Dim lcName As String
loManager = My.Resources.ResourceManager
lcName = loManager.BaseName & ".resources"
With Assembly.GetExecutingAssembly
loReader = New ResourceReader(.GetManifestResourceStream(lcName))
End With

loEnumerator = loReader.GetEnumerator
While loEnumerator.MoveNext
Dim A As Object
A = My.Resources.ResourceManager.GetObject(loEnumerator.Key)
If A.GetType = GetType(Bitmap) Then
ListBox1.Items.Add(loEnumerator.Key)
End If
End While
loReader.Close()
End Sub

Private Sub ListBox1_SelectedValueChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedValueChanged
PictureBox1.Image = CType(My.Resources.ResourceManager.GetObject(ListBox1.SelectedItem.ToString), Image)
End Sub

End Class



Déjà plusieurs soucis a l'horizon selon moi

1, Il est possible d'ajouter 1600 images a MyRessources , par contre pour les 1600 .txt, je pense que tu devra le faire élément par élément (A moins que tu ne renomme tout les fichiers)

(tu remarquera que je gère un élément nommé BMW525 pas un File avec son extension (.jpg)

2, Quand j'utilise My.Resources.????
Cette ressource est associé a 1 seul objet, donc pas 2

Quand tu aura en image BMW525 tu devra avoir BMW525Txt en text

Une solution pourrais être de fusionner chaque image avec son text et je t'orienterais alors sur ces sources ..

http://codes-sources.commentcamarche.net/source/54893-texte-sur-une-image

http://codes-sources.commentcamarche.net/source/55253-cacher-un-fichier-zip-dans-une-image

Une autre serait aussi d'éviter My.ressource et directement de travailler sur les répertoires et les fichiers (et leurs extensions).

Ensuite changer les valeurs des différents controls est tout simple et se fait a la validation de ton combobox ou listbox sur le bon evenement choisi

Private Sub Combobox1_SelectedValueChanged
Label1.Text=Combobox1.Text ' Par exemple
...
End Sub



Bonne Prog
CGSI3
--
0
cartman16 Messages postés 18 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014
Modifié par cartman16 le 19/10/2014 à 18:14
Salut CGSI3,
j'ai un peu de mal avec ton code,
je m'explique mieux,
j'ai créer une form1, dans cette form1 il y a:
1-PictureBox1
4-Combobox1
1-Label1
1-RichTextBox1
Dans mes Ressource j'ai coller 1600 images avec 1600 fichiers texte qui décrivent les caractéristiques de chaque image.
"les fichiers texte son renommé a l'identique des noms des images

donc si je choisi dans une des combobox un titre et que je valide avec un bouton je veux que sa ouvre l'image du même nom et le fichier texte qui va avec sans tapez 1600 fois le code ci dessous:
--------------------------------------------------------------------
if combobox1.text = "BMW-520i" Then
Picture1.image = My.Ressources.BMW-520i
Label1.Text = "BMW-520i"
RichTextBox.Text = My.Ressources.BMW-520i.Text
end if

if combobox1.text = "BMW-523i" Then
Picture1.image = My.Ressources.BMW-523i
Label1.Text = "BMW-523i"
RichTextBox.Text = My.Ressources.BMW-523i.Text
end if

etc...... x 1598 fois encore
--------------------------------------------------------------------
----->on peu pas créer une variable pour optimisé le code?<-------
--------------------------------------------------------------------
comment faire pour récupérer le texte sélectionné dans la combobox et l'envoyer dans label, picturebox, richtextbox, etc..
j'ai fait un exemple sur le lien ci dessous:

http://gyazo.com/0b2dc25f18833579581683ebf9802587

si c'est possible faire simple dans le code pour ceux qui veulent m'aider un peu comme mon code, pas de nom de variable compliquer. Merci ;)
0

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

Posez votre question
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
19 oct. 2014 à 18:03
Bonjour
Avant de coder un combobox avec 1600 item c'est un peu lourd
et pas pratique pour l'utilisateur
peut etre grouper les images par sujet ?
0
cartman16 Messages postés 18 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014
Modifié par cartman16 le 19/10/2014 à 18:28
oui j'ai déjà séparer les titres dans 4 combobox (j'en est mi que 2 dans l'exemple en image dans le lien http://gyazo.com/0b2dc25f18833579581683ebf9802587 pour que vous compreniez.
j'ai,
-4 combobox pour répartir les 1600 titres des fichiers TXT
-1600 fichier texte (qui donne la description des voitures (exemple)
-1600 images de voitures (qui montre la voiture en image)
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
19 oct. 2014 à 18:20
Bonjour à tous,

Tout d'abord il est préférable d'utiliser une Listbox.
Dans le dossier debug de ton application tu crées un dossier Configuration où tu mets tous tes fichiers txt.

Voici le code avec une partie empruntée à CGSI3 que je salue:

Imports System.Resources
Imports System.Reflection
Imports System.IO
Public Class Form1
    Public Sub New()
        ' Cet appel est requis par le concepteur.
        InitializeComponent()
        ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
        Dim loEnumerator As IDictionaryEnumerator
        Dim loManager As ResourceManager
        Dim loReader As ResourceReader
        Dim lcName As String
        loManager = My.Resources.ResourceManager
        lcName = loManager.BaseName & ".resources"
        With Assembly.GetExecutingAssembly
            loReader = New ResourceReader(.GetManifestResourceStream(lcName))
        End With

        loEnumerator = loReader.GetEnumerator
        While loEnumerator.MoveNext
            Dim A As Object
            A = My.Resources.ResourceManager.GetObject(loEnumerator.Key)
            If A.GetType = GetType(Bitmap) Then
                ListBox1.Items.Add(loEnumerator.Key)
            End If
            End While

        loReader.Close()
    End Sub
    Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        Dim auto As String
        auto = ListBox1.SelectedItem.ToString()
        If My.Computer.FileSystem.FileExists(My.Application.Info.DirectoryPath & "\Configuration\" & auto & ".txt") Then
            RichTextBox1.Clear()
            RichTextBox1.LoadFile(My.Application.Info.DirectoryPath & "\Configuration\" & auto & ".txt")
        End If
        PictureBox1.Image = CType(My.Resources.ResourceManager.GetObject(ListBox1.SelectedItem.ToString), Image)
    End Sub
End Class


Je n'est pas mis le code pour renseigner le label, je te laisse le soin de le faire!

Tu vois c'est tout simple, bonne programmation :-)
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
19 oct. 2014 à 19:59
Bonjour
j'ai l'impression que pour cartman ce n'est pas si simple
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
19 oct. 2014 à 20:02
Question
les 1600 fichiers text contiennent seulement le titre modèle de la voiture ou d'autres données ?
A quoi sert ton RTB ?
0
cartman16 Messages postés 18 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014
19 oct. 2014 à 22:13
salut cs_ShayW,
les fichiers texte contienne que du texte rien qui doit être repris pour autre chose, peu être que j'arrive pas a vous faire comprendre ce que je cherche a faire.
Ma richtextbox me sert pour afficher les fichiers txt que j'ai dans my ressources, j'ai une adresse skype si quelqu'un veut m'aider
"Alb-éric cartman <----mon skype
Merci de votre attention a mon problème ;)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
19 oct. 2014 à 20:21
Bonjour et un salut amical à cs_ShayW.
Je commence à me demander si la question posée n'aurait pas tout simplement dû être "comment ajouter une image dont on connaît le chemin dans une RichTextBox"
Si j'ai raison de le penser, on mesure la perte de temps engendrée par tous ces détours.
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
19 oct. 2014 à 22:40
les fichiers texte contienne que du texte rien qui doit être repris pour autre chose,
cela ne répond pas à ma question
ex ton fichier BMW-520i.TXT contient un texte quel est son contenu ?
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
20 oct. 2014 à 07:56
si tu veux rester dans cette configuration de 4 ComboBox, il faut revoir le stockage des données dans 4 dossiers placés dans le dossier Debug de ton application.
Avec le stockage des données images et textes dans My resources c'est impossible. A part de passer par le code que je t'ai donné.
A toi de voir, il y a des règles a suivre en programmation!
0
cartman16 Messages postés 18 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014
20 oct. 2014 à 13:00
je débute en vb alors c'est pas facile, je pensé que on devait tout caler dans my.ressources pour que cela fonctionne en mode autonome, je suis un peu perdu car le code de base pour afficher une image a un événement style radiobouton ou bouton exemple:
if radiobouton1.Checked = true then
picturebox1.image = My.Ressources.Nom de l'image
mes quand il y a beaucoup d'images sa change.
c'est pas si simple pour moi j'ai encore un peu de mal en vb.net
Mais Merci a vous tous, merci pour le code qui m'aide meme si j'ai pas tout pigé. ;-)
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
20 oct. 2014 à 14:53
J'ai trouvé une solution pour garder tous tes fichiers images et textes dans le dossier Resources. Par contre il faut nécessairement passer par une listBox. Les fichiers images et texte doivent avoir le même nom.

Voici le code

Imports System.Resources
Imports System.Reflection
Imports System.IO
Public Class Form1
    Public Sub New()
        ' Cet appel est requis par le concepteur.
        InitializeComponent()
        ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
        Dim loEnumerator As IDictionaryEnumerator
        Dim loManager As ResourceManager
        Dim loReader As ResourceReader
        Dim lcName As String
        loManager = My.Resources.ResourceManager
        lcName = loManager.BaseName & ".resources"
        With Assembly.GetExecutingAssembly
            loReader = New ResourceReader(.GetManifestResourceStream(lcName))
        End With

        loEnumerator = loReader.GetEnumerator
        While loEnumerator.MoveNext
            Dim A As Object
            A = My.Resources.ResourceManager.GetObject(CStr(loEnumerator.Key))
            If A.GetType = GetType(Bitmap) Then
                ListBox1.Items.Add(loEnumerator.Key)
            End If
        End While

        loReader.Close()
    End Sub
    Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        Dim auto As String
        'cherche le chemin du dossier Resources
        auto = ListBox1.SelectedItem.ToString()
        Dim path As String = Application.StartupPath
        path = Replace(path, "bin\Debug", "Resources")
        path = path & "\" & auto & ".txt"
        RichTextBox1.Clear()
        RichTextBox1.LoadFile(path)
        PictureBox1.Image = CType(My.Resources.ResourceManager.GetObject(ListBox1.SelectedItem.ToString), Image)
    End Sub
End Class


Comme tu peux le constater le code est très compact.

J'espère que cela te conviendra?
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
20 oct. 2014 à 15:02
J'ai oublié de te dire qu'avec cette solution il faut inclure le dossier Resources avec ton executable. Cette solution est faite pour t'éviter de recopier tous tes fichiers textes dans un autre dossier.

Bonne programmation
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
20 oct. 2014 à 15:02
J'ai oublié de te dire qu'avec cette solution il faut inclure le dossier Resources avec ton exécutable. Cette solution est faite pour t'éviter de recopier tous tes fichiers textes dans un autre dossier.

Bonne programmation
0
cartman16 Messages postés 18 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014
20 oct. 2014 à 16:27
Merci cs_Le Pivert déjà je comprend mieux ce code il a l'air plus simple
et il correspond mieux a mon application. Donc je dois remplacer mes combobox par 4 ListBox ? sinon je vais essayer ton code et voir si je m'en sort merci encore de votre temps passer a m'aider ;-)
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
20 oct. 2014 à 16:38
Non il faut une seule listBox car elle se rempli avec cette ligne:

ListBox1.Items.Add(loEnumerator.Key)

Tu mets une listBox, une richtextBox , une pictureBox et tu colles ce code.

Cela doit fonctionner. Le seul inconvénient pour la distribution, il faut mettre les dossiers bin et Resources.

0
cartman16 Messages postés 18 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014
20 oct. 2014 à 16:57
ok je test ça merci encore :)
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
21 oct. 2014 à 14:40
Tu peux remercier CGSI3 aussi qui a donné le 1er code qui est primordial.
Si la question est résolu, cliques sur Résolu en haut.

Bonne programmation pour ton projet et à bientôt sur ce Forum.
0
cartman16 Messages postés 18 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014
Modifié par cartman16 le 22/10/2014 à 21:51
le code ne fonctionne pas du tout rien marche j'ai beau sélectionner et appuyer sur le bouton rien ne fonctionne pourquoi?
http://gyazo.com/7cd3e82cc20094daecfbf419e45eca99
http://gyazo.com/c3c7bb204583a3043bc682ac0153a7ac
http://gyazo.com/f78ff88349f7a039ab19450c45efb685
ci quelqu'un peu me dire pourquoi?
voila le code complet de la form9
Imports System.Resources
Imports System.Reflection
Imports System.IO

Public Class Form9
Public Sub New()
' Cet appel est requis par le concepteur.
InitializeComponent()
' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
Dim loEnumerator As IDictionaryEnumerator
Dim loManager As ResourceManager
Dim loReader As ResourceReader
Dim lcName As String
loManager = My.Resources.ResourceManager
lcName = loManager.BaseName & ".resources"
With Assembly.GetExecutingAssembly
loReader = New ResourceReader(.GetManifestResourceStream(lcName))
End With

loEnumerator = loReader.GetEnumerator
While loEnumerator.MoveNext
Dim A As Object
A = My.Resources.ResourceManager.GetObject(CStr(loEnumerator.Key))
If A.GetType = GetType(Bitmap) Then
ListBox1.Items.Add(loEnumerator.Key)
End If
End While

loReader.Close()
End Sub
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
Dim auto As String
auto = ListBox1.SelectedItem.ToString()
RichTextBox1.Clear()
Dim ResourceName As String = auto & "1"
Dim ResourceContents As String = CStr(My.Resources.ResourceManager.GetObject(ResourceName))
RichTextBox1.Text = ResourceContents
PictureBox1.Image = CType(My.Resources.ResourceManager.GetObject(ListBox1.SelectedItem.ToString), Image)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer
Dim listString As String
Dim reponse As String
reponse = TextBox1.Text
If reponse = "" Then Exit Sub
For i = 0 To ListBox1.Items.Count - 1
listString = CStr(ListBox1.Items.Item(i))
If CBool(InStr(listString.ToLower, reponse.ToLower)) Then
ListBox1.SelectedItems.Add(listString)
End If
Next
' MessageBox.Show("Recherche terminée.", "Recherche", MessageBoxButtons.OK, MessageBoxIcon.Information)
listString = Nothing
End Sub


Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
If RadioButton1.Checked = True Then
ListBox1.Visible = True
ListBox2.Visible = False
ListBox3.Visible = False
ListBox4.Visible = False
End If
End Sub

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
If RadioButton2.Checked = True Then
ListBox1.Visible = False
ListBox2.Visible = True
ListBox3.Visible = False
ListBox4.Visible = False
End If
End Sub

Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged
If RadioButton3.Checked = True Then
ListBox1.Visible = False
ListBox2.Visible = False
ListBox3.Visible = True
ListBox4.Visible = False
End If
End Sub

Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged
If RadioButton4.Checked = True Then
ListBox1.Visible = False
ListBox2.Visible = False
ListBox3.Visible = False
ListBox4.Visible = True
End If
End Sub
End Class
Merci
0
cartman16 Messages postés 18 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014
22 oct. 2014 à 22:13
aucune erreur
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
22 oct. 2014 à 21:47
Salut

1 pourquoi ne pas afficher ton code directement en utilisant les
balises code et non par des links

le code ne fonctionne pas du tout rien marche j'ai beau sélectionner et appuyer sur le bouton rien ne fonctionne pourquoi?
n'est pas une réponse tu obtiens un message d'erreur
utilises le debugger touche F11 et lance ton prog pas à pas et voir
à quelle ligne il se bloque
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
22 oct. 2014 à 22:16
avec les balises de codes

Imports System.Resources 
Imports System.Reflection
Imports System.IO

Public Class Form9
Public Sub New()
' Cet appel est requis par le concepteur.
InitializeComponent()
' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
Dim loEnumerator As IDictionaryEnumerator
Dim loManager As ResourceManager
Dim loReader As ResourceReader
Dim lcName As String
loManager = My.Resources.ResourceManager
lcName = loManager.BaseName & ".resources"
With Assembly.GetExecutingAssembly
loReader = New ResourceReader(.GetManifestResourceStream(lcName))
End With

loEnumerator = loReader.GetEnumerator
While loEnumerator.MoveNext
Dim A As Object
A = My.Resources.ResourceManager.GetObject(CStr(loEnumerator.Key))
If A.GetType = GetType(Bitmap) Then
ListBox1.Items.Add(loEnumerator.Key)
End If
End While

loReader.Close()
End Sub
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
Dim auto As String
auto = ListBox1.SelectedItem.ToString()
RichTextBox1.Clear()
Dim ResourceName As String = auto & "1"
Dim ResourceContents As String = CStr(My.Resources.ResourceManager.GetObject(ResourceName))
RichTextBox1.Text = ResourceContents
PictureBox1.Image = CType(My.Resources.ResourceManager.GetObject(ListBox1.SelectedItem.ToString), Image)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer
Dim listString As String
Dim reponse As String
reponse = TextBox1.Text
If reponse = "" Then Exit Sub
For i = 0 To ListBox1.Items.Count - 1
listString = CStr(ListBox1.Items.Item(i))
If CBool(InStr(listString.ToLower, reponse.ToLower)) Then
ListBox1.SelectedItems.Add(listString)
End If
Next
' MessageBox.Show("Recherche terminée.", "Recherche", MessageBoxButtons.OK, MessageBoxIcon.Information)
listString = Nothing
End Sub


Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
If RadioButton1.Checked = True Then
ListBox1.Visible = True
ListBox2.Visible = False
ListBox3.Visible = False
ListBox4.Visible = False
End If
End Sub

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
If RadioButton2.Checked = True Then
ListBox1.Visible = False
ListBox2.Visible = True
ListBox3.Visible = False
ListBox4.Visible = False
End If
End Sub

Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged
If RadioButton3.Checked = True Then
ListBox1.Visible = False
ListBox2.Visible = False
ListBox3.Visible = True
ListBox4.Visible = False
End If
End Sub

Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged
If RadioButton4.Checked = True Then
ListBox1.Visible = False
ListBox2.Visible = False
ListBox3.Visible = False
ListBox4.Visible = True
End If
End Sub
End Class
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
23 oct. 2014 à 08:18
Si tu as coller le code intégralement, il ce peut que les évènements de la ListBox et du Button ne soient pas reconnus.

Pour vérifier double clic sur la ListBox et le Button. si cela ouvre de nouveaux évènements, tu colles le code concerné dans chaque évènement et tu supprimes les autres. Cela arrive parfois.

Sinon je ne vois rien d'autre ,si aucun bug n'est signalé.
0
cartman16 Messages postés 18 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014
23 oct. 2014 à 14:27
Bonjour a tous,
j'ai réussi a faire fonctionner le code l'erreur viens de la ligne 35 apparemment
avant
Dim ResourceName As String = auto & "1"

après
Dim ResourceName As String = auto & 1
(pourquoi sa marche sans les " " es ce normal?)

par contre pourquoi il y a toutes mes images du dossier my ressources qui son afficher dans la listbox et pas juste les noms de celle que j'ai entrer dans l'item de la listbox?

-le bouton sert que si je tape un truc dedans la textbox (pour info)
sinon merci du fond du coeur j'y suis presque...
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
23 oct. 2014 à 14:53
1ère question:

Chez moi j'ai mis les images avant les fichiers texte dans My.Resources. Les fichiers texte ayant le même nom que les images s'incrivent avec 1 à la fin du nom. Chez toi cela doit être le contraire, c'est pourquoi ça marche avec auto seulement.


2ème question:

Non il faut une seule listBox car elle se rempli avec cette ligne:

ListBox1.Items.Add(loEnumerator.Key)


Je te l'ai expliqué ici. La listBox se rempli avec les noms de tes fichiers qui sont dans My.Resources. C'est bien ce que tu voulais.

3ème question:

J'ai ajouté une recherche de nom dans ta listBox (1600), c'est nécessaire. Il faudra que tu ajoutes une TexBox et un Button.


C'est un petit plus pour sélectionner directement l'item dans ta listBox. Mais tu peux faire la recherche manuellement.

Compreso
0
cartman16 Messages postés 18 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014
23 oct. 2014 à 15:30
oui les fichier txt on bien 1 a la fin et pas les images mais sa fonctionne bien, après j'ai mis dans my ressources les images des autres form dedans et elle s'affiche dans la liste (item) de la listbox, peu on faire en sorte que sa ne ce mélange pas? vue que maintenant je peu plus avoir plusieur listbox comment faire pour pouvoir changer la liste item de la listbox quand je sélectionne un des 4 radiobouton (si c'est possible)
es ce que je peu recharger avec un fichier txt ou je dois tout écrire dans la commande du radiobouton exemple:
if radiobuton2.checked = true then
Listbox1.item = le nom des items a changer? (es ce comme ça?)
Merci sinon pour tout ;)
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
23 oct. 2014 à 17:41
De la façon que tu as voulu avoir ton exécutable autonome sans dossier, c'est très compliqué. La solution serait de ne garder dans la listBox que les fichier concernés et éliminer les autres. Déjà cela est très difficile, mais c'est faisable. Là où c'est presque infaisable c'est que la liste est chargé à l'ouverture! Pour le 1er radiobutton , cela fonctionnerait, mais pour les autres? Et pour revenir en arrière remettre les items supprimés, il faut charger de nouveau la listBox.

Conclusion, il faut 4 dossiers séparés avec dans chacun les fichiers texte et image. Le code serait très simple.

A toi de voir la balle est dans ton camp, je ne peux pas faire plus.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
23 oct. 2014 à 18:20
Bon j'ai trouvé une solution. Copier dans d'autres listBox les fichiers désirés a partir de ta lisBox1.
Il faudra que tu fasses un travail de recherche de tes fichiers contenus dans My.Resources.

Voici le code pour 2 radiobutton et 2 listbox , tu feras de même pour les autres en les adaptant:

  Private Sub RadioButton1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RadioButton1.CheckedChanged
        If ListBox1.Items.Count = 0 Then Exit Sub
        If RadioButton1.Checked = True Then
            ListBox1.SelectionMode = SelectionMode.MultiExtended
            ListBox2.Items.Clear()
            For i As Integer = 0 To 400 ' a adapter
                ListBox1.SetSelected(i, True)
                ListBox2.Items.Add(ListBox1.Items(i).ToString.ToLower)
            Next i
        End If
    End Sub
   Private Sub RadioButton2_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RadioButton2.CheckedChanged
        If ListBox1.Items.Count = 0 Then Exit Sub
        If RadioButton2.Checked = True Then
            ListBox1.SelectionMode = SelectionMode.MultiExtended
            ListBox3.Items.Clear()
            For i As Integer = 400 To 800 ' a adapter
                ListBox1.SetSelected(i, True)
                ListBox3.Items.Add(ListBox1.Items(i).ToString.ToLower)
            Next i
        End If


A toi de jouer!!!!
0
cartman16 Messages postés 18 Date d'inscription dimanche 19 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014
24 oct. 2014 à 12:17
Je te remercie tu est vraiment très fort j'aurais jamais pu m'en sortir sans toi, comme je les dit je débute dans le code (1 ans) j'aimerais savoir pourquoi (curiosité) ce nais pas possible avec une ComboBox et que cela fonctionne avec une Listbox ? a la ligne 17 les valeur 400 et 800 c'est le nombres d'item pour chaque Listbox? Merci Merci Mille fois de nous faire partager tais connaissances... ;)
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
24 oct. 2014 à 14:11
Tu peux essayer avec des comboBox, il te suffit de changer ListBox par comboBox dans le code. Je trouve cela moins pratique quand il y a un nombre élevé d'items.

Pour faire ton tri dans tes 4 listBox et connaître leur index, tu mets ceci dans la listbox1 temporairement:

     MsgBox(ListBox1.SelectedIndex)


Mais ce n'est pas fini, quand tu vas avoir tes noms d'affichés dans les 4 listBox, il va falloir faire la liaison avec la listbox1 pour ouvrir l'image et le fichier texte.

Il va falloir récupérer le nom de l'item cliqué, on l'a déjà vu:

Dim nom As String = ListBox2.SelectedItem.ToString() 'recherche nom cliqué


et ensuite le chercher dans la listBox1, on l'a déjà vu aussi dans la recherche avec le bouton.
Mais je vais faire plus court, car il n'y a pas de contrôle de saisi de texte:

 ListBox1.SelectedIndex = ListBox1.FindString(nom) 'sélectionne l'élement dans la listBox1


Voici donc le code pour 2 radiobuttons:

 Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        If ListBox1.Items.Count = 0 Then Exit Sub
        Dim auto As String
        auto = ListBox1.SelectedItem.ToString()
        MsgBox(ListBox1.SelectedIndex) 'à supprimer après le tri
        RichTextBox1.Clear()
        Dim ResourceName As String = auto & 1
        Dim ResourceContents As String = CStr(My.Resources.ResourceManager.GetObject(ResourceName))
        RichTextBox1.Text = ResourceContents
        PictureBox1.Image = CType(My.Resources.ResourceManager.GetObject(ListBox1.SelectedItem.ToString), Image)
    End Sub
    Private Sub ListBox2_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox2.SelectedIndexChanged
        If ListBox2.Items.Count = 0 Then Exit Sub
        Dim nom As String = ListBox2.SelectedItem.ToString() 'recherche nom cliqué
        ListBox1.SelectedIndex = ListBox1.FindString(nom) 'sélectionne l'élement dans la listBox1
    End Sub
    Private Sub ListBox3_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox3.SelectedIndexChanged
        If ListBox3.Items.Count = 0 Then Exit Sub
        Dim nom As String = ListBox3.SelectedItem.ToString() 'recherche nom cliqué
        ListBox1.SelectedIndex = ListBox1.FindString(nom) 'sélectionne l'élement dans la listBox1
    End Sub
    Private Sub RadioButton1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RadioButton1.CheckedChanged
        If ListBox1.Items.Count = 0 Then Exit Sub
        If RadioButton1.Checked = True Then
            ListBox2.Items.Clear()
            For i As Integer = 0 To 400 ' a adapter en cherchant l'itndex dans la listBox1
                ListBox2.Items.Add(ListBox1.Items(i).ToString.ToLower)
            Next i
        End If
    End Sub
    Private Sub RadioButton2_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RadioButton2.CheckedChanged
        If ListBox1.Items.Count = 0 Then Exit Sub
        If RadioButton2.Checked = True Then
            ListBox3.Items.Clear()
            For i As Integer = 401 To 800 ' a adapter en cherchant l'itndex dans la listBox1
                ListBox3.Items.Add(ListBox1.Items(i).ToString.ToLower)
            Next i
        End If
    End Sub


Je pense qu'avec ces explications tu comprendras mieux. Dans la programmation il y a 80% de préparation sur le papier et 20 % de code
0
Rejoignez-nous