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

如图所示:

相关推荐
字节跳动的猫5 小时前
LikeShop 搜索功能优化二开:中文分词、商品权重排序与搜索热词管理
android·java·中文分词
计算机毕设定制辅导-无忧学长5 小时前
《基于微信小程序的校园文化活动报名与管理系统》
java·spring boot·微信小程序·uniapp·校园文化活动报名与管理小程序
靠沿5 小时前
MySQL数据库基础——索引的使用&alter、explain关键字
java·数据库·mysql
9624565 小时前
餐饮 SaaS 优惠券系统架构演进(七)营销定价引擎设计:活动、会员价、优惠券、买赠如何在同一 PriceQuote 中可解释地组合
java·运维·算法
码匠许师傅5 小时前
【C++三方组件】redis-plus-plus:现代 Redis C++ 客户端
java·c++·redis
ab1237685 小时前
MQTT笔记
java·笔记·mqtt·学习
恋猫de小郭5 小时前
Flitz ,一个把 Flutter 玩成热插拔 Preview 的有趣项目,不错的思路
android·前端·flutter
阿华田5125 小时前
Java 类加载冲突实战:解决 is not an instance of
c#·linq
二宝哥5 小时前
【问题】代理转发到后端使用request.getRequestURL()地址没有端口
java
霸道流氓气质5 小时前
HashiCorp Vault 与云 KMS 入门实战:动态密钥、SecretLeaseContainer 与 Java 集成完整指南
java·开发语言