实现菜单不难的吧,在点击按钮里,实现ContextMenu.Show就可以了吧,如果要针对不同按钮操作不同对象,试一下使用它的Tag属性Button1_Click
{
YourMenu.Tag = CheckBoxList1;
YourMenu.Show(...);
}Button2_Click
{
YourMenu.Tag = CheckBoxList2;
YourMenu.Show(...);
}HandleSelect
{
CheckBoxList cbl = (CheckBoxList)YourMenu.Tag;
}但好像不用那么复杂吧,主要的就是全选和全不选,在你的复选框列表上方加一个复选框不就可以了么,选这个复选框就是全选,去选这个复选框就是全不选
{
YourMenu.Tag = CheckBoxList1;
YourMenu.Show(...);
}Button2_Click
{
YourMenu.Tag = CheckBoxList2;
YourMenu.Show(...);
}HandleSelect
{
CheckBoxList cbl = (CheckBoxList)YourMenu.Tag;
}但好像不用那么复杂吧,主要的就是全选和全不选,在你的复选框列表上方加一个复选框不就可以了么,选这个复选框就是全选,去选这个复选框就是全不选
ContextMenu.SourceControl 属性参考代码:
private void MyPopupEventHandler(System.Object sender, System.EventArgs e)
{
ContextMenu menu = sender as ContextMenu;
if (menu.SourceControl == button1)
{ }
else
{
}
}
或者在窗体里另用个变量保存当前的CheckBoxList,虽然多了一个变量但是更可靠。