Bonjour,

Je suis relativement neuf sur ce forum et en développement, j'espère ne pas abuser de vous avec ce premier topic

Je suis entrain de me faire un petit logiciel et je coince sur la gestion des évenements 'custom' entre 2 UserControls.

Je m'explique,

le UserControl 1 est un 'manager' de critères que l'utilisateur fournit.
Voici une image, ce sera plus explicite :

[EDIT] Voici le lien de l'image : http://imagik.fr/view-rl/459917

Le UserControl 2 est un gestionnaire de sites webs parmis lesquels l'utilisateur sélectionne celui ou ceux sur le(s)quel(s) la recherche se fera sur base des critères. Les checkbox sont générées et placées automatiquement sur le UserControl en fonction du nombre de sites web que j'inclut dans mon projet.
(Par exemple si je fais une liste de string contenant 10 noms de sites web, 10 checkbox seront générées et placées automatiquement)

[EDIT]Voici le lien de l'image : http://imagik.fr/view-rl/459921

J'ai un 'Custom Event' qui récupère les sites web et le nombre de recherche par site a effectuer.
Cet évènement, est 'catché' dans le 'Main Form'.

Jusque là je n'ai pas eu trop de difficulté, mais là ou je coince, c'est pour récupérer les critères de la 'ListBox' du premier UserControl.

Biensur, je ne peux pas accéder directement à cette ListBox pour faire une liste des critères et je tient à faire mon application en 'nTier' avec biensur une séparation entre 'BLL', 'DAL' et 'GUI'

Voici les lignes de codes de l'Evenement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using System.Collections.Generic;
 
namespace gControls.CustomEvents
{
    public class BTNEventArgs : EventArgs
    {
 
        public string[] ChecboxesChecked { get; private set; }
        public int OffersToLoad { get; private set; }
        public List<string> Criterias { get; private set; }
 
        public BTNSearchJobsEventArgs(string[] pChecboxesChecked, int pOffersToLoad, List<string> pCriterias)
        {
            this.ChecboxesChecked = pChecboxesChecked;
            this.OffersToLoad = pOffersToLoad;
            this.Criterias = pCriterias;
        }
 
    }
 
}
Voici comment les paramètres sont passés via le UserControl 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
public static event EventHandler<BTNEventArgs> BTN_Clicked;
 
public virtual void BTN_Click(object sender, EventArgs e)
        {
            int offersToLoad = Convert.ToInt32(this.NUDOffersToLoad.Value);
 
            for (int i = 0; i < this.Controls.Count; i++)
            {
                if (this.Controls[i].GetType() == typeof(CheckBox) && ((CheckBox)this.Controls[i]).Checked && ((CheckBox)this.Controls[i]).Name != "CHKBOXSelectAll")
                {
                    this.CheckBoxesListing.Add((this.Controls[i] as CheckBox).Text);
                }
 
            }
 
            if (BTNSearchJobs_Clicked != null)
            {
                BTNEventArgs BTNClicked_Event = new BTNEventArgs(CheckBoxesListing.ToArray(), offersToLoad, this.JobsCriterias);
                BTNSearchJobs_Clicked.Invoke(this, BTNClicked_Event);
            }
 
        }
Et pour finir dans le Main Form:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
UCCheckboxes.BTN_Clicked += UCBTN_Clicked;
 
private void UCBTN_Clicked(Object sender, BTNEventArgs e)
{
  // Do the job
  // 'e' must contains criterias which will be passed at object construction
}

J'espère que ceci est compréhensible et que quelqu'un pourra m'aiguiller vers une solution, merci à vous.