C#winform当某个控件称为该窗体的活动控件时,使控件的背景颜色返生变化
时间: 2024-12-23 17:20:26 浏览: 1
WinForm窗体及其控件的自适应,winform控件随窗口自适应,C#
5星 · 资源好评率100%
在C# WinForms中,当某个控件成为窗体的活动控件时,可以通过处理该控件的`Enter`事件来改变其背景颜色。以下是一个示例代码,展示了如何实现这一功能:
```csharp
using System;
using System.Drawing;
using System.Windows.Forms;
public class MainForm : Form
{
private TextBox textBox1;
private TextBox textBox2;
public MainForm()
{
// 初始化控件
textBox1 = new TextBox();
textBox2 = new TextBox();
// 设置控件的位置和大小
textBox1.Location = new Point(10, 10);
textBox1.Size = new Size(200, 30);
textBox2.Location = new Point(10, 50);
textBox2.Size = new Size(200, 30);
// 添加控件到窗体
this.Controls.Add(textBox1);
this.Controls.Add(textBox2);
// 订阅 Enter 事件
textBox1.Enter += new EventHandler(TextBox_Enter);
textBox2.Enter += new EventHandler(TextBox_Enter);
// 订阅 Leave 事件
textBox1.Leave += new EventHandler(TextBox_Leave);
textBox2.Leave += new EventHandler(TextBox_Leave);
}
private void TextBox_Enter(object sender, EventArgs e)
{
// 当控件获得焦点时,改变背景颜色
TextBox tb = sender as TextBox;
if (tb != null)
{
tb.BackColor = Color.LightBlue; // 设置背景颜色为浅蓝色
}
}
private void TextBox_Leave(object sender, EventArgs e)
{
// 当控件失去焦点时,恢复背景颜色
TextBox tb = sender as TextBox;
if (tb != null)
{
tb.BackColor = Color.White; // 恢复背景颜色为白色
}
}
[STAThread]
public static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
```
在这个示例中,我们创建了两个文本框(`TextBox`)控件,并订阅了它们的`Enter`和`Leave`事件。当文本框获得焦点时,会触发`Enter`事件,将背景颜色设置为浅蓝色;当文本框失去焦点时,会触发`Leave`事件,将背景颜色恢复为白色。
通过这种方式,你可以很容易地实现当某个控件成为活动控件时,其背景颜色发生变化的效果。
阅读全文