WinForms中点击UserControl内按钮动态生成Label的实现方法咨询
实现代码
将以下代码直接放入button1_Click方法内部即可,相关参数可根据需求自行调整:
// 自定义配置区,按需修改即可 string customText = "你的自定义标签内容"; Point customPosition = new Point(20, 30); // 坐标为相对于当前UserControl的左上角偏移 string customTooltip = "鼠标悬浮时显示的提示内容"; // 初始化Label控件 Label generatedLabel = new Label { Text = customText, Location = customPosition, AutoSize = true // 自动适配文本长度,避免内容被截断 }; // 绑定Tooltip提示 ToolTip labelTooltip = new ToolTip(); labelTooltip.SetToolTip(generatedLabel, customTooltip); // 将Label添加到UserControl的可见控件集合中 this.Controls.Add(generatedLabel);
可选优化:避免多次生成的标签重叠
如果需要每次点击生成的标签自动错开位置,可以在UserControl类的全局范围声明一个偏移计数器:
// 写在UserControl类内部,方法之外 private int _verticalOffset = 30;
之后把点击事件里的位置配置改为:
Point customPosition = new Point(20, _verticalOffset); // 生成Label之后新增一行,累加偏移量 _verticalOffset += 25;
即可实现所有生成的标签纵向依次排列,不会重叠。
内容的提问来源于stack exchange,提问作者Gazdini9991
相关产品推荐
相关产品推荐

