包含自定义事件vb.net的词条

VB,我想自己定义一个事件,比如鼠标三击事件,怎么定义

我们先了解一下单击和双击是如何实现的:

为沧县等地区用户提供了全套网页设计制作服务,及沧县网站建设行业解决方案。主营业务为成都网站设计、网站制作、沧县网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

Windows检测到“用户单击窗口”的行为=Windows发送一个“单击事件”消息给程序的消息队列(也可以看成是发给程序的)=程序处理“单击事件”;

双击也是同样的。

可以认为VB把以上行为掩藏了(使用VC的Win32编程能看到这些代码)这些行为”;

==

这样一来,要实现3击,我们首先就得模拟这些掩藏了的代码;其次,还得让Windows有这个“3击事件”消息,很遗憾的Windows没有这个消息。

==

因此比较方便的方法是借助已有消息和VB已有事件:

控件:Timer;控件名Timer1;Interval=500;Enable=False

--------------

‘Form代码:

{{

Option Explicit

Dim F_DClick As Long '是否2次点击的标志

Private Sub Form_Click()

If F_DClick = 1 Then '若先前已经有2次点

'击,再加这次就成为3次

Debug.Print Time " THREE click"

F_DClick = 0

ElseIf F_DClick = 0 Then '否则是1次点击

Debug.Print Time " 1 click"

End If

End Sub

Private Sub Form_DblClick()

F_DClick = 1 '设置2次点击

'标志

Debug.Print Time " Double_click"

Timer1.Enabled = True

End Sub

Private Sub Timer1_Timer() 'timer1.interval就是记录点击的时间间隔

F_DClick = 0 '500ms后将2次标志去掉

Timer1.Enabled = False

End Sub

}}

我想知道在vb.net里怎么实现自定义数据类型,就是实现C++中TypeDef一样的功能

“结构”是 Visual Basic 早期版本支持的用户定义类型 (UDT) 的一般化。除字段外,结构还可以公开属性、方法和事件。结构可以实现一个或多个接口,而您可以分别为每个字段声明访问级别。

可以合并不同类型的数据项来创建结构。结构将一个或多个“元素”彼此关联并且将它们与结构本身关联。声明了结构后,它将成为“复合数据类型”,而您可以声明该类型的变量。

想让单个变量持有几个相关信息时结构很有用。例如,您可能想将一个雇员的姓名、电话分机号和薪金放在一起。可以对这些信息使用几个变量,或者可以定义一个结构并将它用于单个雇员变量。当有许多雇员并且因此有该变量的许多实例时,结构的优点变得非常明显。

使用 Structure 语句语句作为结构声明的开始,并使用 EndStructure 语句作为结构声明的结束。在这两条语句之间必须至少声明一个“元素”。元素可以是任何数据类型,但是至少一个必须是非共享变量,或是非共享非自定义事件。

不能在结构声明中初始化任何结构元素。如果将一个变量声明为结构类型,则可以通过变量访问元素来给它们赋值。

声明一个结构:

可以使用 Public、Protected、Friend或Private关键字指定结构的访问级别,或者使用默认值 Public。如:

Private Structure employee

End Structure

向结构体添加元素:

结构必须具有至少一个元素。必须声明结构的每个元素并指定其访问级别。如果使用不含任何关键字的 Dim 语句 (Visual Basic),则可访问性默认值为 Public。如:

Private Structure employee

Public givenName As String

Public familyName As String

Public phoneExtension As Long

Private salary As Decimal

Public Sub giveRaise(raise As Double)

salary *= raise

End Sub

Public Event salaryReviewTime()

End Structure

---------------------------

另外,关于你的问题,请参考下面C++/C对自定义类型的比较:

1、在C++中,不需使用typedef

struct Structure1 {

char c;

int i;

float f;

double d;

};

int main() {

struct Structure1 s1, s2;

s1.c = 'a'; // Select an element using a '.'

s1.i = 1;

s1.f = 3.14;

s1.d = 0.00093;

s2.c = 'a';

s2.i = 1;

s2.f = 3.14;

s2.d = 0.00093;

}

2、在C中,需用typedef定义

typedef struct {

char c;

int i;

float f;

double d;

} Structure2;

