EventArgs

Signaler
Messages postés
5
Date d'inscription
dimanche 12 novembre 2000
Statut
Membre
Dernière intervention
8 mai 2008
-
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
-
Bonjour tous le monde,

je ne sais pas comment exprimer ma demande,

j'ai un usercontrol nomné : ControlBar, dans lequel j'ai un BoutonBar_Click
private void BoutonBar_Click(object sender, EventArgs e)
{

if (!(e is MouseEventArgs)) return;

// case to MouseEventArgs so position and mousebutton clicked can be used
MouseEventArgs mea = (MouseEventArgs)e;

// only continue if left mouse button was clicked
if (mea.Button != MouseButtons.Left) return;
// MessageBox.Show("toto");

int index = (mea.Y - 1) / (buttonHeight + 1);

MessageBox.Show(" " + index.ToString());

if (index < 0 || index >= buttons.Count)
return;

BoutonBarButton button = buttons[index];
if (button == null) return;
if (!button.Enabled) return;

// ok, all checks passed so assign the new selected button
// and raise the event
SelectedButton = button;

ButtonClickEventArgs bce = new ButtonClickEventArgs(selectedButton, mea);
if (Click != null) // only invoke on left mouse click
Click.Invoke(this, bce);
}

je ne sais pas comment faire pour récupérer dans un autre Usercontrol la valeur de : int index

Merci de votre aide

Régis
A voir également:

2 réponses

Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
8
Salut,

Pourquoi tu ne déclares pas index dans ta classe ControlBar? Et tu laisses d'autres classes y accéder par une propriété

class ControlBar: UserControl
{
..
int index = -1;
...

// change la valeur de index chaque fois que BoutonBar_Click est déclenché
...

int CurrentIndex //Permet aux autres classes d'accéder à index
{
get{ return index;}
}

Ou alors j'ai mal compris?

Sinon pour trouver quel bouton est cliqué, tu peux directement fare BoutonBarButton clickedBtn = (BoutonBarButton)sender.
Après, tu peux même déclarer une variable index dans ta classe ButtonBarButton et obtenir l'index du bouton cliqué avec clickedBtn.Index

Excuse si j'ai mal compris ton problème
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
8
Tu peux aussi déclarer ton propre évènement déclenché quand le bouton est cliqué, et passer l'index du bouton cliqué en argument. Comme ça les autres controls qui se sont inscrits pour ton évènement seront prévenus quand tu cliques un bouton et auront l'index directement.