使用键盘快捷键时控制焦点丢失事件 对于.NETWINFALS和Windows演示文稿基础,如果我有一个文本框,用户刚刚输入了文本,还有一个按钮,如果用户点击按钮,“LoScOutlook”事件在按钮单击事件触发之前触发。但是,如果用户使用按钮的键盘快捷键(例如,按钮的文本为“&button”或“_button”,并且用户执行Alt+B),则“LostFocus”事件会在按钮单击事件后触发,这是不太有用的
你知道合理的解决办法吗?在单击按钮之前,我们希望在LostFocus中发生各种事情。如果首先在按钮处理程序中执行此操作,会发生什么?(或者可以将按钮子类化并覆盖OnClick以“全球范围”应用此逻辑)使用键盘快捷键时控制焦点丢失事件 对于.NETWINFALS和Windows演示文稿基础,如果我有一个文本框,用户刚刚输入了文本,还有一个按钮,如果用户点击按钮,“LoScOutlook”事件在按钮单击事件触发之前触发。但是,如果用户使用按钮的键盘快捷键(例如,按钮的文本为“&button”或“_button”,并且用户执行Alt+B),则“LostFocus”事件会在按钮单击事件后触发,这是不太有用的,.net,events,lostfocus,.net,Events,Lostfocus,你知道合理的解决办法吗?在单击按钮之前,我们希望在LostFocus中发生各种事情。如果首先在按钮处理程序中执行此操作,会发生什么?(或者可以将按钮子类化并覆盖OnClick以“全球范围”应用此逻辑) 这能解决问题吗?如果您首先在按钮处理程序中这样做,会发生什么?(或者可以将按钮子类化并覆盖OnClick以“全球范围”应用此逻辑) 这能解决问题吗?在触发按钮逻辑之前,您可以尝试跟踪是否发生了失焦逻辑。无论如何,您不应该将代码直接放在处理程序中。你可以这样做: public partial cla
这能解决问题吗?如果您首先在按钮处理程序中这样做,会发生什么?(或者可以将按钮子类化并覆盖OnClick以“全球范围”应用此逻辑)
这能解决问题吗?在触发按钮逻辑之前,您可以尝试跟踪是否发生了失焦逻辑。无论如何,您不应该将代码直接放在处理程序中。你可以这样做:
public partial class Form1 : Form
{
private Boolean _didLostFocusLogic;
public Form1()
{
InitializeComponent();
}
private void textBox1_Leave(object sender, EventArgs e)
{
LostFocusLogic();
}
private void button1_Click(object sender, EventArgs e)
{
ButtonClickLogic();
}
private void LostFocusLogic()
{
/* Do stuff */
_didLostFocusLogic = true;
}
private void ButtonClickLogic()
{
if (!_didLostFocusLogic)
LostFocusLogic();
_didLostFocusLogic = false; // Reset for next time.
/* Do stuff */
}
}
在触发按钮逻辑之前,您可以尝试跟踪是否发生了失焦逻辑。无论如何,您不应该将代码直接放在处理程序中。你可以这样做:
public partial class Form1 : Form
{
private Boolean _didLostFocusLogic;
public Form1()
{
InitializeComponent();
}
private void textBox1_Leave(object sender, EventArgs e)
{
LostFocusLogic();
}
private void button1_Click(object sender, EventArgs e)
{
ButtonClickLogic();
}
private void LostFocusLogic()
{
/* Do stuff */
_didLostFocusLogic = true;
}
private void ButtonClickLogic()
{
if (!_didLostFocusLogic)
LostFocusLogic();
_didLostFocusLogic = false; // Reset for next time.
/* Do stuff */
}
}