关于C# panel 添加lable问题 -- 明确X和Y 位置错误

具体情况是 panel初始化后,通过点击按钮添加发现后,与具体存放位置不符,遂检查传入的X和Y坐标 发现没有问题后,再次检查其TOP和Height也没出错。

csharp 复制代码
  Label lbl = new Label();
  lbl.Text = labelCount.ToString();
  lbl.AutoSize = false;
  lbl.Size = new Size(30, 22);
  lbl.Name = "lbl" + labelCount.ToString();
  int intX = 25 + int.Parse((labelCount - 1).ToString()) % 5 * 105;
  int intY = 25 + int.Parse((labelCount - 1).ToString()) / 5 * 35;
  lbl.Location = new Point(intX, intY);

最后发现是相对位置出现问题,lbl.Location存放位置 是根据你当前的panel左上角定位,也就说

如果你移动了panel,lbl存放的位置就会发生变化,所以解决方法就是 减去相对位移就可以解决了

csharp 复制代码
// 关键:加上当前滚动偏移
scrollPos = pl.AutoScrollPosition;
actualLocation = new Point(intX + scrollPos.X, intY + scrollPos.Y);
lbl.Location = actualLocation;
pl.Controls.Add(lbl);

如图所示:

相关推荐
dhashdoia1 小时前
GPT-5.5 代码开发实战:Codex与Browser Use深度集成与星链4SAPI优化方案
java·数据库·人工智能·gpt·架构
xuhaoyu_cpp_java1 小时前
SpringMVC学习(二)
java·经验分享·笔记·学习·spring
火星papa2 小时前
C# 实现平滑流畅的进度条ProgressBar
c#·进度条·progressbar·平滑流畅
TAN-90°-3 小时前
Java 3——getter和setter super()关键字
java·开发语言
wand codemonkey3 小时前
(二十七)Maven(依赖)【安装】+【项目结构】
java·开发语言·maven
linda公馆3 小时前
Maven项目报错:java:错误:不支持发行版本 5
java·开发语言·maven
学习中.........3 小时前
常见设计模式
java·设计模式
敖正炀4 小时前
JDBC 到 ORM:Spring Data JDBC、JPA 与 MyBatis 的定位与选型
java
Henray20244 小时前
最低公共祖先 LCA
java·面试