c# 关于winfrom中 panel包含多个控件 button keydown事件
现在是所有的窗体都只是一个panel作为容器把一个窗体所需要的所有控件包含在这个panel里面每个panel都共同用的同一个父窗体(winform窗体)也就是说只有一个w...
现在是所有的窗体都只是一个panel作为容器 把一个窗体所需要的所有控件包含在这个panel里面 每个panel都共同用的同一个父窗体(winform窗体) 也就是说 只有一个winform窗体 不过现在要吧每个panel里面的 查询 按钮绑定enter键 只有一个winfrom窗体 所以不能同时应用在这么多button上面 panel也没有keydown事件 该怎么做啊 急用。 高手接单
回复wangbin_529:现在项目已经成形 只是客户要求 临时更改 不可能更改界面 展开
回复wangbin_529:现在项目已经成形 只是客户要求 临时更改 不可能更改界面 展开
3个回答
展开全部
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if(typeof(Panel)==this.ActiveControl.Parent.GetType()) //焦点控件是不是在Panel里
{
foreach (Control c in this.ActiveControl.Parent.Controls)
{
if (c.Text == "查询")
{
if (typeof(Button) == c.GetType())
{
((Button)c).PerformClick();
}
}
}
}
}
看看这个合用不.this.ActiveControl.Parent取得当前焦点控件所在的Panel,this.ActiveControl.Parent.Controls取得当前焦点所在Panel的控件数组.
取得控件数组了你想怎样搞就怎么搞吧,用this.ActiveControl.Parent.Controls.Find(参数)的方法可能也可以,不过不知道你里面的控件怎么命名的.我想在一个Panel里text叫查询的Button总不会有几个吧. 思路是这样,看着用吧.
{
if(typeof(Panel)==this.ActiveControl.Parent.GetType()) //焦点控件是不是在Panel里
{
foreach (Control c in this.ActiveControl.Parent.Controls)
{
if (c.Text == "查询")
{
if (typeof(Button) == c.GetType())
{
((Button)c).PerformClick();
}
}
}
}
}
看看这个合用不.this.ActiveControl.Parent取得当前焦点控件所在的Panel,this.ActiveControl.Parent.Controls取得当前焦点所在Panel的控件数组.
取得控件数组了你想怎样搞就怎么搞吧,用this.ActiveControl.Parent.Controls.Find(参数)的方法可能也可以,不过不知道你里面的控件怎么命名的.我想在一个Panel里text叫查询的Button总不会有几个吧. 思路是这样,看着用吧.
展开全部
哦,理解过来了。可以这样解决,你看行不行:
抓取系统的ENTER键,如果用户有输入这个键,那么程序就自动触发对应页面中的查询按钮!
抓取系统的ENTER键,如果用户有输入这个键,那么程序就自动触发对应页面中的查询按钮!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
panel可以着支撑选项卡模式。应该符合你的要求
你试下。
你试下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询