C#关于bindingNavigator增强属性
来源:互联网 发布:linux ctrl alt del 编辑:程序博客网 时间:2024/06/16 16:42
一、增强功能说明:
1、toolStripSplitButton下拉项显示当项(勾选),并且其他的下拉项全部去掉勾
2、同步toolStripSplitButton与其下拉项
3、增加一事件 menuItemAdded ,当增加下拉MenuItem项后发生
4、增加方法:
SyncToButton: 同步按钮与其下拉菜单项
ButtonAddMenuItem :代码增加MenuItem
DoMenuItemClick : 选择当前项,去掉未选择项
二、代码如下
public partial class MyBindingNavigator : System.Windows.Forms.BindingNavigator
{
/// <summary>
/// 2、定义委托
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public delegate void CustomEventHandler(object sender, CustomEventArgs e);
/// <summary>
/// 1、定义事件参数
/// </summary>
public sealed class CustomEventArgs : EventArgs
{
private string menuItemText ;
public CustomEventArgs(string strmenuItemText)
{
this.menuItemText = strmenuItemText;
}
public string Flag
{
get { return menuItemText; }
}
}
/// <summary>
/// 3、定义事件
/// </summary>
[Browsable(true ) ,Description("当增加下拉MenuItem项后发生")]
public event CustomEventHandler menuItemAdded;
/// <summary>
/// 4、执行事件
/// </summary>
/// <param name="e"></param>
protected virtual void OnmenuItemAdded(CustomEventArgs e)
{
if (menuItemAdded != null)
{
menuItemAdded(this, e);
}
}
ToolStripSplitButton _toolSpButton;
public MyBindingNavigator()
{
InitializeComponent();
}
/// <summary>
/// 同步按钮与其下拉菜单项
/// </summary>
/// <param name="spButton"></param>
/// <param name="strButtonCaption"></param>
public void SyncToButton(ToolStripSplitButton spButton,string strButtonCaption )
{
_toolSpButton = spButton;
_toolSpButton.SyncToDeault(strButtonCaption);
InitializeComponent();
}
public virtual void ButtonAddMenuItem(object sender,EventArgs e,ToolStripSplitButton tspButton, ToolStripMenuItem itemMenu)
{
itemMenu.Click += new System.EventHandler(DoMenuItemClick);
tspButton.DropDownItems.Add(itemMenu);
// 5、触发事件
string testFlag = itemMenu.Text;
CustomEventArgs eArgs = new CustomEventArgs(testFlag);
OnmenuItemAdded (eArgs);
}
/// <summary>
/// 选择当前项,去掉未选择项
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void DoMenuItemClick (object sender, EventArgs e)
{
//去掉所有勾
foreach (ToolStripMenuItem it in ((ToolStripMenuItem)sender).Owner.Items)
{
if (it.Name == ((ToolStripItem)(((ToolStripMenuItem)sender))).Name)
{
((ToolStripMenuItem)(((ToolStripMenuItem)sender).Owner.Items[it.Name])).Checked = true;
}
else
{
((ToolStripMenuItem)(((ToolStripMenuItem)sender).Owner.Items[it.Name])).Checked = false;
}
}
}
}
/// <summary>
/// 同步类
/// </summary>
static class MenuExtend
{
public static void SyncToDeault(this ToolStripSplitButton button,string strButtonCaption)
{
Action<ToolStripSplitButton, ToolStripItem> synchanlder = (splitButton, item) =>
{
splitButton.DefaultItem = item;
splitButton.Text = strButtonCaption + item.Text;
splitButton.ToolTipText = strButtonCaption + item.ToolTipText;
};
if (button.DropDownItems.Count > 0)
{
synchanlder(button, button.DropDownItems[0]);
}
button.DropDownItemClicked += (sender, args) => synchanlder((ToolStripSplitButton)sender, args.ClickedItem);
}
}
- C#关于bindingNavigator增强属性
- C# winform之属性 bindingNavigator
- 关于bindingsource和BindingNavigator
- C# BindingNavigator与DataGridView绑定
- c#里的bindingsource和bindingnavigator
- bindingnavigator绑定数据库进行增删保存操作 c# vs2010
- BindingSource BindingNavigator
- BindingNavigator 类
- BindingNavigator控件
- 批次属性相关增强
- C#关于textbox的text属性
- C# 关于ConnectionString属性尚未初始化
- 关于C#中对象用作属性
- 关于数据库存储过程分页DatagridView BindingNavigator 控件的详细实现 winform
- 关于对Spring中AOP的Advice(通知、增强)的属性Around的理解
- C# 语言增强特性
- 关于XCode7objc语法增强
- 关于XCode7objc语法增强
- 理解Filter创建的过程
- errorC2471:cannot update program database vc90.pdb
- 设计模式之observer(观察者模式)
- Java中的中文排序(简短版)
- 经典书下载
- C#关于bindingNavigator增强属性
- SQL输入数据,指定排序顺序
- 国内最优秀的甘特图功能又有更新!
- 依赖和关联的区别(转)
- 特制作音画合成制作室--加字幕 音视频合成
- 复合语句(compound statement)
- CET的中文版
- 程序开发界面与代码分离技术-界面描述语言
- 关于设计模式的概念