UserControl是一个独立的可重用输入控件,允许用户与应用程序进行交互。用户控件可以是按钮,复选框,输入文本框,鼠标,键盘等。
在我的aspx页面上我有一个div 在我的 aspx 页面后面的代码中,我像这样登录相关控件 uc = CType(Page.LoadCo... 在我的 aspx 页面上我有一个 div <div id="MatterRiskControl" runat="server" /> 在 aspx 页面后面的代码中,我像这样登录相关控件 uc = CType(Page.LoadControl("MatterRisk_Probate.ascx"), UserControl) MatterRiskControl.Controls.Add(uc) 尽管我有一个文本框,我想在后面的代码中设置文本,但效果很好。在我的 ascx 页面中,文本框设置如下 <dx:ASPxTextBox ID="MyTextBox" runat="server" /> 在ascx页面后面的页面加载代码中我已经尝试过这个 MyTextBox.Text = "Some Text Here" 但它没有设置它。 我不确定如何从后面的 aspx 代码引用 TextBox? 感谢您的帮助! 让我们假设一个 UC 带有大量控件(文本框、复选框),以及各种有趣的东西。 简短版: 公开UC的方法来更改你想要的文本框。 造成这种情况的原因有很多,但主要原因是您想要一个支持多个控件实例的设计。 暴露一些公共方法。 说这个 UC 来编辑酒店。 <h3>UC testing page</h3> Enter ID to show: <asp:TextBox ID="txtHotelID" runat="server"></asp:TextBox> <asp:Button ID="cmdShow" runat="server" Text="Show Hotel" CssClass="btn" OnClick="cmdShow_Click" /> <br /> <br /> <uc1:MyEditHotelC runat="server" ID="MyEditHotelC" /> <br /> <div style="clear:both"></div> <hr /> <h3>This page button(s)</h3> Enter new hotel text: <asp:TextBox ID="txtMyHotel" runat="server"> </asp:TextBox> <asp:Button ID="cmdChangeHotel" runat="server" Text="Change HotelName" OnClick="cmdChangeHotel_Click" /> </div> 我们有这个: 在加州大学,我们这样做: Public Sub ChangeHotel(strText As String) Me.txtHotel.Text = strText End Sub 注意上面,我们可以对后面表单上的文本框使用相同的控件名称,但是 txtBox 控件在渲染时将被 UC 更改。 当前页面代码: Protected Sub cmdChangeHotel_Click(sender As Object, e As EventArgs) MyEditHotelC.ChangeHotel(txtMyHotel.Text) End Sub 注意我们如何创建/使用/享受 UC 的公共方法,因此在当前页面上我们可以轻松抓取/获取/更改文本框控件。 如果您需要读取/使用文本框值,您可以制作一个 getter/setter。 上面可能会变成这样: Public Property tHotel Get Return txtHotel.Text End Get Set(value) txtHotel.Text = value End Set End Property 再一次,由于页面上可能存在 2 或 5 个控件副本,那么您要在此处更改文本框的哪个副本? 我可以像这样更新/更改页面上 2 个 UC 的酒店名称: <uc1:MyEditHotelC runat="server" ID="MyEditHotelC" /> <br /> <uc1:MyEditHotelC runat="server" ID="MyEditHotelC2" /> <br /> 现在更改两者酒店的代码如下: Protected Sub cmdChangeHotel_Click(sender As Object, e As EventArgs) MyEditHotelC.tHotel = txtMyHotel.Text MyEditHotelC2.tHotel = txtMyHotel.Text End Sub 如果您只需要获取值,则在后面的 UC 代码中创建一个公共函数。 但是,如果您需要获取和设置该文本框,请按照上面的方式公开公共属性,然后您可以更改文本。 更令人惊奇的是,这些值在标记中是有效的: 例如这个: <uc1:MyEditHotelC runat="server" ID="MyEditHotelC2" tHotel ="ABC" /> 就像带有一个文本框的 Gridview 一样?那么,当您有 10 行时,您正在处理文本框的哪个实例? UC 也是如此。如果页面上有 5 个文本框,您将获取、抓取然后更改哪个文本框? 保持文本酒店框的多个实例分离的唯一真正方法是公开公开每个控件的 getter 和 setter。 现在,您当然可以在客户端 JavaScript 中仍然获得控制权,并更改它,但就目前而言,这篇文章有点长,上面的内容应该有助于提供一些我认为效果很好的方法的好例子。
我基于 DataGrid 构建了一个 UserControl,以便添加我没有详细说明的过滤功能。它相当复杂,但效果很好(稍后我必须弄清楚如何删除大量隐藏代码)。 我...
我创建了一个 Google 表格,作为我志愿服务的非营利组织的时间表。 每张表都是每周的时间表。有权访问该链接的任何人都可以编辑该文档,因此
如何使用SoapBox将数据从View绑定到UserControl
我有我的 SoapBox.Document '注册' [导出(SoapBox.Core.ExtensionPoints.Workbench.Documents,typeof(IDocument))] [导出(CompositionPoints.Workbench.Documents.Register,typeof(注册))] [文档...
我有一个 WinForms 应用程序。每个表单和用户控件都按如下方式设置其工具提示: // 在控件构造函数中 var toolTip = new ToolTip(); this.Dispose += (o, e) => toolTip.Dispose();
我正在尝试制作一个自定义组合框。我想在组合框中有一个按钮,以便用户可以将项目添加到其数据源。 我知道我需要使用 WndProc 才能获取内部文本框...
WPF - 适用于 XAML 的 MaterialDesign
我有两个单独的解决方案:解决方案 A 定义一个自定义 UserControl,如下所示: 我有两个单独的解决方案:解决方案 A 定义了一个自定义 UserControl,如您在此处看到的: <TextBox BorderBrush="{Binding ValueFG, RelativeSource={RelativeSource AncestorType=UserControl}}" Foreground="{Binding ValueFG, RelativeSource={RelativeSource AncestorType=UserControl}}" HorizontalAlignment="Right" md:HintAssist.HelperText="{Binding ValueHT, RelativeSource={RelativeSource AncestorType=UserControl}}" md:TextFieldAssist.LeadingIcon="{Binding ValueIcon, RelativeSource={RelativeSource AncestorType=UserControl}}" Text="{Binding ValueInput, RelativeSource={RelativeSource AncestorType=UserControl}, UpdateSourceTrigger=PropertyChanged}" Width="{Binding ValueWidth, RelativeSource={RelativeSource AncestorType=UserControl}}"/> public string ValueIcon { get { return (string)GetValue(ValueIconProperty); } set { SetValue(ValueIconProperty, value); } } public static readonly DependencyProperty ValueIconProperty = DependencyProperty.Register( nameof(ValueIcon), typeof(string), typeof(TxtInput), new PropertyMetadata("HumanGreeting")); 我遇到的唯一问题是 MaterialDesign 中的相应图标没有显示。 在解决方案 B 中,我添加了命名空间和对解决方案 A 的引用。然后我添加了这个自定义用户控件并尝试设置图标 fia 它对应的 Binding 属性。 <uc:TxtInput KeyText="Developer Name" DockPanelMargin="{Binding NameMargin}" ValueFG="{Binding NameFG}" ValueHT="{Binding NameHT}" ValueInput="{Binding Name}" ValueIcon="HumanGreetingVariant" Style="{StaticResource TxtInputLocal}"/> 不幸的是,图标根本没有添加。我还添加了第二个,没有明确的图标,以便应用默认图标 -> 我仍然没有显示图标。 运行时输出 在另一个项目中我已经使用了这些图标。我总是将它们设置为字符串,并且它按预期工作。 此外,如果我在同一解决方案中创建此 UserControl,它会按预期工作。 我可以自己解决: 在 Xaml 中,我必须添加以下属性: md:TextFieldAssist.HasLeadingIcon="True" 在代码隐藏中,我必须将属性更改为PackIconKind public PackIconKind ValueIcon { get { return (PackIconKind)GetValue(ValueIconProperty); } set { SetValue(ValueIconProperty, value); } } public static readonly DependencyProperty ValueIconProperty = DependencyProperty.Register( nameof(ValueIcon), typeof(PackIconKind), typeof(TxtInput), new PropertyMetadata(PackIconKind.HumanGreeting));
自定义用户控件 + MVVM - WPF / Prism 框架
目前,我正在重构一个应用程序,其中有很多重复的 XAML 代码。我想改用自定义用户控件。我做了一个关于如何创建它们的教程,但现在我处于一个点上,...
我创建了名为ucn 的用户控件,并使用填充用户控件的datagridview。 在我创建了另一个从ucn继承的用户控件之后: 公共分部类 ucnRequest : ucn { 并在
我正在以编程方式用行填充 WPF 网格。每行都分配有一个用户控件。该用户控件本身包含一个网格,只有一行和三列。第三列可以包含 Te...
我在查找 style.xaml 资源时遇到问题,该资源包含按钮、文本框和其他元素的样式。该资源采用字典 XAML 的形式,位于...
所以我有两个表单,一个父表单和一个子表单,以及一个自定义控件。 父窗体有一个空的自定义控件列表和一个调用子窗体的按钮。 儿童形态有屁股...
我有一个带有 Window WINDOWCompanies 的 WPF 应用程序。在此窗口中,我有两个 Comobox 绑定到 WINDOWCompaniesVM 中的 ObservableCollections。一旦
我有一个用户控件,其中有两个面板(kpnlFilter 和 kpnlDetail)。 我可以使用以下代码将它们启用为设计时的放置区: this.EnableDesignMode(((mGridHolder)this.Co...
在这段代码中,我尝试通过给定命令和来自互联网的示例代码使用人工智能来跟踪用户行为 用户行为</desc> <question vote="0"> <p>在这段代码中,我尝试通过给定命令和来自互联网的示例代码使用人工智能来跟踪用户行为</p> <pre><code><!DOCTYPE html> <html> <head> <title>User Behavior Tracker</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <style> .visited { background-color: green !important; } /* Added !important to override Bootstrap styles */ .failed { background-color: red; } </style> </head> <body> <div class="container mt-5"> <h2 class="text-center">Link List</h2> <div class="link-list"> <a href="https://www.example1.com" target="_blank" class="btn btn-primary btn-block mb-2">Link 1</a> <a href="https://www.example2.com" target="_blank" class="btn btn-primary btn-block mb-2">Link 2</a> <a href="reward-link.html" class="btn btn-success btn-block mb-2 disabled" id="rewardLink">Reward Link</a> </div> </div> <script> const links = document.querySelectorAll('.link-list a:not(#rewardLink)'); const rewardLink = document.getElementById('rewardLink'); const visitedLinks = new Array(links.length).fill(false); // Initialize visitedLinks array links.forEach((link, index) => { link.addEventListener('click', () => { const newWindow = window.open(link.href, `linkWindow_${index}`, "width=400,height=300"); // Mark link as visited after 5 seconds const visitTimeout = setTimeout(() => { visitedLinks[index] = true; link.classList.add('visited'); checkUnlock(); }, 5000); // Close the opened window after 5 seconds setTimeout(() => { newWindow.close(); }, 5000); // Handle user moving to another tab or closing the window const handleVisibilityChange = () => { if (document.visibilityState === 'hidden') { clearTimeout(visitTimeout); link.classList.add('failed'); checkUnlock(); } }; document.addEventListener('visibilitychange', handleVisibilityChange); newWindow.onbeforeunload = () => { clearTimeout(visitTimeout); document.removeEventListener('visibilitychange', handleVisibilityChange); link.classList.add('failed'); checkUnlock(); }; }); }); function checkUnlock() { if (visitedLinks.every(visited => visited)) { rewardLink.classList.remove('disabled'); rewardLink.textContent = 'Reward Link (Unlocked)'; } } </script> </body> </html> </code></pre> <p>不工作。如果我访问链接 5 秒,它不会关闭打开的选项卡,如果访问链接 5 秒也显示红色错误,但它必须显示绿色。这段代码有什么问题请帮助我。</p> <p>愿有人帮助我建造这个。</p> </question> <answer tick="false" vote="-2"> <pre><code><!DOCTYPE html> <html> <head> <title>User Behavior Tracker</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <style> .visited { background-color: green !important; } /* Added !important to override Bootstrap styles */ .failed { background-color: red; } </style> </head> <body> <div class="container mt-5"> <h2 class="text-center">Link List</h2> <div class="link-list"> <a href="https://www.example1.com" target="_blank" class="btn btn-primary btn-block mb-2">Link 1</a> <a href="https://www.example2.com" target="_blank" class="btn btn-primary btn-block mb-2">Link 2</a> <a href="reward-link.html" class="btn btn-success btn-block mb-2 disabled" id="rewardLink">Reward Link</a> </div> </div> <script> const links = document.querySelectorAll('.link-list a:not(#rewardLink)'); const rewardLink = document.getElementById('rewardLink'); const visitedLinks = new Array(links.length).fill(false); // Initialize visitedLinks array links.forEach((link, index) => { link.addEventListener('click', () => { const newWindow = window.open(link.href, `linkWindow_${index}`, "width=400,height=300"); // Mark link as visited after 5 seconds const visitTimeout = setTimeout(() => { visitedLinks[index] = true; link.classList.add('visited'); checkUnlock(); }, 5000); // Close the opened window after 5 seconds setTimeout(() => { newWindow.close(); }, 5000); // Handle user moving to another tab or closing the window const handleVisibilityChange = () => { if (document.visibilityState === 'hidden') { clearTimeout(visitTimeout); link.classList.add('failed'); checkUnlock(); } }; document.addEventListener('visibilitychange', handleVisibilityChange); newWindow.onbeforeunload = () => { clearTimeout(visitTimeout); document.removeEventListener('visibilitychange', handleVisibilityChange); link.classList.add('failed'); checkUnlock(); }; }); }); function checkUnlock() { if (visitedLinks.every(visited => visited)) { rewardLink.classList.remove('disabled'); rewardLink.textContent = 'Reward Link (Unlocked)'; } } </script> </body> </html> </code></pre> </answer> </body></html>
为什么 wpf itemlist 在 itemsource 更改后断开连接
我要制作可分页列表视图。 我几乎实现了除了索引显示之外的所有功能。 我将 listviewitem 作为多重绑定传递给转换器以显示索引。 但是listview显示索引t...
从 UserControl 公开 ComboBox.ItemsSource
我创建了一个简单的 WPF UserControl,其中包含一个 ComboBox,我想公开后者的 ItemsSource 属性以从父视图绑定集合。 这是 xaml ...
我有一个用户控件,我尝试进行简单的绑定工作 无论我做什么,当我运行应用程序时,数据都不会显示在控件中 公共部分类 UserControlA: UserControl { ...
WPF UserControl 库在另一个项目中使用时不包含依赖项
我在VS中创建了一个空白解决方案,添加了一个“src”文件夹,然后将一个WPF用户控件(框架)项目添加到该文件夹(“WpfWorkspace”)。框架版本 4.7.2。 我是德西...
我想保存用户在程序执行过程中创建的文本和单个按钮功能。为此,我使用 Properties.Settings.Default 和我创建的 ButtonStringCollection