关于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);

如图所示:

相关推荐
小手cool13 分钟前
JSON.parseObject 返回 List 时不能强制转换的解决方案
java·json·list
凯酱1 小时前
MyBatis 中 OGNL 的使用:从入门到实战
java·tomcat·mybatis
吴声子夜歌7 小时前
Java面试——算法
java·算法·面试
evans在进步8 小时前
LeetCode 64:最小路径和——Java 原地动态规划详解
java·leetcode·动态规划
weixin_403810138 小时前
AI智能体写安卓自动化脚本教程:Cursor/Trae+CLI 实战,自然语言生成代码
android·人工智能·自动化·跨境电商·安卓自动化脚本·多账户运营
凤山老林9 小时前
Spring Boot 3.x AOT 编译实战:从原理、踩坑到生产落地
java·spring boot·后端
博傅9 小时前
Spring 核心原理
java·后端·spring
yurenpai(27届找实习中)9 小时前
从零读懂 AI 智能客服(一):模块职责与 SSE 聊天链路(后端架构)
java·人工智能·架构·langchain4j
陈皮波比茶10 小时前
Swagger
java
呆呆小孩10 小时前
零基础学 MySQL(上):从建库建表到增删改查,一篇搭好 SQL 基础
android·sql·mysql