文本框中斜体字符的底部被截断
Italic characters' bottom cut off in textBox
我有一个以 TableLayoutPanel 为行的 TableLayoutPanel。每个内部 tableLayoutPanels 都有两行。在第二行是 textBox
,显示 URL italic 样式。但是,url 的高度被截断了,像 'g' 这样的字符会丢失一些像素,并且根本不会显示“_”。
所以我尝试更改文本框的高度 - 没有更改 - 尝试更改内部 tableLayoutPanel 的行大小 - 没有更改 - 尝试更改内部 tableLayoutPanel 的大小本身 - 没有更改...
具有讽刺意味的是,同一行中还有另一个带有斜体文本的标签,它绑定到每个锚点的行底部,但即使我在 textBox 上使用锚点,它仍然会被截断。
相关textBox代码:
textBox2.Font = new System.Drawing.Font("Arial", 9.75F,
System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point,
((byte)(0)));
textBox2.Location = new System.Drawing.Point(3, 21);
textBox2.Size = new System.Drawing.Size(454, 23);
内部tlp代码:
tableLayoutPanel2.RowStyles.Add(new
System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent,
80F));
tableLayoutPanel2.RowStyles.Add(new
System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute,
27F));
tableLayoutPanel2.Size = new System.Drawing.Size(607, 44);
是否可以显示斜体下划线:(原8OG8vit_-Wg)
编辑:将文本框放在其外部组框和主窗体上。
System.Windows.Forms.TextBox textBox2 = new System.Windows.Forms.TextBox();
textBox2.BorderStyle = System.Windows.Forms.BorderStyle.None;
textBox2.Cursor = System.Windows.Forms.Cursors.IBeam;
textBox2.Font = new System.Drawing.Font("Arial", 9.75F,
System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point,
((byte)(0)));
textBox2.Location = new System.Drawing.Point(100, 290);
textBox2.Name = "textBox2";
textBox2.ReadOnly = true;
textBox2.Size = new System.Drawing.Size(454, 15);
textBox2.Text = "8OG8vit_-Wg";
textBox2.BackColor = System.Drawing.Color.Coral;
groupBox1.Controls.Add(textBox2); // this.Controls.Add(textBox2);
结果如下: and
我只能称之为 bug。
TextBox.Multiline = false
和 BorderStyle.None
的组合似乎使 winforms 过度减小了客户端大小,并且会切断下行和下划线。
解决方法是放弃其中之一;对于您想要的外观,只需制作 TextBox.Multiline = true
一切都是应该的..:
我找到了针对此错误的以下解决方案:
TextBox.MinimumSize = TextBox.Size;
我有一个以 TableLayoutPanel 为行的 TableLayoutPanel。每个内部 tableLayoutPanels 都有两行。在第二行是 textBox
,显示 URL italic 样式。但是,url 的高度被截断了,像 'g' 这样的字符会丢失一些像素,并且根本不会显示“_”。
所以我尝试更改文本框的高度 - 没有更改 - 尝试更改内部 tableLayoutPanel 的行大小 - 没有更改 - 尝试更改内部 tableLayoutPanel 的大小本身 - 没有更改...
具有讽刺意味的是,同一行中还有另一个带有斜体文本的标签,它绑定到每个锚点的行底部,但即使我在 textBox 上使用锚点,它仍然会被截断。
相关textBox代码:
textBox2.Font = new System.Drawing.Font("Arial", 9.75F,
System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point,
((byte)(0)));
textBox2.Location = new System.Drawing.Point(3, 21);
textBox2.Size = new System.Drawing.Size(454, 23);
内部tlp代码:
tableLayoutPanel2.RowStyles.Add(new
System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent,
80F));
tableLayoutPanel2.RowStyles.Add(new
System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute,
27F));
tableLayoutPanel2.Size = new System.Drawing.Size(607, 44);
是否可以显示斜体下划线:(原8OG8vit_-Wg)
编辑:将文本框放在其外部组框和主窗体上。
System.Windows.Forms.TextBox textBox2 = new System.Windows.Forms.TextBox();
textBox2.BorderStyle = System.Windows.Forms.BorderStyle.None;
textBox2.Cursor = System.Windows.Forms.Cursors.IBeam;
textBox2.Font = new System.Drawing.Font("Arial", 9.75F,
System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point,
((byte)(0)));
textBox2.Location = new System.Drawing.Point(100, 290);
textBox2.Name = "textBox2";
textBox2.ReadOnly = true;
textBox2.Size = new System.Drawing.Size(454, 15);
textBox2.Text = "8OG8vit_-Wg";
textBox2.BackColor = System.Drawing.Color.Coral;
groupBox1.Controls.Add(textBox2); // this.Controls.Add(textBox2);
结果如下:
我只能称之为 bug。
TextBox.Multiline = false
和 BorderStyle.None
的组合似乎使 winforms 过度减小了客户端大小,并且会切断下行和下划线。
解决方法是放弃其中之一;对于您想要的外观,只需制作 TextBox.Multiline = true
一切都是应该的..:
我找到了针对此错误的以下解决方案:
TextBox.MinimumSize = TextBox.Size;