关于事件和委托

tangshuinet 2011-01-13 11:05:51
在winform窗体Form1,类文件class1。 在form1中有控件treeview1

我现在想实现这样的功能,就是在class1中定义2个方法,click(),doubleclick();

让form1中的treeview1控件,单击,双击时候,分别执行class1中定义的这2个方法,如何实现???

多谢。
...全文
142 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
JustLovePro 2011-01-13
  • 打赏
  • 举报
回复
是啊,没错,treeview有很多定义好的事件可以应用
tangshuinet 2011-01-13
  • 打赏
  • 举报
回复
我明白了,我走入了死胡同里面了。多谢。
wanghui0380 2011-01-13
  • 打赏
  • 举报
回复
从你的描述上,你的要求和事件委托没啥关系,只是一个简单的调用

事件委托的含义是通知给外部处理。从你的描述来看,是需要外部调用内部,而非内部委托给外部
dragonimp 2011-01-13
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 bloodish 的回复:]
如果只会点点鼠标,产生事件响应函数,你永远也理解不了事件和委托的关系.
尝试着自己去定义委托,定义事件,注册事件,触发事件等等,整个流程下来才会有深刻的理解.
[/Quote]

各位大虾,不要急于求成。要先学会使用,form对应的design.cs文件就能看到不少这样的代码,再学会自定义,然后再去理解。

搂主这里的问题是怎么用代码关联事件处理函数,使用的语法:

某对象.事件+=订阅的委托对象(不知道参数的话,可以根据vs的提示,按TAB键自动生成)
bloodish 2011-01-13
  • 打赏
  • 举报
回复
如果只会点点鼠标,产生事件响应函数,你永远也理解不了事件和委托的关系.
尝试着自己去定义委托,定义事件,注册事件,触发事件等等,整个流程下来才会有深刻的理解.
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tangshuinet 的回复:]

其实我的treeview1的节点都是都是动态添加的,也就是说我的事件也需要动态添加。

动态添加的事件,参数怎么订制?
[/Quote]

没有什么click事件,但是treeview有类似afterselected、nodemouseclick等等事件。仔细看看treeview的接口定义就行了。在事件中,你可以从事件参数中知道到底是点击了哪一个节点。
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 flyerwing 的回复:]

对于普通程序员一般没必要关心这个,设计好象才能用到.
[/Quote]

如果设计人员编程而程序员如果不编程,那么一个软件公司只好“忍痛割爱”请程序员辞职。
bdmh 2011-01-13
  • 打赏
  • 举报
回复
那么麻烦干嘛

自定义的类

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Windows.Forms;

namespace WindowsApplication1
{
public class MyClass
{

public void DotsClick(object sender, EventArgs e)
{
MessageBox.Show("ok");
}
}

}


调用,主窗体初始化时可以写下面代码

MyClass my = new MyClass();
treeView1.Click += new EventHandler(my.DotsClick);
yuandonghuia 2011-01-13
  • 打赏
  • 举报
回复
委托事件不是一两句就能说清的,看看书吧.一般来说看完之后还要多体会体会才能明白.
dragonimp 2011-01-13
  • 打赏
  • 举报
回复
那也可以啊.比如在form的load里面写

treeview1.click+=。。。。后面的代码省略了,你在vs里面按tab会自动生成代码的。
tangshuinet 2011-01-13
  • 打赏
  • 举报
回复
其实我的treeview1的节点都是都是动态添加的,也就是说我的事件也需要动态添加。

动态添加的事件,参数怎么订制?
dragonimp 2011-01-13
  • 打赏
  • 举报
回复
直接添加treeview1的这两个事件处理函数,在这个事件处理函数里面调用这两个函数不就完了???

wuyq11 2011-01-13
  • 打赏
  • 举报
回复
双击事件中,直接
Class1.click()
tangshuinet 2011-01-13
  • 打赏
  • 举报
回复
。。。。。。知道就告诉我吧。
flyerwing 2011-01-13
  • 打赏
  • 举报
回复
对于普通程序员一般没必要关心这个,设计好象才能用到.
s8975565 2011-01-13
  • 打赏
  • 举报
回复
我委托你去把“委托和事件方面的东西在看看”
而你却没有“委托和事件方面的东西在看看”这个事件!
winner213 2011-01-13
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 wanghui0380 的回复:]
从你的描述上,你的要求和事件委托没啥关系,只是一个简单的调用

事件委托的含义是通知给外部处理。从你的描述来看,是需要外部调用内部,而非内部委托给外部
[/Quote]

正解

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