两个事件我都写了处理函数,怎么能实现在BeforeSelect中判断一个条件,满足该条件的时候才调用AfterSelect,否则不调用AfterSelect?
解决方案 »
- 邮件发送报错 :以一种访问权限不允许的方式做了一个访问套接字的尝试
- 非常奇怪的问题,单独click有效,但是timer执行却没有效果
- C# 仓储系统商品返厂问题
- public or private?
- 每次运行C#编好的程序时都会出现“无法启动调试。帮定句柄无效
- 怎样在VS2005中获取客户端的桌面或我的图片路径
- 送50分!!C#中最基本的组成是什么呢?比如说关键字int能定义一个整数,但.NET类库中却又定义了int类,请问int是C#的基本组成吗?
- 这样的效果是如何实现的?
- 是否可以像java那样生成getter setter方法 在c#里
- SOS:) C#中如何能够得到256个空格字符组成的String对象!如何实现
- B/S结构中怎么在客户端做视频图像采集?
- 如何禁止客户端IE通过url地址下载文件?只能通过指定的下载页面下载文件,谢谢.
在BeforeSelect事件中对这个变量赋值,
然后在AfterSelect事件中根据这个变量的值进行相应的处理。
{
//注销事件
this.treeView1.AfterSelect -= new TreeViewEventHandler(treeView1_AfterSelect);
//注册事件
this.treeView1.AfterSelect += new TreeViewEventHandler(treeView1_AfterSelect);
}
{
if(不想执行afterSelect事件){ExecAfterEvent = false;}
}
void treeView1_AfterSelect(object sender, TreeViewCancelEventArgs e)
{
if(ExecAfterEvent == false){//do nothing}
}
bool CancelfterEvent = false;
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
//设置显示
this.label1.Text = this.treeView1.SelectedNode.Text;
} private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
if (treeView1.GetNodeAt(e.Location) == null)
{
CancelfterEvent = true;
//清除显示
this.label1.Text = "";
}
else
CancelfterEvent = false;
this.treeView1.SelectedNode = treeView1.GetNodeAt(e.Location);
} private void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
e.Cancel = CancelfterEvent;
}