Toolbar et Touche de raccourci

Résolu
Arthenius
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
- 22 juil. 2004 à 17:37
Arthenius
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
- 23 juil. 2004 à 09:58
Hello,

Bien, j'ai une toolbar avec des chtites nicones et quand je clique sur les icones je fais des traitements....
tout va bien...
mais comment je fais pour que lorsque j'appuie sur "F1", ..ou autre il me simule le clique sur le bon icone...

allez je dis d'avance merci a MONSIEUR Coq ;) qui va surement me sortir de ce petrin :)

j'ai pu un peu biaiser la chose en passant par un contexte menuqui lui a les touches raccourcis...mais pas la toolbar...et le désavantage du contexte menu c'est de devoir l'affecter a tout les champs de ma form....
bref y-a-t-il un autre moyen...

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."

5 réponses

cs_coq
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
98
22 juil. 2004 à 18:15
Je pense qu'en appliquant ce code à la touche F1 au lieu de Echap ça devrais aller : http://www.csharpfr.com/code.aspx?id=21781

Cocoricoooooooo !!!!
3
Arthenius
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
14
23 juil. 2004 à 09:35
Grand merci à toi monsieur Coq....

que ferais mon projet sans toi ;o)

ca marche nickel....je repete le code pour ceux que ca pourrait interesser :

public class F1MessageFilter : IMessageFilter
{
// constructeur, on lui passe le form qui sera concerné par les actions
public F1MessageFilter(Form form)
{
this.form = form;
}

private const int WM_KEYDOWN = 0x0100;
private Form form;

public bool PreFilterMessage(ref Message m)
{
// si le message est une pression sur touche et que la touche est F1if ( m.Msg WM_KEYDOWN && m.WParam (IntPtr)Keys.F1 )
{
// si le message est destiné a notre form ou un controle qu'il contient, on le fermeif ( m.HWnd form.Handle || form.Contains(Control.FromHandle(m.HWnd)) true )
{
MessageBox.Show("F1 pressé !\nLe controle qui avait le focus est : "+Control.FromHandle(m.HWnd).Name);
//Lancement de mon traitement
//...........
// blocage du message
return true;
}
}

// le message n'etait pas celui qu'on attendais, on le laisse passer
return false;
}
}


et dans la fenentre sur laquelle on veut que le racourci fonctionne :

private F1MessageFilter f1_mf;
public CodeLibelle(TableCodeLib table)
{
InitializeComponent();
f1_mf = new F1MessageFilter(this);
Application.AddMessageFilter(f1_mf);
}

private void CodeLibelle_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
// suppression du messagefilter
Application.RemoveMessageFilter(f1_mf);
}


ca marche super bien !!!
Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
3
Arthenius
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
14
22 juil. 2004 à 18:20
jva essayer ca ...merci

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
cs_coq
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
98
23 juil. 2004 à 09:49
il y a peut etre une solution plus simple mais moi j'aime bien les messagefilter ^^

Cocoricoooooooo !!!!
0

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

Posez votre question
Arthenius
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
14
23 juil. 2004 à 09:58
franchement je commence a bien les aimer aussi :o)))

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0