lvwSendMsgCar is listview
Private Sub LvwSendMsgCar_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles LvwSendMsgCar.ColumnClick
End Sub
就这样。它就是要这样才能识别和编译
这个不是挺好的吗?
LvwSendMsgCar_ColumnClick相当于一个sub名称,或者说是一个事件处理函数。这个名字可以随便该
Handles LvwSendMsgCar.ColumnClick表示处理那些事件,这里是处理listview的coulnclick事件。另外你可以和并事件处理并入加沙有3个listview,可以直接合并。
Private Sub LvwSendMsgCar_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles LvwSendMsgCar.ColumnClick ,listview2.ColumnCLiCk,listview3.ColumnCLiCk
用Sender判断是那个listview发生的事件。
End Sub
说说你知道的是哪种方式吧?
是啊
这样就知道是谁发送的什么消息了
新事物可能需要一段时间去适应吧,呵呵,我也在慢慢适应!
确实不太适应
easy
ColumnClickEventArgs.Column 属性 [Visual Basic]请参见
ColumnClickEventArgs 类 | ColumnClickEventArgs 成员 | System.Windows.Forms 命名空间 | ColumnClick
要求
平台: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows .NET Server family
语言
C#
C++
JScript
Visual Basic
全部显示
获取所单击列的从零开始的索引。
[Visual Basic]
Public ReadOnly Property Column As Integer
[C#]
public int Column {get;}
[C++]
public: __property int get_Column();
[JScript]
public function get Column() : int;
属性值
所单击列在 ListView.ColumnHeaderCollection 内的从零开始的索引。
备注
您可以在 ColumnClick 事件的事件处理程序中使用该属性提供的信息来确定所单击的列,以在该列内的数据上执行任务。
其实这种方式由来已久
至是vb邦我们做了而已
如果你在vb6.0中用api函数挂接过事件就很容易理解的
在vb.net中事件跟委托有很大关系。就我的理解,从一个新的需求说起,假如要定义一个类classA
,而这个类要能够处理某些事件。可以模仿vb.net的方式。先一个namespace里,定义用来传递事件信息的类AlarmEventArgs,然后通过delegate来进行方法签名,如:
a):Public Delegate Sub AlarmEventHandler(sender As Object, e As AlarmEventArgs)
完成以上后,
就可以在你的类classA声明一个事件,如:b): Public Event Alarm As AlarmEventHandler ,这个AlarmEventHandler就是a)中签名的方法,把Alarm声明为事件,而处理事件的过程需要两个参数(sender as object,e As AlarmEventArgs).至于如何来处理事件,就要你的类的客户来处理了,这样也满足它自己的需要。基本上,你的类就完成了。用户怎么来处理事件呢?用户使用你这个类,他就负责定义一个过程,其参数列表符合a)的方法签名所限定。如pubulic sub method(send as object,e as alarmEventArgs)...End Sub .并通过
AddHandles EventName,Addressof method 告诉编译器,要用method来处理事件EventName.
但是好像说来说去,都没有说我怎么引发这个事件呢!很简单,通过raiseEvent 可以引发事件了。好多书,都是在声明事件的类中,expose一个方法OnXXX(),在OnXXX()的函数体内写入
Protected Overridable Sub OnAlarm(e As AlarmEventArgs)
RaiseEvent Alarm(Me, e)
End Sub
public sub Start()
...
OnAlarm(e)
...
End Sub
这样用户在使用你这个新类时,就可以自己写处理过程,自己可以引发事件了,间接或直接。
这是我的一点愚见,请多多指教。
至于平时我们用的控件,比如按钮,按一下,就是触发了click事件,这些实情应该可以借鉴侯捷先生的著作深入浅出mfc可以清楚一点。至少原理是这样的吧。
其实在上面start()中做一个循环
public sub Start()
while(true)
console.writeline("请输入你的指令:")
command = console.readline()
if command.equals("Start") then
with e
.property = ....
end with
OnAlarm(e)
end if
if command.equals("stop") then
with e
.property = ....
end with
OnAlarmAgain(e)假使这个函数也raiseevent eventName
end if
.....
end while
End Sub
这样也算通过键盘输入不同的值来触发事件了。