using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms;namespace WindowsFormsApplication7 { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); MessageFilter filter = new MessageFilter(); Application.AddMessageFilter(filter); Form1 form = new Form1(); form.Filtr = filter; Application.Run(new Form1()); } } public class MessageFilter : IMessageFilter { public event EventHandler EnterPressed; #region IMessageFilter Members public bool PreFilterMessage(ref Message m) { if (m.Msg == 0x0100) { if ( m.WParam.ToInt32() == 13 && EnterPressed != null) { EnterPressed(this,EventArgs.Empty); }
} return false; } #endregion } } 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;namespace WindowsFormsApplication7 { public partial class Form1 : Form { private MessageFilter filtr; public MessageFilter Filtr { get { return filtr; } set { filtr = value; } } public Form1() { InitializeComponent(); filtr.EnterPressed += new EventHandler(OnEnterPrecessed); } private void OnEnterPrecessed(object sender, EventArgs e) { //检查当前标签。并进行处理的代码。 }
{
if(e.KeyChar==13)
{
button1.Click +=new EventHandler(button1_Click(button1,null));
}
} private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("aaaaaaaaa");
}
不是说“实现按回车相当于触发当前tabPage里的按钮click事件。”
那样的话,焦点在不在按钮上有什么影响呢?
实在不行,你就先把焦点聚焦在按钮上呗,
.focus()
判断tabControl当前选择页?
调用改页面指定按钮的Click事件?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;namespace WindowsFormsApplication7
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
MessageFilter filter = new MessageFilter();
Application.AddMessageFilter(filter);
Form1 form = new Form1();
form.Filtr = filter;
Application.Run(new Form1());
}
}
public class MessageFilter : IMessageFilter
{
public event EventHandler EnterPressed;
#region IMessageFilter Members public bool PreFilterMessage(ref Message m)
{
if (m.Msg == 0x0100)
{
if ( m.WParam.ToInt32() == 13 && EnterPressed != null)
{
EnterPressed(this,EventArgs.Empty);
}
}
return false;
} #endregion
}
}
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;namespace WindowsFormsApplication7
{
public partial class Form1 : Form
{
private MessageFilter filtr; public MessageFilter Filtr
{
get { return filtr; }
set { filtr = value; }
}
public Form1()
{
InitializeComponent();
filtr.EnterPressed += new EventHandler(OnEnterPrecessed);
} private void OnEnterPrecessed(object sender, EventArgs e)
{
//检查当前标签。并进行处理的代码。
}
}
}