Probleme avec une checkedlistbox [Résolu]

ephilas 21 Messages postés mardi 3 août 2004Date d'inscription 14 février 2007 Dernière intervention - 21 févr. 2005 à 14:33 - Dernière réponse : Athalus 131 Messages postés jeudi 17 juin 2004Date d'inscription 7 juillet 2005 Dernière intervention
- 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
Athalus 131 Messages postés jeudi 17 juin 2004Date d'inscription 7 juillet 2005 Dernière intervention - 21 févr. 2005 à 15:10
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.......

Merci Athalus 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de Athalus
Meilleure réponse
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 21 févr. 2005 à 17:16
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

Merci MorpionMx 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de MorpionMx
Meilleure réponse
Athalus 131 Messages postés jeudi 17 juin 2004Date d'inscription 7 juillet 2005 Dernière intervention - 22 févr. 2005 à 09:02
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.......

Merci Athalus 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de Athalus
Meilleure réponse
Athalus 131 Messages postés jeudi 17 juin 2004Date d'inscription 7 juillet 2005 Dernière intervention - 22 févr. 2005 à 11:55
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.......

Merci Athalus 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de Athalus
Meilleure réponse
ephilas 21 Messages postés mardi 3 août 2004Date d'inscription 14 février 2007 Dernière intervention - 22 févr. 2005 à 17:07
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());



}

Merci ephilas 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de ephilas
ephilas 21 Messages postés mardi 3 août 2004Date d'inscription 14 février 2007 Dernière intervention - 21 févr. 2005 à 15:44
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
Athalus 131 Messages postés jeudi 17 juin 2004Date d'inscription 7 juillet 2005 Dernière intervention - 21 févr. 2005 à 15:47
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
ephilas 21 Messages postés mardi 3 août 2004Date d'inscription 14 février 2007 Dernière intervention - 21 févr. 2005 à 16:04
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
Athalus 131 Messages postés jeudi 17 juin 2004Date d'inscription 7 juillet 2005 Dernière intervention - 21 févr. 2005 à 16:27
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
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 22 févr. 2005 à 09:15
0
Merci
Commenter la réponse de MorpionMx
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 22 févr. 2005 à 09:17
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
Athalus 131 Messages postés jeudi 17 juin 2004Date d'inscription 7 juillet 2005 Dernière intervention - 22 févr. 2005 à 09:20
0
Merci
C'est bien ce que je pensais
Merci

hum.......
Commenter la réponse de Athalus
ephilas 21 Messages postés mardi 3 août 2004Date d'inscription 14 février 2007 Dernière intervention - 22 févr. 2005 à 11:46
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
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 22 févr. 2005 à 12:36
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
Athalus 131 Messages postés jeudi 17 juin 2004Date d'inscription 7 juillet 2005 Dernière intervention - 22 févr. 2005 à 12:43
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
Athalus 131 Messages postés jeudi 17 juin 2004Date d'inscription 7 juillet 2005 Dernière intervention - 22 févr. 2005 à 17:17
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.