2017-06-14 6 views
0

Ich habe ein TableLayoutPanel mit TableLayoutPanels als Zeilen. Jedes der inneren TableLayoutPanels hat zwei Zeilen. In der zweiten Zeile ist ein textBox eine URL in Kursiv Stil. Allerdings ist die URL in ihrer Höhe abgeschnitten, Zeichen wie 'g' verpassen einige Pixel und '_' wird überhaupt nicht angezeigt. SoKursive Zeichen unten abgeschnitten in TextBox

Ich versuchte, die textBox‘Höhe zu ändern - keine Änderung - versucht, die Zeilengröße des inneren Table zu ändern - keine Änderung - versucht, die innere Tablegröße selbst zu ändern - keine Änderung ...

Ironischer Es gibt ein anderes Label mit kursivem Text in der gleichen Zeile, es ist an die untere Zeile der Zeile pro Anker gebunden, aber selbst wenn ich einen Anker für die textBox verwende, ist es immer noch abgeschnitten.

Der relevante textBox Code:

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

Der innere tlp Code:

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

Ist es irgendwie möglich italic Unterstrichen anzuzeigen: (ursprünglich 8OG8vit_-Wg)

"8OG8vit_-Wg" cutoff

EDIT: Platziert das Textfeld in der äußeren Gruppenbox und auch in der Hauptmaske.

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

Hier sind die Ergebnisse: groupbox und mainform

+1

Versuchen Sie, die Backcolor sicher sein die Textbox effektive Größe ist tatsächlich groß genug, um zu setzen. AlsO: Überprüfen Sie alle Padding- und/oder Margin-Werte! – TaW

+0

Netter Tipp, BackColor macht es einfacher. Die Einstellung unterschiedlicher TextBox-Größen zeigt leider, dass sich nichts ändert. Auch die textBox wurde verschoben, kein visueller Unterschied. Beim Durchsehen der Elemente wurden im Code keine Padding- oder Margin-Werte festgelegt. Gibt es Standardeinstellungen, die ich beachten muss? – Kartoffel

+0

_Es gibt Standard-Einsen_ ja, normalerweise 3 Pixel. wird das gleiche Textfeld abgeschnitten, wenn es direkt auf dem Formular platziert wird? – TaW

Antwort

1

ich nicht helfen kann, aber nennen dies einen Bug.

Die Kombination von TextBox.Multiline = false und BorderStyle.None scheint Winforms die Client-Größenreduktionen zu übertreiben und wird Unterlängen und Unterstreichungen abgeschnitten.

Die Problemumgehung besteht darin, einen von ihnen aufzugeben; für den Look wollen Sie einfach die TextBox.Multiline = true machen und alles ist wie es sein sollte ..:

enter image description here

Verwandte Themen