winform 动态用户控件 传值的有关问题 .

winform 动态用户控件 传值的问题 .....
winform 动态用户控件 传值的有关问题  .

我做了个动态用户控件 由CheckBox 和 某个控件组成  如图中的3个框
问题是 如何在加载用户控件的窗体(点击查询) 取出用户控件的值 文本框的取 Text 下拉条取SelectedText 日期型的 取Value 
是不是要用委托什么的..有点伤脑筋

//用户控件部分代码
                    CheckBox chk = new CheckBox();
                    flPan.Controls.Add(chk);

              case 1: // 文本框
                    TextBox mtxt = new TextBox();
                    flPan.Controls.Add(mtxt);
                    break;
                case 4: // 下拉条
                    ComboBox mcob = new ComboBox();
                           flPan.Controls.Add(mcob);

                    break;
                case 3: // 日期框
                     DateTimePicker mdate = new DateTimePicker();
                    flPan.Controls.Add(mdate);
                    break;
                default:
                    break;

------解决方案--------------------
让你的控件提供方法允许外面可以访问到内部的那些控件的内容。
------解决方案--------------------

        public string DataText
        {
            get
            {
                string text = "";
                if (flPan.Controls.OfType<ComboBox>().Count() > 0)
                {
                    text = flPan.Controls.OfType<ComboBox>().First().SelectedText;
                }
                else if (flPan.Controls.OfType<TextBox>().Count() > 0)
                {
                    text = flPan.Controls.OfType<TextBox>().First().Text;
                }
                else if (flPan.Controls.OfType<DateTimePicker>().Count() > 0)
                {
                    text = flPan.Controls.OfType<DateTimePicker>().First().Value.ToShortDateString();
                }
                return text;
            }
        }

在用户控件中写一个Get属性,内容大概就象这个样子,可以根据你的实际情况来调整。