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

我做了个动态用户控件 由CheckBox 和 某个控件组成 如图中的3个框
问题是 如何在加载用户控件的窗体(点击查询) 取出用户控件的值 文本框的取 Text 下拉条取SelectedText 日期型的 取Value
是不是要用委托什么的..有点伤脑筋
------解决方案--------------------
让你的控件提供方法允许外面可以访问到内部的那些控件的内容。
------解决方案--------------------
在用户控件中写一个Get属性,内容大概就象这个样子,可以根据你的实际情况来调整。
我做了个动态用户控件 由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属性,内容大概就象这个样子,可以根据你的实际情况来调整。