Probleme avec une checkedlistbox [Résolu]

Messages postés
21
Date d'inscription
mardi 3 août 2004
Dernière intervention
14 février 2007
- - Dernière réponse : Athalus
Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Dernière intervention
7 juillet 2005
- 22 févr. 2005 à 17:17
Bonjour,


je viens de me mettre au c# et je suis bloqué. Je suis en train de
faire un programme permettant de telecharger une liste de fichiers, la
liste des fichiers à télécharger est dans une checkedlistbox, et je
voudrais téléharger que les fichiers cochés. Comment crééer une boucle
du genre "Pour chaque fichier coché faire Telecharger fichier" ?


Et deuxiemement j'aimerais que lorsque l'on double-clique sur le
fichier liste ça lance le programme avec le fichier chargé. Parce que
pour le moment lorsque je double clique sur la liste ça lance le
programme mais avec la checkedlistbox vide.


Merci d'avance !
Afficher la suite 

Votre réponse

16 réponses

Meilleure réponse
Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Dernière intervention
7 juillet 2005
3
Merci
Bonjour,

Pour le premierement



// parcours des items de la checkedListBox

for
(
int i = 0; i <
this.checkedListBox1.Items.Count ; i++)
{

// test si l'item est coché

if(
this.checkedListBox1.GetItemChecked(i))
{
// ton code de téléchargement
}
}

Pour le deuxiemement si je comprend bien il te suffit d'initialiser le contenu de ta checkListBox au Load de ta form.

hum.......

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Athalus
Messages postés
3489
Date d'inscription
lundi 16 octobre 2000
Dernière intervention
30 octobre 2008
43
3
Merci
Ca se fait en 2 temps :



Dans ton programme, tu as la methode Main(string[] Args)

C'est ce parametre args qui contiendra le nom du fichier a ouvrir, il
faut donc que tu récupere sa valeur dans ton Main, puis que tu traites
les données comme bon te semble.



Ensuite, il faut associer l'extension .gid avec ton programme, dans la base de registre



Tu peux suivre cet exemple : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnforms/html/winforms10162003.asp

Mx

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de MorpionMx
Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Dernière intervention
7 juillet 2005
3
Merci
Coucou,
juste une question à la con

j'ai ca :
static
void Main()
{
Application.Run(new CAN_Menu());
}

Mais je ne peut pas mettre ca aussi ?


static
void Main(string[] Args)
{

Application.Run(
new CAN_Menu());
}

Car 2 points d'entrés dans le programme (logique ) du coup il faut seulement avoir la derniere ? Ca ne pose pas de problème pour le lancement de l'application ? ca depend peut etre de la façon de coder ( test de Args ... )

En tous cas merci

hum.......

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Athalus
Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Dernière intervention
7 juillet 2005
3
Merci
je viens de le mettre en place voila ce que ca donne :



static
void Main(
string[] args)


{



// Register custom extension with the shell



using( RegistryKey key =


Registry.ClassesRoot.CreateSubKey(".dps") )


{



// Map custom extension to a ProgID


key.SetValue(
null, "dpsfile");


}



// Register open command with the shell



string cmdkey = @"dpsfile\shell\open\command";



using( RegistryKey key =


Registry.ClassesRoot.CreateSubKey(cmdkey) )


{



// Map ProgID to an Open action for the shell


key.SetValue(
null, Application.ExecutablePath + " "%L"");


}



// Register document icon with the shell



string icokey = @"dpsfile\DefaultIcon";



using( RegistryKey key =


Registry.ClassesRoot.CreateSubKey(icokey) )


{



// Map ProgID to a document icon for the shell


key.SetValue(
null, Application.StartupPath + "\\App.ico");




}



// Load main form, taking command line into account



if( args.Length == 1 )


{


Application.Run(
new CAN_Menu(Path.GetFullPath(args[0])));


}


Application.Run(
new CAN_Menu());


}

Et donc mes 2
constructeurs



/// <summary>



/// constructeur vide



/// </summary>



public CAN_Menu()


{


InitializeComponent();


}






/// <summary>



/// Constructuer pour l'ouverture d'un fichier en double click



/// </summary>



/// chemin d'acces au fichier



public CAN_Menu(
string sPath)


{


InitializeComponent();

// fontion qui permet de gérer l'ouverture du fichier et les opération voulues
Fonction_Ouvrir(sPath);


}

hum.......

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Athalus
Messages postés
21
Date d'inscription
mardi 3 août 2004
Dernière intervention
14 février 2007
3
Merci
Merci beaucoup à vous deux, ça marche impec, j'ai juste rajouté un else ici pour pas lancer deux fois le programme :


if( args.Length == 1 )



{



Application.Run(new
CAN_Menu(Path.GetFullPath(args[0])));



}



else Application.Run(new
CAN_Menu());



}

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ephilas
Messages postés
21
Date d'inscription
mardi 3 août 2004
Dernière intervention
14 février 2007
0
Merci
Merci pour ta réponse rapide Athalus, le premier probleme est réglé.

