我有一个应用程序在单击按钮时会进行一些非常复杂的计算。我仍在努力提高此代码的效率,但与此同时,我想通过更新 UI 上的标签向用户提供反馈,以显示该按钮已被单击并且计算正在进行中。
在点击事件完成之前,UI 不会更新,因此我必须将代码放入一个事件中,该事件在触发点击事件的代码之前被调用。
到目前为止,我正在使用在PreviewMouseLeftButtonDown
执行 click 事件之前调用的事件来更新标签。这适用于鼠标单击。
但是,如果用户在按钮处于焦点时按 Enter 键,则似乎从未触发PreviewKeyDown
ANDKeyDown
事件,或者至少在触发 Click 事件之前未触发。
当按下回车键时,我可以使用什么事件来更新标签,或者您知道在运行 Click Event 的代码之前我可以让标签更新的另一种方法吗?
更新:我注意到PreviewKeyDown
事件是在事件之前触发的,但是在事件代码运行click
之前我没有看到标签更新。click
我看不出我的代码有什么问题。
private void Button1_KeyDown(object sender, KeyEventArgs e)
{
try
{
if (e.Key == Key.Return || e.Key == Key.Enter)
{
lblMessage.Content = "Loading...";
}
}
catch (Exception)
{
}
}