首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

有没有精同多个子窗体情况下的快捷键有关问题的达人

2012-01-29 
有没有精同多个子窗体情况下的快捷键问题的达人?本人在一个父窗体中打开了子窗体form1和子窗体form2,form1

有没有精同多个子窗体情况下的快捷键问题的达人?
本人在一个父窗体中打开了子窗体form1和子窗体form2,form1中有个按钮(【导出】并设置了快捷键s),form2中有个按钮(【删除】也设置了快捷键s),当前焦点在form2上使用alt+s为什么会响应form1上的【导出】按钮,而form2中的【删除】按钮确没有反应,求精通人士解答。

[解决办法]
我用以下代码简单测试了一下,没有发现lz所说的那个问题啊。

VB.NET code
Public Class Form1    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        Dim frmA As New FormA        frmA.Show()        Dim frmB As New FormB        frmB.Show()    End SubEnd ClassPublic Class FormA    Inherits System.Windows.Forms.Form    Public Sub New()        Dim btn As New Button        btn.Text = "Button(&S)"        AddHandler btn.Click, AddressOf ButtonClick        Me.Controls.Add(btn)        Me.Text = "FormA"    End Sub    Private Sub ButtonClick(ByVal sender As Object, ByVal e As System.EventArgs)        MsgBox("FormA")    End SubEnd ClassPublic Class FormB    Inherits System.Windows.Forms.Form    Public Sub New()        Dim btn As New Button        btn.Text = "Button(&S)"        AddHandler btn.Click, AddressOf ButtonClick        Me.Controls.Add(btn)        Me.Text = "FormB"    End Sub    Private Sub ButtonClick(ByVal sender As Object, ByVal e As System.EventArgs)        MsgBox("FormB")    End SubEnd Class
[解决办法]
VB.NET code
Public Class Form1    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load        Dim frmA As New FormA        Dim frmB As New FormB        Dim panel1 As New Panel        panel1.Dock = DockStyle.Fill        panel1.Controls.Add(frmA)        panel1.Controls.Add(frmB)        frmA.Location = New Point(10, 10)        frmB.Location = New Point(10, frmA.Location.Y + frmA.Height + 10)        Me.Controls.Add(panel1)    End SubEnd ClassPublic Class FormA    Inherits System.Windows.Forms.UserControl    Public Sub New()        Me.BorderStyle = Windows.Forms.BorderStyle.FixedSingle        Dim btn As New Button        btn.Text = "ButtonA(&S)"        AddHandler btn.Click, AddressOf ButtonClick        Me.Controls.Add(btn)        Me.Text = "FormA"    End Sub    Private Sub ButtonClick(ByVal sender As Object, ByVal e As System.EventArgs)        MsgBox("FormA")    End SubEnd ClassPublic Class FormB    Inherits System.Windows.Forms.UserControl    Public Sub New()        Me.BorderStyle = Windows.Forms.BorderStyle.FixedSingle        Dim btn As New Button        btn.Text = "ButtonB(&S)"        AddHandler btn.Click, AddressOf ButtonClick        Me.Controls.Add(btn)        Me.Text = "FormB"    End Sub    Private Sub ButtonClick(ByVal sender As Object, ByVal e As System.EventArgs)        MsgBox("FormB")    End SubEnd Class
[解决办法]
注意这两处:
1、Public Class FormA
Inherits System.Windows.Forms.UserControl


2、Public Class FormB
Inherits System.Windows.Forms.UserControl



热点排行