4

我有一个由 3 个文本框、3 个按钮和一个网格视图组成的用户控件。我可以设置表单的默认按钮属性,但这只会影响一个按钮。

每个文本框/按钮组合应该有一个行为,当文本框有焦点时,按 Enter 应该触发其关联的按钮。

为了使问题进一步复杂化,这是在母版页实现中使用的。

有没有办法做到这一点?据我所知,.NET 将只允许一个默认按钮 - 它不提供显式关联文本框和按钮。

我欢迎你的见解。

4

4 回答 4

4

这里有一种方法:

<form id="form1" runat="server">
<div>
    <asp:Panel ID="Panel1" DefaultButton="Button1" runat="server">
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </asp:Panel>
    <asp:Panel ID="Panel2" DefaultButton="Button2" runat="server">
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
        <asp:Button ID="Button2" runat="server" Text="Button" />
    </asp:Panel>
    <asp:Panel ID="Panel3" DefaultButton="Button3" runat="server">
        <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox><br />
        <asp:Button ID="Button3" runat="server" Text="Button" />
    </asp:Panel>
</div>
</form>
于 2010-01-11T16:55:29.020 回答
0

尝试为每个 TextBox/Button 集创建一个单独的用户控件。这样每个文本框都会触发它关联的按钮。

于 2010-01-11T16:40:50.780 回答
0

您可以禁用默认按钮并处理文本框的 onKeyPress 事件。

于 2010-01-11T16:48:17.957 回答
0

这是使用附加属性的最佳解决方案:http : //neilmosafi.blogspot.com/2007/04/default-buttons-in-wpf-and-multiple.html

只需使用文章的附加属性代码创建一个类并将其添加到控件中,该控件封装了每个 TextBox 和 Button 对。

例子:<StackPanel ... local:AccessKeyScoper.IsAccessKeyScope="True"> <TextBox ... /> <Button ... /> </StackPanel>

注意:如果将具有依赖属性的文件添加到子目录,则需要使用其他命名空间定义而不是local:.

于 2020-05-28T15:05:03.070 回答