(原创)WinForm中莫名其妙的小BUG——ComboBox 尺寸高度问题
一、前言
使用WinForm很久了,多多少少遇到一些小BUG。
这些小BUG影响并不严重,而且只要稍微设置一下就能正常使用,所以微软也一直没有修复这些小BUG。
本来并不足以写篇文章去记录,但是昨天遇到了一个新的小BUG,让我提起了兴趣去记录。
本篇文章只是记录BUG现象,及解决办法,并不会分析BUG产生的原理。
相信看完的你,一定会有所收获!
本文地址:https://www.cnblogs.com/lesliexin/p/15527747.html
二、BUG现象描述
在窗体的构造函数中,获取到的ComboBox高度不是设计器中显示的高度,而是默认的尺寸高度。
1,设计器
可以看到Size的高度是29。

2,代码
在构造函数中获取ComboBox的尺寸。

3,运行
可以看到,获取到的ComboBox的宽度是正确的,但是高度却不是29,而是20。

三、BUG触发条件
1,未手动修改ComboxBox控件尺寸。
2,ComboxBox的父窗体尺寸不是默认的“宋体,9pt”。(上面获取到的高度20,就是在默认的“宋体,9pt”下,ComboBox的高度)
3,在构造函数中获取ComboxBox尺寸。
四、解决办法
破坏上面的触发条件的任意一环即可。
如:手动重新设置ComboBox的尺寸;设置父窗体尺寸为“宋体,9pt”;不在构造函数中获取,而在Load事件中获取ComboBox尺寸等。
五、结束语
像这种触发条件比较苛刻的小BUG,遇到的人应该不多,而且解决起来也很简单,所以微软也重来没修复过。
我之所以会遇到这个问题,是因为在为某个软件进行高DPI适配时,需要获取ComboBox控件的高度,用来定位和作整体尺寸计算,但是每次运行后就会发现尺寸和位置不对,找了好久,才找到是ComboxBox的原因。
所以便通过一些测试,找出了这个Bug的触发条件,以及解决办法,以供有人在遇到相同的问题时能找到解决办法。毕竟我是在网上搜了好久都没找到,才不得不自己去排查解决的。
(原创)WinForm中莫名其妙的小BUG——ComboBox 尺寸高度问题的更多相关文章
- (原创)WinForm中莫名其妙的小BUG——RichTextBox自动选择字词问题
一.前言 使用WinForm很久了,多多少少会遇到一些小BUG. 这些小BUG影响并不严重,而且稍微设置一下就能正常使用,而且微软一直也没有修复这些小BUG. 写本系列文章,是为了记录一下这些无伤大雅 ...
- C# WinForm中的一些小问题
前言 记一些C#窗体应用编程中的小问题. DataGridView 设置Selected = true后实际选中行标依旧是第一行. 通常通过this.dataGridView1.Rows[i].Sel ...
- 记 移动端页面中莫名其妙的渲染BUG
问题描述: 在一个很简单的测试页面中 简单的两块布局,上下两块均没有单独设置字体大小,都用body继承的大小,即40px.我们现在给第一个块.fl 加上浮动 float:left; 另外一个块处于正 ...
- JS 中offset 的小bug 与解决方案。
一.发现bug准备工作,先定义一个div,然后给div加上样式 效果图如图所示: 二.编写正常的代码,同时给div加上一个id 会发现div图会向左缩进...直至消失. 三.添加代码bo ...
- c#(winform)中自定义ListItem类方便ComboBox添加Item项
1.定义ListItem类 public class ListItem { private string _key = string.Empty; private string _value = st ...
- winform中ComboBox实现text和value,使显示和值分开,重写text和value属性
winform的ComboBox中只能赋值text,显示和值是一样的,很多时候不能满足根本需要,熟悉B/S开发的coder最常用的就是text和value分开的,而且web下DropDownList本 ...
- C# WinForm 中ComboBox数据绑定的问题 (转)
来自:http://blog.sina.com.cn/s/blog_5fb9e26301013wga.html C# WinForm 中ComboBox数据绑定的问题 怎样让WinForm中的Comb ...
- [C#]WinForm 中 comboBox控件之数据绑定
[C#]WinForm 中 comboBox控件之数据绑定 一.IList 现在我们直接创建一个List集合,然后绑定 IList<string> list = new List<s ...
- 在winform中,禁止combobox随着鼠标一起滑动!
在winform中,如果form上或者是控件上有一个combobox控件,当你选择这个控件,当你鼠标移动其他地方,滑动鼠标时,这时combobox的选择值就会随之鼠标一起变化,如果你不想让comboB ...
随机推荐
- 送你一个Python 数据排序的好方法
摘要:学习 Pandas排序方法是开始或练习使用 Python进行基本数据分析的好方法.最常见的数据分析是使用电子表格.SQL或pandas 完成的.使用 Pandas 的一大优点是它可以处理大量数据 ...
- Xftp乱码问题
Xftp出现乱码 修改编码
- 启动Jenkins后无法访问,如何排错
做IT工作,使用各种工具的时候,遇到错误都是一堆英文,对于英语不好的人,看到报错可能就会心烦,我刚开始就是这种状态.后来,遇到问题,首先复制报错信息到百度上搜索,没有人请教的时候,你不能坐等问题自己解 ...
- 分享一个设计logo的网站
https://editor.freelogodesign.org/
- AT2368-[AGC013B]Hamiltonish Path【构造】
正题 题目链接:https://www.luogu.com.cn/problem/AT2368 题目大意 给出 \(n\) 个点 \(m\) 条边的一张无向图,然后求一条路径满足 路径长度不小于二. ...
- P2350-[HAOI2012]外星人【线性筛】
正题 题目链接:https://www.luogu.com.cn/problem/P2350 题目大意 给出\(N\)质因数分解之后的结果,求每次\(N=\varphi(N)\),多少次后\(N=1\ ...
- selenium--常用判断
获取页面 title 的方法可以直接用 driver.title 获取到,然后也可以把获取到的结果用做断言.1.首先导入 expected_conditions 模块:from selenium.we ...
- Linux学习笔记整理-1
内核检测常用的7个命令: fdisk命令:用于检查磁盘使用情况,以及可以对磁盘进行分区. #fdisk -l 列出系统内所有能找到的设备的分区 #fdisk /dev/sda 列出sda磁盘的分区情况 ...
- Python代码阅读(第12篇):初始化二维数组
Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码 本篇阅读的代码实现了二维数组的初始化功能,根据给定的宽高初始化二维数组. 本篇阅读的代码片段来自于30-seconds-o ...
- 5.2 MySQL备份工具
物理备份: 冷备份:cp tar 逻辑备份: mysqldump mysqldump:是MySQL的客户端命令,通过mysql协议连接至mysql服务器进行备份 -A, --all-databases ...