Tag: 控件

为什么不能控制更新/刷新中间过程

我有一个窗体(C#.net)与一个statusLabel,我似乎无法得到在事件处理程序方法中的进程中更新。 我的代码看起来像这样… void Process_Completed(object sender, EventArgs e) { string t = "Process is finished!"; this.Invoke(new StatusLabelUpdator(updateStatusLabel), new object[] { t }); } void Process_Started(object sender, EventArgs e) { string t = "Process has begun"; this.Invoke(new StatusLabelUpdator(updateStatusLabel), new object[] { t }); } private delegate void StatusLabelUpdator(string text); private void updateStatusLabel(string text) { StatusLabel1.Text = text; […]

如何查找中继器页眉或页脚中的控件

我想知道如何在Asp.Net Repeater控件的HeaderTemplate或FooterTemplate中find控件。 我可以在ItemDataBound事件上访问它们,但我想知道如何获取它们(例如,在页眉/页脚中检索input的值)。 注:我发现这个问题后find答案,以便我记得(也许其他人可能会觉得这有用)。

C#获取控件在窗体上的位置

当控件可能位于其他控件(如面板)中时,是否有任何方法可以检索控件在窗体中的位置? 控件的Left和Top属性只给出了它在父控件中的位置,但是如果我的控件在五个嵌套面板中,我需要它在表单上的位置呢? 快速示例: buttonbtnA位于面板pnlB内的坐标(10,10)上。 面板pnlB位于frmCforms的坐标(15,15)上。 我想要btnA在frmC上的位置,这是(25,25)。 我可以得到这个位置吗?

在ItemsControl DataTemplate中设置Canvas属性

我试图绑定到这个ItemsControl : <ItemsControl ItemsSource="{Binding Path=Nodes, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <Canvas /> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> </ItemsControl> 通过使用这个DataTemplate ,我试图单独地将我的Node元素放置在Canvas : <DataTemplate DataType="{x:Type Model:EndNode}"> <Controls:EndNodeControl Canvas.Left="{Binding Path=XPos}" Canvas.Top="{Binding Path=YPos}" /> </DataTemplate> 但是,它没有按预期工作。 我所有的节点元素都在同一个位置上绘制。 有关如何完成此任何build议?

阻止C ++中的类inheritance

最近我的一位朋友问我如何防止C ++中的类inheritance。 他想编辑失败。 我在想这个,find了3个答案。 不知道哪一个是最好的。 1)私人build构者 class CBase { public: static CBase* CreateInstance() { CBase* b1 = new CBase(); return b1; } private: CBase() { } CBase(CBase3) { } CBase& operator=(CBase&) { } }; 2)使用CSealed基类,私有和虚拟inheritance class CSealed { private: CSealed() { } friend class CBase; }; class CBase : virtual CSealed { public: CBase() { […]

如何访问另一个窗体的窗体控件?

我有两个Form类,其中一个有一个ListBox 。 我需要一个ListBox的SelectedIndex属性的setter,我想从第二个Form调用。 目前我正在做以下工作: 表格1 public int MyListBoxSelectedIndex { set { lsbMyList.SelectedIndex = value; } } 表格2 private ControlForm mainForm; // form 1 public AddNewObjForm() { InitializeComponent(); mainForm = new ControlForm(); } public void SomeMethod() { mainForm.MyListBoxSelectedIndex = -1; } 这是做这个最好的方法吗?

专业的基于jQuery的Combobox控件?

有没有专业的基于jQuery库的Combobox控件(带有自我暗示的下拉列表)? 它应该能够处理大型数据集,并有一些皮肤选项。 多列结果列表也会很好。 我正在使用ASP.NET,但如果我不得不为它编写一个包装,这不是一个问题。 我已经在使用第三方控件,但遇到了两个供应商控件之间的一些兼容性问题。 那么,我想摆脱这种依赖。

如何将事件添加到使用VBA在Excel中运行时创build的控件

我想在Excel中使用VBA在运行时添加一个控件和相关的事件,但我不知道如何添加事件。 我尝试了下面的代码,并且在我的用户窗体中正确创build了button,但是应该显示hello消息的关联的单击事件不起作用。 任何build议/更正将受到欢迎。 Dim Butn As CommandButton Set Butn = UserForm1.Controls.Add("Forms.CommandButton.1") With Butn .Name = "CommandButton1" .Caption = "Click me to get the Hello Message" .Width = 100 .Top = 10 End With With ThisWorkbook.VBProject.VBComponents("UserForm1.CommandButton1").CodeModule Line = .CountOfLines .InsertLines Line + 1, "Sub CommandButton1_Click()" .InsertLines Line + 2, "MsgBox ""Hello!""" .InsertLines Line + 3, "End […]

为什么将<%=%>expression式作为服务器控件上的属性值导致编译错误?

这个问题是我在回答另一个问题时注意到的结果。 现在我很好奇,知道为什么<asp:TextBox runat="server" Visible="<%= true %>" />导致编译错误,而不是一个可见的TextBox,因为我会有所期待。 从我迄今为止发现的情况来看, <%= %>expression式并没有被转换成文字控制,正如我一直以为的那样。 但是,当页面呈现时,它会被评估并直接写入HtmlTextWriter。 但显然,parsing器(我不确定这是正确的术语,是将ASP.NET标记翻译为.NET代码的部分)甚至不试图评估<%= %>expression式,当它们被用作属性值用于服务器控件。 它只是用它作为一个string。 我猜是为什么我得到的错误信息: 不能创build一个types'System.Boolean'从它的string表示'<%= true%>的'可见'属性的对象 。 如果我改为使用runat =“server”,并将<%= %>与常规的html标记相结合,如下所示: <input type="button" id="Button1" visible='<%= true %>' /> 然后,parsing器只是在expression式之前和之后分割块,然后将其写入呈现方法中的HtmlTextWriter。 像这样的东西: __w.Write("<input type=\"button\" id=\"Button1\" visible='"); __w.Write(true); __w.Write("' />"); 作为我注意到的最后一件事…当我尝试使用<%# %> + Control.DataBind(),然后我得到我所期望的。 当控件是数据绑定时,它会挂钩使用的expression式,但与<%=%>expression式不同,生成的代码实际上会评估<%# %>expression式的内容。 parsing器结束生成以下内容: [DebuggerNonUserCode] private Button __BuildControldataboundButton() { Button button = new Button(); base.databoundButton […]

Word窗体中的标签换行

我们如何才能获得Windows窗体中标签的自动换行function? 我在面板中放置了一个标签,并添加了一些文本来dynamic标注。 但它超出了面板的长度。 我该如何解决这个问题?