Dans mon appli, j'affiche le contenu d'un répertoire dans un treeview grâce à l'appel d'une fonction récursive.
Pour améliorer un peu l'affichage, j'aimerai rajouter l'icone correspondant à l'extension devant le nom du fichier. pour faire cela j'ai utilisé le code suivant:
[DllImport("shell32.dll", EntryPoint = "ExtractAssociatedIcon")]
private extern static IntPtr ExtractAssociatedIcon
(
IntPtr hInst,
[MarshalAs(UnmanagedType.LPStr)] string lpIconPath,
ref int lpiIcon
);
Icon ico = null;
// On affiche l'icone correspondante
IntPtr hInst = Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]);
Int32 iIcon = 0;
// file est le chemin vers ton fichier
IntPtr hIcon = ExtractAssociatedIcon(hInst, f.Name, ref iIcon);
ico = Icon.FromHandle(hIcon);
// Lorsqe l'on dessisne la fenètre, on affiche (dessine) l'icone
private void PaintForm(object sender, System.Windows.Forms;.PaintEventArgs e)
{
e.Graphics.DrawIcon(ico, 36, 44);
}
Mais losque je compile il m'affiche l'erreur suivante:
Le type ou le nom d'espace de noms 'Windows' n'existe pas dans l'espace de noms 'System' (une référence d'assembly est-elle manquante ?)
Je me demandais si quelqu'un pouvait m'aider
Merci
La seule raison est qu'il te manque une référence sur System.Windows.Forms. Pour l'ajouter Projet/Ajouter une référence.
Je ne vois vraiment rien d'autre.
pour "casy": comme j'ai déjà dit je suis entrain de developper une application web donc web forms
et pour GG29: j'ai ajouter using System.windows.forms et tjrs la même erreur qui s'affiche!!!!!
Je ne t'ai pas dis d'ajouter using System.windows.forms. Ce que je t'ai dit c'est d'ajouter une référence dans ton projet. Pour cela tu vas dans le menu Projet / Ajouter une référence. La tu choisis System.Windows.Forms.