Winforms:更改分辨率时,ComboBox高度不会调整大小
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Winforms:更改分辨率时,ComboBox高度不会调整大小相关的知识,希望对你有一定的参考价值。
我有一个基本的组合框形式。与其他控件(按钮,标签等)相比,组合框的高度在更改分辨率时不会改变。
public partial class Form1 : Form
{
string result;
string fontInformation;
private bool scaleFactorKnown = false;
private SizeF scaleFactor;
public Form1()
{
SizeChanged += Form1_SizeChanged;
InitializeComponent();
label1.Location = new Point(12, 36);
label1.Size = new Size(100, 21);
label1.Scale(scaleFactor);
//
// textBox1
//
textBox1.Location = new Point(133, 33);
textBox1.Size = new Size(100, 21);
textBox1.Scale(scaleFactor);
//
// comboBox1
//
comboBox1.Location = new Point(250, 33);
comboBox1.Size = new Size(100, 21);
comboBox1.Scale(scaleFactor);
// button1
//
button1.Location = new Point(365, 32);
button1.Size = new Size(100, 21);
button1.Scale(scaleFactor);
//
// radioButton1
//
radioButton1.Location = new Point(480, 32);
radioButton1.Size = new Size(100, 21);
radioButton1.Scale(scaleFactor);
//
// checkBox1
//
checkBox1.Location = new Point(586, 33);
checkBox1.Size = new Size(100, 21);
checkBox1.Scale(scaleFactor);
//
// textBox2
//
textBox2.Location = new Point(26, 102);
textBox2.Size = new Size(660, 250);
textBox2.Scale(scaleFactor);
}
private void Form1_SizeChanged(object sender, EventArgs e)
{
if (!scaleFactorKnown)
{
scaleFactor = AutoScaleFactor;
scaleFactorKnown = true;
}
Size controlSize = new Size((int)(comboBox1.Width * scaleFactor.Width),
(int)(comboBox1.Height * scaleFactor.Height)); //use for sizing
//set bounds
comboBox1.Bounds = new Rectangle(comboBox1.Location, controlSize);
}
}
我已经尝试使用Scale()方法来缩放所有其他控件,它适用于除combobox之外的其他控件。我也尝试手动更改绑定但它不起作用。我也试过改变锚和码头。
- 预期结果:Combobox高度(150%)= 42
- 实际结果:组合箱高度(150%)= 28
非常感谢有关如何解决此问题的任何帮助。
答案
你必须将IntegralHeight
的ComboBox
属性设置为false
:
comboBox1.Location = new Point(250, 33);
comboBox1.Size = new Size(100, 21);
comboBox1.Scale(scaleFactor);
comboBox1.IntegralHeight = false;
以上是关于Winforms:更改分辨率时,ComboBox高度不会调整大小的主要内容,如果未能解决你的问题,请参考以下文章
winforms DataGridViewComboBoxColumn,设置 DataPropertyName 时 ComboBox 不可点击
有没有一种简单的方法可以在 WinForms 中实现 Checked Combobox [重复]
WinForms ComboBox DropDown 和 Autocomplete 窗口都出现