我确实为标签编写了边框颜色更改代码,但同样不适用于文本框。
这是代码
label1.Paint += new System.Windows.Forms.PaintEventHandler(this.label1_Paint);
void label1_Paint(object sender, PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics, label1.DisplayRectangle, Color.Red, ButtonBorderStyle.Solid);
}
对于文本框,如何更改边框颜色?
答案 0 :(得分:1)
TextBox
没有Paint
事件处理程序。因此,您无法修改边框颜色等内容。与大多数控件一样,您可以更改BackColor
和ForeColor
,然后输入BackgroundImage
。也许有点创意,并将事物分层给出BorderColor
的外观。
但Panel
确实有一个Paint
事件处理程序。你可以这样做,基本上就像你label
一样,但有一些不同的论点:
private void panel1_Paint(object sender, PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics, panel1.Bounds, Color.Red, ButtonBorderStyle.Solid);
}
答案 1 :(得分:1)
尝试使用UserControl创建自己的textBox。以下是一个可以帮助您入门的示例:
public partial class UserControl1 : UserControl
{
private string text;
public string Text
{
get { return textBox.Text; }
set { textBox.Text = value; }
}
TextBox textBox = new TextBox();
public UserControl1()
{
InitializeComponent();
this.Paint += new PaintEventHandler(UserControl1_Paint);
this.Resize += new EventHandler(UserControl1_Resize);
textBox.Multiline = true;
textBox.BorderStyle = BorderStyle.None;
this.Controls.Add(textBox);
}
private void UserControl1_Resize(object sender, EventArgs e)
{
textBox.Size = new Size(this.Width - 3, this.Height - 2);
textBox.Location = new Point(2, 1);
}
private void UserControl1_Paint(object sender, PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics, this.ClientRectangle, Color.Red, ButtonBorderStyle.Solid);
}
}
答案 2 :(得分:1)
在表单上放置Panel
。设置属性AutoSize = true
和AutoSizeMode = AutoSizeMode.GrowAndShrink
。
将TextBox
放在此Panel
上。设置属性Location = new Point(2, 2)
(选择您自己的坐标)和BorderStyle = BorderStyle.None
。
为此面板创建一个Paint
事件处理程序。绘制所需的边框。