gpt4 book ai didi

c# - 标签在 OnDraw 事件中动态创建并可从 Visual Studio Designer 编辑

转载 作者:行者123 更新时间:2023-11-30 14:44:54 32 4
gpt4 key购买 nike

关于 UserControl,如何创建标签的动态数字(来自 Visual Studio 可编辑属性的数字),其文本可以通过 Visual Studio“设计”窗口进行编辑?

编辑 澄清一下,我希望用户在运行时更改标签的文本,而只是希望开发人员在他们的项目中使用该控件能够更改 Visual Studio Designer 中标签的文本,只需单击标签并更改文本即可。 (不是源代码本身)。

就我所拥有的而言,当我在 OnDraw 事件的覆盖范围内添加动态标签时,可以看到标签但不能在设计窗口中进行编辑。

为了更清楚地说明我的问题,我提供了一个示例情况来演示问题。具体来说,我在 Draw 事件中创建了一定数量的标签,如下面的代码所示。标签的数量及其位置将取决于要绘制的标签数量,这些标签是通过控件中的可公开访问的属性提供的。

    public void CalledFromDrawMethod (string strElement, UserControl ucParentControl, Point pLoc)
{
var lblChild = new Label();
lblChild.Text = strElement;
lblChild.Location = pLoc;
ucParentControl.Controls.Add(lblChild);// Add the label
}

下面是 Visual Studio 中“设计”窗口 View 中窗体中的用户控件。一张图是绘制6个标签时的用户控件,第二张图是绘制3个标签时的用户控件。同样,此标签数量由控件中的可公开访问的属性指定

enter image description here enter image description here

在图片描述的具体情况下,我希望能够单击其中一个“DEFAULT”标签并更改标签的“Text”属性。

Visual Studio 版本: VS 2013(我也尝试使用 VS 15 和 17,但得到了相同的结果)GUI 框架:Winforms

最佳答案

您可以使用行为服务。 Here是MS关于它的文章。由于实现起来有多么困难,我建议妥协 StringCollectionEditor

关于c# - 标签在 OnDraw 事件中动态创建并可从 Visual Studio Designer 编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56810635/

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