EventArgs

cs_taulard Messages postés 5 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 8 mai 2008 - 8 mai 2008 à 19:55
WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 - 9 mai 2008 à 01:31
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

2 réponses

WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 8
9 mai 2008 à 01:27
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
0
WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 8
9 mai 2008 à 01:31
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.
0
Rejoignez-nous