Tag: 控制

如何获取WinForm控件的IsChecked属性?

找不到一个看似简单的问题的答案。 我需要遍历表单上的控件,如果一个控件是一个CheckBox,并且被检查,那么应该完成某些事情。 像这样的东西 foreach (Control c in this.Controls) { if (c is CheckBox) { if (c.IsChecked == true) // do something } } 但我无法访问IsChecked属性。 错误是’System.Windows.Forms.Control’不包含’IsChecked’的定义,并且没有扩展方法’IsChecked’接受类型’System.Windows.Forms.Control’的第一个参数可以找到(你错过了吗?) using指令或程序集引用?) 我怎样才能到达这家酒店? 非常感谢提前! 编辑 好吧,回答所有问题 – 我尝试过铸造,但它不起作用。

动态创建控件

我想知道c#winform中是否可行。 按下按钮时创建控件并将其放在给定位置。 我认为这是可能的 private TextBox txtBox = new TextBox(); private Button btnAdd = new Button(); private ListBox lstBox = new ListBox(); private CheckBox chkBox = new CheckBox(); private Label lblCount = new Label(); 但问题在于按下按钮时会创建相同的名称控件。如何避免这种情况 什么da ……..我写了,并没有exception我期待它因为控件已经包含btnAdd而不是很多按钮创建你想要的许多。 访问它们将是问题,但它将通过@drachenstern方法正确解决? private void button1_Click_1(object sender, EventArgs e) { Button btnAdd = new Button(); btnAdd.BackColor = Color.Gray; btnAdd.Text = “Add”; […]

禁用父面板,同时启用子面板

我有一个WinForms应用程序,我有一个庞大的Panel。 在Panel内部是一堆东西,包括第二个小面板。 当某个事件发生时,我希望大型面板变为Enabled = false,我仍然希望将小面板设置为Enabled。 我可以这样做吗? 在我禁用大型面板之后,我试图重新启用这个小面板,但没有任何工作。 或者,我怎样才能使它变得如此微小的面板“在顶部”,而不是“内部”的巨大面板? 我疯狂猜测并尝试: tinyPanel.Parent = null; 和tinyPanel.Parent = this; 但是,这只会让tinyPanel消失。

C#在禁用的文本框(表单)上显示工具提示

我试图在鼠标hover期间获取工具提示以显示在禁用的文本框上。 我知道,因为控件被禁用,以下操作无效: private void textBox5_MouseHover(object sender, EventArgs e) { // My tooltip display code here } 如何让鼠标hover在禁用的控件上显示工具提示? 非常感谢

如何在转发器控制中查找控件?

我想启用或禁用’ParticipateBtn’,具体取决于EventStartDate。 我收到此错误:对象引用未设置为对象的实例。 开始日期: <asp:Button runat="server" ID="ParticipateBtn" CommandName="Participate" CommandArgument='’ Text=”Participate” />   背后的代码…… //Code behind protected string CheckEnability(DateTime eventstartdate) { if (eventstartdate.Date < DateTime.Now.Date) { Button btn = (Button)Repeater1.FindControl("ParticipateBtn"); btn.Enabled = false; } return eventstartdate.ToString("yyyy-MM-dd"); }

更改inheritance的.net控件上的属性的DefaultValue

在.net中,我有一个inheritance的控件: public CustomComboBox : ComboBox 我只是想将DropDownStyle属性的默认值更改为另一个值(ComboBoxStyle.DropDownList),除了在基类(ComboBoxStyle.DropDown)中指定的默认值。 有人可能认为你可以添加构造函数: public CustomComboBox() { this.DropDownStyle = ComboBoxStyle.DropDownList; } 但是,这种方法会使Visual Studio Designer感到困惑。 在Visual Studio中设计自定义控件时,如果为DropDownStyle选择ComboBoxStyle.DropDown,则认为您选择的属性仍然是默认值(来自基本ComboBox类中的[DevaultValue()]),因此它不会将customComboBox.DropDownStyle = ComboBoxStyle.DropDown行添加到Designer.cs文件中。 令人困惑的是,您发现一旦运行屏幕就不会按预期运行。 那么你不能覆盖DropDownStyle属性,因为它不是虚拟的,但你可以这样做: [DefaultValue(typeof(ComboBoxStyle), “DropDownList”)] public new ComboBoxStyle DropDownStyle { set { base.DropDownStyle = value; } get { return base.DropDownStyle; } } 但是你会因使用“新”声明的细微差别而遇到麻烦。 我已经尝试了它并且似乎没有正常工作,因为视觉工作室设计师也对此方法感到困惑并强制ComboBoxStyle.DropDown(基类的默认值)。 有没有其他方法可以做到这一点? 对于冗长的问题很抱歉,很难详细描述。

如何在c#中创建可点击的不规则形状区域

我有一个像心脏或任何随机形状的不规则形状的图片。 我可以在视觉上使它透明,但我需要让它只在形状区域上可点击。 我听说我应该使用“Region”,但我无法弄清楚如何。 我试图搜索所有非空,透明或空的像素并使用它们创建一个点数组,但我无法创建/重塑当前控制区域。 我正在尝试制作一个自定义控件,你可以选择一个按钮或图片,它们是不规则形状并且彼此靠近。 这是我正在处理的事情: 正如您在图片中看到的,有8个不同的部分(假设右侧和左侧组合)。 正如您所看到的,它们彼此接近,其中一些甚至适合其他人之间的空白区域。 我的目标是,例如,如果我点击Pectorals(图中的红色区域),它将变为彩色版本,并运行一堆其他代码。 问题是,默认情况下,当我们使用PictureBox添加任何Picture时,它将从该边界开始围绕该图片创建一个Rectangle 。 因此,如果我将两张图片(如图所示)放在一起,则一个空区域会阻止我点击另一张图片。 由于这个问题,它也引发了错误对象的ClickEvent 。 我正在尝试设置“提升事件区域”,我假设我们将Graphic Region称为图像存在的位置。 我可以通过循环收集像素的位置,该循环确定该图片的哪个坐标具有“颜色”(意味着它是图片的一部分,我想要点击的区域)但是我不能用该数据限制该区域。 我想要实现的一个例子: https : //www.youtube.com/watch?v = K_JzL4kzCoE 做这个的最好方式是什么?

可以将DirectX表面绘制到WPF控件吗?

DirectX可用于绘制WPF控件上的一组点(或WPF可以使用的东西)。 我需要在WPF中实现一个控件,该控件应该以30 Hz的更新率绘制16k点,现在我的解决方案已经用完了。 这个想法来自这个问题的评论。 任何帮助将非常感激。

我需要在处理后删除控件吗?

.NET 2 // dynamic textbox adding myTextBox = new TextBox(); this.Controls.Add(myTextBox); // … some code, finally // dynamic textbox removing myTextBox.Dispose(); // this.Controls.Remove(myTextBox); ?? is this needed 小解释 当然,如果我处理一个控件我将不再看到它,但无论如何,在父控件集合中仍将是“Nothing”? 我也需要像MSDN推荐的那样从控件中删除所有处理程序吗?

Windows 7中的代码中的停止/启动服务

我正在尝试编写一个应用程序和服务来监视一组给定的服务,并且a)确保它们正在运行,并且b)根据某些标准,根据需要重新启动它们。 我一直遇到拒绝访问错误。 如果我只是遍历系统上的进程,找到我想要的那样: foreach (ServiceController sc in ServiceController.GetServices()) { if(sc.ServiceName == “MyServiceName”) { sc.Stop(); sc.WaitForStatus(ServiceControllerStatus.Stopped, new TimeSpan(0, 0, 60)); sc.Start(); } } 我明白了: InnerException: System.InvalidOperationException Message=”Cannot open My Service service on computer ‘.’.” Source=”System.ServiceProcess” StackTrace: at System.ServiceProcess.ServiceController.GetServiceHandle(Int32 desiredAccess) at System.ServiceProcess.ServiceController.Stop() at lib.ListServices() in D:\lib.cs:line 552 at lib.Init() in D:\lib.cs:line 56 InnerException: System.ComponentModel.Win32Exception Message=”Access is denied” […]