1、目的
由Label和ComboBox组合成新的自定义控件,在使用该控件的场合,选项发生变化时,宿主函数获得信息并进行处理。
2、自定义控件实现
(1)、外观
(2)、编码
public delegate void SelectEventHandler(object sender, EventArgs e);
public partial class SelectInput : UserControl
{
public SelectInput()
{
InitializeComponent();
}
private int selectedIndex;
[Description("当前选项")]
[Category("自定义属性")]
public int SelectedIndex
{
get {
selectedIndex = this.comboBox1.SelectedIndex;
return selectedIndex; }
set { selectedIndex = value;
this.comboBox1.SelectedIndex = value;
}
}
[Description("选项改变")]
[Category("自定义方法")]
public event SelectEventHandler SelectChanged;
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
selectedIndex = this.comboBox1.SelectedIndex;
this.SelectChanged(this, new EventArgs());
}
}
3、宿主程序实现
(1)、外观
(2)、编码
在自定义方法中添加回调函数
public Form1()
{
InitializeComponent();
}
private void ItemChanged(object sender, EventArgs e)
{
Console.WriteLine("select index:"+this.selectInput1.SelectedIndex);
}
还可以自己添加回调函数
public Form1()
{
InitializeComponent();
this.selectInput1.SelectChanged += new ControlLib.SelectEventHandler(ItemChanged);
}
private void ItemChanged(object sender, EventArgs e)
{
Console.WriteLine("select index:"+this.selectInput1.SelectedIndex);
}
4、运行效果