public partial class Form1 : Form { public Form1() { InitializeComponent(); this.button1.Enter += button_Enter; this.button1.Leave += button_Leave; this.button2.Enter += button_Enter; this.button2.Leave += button_Leave; //继续写其他的 } void button_Leave(object sender, EventArgs e) { (sender as Button).BackColor = SystemColors.Control; } void button_Enter(object sender, EventArgs e) { (sender as Button).BackColor = Color.Red; } }
//给每个按钮全部订阅一样的点击事件 button1.Click += button_Click; button2.Click += button_Click; button3.Click += button_Click; private void button_Click(object sender, EventArgs e) { Button[] btnArr = { button1, button2,button3 }; Button btn = sender as Button;//当前按钮 btn.BackgroundImage = Resource1.backImg1;//将当前按钮背景设为backImg1,Resource1是资源文件类名 //剩下的除当前按钮外,全部设另一个背景 Array.ForEach(btnArr.Where(p => p != btn).ToArray(), p => p.BackgroundImage = Resource1.backImg2); }
本文介绍了一个使用C#实现的窗体应用程序案例,通过为多个按钮注册Enter、Leave及Click事件,实现了按钮背景颜色变化及点击时背景图片切换的功能。文章展示了如何通过对象类型转换来统一处理不同按钮的事件响应。
1134

被折叠的 条评论
为什么被折叠?