int main() {

Structure2 s1, s2;

s1.c = 'a';

s1.i = 1;

s1.f = 3.14;

s1.d = 0.00093;

s2.c = 'a';

s2.i = 1;

s2.f = 3.14;

s2.d = 0.00093;

}

vb.net 自定义事件

变量值的改变本身就是你程序控制的,也就是说它的变化完全是在你掌控中的,做变量值改变的触发事件实在没有价值。

通常编程者关心的应该是用户操作的控件值发生变化,但这些控件的事件通常都是定义好的,且已经定义的非常全了。

猜测搂主其实是想学习自己制作控件,那就高深了,很多底层的事件通常都是从基本控件中获得的!

vb.net 自定义用户控件如何放到工具箱上

建一个自定义的Web控件MyContro的步骤:

1)引用

using System;

using System.IO;

using System.Drawing;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.ComponentModel;

2)保证MyContro是从WebControl继承的。

public class MyControl:WebControl

3)重写下面两个函数,这是必须的

protected override void Render(HtmlTextWriter writer)

{

this.CreateChildControls();

base.Render (writer);

}

protected override void CreateChildControls()

{

// 清除现有的子控件及其 ViewState

this.Controls.Clear();

this.ClearChildViewState();

// 生成控件树

// 生成环境表格(一行,两个单元格)

Table myTable = new Table();

//build the table row生成表格中的行

TableRow row = new TableRow();

myTable.Rows.Add(row);

// 生成单元格

TableCell myCell = new TableCell();

//用来生成链接按钮导航条的代码。每个按钮都显示有一个 Webdings 字符,可以根据需//禁用,并被绑定到内部的 Click 事件处理程序。

LinkButton myLinkButton = new LinkButton();

myLinkButton.ID = "MyLinkButton";

myLinkButton.Click += new EventHandler(myLinkButton_Click);

myLinkButton.Font.Name = "宋体";

myLinkButton.ToolTip = "好玄啊!";

myLinkButton.Text = "请点我";

myCell.Controls.Add(myLinkButton);

row.Cells.Add(myCell);

Controls.Add(t);

}

4)自定义的事件的方法

private void myLinkButton_Click(object sender,System.EventArgs e)

{

Page.Response.Write("想干点什么就写点什么吧,就这么简单!");

}

5)编译一下,然后点工具—》添加/移除工具箱项

浏览到你编译生成的dll

6)使用

在VB.net里定义的控件数组怎么定义事件

Imports System.Text

Imports System.Windows

Imports System.Windows.Forms

Public Class Netin '类 名

'Inherits Forms.Form

Public Shared Netin As New Form

Public components As ComponentModel.IContainer

Protected Overrides Sub Finalize()

MyBase.Finalize()

End Sub   

DebuggerStepThrough()

Public Sub InitializeComponent()

Me.components = New ComponentModel.Container()

Dim resources As ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(bjt))

Me.TextBox1 = New TextBox(Me.components)

Me.Button1 = New Button(Me.components)

'For … Next  

Me.Controls.Add(Me.TextBox1)

Me.Controls.Add(Me.Button1)

Me.m = New ContextMenuStrip(Me.components)

Me.m1.Text = "菜单项1"     

'设置并添加相关控件,(窗体)Netin 初始化。

End Sub

Private Sub Form_Load(sender As Object, e As EventArgs) Handles Me.Load

'加载后显示窗体Netin。

End Sub

Public Sub ObjClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click,Button2.Click,Button3.Click,TextBox1.Click 

MessageBox.Show("你按了鼠标")

End Sub

Public WithEvents TextBox1 As TextBox

Public WithEvents Button1 As Button

Public WithEvents Button2 As Button

Public WithEvents Button3 As Button

Friend WithEvents m As ContextMenuStrip

Friend WithEvents m1 As ToolStripMenuItem

End Class

Class MainWindow

Netin.Show()

Netin.Button2.Text = "Main"

……

vb.net 如何引用自定义类库

在项目A里添加引用,在“添加引用”对话框里找到项目B就可以了。也可以先把项目B生成dll文件,然后在项目A中添加对这个dll文件的引用。


当前文章:包含自定义事件vb.net的词条
转载来源:http://scyanting.com/article/hgogis.html