我与斗争如何删除顶部和文本框的Windows窗体项目的双方边界
我希望TextBox看起来像这样:
我的文本框代码:
this.textBox1.Anchor = System.Windows.Forms.AnchorStyles.None;
this.textBox1.Location = new System.Drawing.Point(85, 101);
this.textBox1.Name = "textBox1";
this.textBox1.PlaceholderText = "Login";
this.textBox1.Size = new System.Drawing.Size(213, 23);
this.textBox1.TabIndex = 0;
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
你能帮我一下吗?
2条答案
按热度按时间lfapxunr1#
首先,快速肮脏的解决方案
创建一个带有重复下划线字符的
Label
,并将其定位在登录TextBox
的底部:编辑:
第二种更灵活的解决方案
重新配置
Form.OnPaint()
方法,并使用Graphics.DrawLine()
方法在登录名TextBox
下绘制一条自定义线:请注意,
TextBox.PlaceholderText
属性需要.NET 5+。登录表单的屏幕截图是:不像微软的页面那么优雅,但它可以完成工作。
xytpbqjk2#
试试这个简单的UserControl。它只包含一个标准的TextBox控件,并添加了一些属性来定义新的行为。
你当然可以添加其他的东西,你去(例如,添加一些图形元素,这是很简单的)
构建此UserControl:
TextBoxInput
(目前)Width
设置为150
Padding
设置为(3, 10, 3, 1)
和BorderStyle = None
AutoScaleMode = Dpi
EditControl
并将其停靠到Top
BackColor
和ForeColor
属性以匹配TextBox的属性namespace
)自定义设计器。这只是用来删除一些不相关的属性和分配给控件的默认文本(因此显示提示横幅)。
要在.NET 5+应用程序中使用设计器,请通过NuGetPackage Manager安装Microsoft.WinForms.Designer.SDK支持。
它是这样工作的: