gpt4 book ai didi

C# 用户控件

转载 作者:太空宇宙 更新时间:2023-11-03 22:20:38 24 4
gpt4 key购买 nike

如何在父控件中添加控件我正在使用 C# Windows 应用程序

我有一个用户控件,包括组框和复选框组框,控件根据复选框的选中属性启用或禁用现在在其他应用程序中使用此控件时如何在组框中添加控件??这样他们就可以在我的应用程序中启用或禁用

最佳答案

您想通过代码(以编程方式)还是使用设计器添加控件?

如果要将控件添加到组框、面板或其他容器,首先要创建控件:

Label myLabel = new Label();
myLabel.Name = "Name";
myLabel.Text = "Example";
myLabel.Location = new Point(10, 10);

然后,使用容器的 Controls 属性通过 add 方法将其添加到容器中:

myGroupBox.Controls.Add(myLabel);

最后,您可以使用复选框的状态来启用/禁用整个容器(及其所有子控件)。您可能想在某处使用 bool 值,但这是基本思想:

在复选框的 CheckChanged 事件中,执行以下操作:

myGroupBox.Enabled = myCheckBox.Checked;

或相反,取决于您希望启用状态的方式。

编辑:

从您的评论来看,您似乎想在设计时间后向现有用户控件添加其他控件。您需要在公共(public)方法中提供该功能。

public void AddControl(Control controlToAdd)
{
myGroupBox.Controls.Add(controlToAdd);
}

基本上将用户控件容器的 Controls.Add 暴露给与您的用户控件交互的代码。

希望对您有所帮助。

编辑 2:

这是您在评论中发布的代码:

foreach(Control ctrl in this.groupbox1.Controls)
{
if (ctrl != this.checkbox1)
{
ctrl.Enabled = this.checkbox1.Checked;
}
}

这会遍历所有控件,并根据复选框 1 的选中状态启用或禁用除复选框 1 之外的所有控件。

首先,如果 checkbox1 不是 groupbox1 中的子控件,则不需要 if 语句来确保当前控件不是 checkbox1。它永远不会,因为 foreach 只是迭代 groupbox1 的子控件。只要 checkbox1 在 groupbox1 之外,它就会从迭代中被忽略。

其次,如果您只是启用或禁用整个组框,维护起来会更快更容易。其中的所有控件都将继承启用/禁用状态。使用您的控件名称,代码将是:

groupbox1.Enabled = checkbox1.Checked;

希望我能正确理解您的问题。

关于C# 用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3205916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com