用户控件中的多个默认按钮
我有一个由 3 个文本框、3 个按钮和一个网格视图组成的用户控件。我可以设置表单的defaultbutton属性,但这只会影响一个按钮。
每个文本框/按钮组合都应该具有这样的行为:当文本框获得焦点时,按 Enter 键应该触发其关联的按钮。
使问题进一步复杂化的是,这是在母版页实现中使用的。
有什么办法可以做到这一点吗?据我所知,.NET 只允许一个默认按钮 - 它不提供显式关联文本框和按钮的功能。
我欢迎您的见解。
I have a user control that is comprised of 3 textboxes, 3 buttons and a gridview. I can set the defaultbutton property of the form, but that would only affect one button.
Each textbox/button combo should have a behavior that when the textbox has focus, pressing Enter should fire its associated button.
To further complicate the issue, this is being used inside a Master Page implementation.
Is there any way to do this? As far as I can tell, .NET will only allow one default button - it doesn't provide to explicitly associate textboxes and buttons.
I welcome your insights.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这里有一种方法:
Here one way:
尝试为每个文本框/按钮集创建一个单独的用户控件。这样每个文本框都会触发其关联的按钮。
Try creating a separate User Control for each TextBox/Button set. That way each Textbox will fire it's associated Button.
您可以禁用默认按钮并处理文本框的 onKeyPress 事件。
You can disable the default button and handle the textbox's onKeyPress event.
这是使用附加属性的一个不错的解决方案:
http://neilmosafi.blogspot.com/ 2007/04/default-buttons-in-wpf-and-multiple.html
只需创建一个带有文章附加属性代码的类并将其添加到控件中,该类封装了每个 TextBox 和 Button 对。
示例:<文本框.../>> <按钮.../>
注意:
如果将具有依赖属性的文件添加到子目录,则需要使用其他命名空间定义而不是
local:
。Here is a sweet solution by usage of an Attached Property:
http://neilmosafi.blogspot.com/2007/04/default-buttons-in-wpf-and-multiple.html
Just create a class with the attached property code of the article and add it to controls, which encapsulate each TextBox and Button pair.
Example:
<StackPanel ... local:AccessKeyScoper.IsAccessKeyScope="True"> <TextBox ... /> <Button ... /> </StackPanel>
Note:
If you add the file with the Dependency Property to a subdirectory, you need to use an other namespace definition instead of
local:
.