问题标签 [lostfocus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1259 浏览

.net - 使用键盘快捷键时控制失去焦点事件

对于 .NET Winforms 和 Windows Presentation Foundation,如果我有一个用户刚刚输入文本的文本框和一个按钮,如果用户单击该按钮,则“LostFocus”事件会在按钮单击事件触发之前触发。但是,如果用户对按钮使用键盘快捷键(例如,按钮的文本是“&Button”或“_Button”并且用户执行 Alt+B),则“LostFocus”事件会在按钮单击事件之后触发,这不太有用。

你知道合理的解决方法吗?在 ButtonClick 之前,我们希望在 LostFocus 中发生各种事情。

0 投票
2 回答
5365 浏览

silverlight - 拦截 Silverlight DatePicker 从文本到 DateTime 的转换

我想DatePicker将以下文本转换为DateTime(以国际格式显示),以便我的客户可以更快地在文本框中写入日期,DatePicker所以这不仅仅是DateTime.Parse我会使用的:

我尝试了不同的方法来做到这一点,但它们不起作用。我试图用自定义值转换器绑定DatePicker.Text// 。但它不起作用,因为在我到达文本之前已经处理了文本。DatePicker.SelectedDateDatePicker.DisplayDateDatePicker

我也尝试过这样的转换DatePicker TextBox.LostFocus

有任何想法吗?

0 投票
0 回答
760 浏览

.net - LostFocus 绑定在模板上不起作用

我有一个 TabControl,它是绑定到列表的数据。(列表中的两个数据项)TabControl 有一个 DataTemplate,其中包含两个 TextBox 控件,这些控件绑定到我的数据类上的两个字符串属性。

如果我在第一个选项卡上的 Textbox1 上键入一些文本,然后单击 Tab2,则不会对数据源进行更新,并且更改将丢失。

这是因为 LostFocus 实际上并没有为 TextBox1 触发(它在 TextBox2 上,因为移动到选项卡 2 会自动聚焦 TextBox1),我相信这是因为每个选项卡共享模板中的相同文本框,并且只是更改选项卡开关上的 DataContext。

这里有两个事件可能会有所帮助:PreviewLostKeyboardFocus 和 DataContextChanged 两者在 TextBox 上仍然具有可用的键入文本。

还有一个古老的问题是工具栏保存按钮没有获得焦点。

在我看来,也许 Binding 类应该听 PreviousLostKeyboardFocus 而不是在上述两种情况下似乎都会触发的 LostFocus。

各位大佬是怎么解决这些问题的?

Aos,有哪些方法可以利用 PreviewLostKeyboardFocus 事件来更新源?(我正在考虑类似于顶级容器监视此事件,检查 OriginalSource 上是否存在带有 LostFocus UpdateSourceTrigger 的绑定并欺骗/强制绑定以更新源 - 但我是 Wpf 的新手,并且可能还有其他我没有考虑过的因素)

这是一个示例应用程序...

及其代码隐藏

使用 System.Collections.Generic;使用 System.Diagnostics;使用 System.Windows;使用 System.Windows.Controls;使用 System.Windows.Input;

命名空间 BindingFocusTabIssue { public partial class MainWindow : Window { public MainWindow() { InitializeComponent();

}

0 投票
1 回答
2098 浏览

asp.net - ASP.NET :: 文本框控件的 onblur/lostFocus 事件能否触发服务器端事件?

我正在尝试附加一个服务器端事件,以在如下所示的字段中查找用户输入的邮政编码的城市/州。

由于没有要捕获的焦点丢失事件,有没有人幸运地让它工作?

0 投票
2 回答
3906 浏览

wpf - WPF TextBox lostfocus 作为附加属性

我有一个包含许多文本框的网格,我想调用NotifyPropertyChanged() 方法来更新其他一些控件,每次这些文本框之一更改值 = 失去焦点(我不想用作PropertyChangedUpdateSourceTrigger

这是我能做的:

我需要类似的东西:

0 投票
2 回答
1745 浏览

wpf - 应该使用哪个事件从 WPF 中的 TextBox(LostFocus、LostKeyboardFocus 等)更新模型?如何在 WPF 中设置事件的优先级?

我有一个应用程序,其中有很多文本框和一些按钮,如保存、另存为等。

当用户编辑文本框时,我必须检查数据库的某个范围,验证范围并更新数据库。如果用户输入的值有任何错误,那么我不应该让 TextBox 失去焦点。

我为此使用了 LostFocus 事件,它工作正常,直到最近我在我的应用程序中发现了一个错误。

错误:用户在 TextBox 中编辑一个值,然后单击“保存”按钮;未调用 LostFocus 事件,因此数据库未更新:(

现在我的问题是我应该在 TextBox 中使用哪个事件来更新数据库。我尝试了 TextChanged 事件,但它会验证每个字符并使我的应用程序变慢。我在为这种应用程序选择正确的事件时感到困惑!

注意:** 按钮位于不同的 UserControl 中!

编辑 1:我在单击按钮时附加了一些命令,这些命令在 LostFocus 之前执行!我可以设置优先级或附加行为或命令之类的东西应该在 LostFocus 之后执行吗?

编辑 2:我只是通过禁用一些命令来调试应用程序,我发现在某些情况下,DelegateCommand 在 LostFocus 之前执行,所以我想避免这种情况。我该怎么办?在开发过程中,我觉得开发纯 MVVM 应用程序是不可能的,所以我有点使用了一些代码隐藏!

0 投票
3 回答
2672 浏览

c# - 为什么我的 LostFocus 事件出现无限循环

我是 C# 的初学者,我正在开发一个基本的应用程序。
我想检查文本框的值是否是具有以下代码的数字:

当我在文本框中输入一个字母时,会出现一个无限循环,似乎 tb.Focus() 实际上会导致 LostFocus 事件被递归调用。我不明白为什么调用一个对象的 Focus 方法会触发同一个对象的 LostFocus 事件。

0 投票
1 回答
2529 浏览

wpf - 当用户在菜单外单击时,如何使我的 WPF 上下文菜单消失?

首先,标准信息:

VS2010 Ultimate
Win7 Ultimate x64
WPF 应用程序

WPF 上下文菜单:

显示它的代码:

上下文菜单是在 XAML 中构建的 WPF ContextMenu。系统托盘中的通知图标是一个表单通知图标(我不知道本机 WPF 通知图标)。因此,不使用 notifyicon.ContextMenu 属性。上面的代码工作正常。当用户右键单击通知图标时,上下文菜单会按原样显示。

我遇到的问题是让 ContextMenu 在我想要的时候消失。只要您单击 WPF 应用程序中的某个位置,它就会消失。这种行为是自动的。但是如果用户点击其他地方,比如任务栏,菜单不会消失。“LostFocus”事件不会触发,因为这些类型的事件仅在元素失去焦点到同一应用程序中的另一个元素时才会触发。就应用程序而言,ContextMenu 永远不会失去焦点。“停用”是我尝试使用的另一个事件。在这一点上,我应该澄清一下,应用程序有一个“靠近托盘”选项,因此应用程序可以在用户有机会右键单击并显示菜单之前关闭并触发 deactivate 事件。出现菜单时应用程序不会重新激活,因此停用的甚至不会'

所以最后,这个问题。当用户点击离开它时,如何让我的上下文菜单消失,即使用户点击的位置不在创建上下文菜单的应用程序中?

0 投票
3 回答
1005 浏览

vb.net - ASP.NET VB.NET - Winforms to Web - 为 Web 实现等效的 LostFocus 列表视图控件

背景:我有一个 winForm 应用程序,它根据提供的信息在数据库中注册一个用户,自动生成一个随机密码和用户名,并通过电子邮件向用户发送一个链接,以根据所选的营销公司获取应用程序。

问题:

  • 当用户选择 lbCarrier(s) 时,Bundles 不会显示在列表框中 b/c lostfocus 功能不适用于 asp.net。我可以使用什么代码根据在 ASP.NET 的 lbCarrier 列表框中选择的内容自动填充 Bundles 列表框。

网络应用截图

来自 default.aspx.vb 的代码:

0 投票
6 回答
18424 浏览

wpf - 你如何解决这个 LostFocus/LostKeyboardFocus 问题?

好的,我有一个控件,它有一个 IsEditing 属性,为了参数,它有一个默认模板,通常是一个文本块,但是当 IsEditing 为真时,它会在文本框中交换以进行就地编辑。现在,当控件失去焦点时,如果它仍在编辑,它应该退出编辑模式并换回 TextBlock 模板。很直截了当,对吧?

想想在 Windows 资源管理器或桌面上重命名文件的行为(这与我所知道的相同......)这就是我们想要的行为。

问题是您不能使用 LostFocus 事件,因为当您切换到另一个窗口(或属于 FocusManager 的元素)时,LostFocus 不会触发,因为控件仍然具有逻辑焦点,因此无法正常工作。

如果您改用 LostKeyboardFocus,虽然这确实解决了“其他 FocusManager”问题,但现在您有了一个新问题:当您正在编辑并右键单击文本框以显示上下文菜单时,因为上下文菜单现在具有键盘焦点,您的控件失去键盘焦点,退出编辑模式并关闭上下文菜单,使用户感到困惑!

现在我尝试在菜单打开之前设置一个标志以忽略 LostKeyboardFocus,然后在 LostKeyboardFocus 事件中使用该标志来确定是否将其踢出编辑模式,但如果菜单打开并且我单击其他地方应用程序,由于控件本身不再具有键盘焦点(菜单有它),因此控件永远不会获得另一个 LostKeyboardFocus 事件,因此它仍处于编辑模式。(我可能必须在菜单关闭时添加一个检查以查看有焦点的内容,然后如果不是控件,则手动将其从 EditMode 中踢出。这似乎很有希望。)

所以......有人知道我如何成功地编码这种行为吗?

标记