En revanche pour le deuxieme probleme, comment récuperer l'adresse du
fichier sur lequel j'ai double-cliqué afin de lancer l'application et
de charger la checkedListBox d'un coup ?
Commenter la réponse de ephilas
Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Dernière intervention
7 juillet 2005
0
Merci
Si tu peux détailler un peu, tu double click ou ? tu lances l'application à partir d'ou ?

hum.......
Commenter la réponse de Athalus
Messages postés
21
Date d'inscription
mardi 3 août 2004
Dernière intervention
14 février 2007
0
Merci
J'ai un fichier .gid (qui est en fait un fichier texte) sur mon disque
dur qui contient la liste des url des fichiers à telecharger, et
j'aimerais que lorsque je double clique dessus mon programme se lance
et charge la liste des url dans la checkedbox, ainsi il ne me resterais
plus qu'à cliquer sur "Télécharger" pour télécharger les fichers présents dans la checkedbox.

Je sais pas si j'ai été plus clair !!!
Commenter la réponse de ephilas
Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Dernière intervention
7 juillet 2005
0
Merci
Et bien déjà ( mais ca dépend de ta version de windows ) tu peux faire ouvrir avec et la tu sélectionnes ton programme.
Mais apres j'en sais rien, c'est peu être un passage de paramètre qu'il faut que tu codes dans ton application. Peut etre que quelqu'un d'autre sur ce forum pourra mieux t'aider.
Je te conseil de faire un autre message sur le forum avec l'intitulé orienté seulement sur l'ouverture de ton fichier avec ton programme. Car c'est vraiment 2 problèmes differents.
En tout cas si tu trouves la solution ca m'interresse

hum.......
Commenter la réponse de Athalus
Messages postés
3489
Date d'inscription
lundi 16 octobre 2000
Dernière intervention
30 octobre 2008
43
0
Merci
Commenter la réponse de MorpionMx
Messages postés
3489
Date d'inscription
lundi 16 octobre 2000
Dernière intervention
30 octobre 2008
43
0
Merci
Tiens, c'est quoi ce message vide au dessus ?

Bon, donc je disais dans le message précédent :

<hr style="width: 100%; height: 2px;">

Les 2 sont valables, mais tu ne peux en mettre qu'un seul comme tu dis.


C'est pour ca que tu dois garder que celui la (du moins quand tu peux /
dois recevoir des arguments au lancement de ton programme)





static
void Main(string[] Args)
{
Application.Run(
new CAN_Menu());
}



Et si tu ne passes pas d'argument, peu importe. (le
tableau args sera vide, c'est tout). Et meme si tu en passes, rien ne
t'oblige de les traiter.

Donc il n'y a pas de souci.

Mx
Commenter la réponse de MorpionMx
Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Dernière intervention
7 juillet 2005
0
Merci
C'est bien ce que je pensais
Merci

hum.......
Commenter la réponse de Athalus
Messages postés
21
Date d'inscription
mardi 3 août 2004
Dernière intervention
14 février 2007
0
Merci
Merci pour vos reponse mais je n'arrive toujours pas à récuperer le
chemin du fichier à partir duquel j'ai lancé l'application. Voilà ce
que j'ai essayé:



static

void Main(string[] Args)
{
Application.Run(
new GIDDownload());

MessageBox.Show(args[0].ToString);
}

------------------------------------------------------------


static

void Main(string[] Args)
{
Application.Run(
new GIDDownload());

MessageBox.Show(args[0]);
}


----------------------------------------------------------------



Et là j'ai suivi l'exemple :



static void Main(string[] args) {
using( RegistryKey key =
Registry.ClassesRoot.CreateSubKey(".ror") ) {
key.SetValue(null, "gidfile");
}

string cmdkey = @"gidfile\shell\open\command";
using( RegistryKey key =
Registry.ClassesRoot.CreateSubKey(cmdkey) ) {
key.SetValue(null, Application.ExecutablePath + " "%L"");
}
GIDDownload form = new GIDDownload();
if( args.Length == 1 ) {
//form.OpenFile(Path.GetFullPath(args[0]));
//J'ai essayé OpenFile parcequ'il n'y avait pas de OpenDocument mais ça ne marche pas
}

Application.Run(form);
}

----------------------------------------------------------

Est ce que vous avez une idée ?
Athalus a tu réussi ?
Commenter la réponse de ephilas
Messages postés
3489
Date d'inscription
lundi 16 octobre 2000
Dernière intervention
30 octobre 2008
43
0
Merci
Vérifiez si les clés en registre existe, plutot que des les reinscrire a chaque demarrage de l'appli.

(Quoique ma foi, je sais pas si ca change grand chose)

Mx
Commenter la réponse de MorpionMx
Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Dernière intervention
7 juillet 2005
0
Merci
Pas idiot surtout si tu l'installes en administrateur et l'utilises en utilisateur... mais ca à l'interet de réassigner à chaque fois les fichiers au programme, si y'a des pb éventuelles. je vais le bourrer de condition alors

hum.......
Commenter la réponse de Athalus
Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Dernière intervention
7 juillet 2005
0
Merci
Effectivement en fait il relance le progamme un fois que l'ont quitte le premier.
Merci

hum.......
Commenter la réponse de Athalus

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.