< 示例一:提供NavigatorButtonClickEventArgs得到完整的NavigatorButtonBase按钮基类>
DataNavigator是一个进度条控件
ShowEvent(NavigatorButton);
发现:
1)public NavigatorButtonClickEventArgs(NavigatorButtonBase button);
2)public NavigatorButtonBase Button { get; }//说明是属性
3)public bool Handled { get; set; }//也是属性
通过解释我们可以发现
给1)一个按钮可以得到他的NavigatorButtonClickEventArgs
2、3)一个NavigatorButtonClickEventArgs可以得到他的属性2)返回按钮,3)返回事件是否解决
一些供学习的元数据:
//NavigatorButton的Click事件
// 摘要:
// Provides data for the DevExpress.XtraEditors.NavigatorBase.ButtonClick event.
public class NavigatorButtonClickEventArgs : EventArgs
{
//
// 摘要:
// Initializes a new instance of the DevExpress.XtraEditors.NavigatorButtonClickEventArgs
// class.
//
// 参数:
// button:
// A DevExpress.XtraEditors.NavigatorButtonsBase descendant which represents the
// button clicked. This value is assigned to the DevExpress.XtraEditors.NavigatorButtonClickEventArgs.Button
// property.
public NavigatorButtonClickEventArgs(NavigatorButtonBase button);
//
// 摘要:
// Gets the clicked button.
public NavigatorButtonBase Button { get; }//说明是属性
//
// 摘要:
// Gets or sets whether you have handled this event and no default action is required.
public bool Handled { get; set; }
}
所以可以解决了showEvent为什么可以写进ButtonClick事件就是给点击事件e可以得到e的按钮
showEvent(NavigatorButtonBase)
//点击进度条事件改变treelist中显示的树
private void dataNavigator1_ButtonClick(object sender,NavigatorButtonClickEventArgs e)
{
ShowEvent(e.Button);
}
private void ShowEvent(NavigatorButtonBase button)
{
NavigatorCustomButton btn = (NavigatorCustomButton)button;
string type = btn.Tag.ToString();
if (type == "首页")
{
pageIndex = 1;//pageIndex改变
}
if (type == "下一页")
{
pageIndex++;
}
if (type == "末页")
{
pageIndex = pageCount;
}
if (type == "上一页")
{
pageIndex--;
}
showPage(pageIndex);//其他方法,分页操作。
}
<示例二:可以让主窗体的保存按钮同步子窗体按钮的点击事件>
同样给ItemClickEventArgs就能够得到点击的按钮和按钮的link
//
// 摘要:
// Provides data for the DevExpress.XtraBars.BarItem.ItemClick and DevExpress.XtraBars.BarManager.ItemClick
// events.
public class ItemClickEventArgs : EventArgs
{
//
// 摘要:
// Initializes a new DevExpress.XtraBars.ItemClickEventArgs class instance.
// 参数:
// item:
// A DevExpress.XtraBars.BarItem class instance whose link was clicked.
// link:
// The clicked DevExpress.XtraBars.BarItemLink.
public ItemClickEventArgs(BarItem item, BarItemLink link);
//
// 摘要:
// Gets the DevExpress.XtraBars.BarItem whose link was clicked.
public BarItem Item { get; }
//
// 摘要:
// Gets the clicked DevExpress.XtraBars.BarItemLink.
public BarItemLink Link { get; }
}
//保存xml文件按钮
private void barButtonItem5_ItemClick(object sender, ItemClickEventArgs e)
{
btn_SaveClick(e.Item);
}
/// <summary>
/// 提供一个公有的方法供拥有相同作用的按钮点击使用
/// </summary>
/// <param name="button">Bar栏的控件</param>
public void btn_SaveClick(BarItem button)
{
BarItem btn = (BarItem)button;
this.treeList2.OptionsBehavior.Editable = false;
SaveFileDialog s = SaveFile("Xml文件(*.xml)|*.xml");
if (s.ShowDialog() == DialogResult.OK)
{
string XmlString = "";
XmlString += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
XmlString += testnode;
XmlDocument xmldoc = new XmlDocument(); //创建空的XML文档
xmldoc.LoadXml(XmlString);
string fileName = s.FileName;
xmldoc.Save(fileName);
XtraMessageBox.Show("保存成功");
}
else
{ XtraMessageBox.Show("取消操作"); }
}