如何复制或复制其他控件事件?我想在新控件中使用其他控件事件。 可以说我有一个文本框。
TextBox tbTemp = new TextBox ();
tbTemp.Keypress += new KeyPressEventHandler(some keypress); //I assigned some keypress event here & this works fine
TextBox tbNew = new TextBox ();//create new textbox and assign keypress events from existing textbox
tbNew.Keypress += tbTemp.Keypress; //This is not working. It says the event control.keypress can only appear on left hand side of +=
or
tbNew.Keypress += new KeyPressEventHandler(tbTemp.Keypress);//this is not working
是否可以捕获其他控件事件?我需要捕获或复制tbTemp keypressEvent并分配给新的TextBox(tbNew)
答案 0 :(得分:0)
如果您的问题是
,我会发布此答案“我有很多文本框,但是如果其中一个“ KeyPress”被触发,我希望使用相同的函数来处理它。”
您需要做的就是将相同的功能OnKeyPress
订阅不同控件的事件。
// This is the function
private void OnKeyPress( object sender, KeyPressEventArgs e )
{
// Your implementation.
}
// Your constructor or where your subscribe event.
void Constructor()
{
// This will work
tbTemp += new System.Windows.Forms.KeyPressEventHandler(OnKeyPress);
tbNew += new System.Windows.Forms.KeyPressEventHandler(OnKeyPress);
}
如果这不能回答您的问题,请编辑并说明您要实现的目标。
========
您的问题是
我需要捕获或复制tbTemp keypressEvent并分配给新的TextBox(tbNew)
每个控件都有自己的KeyPress
事件,您不必复制(复制)它。因此,“重复的KeyPress事件”令人困惑。
然后,我假设您不想“复制事件”,而是“将控件的同一事件订阅到单个函数中。”
看看Understanding events and event handlers in C#
它应该有助于解释您的问题。