User Control Won't Return Value : I am writing a user control.  I want it to return a customer number when the user double clicks on the customer.  I can't seem to get it to work.  The user control is displayed and, on the double click, the data shows in the messagebox but I can't seem to get it to update the value on the main form.  Anytime I try to add a return value into FindCustomerControl_ItemHasBeenSelected, I get an error.  So far, this is what I have:

In my main window:

    public partial class TestForm : Form
    {
        public TestForm()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
			// one close button on the form
            Close();
        }


        private void ShowSelectFromListWidget()
        {
			// show the user control
            var uc = new FindCustomerControl();
            uc.ItemHasBeenSelected += uc_ItemHasBeenSelected;

            MakeUserControlPrimaryWindow(uc);
        }

        void uc_ItemHasBeenSelected(object sender,
                             FindCustomerControl.SelectedItemEventArgs e)
        {
			// once it has been selected, change a label on the screen to show the customer number
            var value = e.SelectedChoice;
            lblCustomer.Text = value;
        }

    }

	
In my user control:

    public partial class FindCustomerControl : UserControl
    {
        public class SelectedItemEventArgs : EventArgs
        {
            public string SelectedChoice {  get; set; }
        }

        public event EventHandler<SelectedItemEventArgs> ItemHasBeenSelected;


        public FindCustomerControl()
        {
            InitializeComponent();
        }


        DataTable dt = new DataTable();
        public void btnFind_Click(object sender, EventArgs e)
        {
            var dt = GetData();
            dataGridView1.DataSource = dt;

        }

        //Query database
        public DataTable GetData()
        {
            UtilitiesClass ru = new UtilitiesClass();
            string connectionString = ru.getConnectionString();

            DataTable dt = new DataTable();

            SqlConnection myConnection = new SqlConnection(connectionString);
            try
            {
                myConnection.Open();

                SqlCommand cmd = new SqlCommand("FindCustomer", myConnection);
                cmd.Parameters.AddWithValue("@customer", txtCustomer.Text.Trim());
                cmd.CommandType = CommandType.StoredProcedure;
                SqlDataAdapter ta = new SqlDataAdapter(cmd);
                ta.Fill(dt);

                myConnection.Close();

            }
            catch (Exception x)
            {
                MessageBox.Show(x.ToString());
            }
            return (dt);

        }

        private void dataGridView1_SelectionChanged(object sender, EventArgs e)
        {
		    // this updates the search window text box
            int Row = dataGridView1.CurrentRow.Index;
            txtCustomer.Text = dataGridView1[0, Row].Value.ToString();

        }

        private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            var handler = ItemHasBeenSelected;
            string choice = dataGridView1[0, e.RowIndex].Value.ToString();
            if (handler != null) handler(this, new SelectedItemEventArgs { SelectedChoice = choice });

        }

        private void FindCustomerControl_Load(object sender, EventArgs e)
        {
            ItemHasBeenSelected += FindCustomerControl_ItemHasBeenSelected;
        }
        private void FindCustomerControl_ItemHasBeenSelected(object sender, SelectedItemEventArgs e)
        {
			// this shows it but it doesn't return it
            MessageBox.Show("Chosen: " + e.SelectedChoice);
        }


    }
