winform中如何获取按tab键这个事件?

winform中如何获取按tab键这个事件?,第1张

Override From的ProcessCmdKey方法。

protected override bool ProcessCmdKey( ref Message msg, Keys keyData )

{

if ( keyData == Keys.Tab )

{

MessageBox.Show( "抓住Tab " )

return true

}

return base.ProcessCmdKey( ref msg, keyData )

}

'把图片的声明放在外面,类里面过程外面,而且要用As,不然等会儿没法用

Dim myPicture As New System.Windows.Forms.PictureBox()

'动态生成的控件,加一行

Private Sub UserControl1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

Me.Panel3.Controls.Add(myPicture)

myPicture.Size =New System.Drawing.Size(115, 160)

myPicture.TabStop =False

myPicture.Name ="p"

myPicture.Cursor = Cursors.Hand

AddHandler myPicture.Click, AddressOf mypic_Click '添加事件

AddHandler returnid, AddressOf idReturned '绑定事件和过程

End Sub

'再来个事件,放在声明的地方,就是类里面、过程外面

Private Event returnid(ByVal id As String) '这个事件可以传递值哦~

'普通的单击事件

Private Sub mypic_Click()

RaiseEvent returnid(myPicture.Name)

End Sub

'会传值的事件过程

Private Sub idReturned(ByVal id As String)

Dim bookInfo As New BookInfo

bookInfo.Show()

Me.Parent.Enabled = False

'用id变量做点什么吧

End Sub

如果要改事件的签名(参数一类的)的话,得重写控件。你可以这样自己弄一个事件。

一般这种现象,都是资源耗尽造成的。

各种句柄资源和GDI资源,都需要在使用后正确的释放,如果代码中没有正确释放,那么累计多次后,不但程序占用内存会增加,造成资源耗尽后,也会再次申请资源失败,造成代码无法正常执行。

因此,你这个,需要看具体代码具体分析。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7990532.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存