C# mobile: picturebox et résolution d'écran

Signaler
Messages postés
126
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
9 novembre 2009
-
Messages postés
20
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
9 février 2009
-
Bonjour à tous!

Juste quelques questions concernant la gestion des picturebox et la gestion de la taille des écrans.

Je suis en train de travailler sur une petite application pour Windows Mobile 6.1 Pro en C# et Compact Framework 3.5 et je me heurte à un problème très bête pour qui connaît bien ce langage:

comment fait-on pour créer un bouton avec une picturebox???

Ce que j'entends par là c'est que je souhaite ajouter un événement du genre "onmouseover" pour que l'apparence de ma picturebox change quand la souris, respectivement le stylet, appuie (ou passe) dessus.

Est-ce que quelque chose du genre est juste:
<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
privatevoid pictureBox1_Click(object sender, EventArgs e){
pictureBox1.Image = new System.Drawing.Bitmap("nom_image");
}

<!-- END TEMPLATE: bbcode_code -->De plus, comment gère-t-on le redimensionnement de la picturebox lorsque l'on passe du mode portrait à paysage?

Est-ce que quelque chose du genre est juste:
<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
privatevoid pictureBox1_Change(object sender, EventArgs e){if(this.Width <> 240){
pictureBox1.Width = "320"
pictureBox1.Image = new System.Drawing.Bitmap("nom_imageL");
}else{
pictureBox1.Width = "240"
pictureBox1.Image = new System.Drawing.Bitmap("nom_image");
}}

<!-- END TEMPLATE: bbcode_code -->

<!-- / message -->

2 réponses

Messages postés
20
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
9 février 2009

Je ne sais pas comment rajouter une image à un contrôle "Bouton", mais on peu utiliser une image et gérer l'évènement "OnClick" pour déclencher un traitement.

Quand on clique sur un bouton, celui-ci change de couleur tant qu'il est enfoncé et reprend sa couleur d'origine dès qu'il est relaché. Pour faire la même chose, il faut:
- Un contrôle "ImageList" pour stocker les deux images représentant les états "enfoncé" et "relaché"
- Un contrôle "PictureBox"
- Gérer les évènements "MouseDown", "MouseUp" et "OnClick" du contrôle "PictureBox"

Dans l'exemple qui suit, dès que l'utilisateur clique sur le contrôle, l'évènement "MouseDown" est déclenché, et la deuxième image de la liste est affichée. Dès que le bouton gauche (ou le stylet) est relaché, l'évènement MouseUp est déclenché et la première image est ré-affichée. L'évènement "OnClick" permet de d'appeler le traitement à effectuer:

private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
pictureBox1.Image = imageList1.Images[1];
}

private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
pictureBox1.Image = imageList1.Images[0];
}

private void pictureBox1_Click(object sender, EventArgs e)
{
MessageBox.Show("Clic OK");
}

Pour le changement de mode d'affichage je ne suis pas sûr, mais je pense que l'évènement "Resize" du formulaire devrait permettre de le détecter.


Cordialement,
Gautier
Messages postés
20
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
9 février 2009

Arf, problème de mise en page... Deuxième essai :

Je ne sais pas comment rajouter une image à un contrôle "Bouton", mais on peu utiliser une image et gérer l'évènement "OnClick" pour déclencher un traitement.

Quand on clique sur un bouton, celui-ci change de couleur tant qu'il est enfoncé et reprend sa couleur d'origine dès qu'il est relaché. Pour faire la même chose, il faut:
- Un contrôle "ImageList" pour stocker les deux images représentant les états "enfoncé" et "relaché"
- Un contrôle "PictureBox"
- Gérer les évènements "MouseDown", "MouseUp" et "OnClick" du contrôle "PictureBox"

Dans l'exemple qui suit, dès que l'utilisateur clique sur le contrôle, l'évènement "MouseDown" est déclenché, et la deuxième image de la liste est affichée. Dès que le bouton gauche (ou le stylet) est relaché, l'évènement MouseUp est déclenché et la première image est ré-affichée. L'évènement "OnClick" permet de d'appeler le traitement à effectuer:

private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
pictureBox1.Image = imageList1.Images[1];
}

private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
pictureBox1.Image = imageList1.Images[0];
}

private void pictureBox1_Click(object sender, EventArgs e)
{
MessageBox.Show("Clic OK");
}

Pour le changement de mode d'affichage je ne suis pas sûr, mais je pense que l'évènement "Resize" du formulaire devrait permettre de le détecter.


Cordialement,
Gautier