C#自定义控件响应KeyPress事件问题, 急!!!

时间:2022-08-31 08:06:36
自定义控件控件里放一个Label一个TextBox, 在设计阶段通过属性窗口添加了KeyPress事件处理方法,目的是响应TextBox里按下回车时候做处理,如果我想控件响应该处理方法有什么办法吗?没有的话用什么方法处理好?

9 个解决方案

#1


        /// <summary>
        /// 控件Click事件
        /// </summary>
        public event EventHandler OnClick = null;

        private void TextBox_Click(object sender, EventArgs e)
        {
            if (OnClick != null)
            {
                OnClick (sender, e);
            }
        }

定义一个事件,然后在Textbox的事件响应代码中击发此事件

#2


1.自定义UserTextBox控件,只有一个label和textbox,定义控件EnterPress事件
    public partial class UserTextBox : UserControl
    {
        public UserTextBox()
        {
            InitializeComponent();
            textBox1.KeyDown += new KeyEventHandler(textBox1_KeyDown);
        }

        public event KeyEventHandler EnterPress = null;
        private void textBox1_KeyDown(object sender , KeyEventArgs e)
        {
            if ( EnterPress != null )
            {
                if ( e.KeyCode == Keys.Enter )
                {
                    EnterPress(null , e);
                }
            }
        }
    }

2.在Form中应用自定义控件EnterPerss事件
 (1)首先在构造函数中添加声明
      
this.userTextBox1.EnterPress += new System.Windows.Forms.KeyEventHandler(this.userTextBox1_EnterPress);
(2)EnterPress事件代码
       
 private void userTextBox1_EnterPress(object sender , KeyEventArgs e)
        {
            MessageBox.Show("this is a test");
        }

#3


二楼的 基本够你用的了 

主要是一个key的回车值的获取 

key回车值也是13 也可以从这里入手的

#4


不要忘记把Form的KeyPreview设置为true

#5


这里有自定义控件事件教程, 里面有你的答案. 

【庖丁解牛:纵向切入Asp.net 3.5控件和组件开发技术系列—(5)事件和数据回发机制】
http://blog.csdn.net/ChengKing/archive/2009/01/01/3680101.aspx

#6


let me have a look

#7


呵呵 说明的很详细啊.

#8


非常不错..

#9


引用 4 楼 mapserver 的回复:
不要忘记把Form的KeyPreview设置为true


犀利!

#1


        /// <summary>
        /// 控件Click事件
        /// </summary>
        public event EventHandler OnClick = null;

        private void TextBox_Click(object sender, EventArgs e)
        {
            if (OnClick != null)
            {
                OnClick (sender, e);
            }
        }

定义一个事件,然后在Textbox的事件响应代码中击发此事件

#2


1.自定义UserTextBox控件,只有一个label和textbox,定义控件EnterPress事件
    public partial class UserTextBox : UserControl
    {
        public UserTextBox()
        {
            InitializeComponent();
            textBox1.KeyDown += new KeyEventHandler(textBox1_KeyDown);
        }

        public event KeyEventHandler EnterPress = null;
        private void textBox1_KeyDown(object sender , KeyEventArgs e)
        {
            if ( EnterPress != null )
            {
                if ( e.KeyCode == Keys.Enter )
                {
                    EnterPress(null , e);
                }
            }
        }
    }

2.在Form中应用自定义控件EnterPerss事件
 (1)首先在构造函数中添加声明
      
this.userTextBox1.EnterPress += new System.Windows.Forms.KeyEventHandler(this.userTextBox1_EnterPress);
(2)EnterPress事件代码
       
 private void userTextBox1_EnterPress(object sender , KeyEventArgs e)
        {
            MessageBox.Show("this is a test");
        }

#3


二楼的 基本够你用的了 

主要是一个key的回车值的获取 

key回车值也是13 也可以从这里入手的

#4


不要忘记把Form的KeyPreview设置为true

#5


这里有自定义控件事件教程, 里面有你的答案. 

【庖丁解牛:纵向切入Asp.net 3.5控件和组件开发技术系列—(5)事件和数据回发机制】
http://blog.csdn.net/ChengKing/archive/2009/01/01/3680101.aspx

#6


let me have a look

#7


呵呵 说明的很详细啊.

#8


非常不错..

#9


引用 4 楼 mapserver 的回复:
不要忘记把Form的KeyPreview设置为true


犀利!