日期:2014-05-17 浏览次数:21001 次
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//示例代码中我在MainForm上放置了这些东西:
// 一个TextBox,用来显示Enter键被按过的次数
// 一个Button,弹出一个MessageBox或者子窗体,当MessageBox弹出是,我希望按下Enter键仅仅是令MessageBox关闭,而不是让MainForm也执行一遍KepUp响应函数
namespace KeyupTest
{
public partial class MainForm : Form
{
private int enterCount = 0; // 按下Enter键次数累计
public MainForm()
{
InitializeComponent();
}
private void btnMessageShow_Click(object sender, EventArgs e)
{
MessageBox.Show("在消息框弹出的时候,希望主窗体不再执行Keyup响应");
}
private void MainForm_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
this.tbxEnterCount.Text = (++enterCount).ToString();
}
}
}
}
protected override bool ProcessKeyEventArgs(ref Message m)
{
if (m.HWnd == btnMessageShow.Handle && m.WParam == (IntPtr)Keys.Enter)
return false;
else
return base.ProcessKeyEventArgs(ref m);
}