在c#winforms-Newbie中更改文本框的边框颜色
我确实为标签的边框颜色更改编写了代码,但同样的代码对textbox不起作用 这是密码在c#winforms-Newbie中更改文本框的边框颜色,c#,winforms,C#,Winforms,我确实为标签的边框颜色更改编写了代码,但同样的代码对textbox不起作用 这是密码 label1.Paint += new System.Windows.Forms.PaintEventHandler(this.label1_Paint); void label1_Paint(object sender, PaintEventArgs e) { ControlPaint.DrawBorder(e.Graphics, label1.Di
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);
}
对于文本框,如何更改边框颜色?A
textbox
没有Paint
事件处理程序。因此,无法修改边框颜色之类的内容。与大多数控件一样,您可以更改背景色
和前景色
,并且可以输入背景图像
。也许你可以在这方面有点创意,把东西分层,让它看起来像一个BorderColor
但是,面板
确实有一个绘制
事件处理程序。基本上,您可以使用与label
相同的方法来执行此操作,但使用一些不同的参数:
private void panel1_Paint(object sender, PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics, panel1.Bounds, Color.Red, ButtonBorderStyle.Solid);
}
TextBox
没有Paint
事件处理程序。因此,无法修改边框颜色之类的内容。与大多数控件一样,您可以更改背景色
和前景色
,并且可以输入背景图像
。也许你可以在这方面有点创意,把东西分层,让它看起来像一个BorderColor
但是,面板
确实有一个绘制
事件处理程序。基本上,您可以使用与label
相同的方法来执行此操作,但使用一些不同的参数:
private void panel1_Paint(object sender, PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics, panel1.Bounds, Color.Red, ButtonBorderStyle.Solid);
}
尝试使用UserControl创建自己的文本框。以下是一个示例,可以帮助您开始:
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);
}
}
尝试使用UserControl创建自己的文本框。以下是一个示例,可以帮助您开始:
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);
}
}
在表单上放置一个
面板
。设置属性AutoSize=true
和AutoSizeMode=AutoSizeMode.growthandshrink
将您的文本框
放在此面板上
。设置属性Location=new Point(2,2)
(选择自己的坐标)和BorderStyle=BorderStyle.None
为此面板创建
Paint
事件处理程序。绘制所需的边框。在表单上放置一个面板。设置属性AutoSize=true
和AutoSizeMode=AutoSizeMode.growthandshrink
将您的文本框
放在此面板上
。设置属性Location=new Point(2,2)
(选择自己的坐标)和BorderStyle=BorderStyle.None
为此面板创建Paint
事件处理程序。画出所需的边框。在重复问题中,是您要找的。奇怪的是,以4票获得认可的答案完全是误导!在重复问题中,这是您要查找的内容。奇怪的是,以4票获得认可的答案完全是误导!