请问怎么用C# WinForm开发类似微软的按钮控件,鼠标移到上面突出效果,并显示颜色,离开恢复正常。

如题所述

最简单的办法,修改Program.cs代码如下:
using System;
using System.Windows.Forms;

namespace RR
{
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form f = new Form();
Button btn = new Button();
btn.MouseMove += (e, v) => { btn.BackColor = System.Drawing.Color.Green; };
btn.MouseLeave += (e, v) => { btn.BackColor = System.Drawing.Color.White; };
f.Controls.Add(btn);
Application.Run(f);
}
}
}

如果想多次使用,则是一下步骤
首先建议类文件,代码如下:

using System.Windows.Forms;

namespace RR
{
public class MyButton:Button
{
public MyButton()
{
MouseMove += (e, v) => { BackColor = System.Drawing.Color.Green; };
MouseLeave += (e, v) => { BackColor = System.Drawing.Color.White; };
}
}
}

再新建一个窗体,编译一次以后,再工具箱里找到这个叫MyButton的控件拖到窗体上,或者直接在Program.cs里将代码修改如下:

using System;
using System.Windows.Forms;

namespace RR
{
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form f = new Form();
f.Controls.Add(new MyButton());
Application.Run(f);
}
}
}
run一下,就能看到效果!
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-10-07
private void button1_MouseMove(object sender, MouseEventArgs e)
{
this.button1.BackColor = System.Drawing.Color.Red;
}

private void button1_MouseLeave(object sender, EventArgs e)
{
this.button1.BackColor = this.BackColor;
}
突出效果可以尝试一下做一个背景图片试试。本回答被网友采纳
第2个回答  2012-02-01
按钮是有“鼠标进入”和“鼠标移出”事件的,VS有中文提示,可以找到这两个事件。
在第一个事件中将按钮设置成你想要的颜色样式,后一事件中改回原来的样式就OK
第3个回答  2012-02-01
1.silverlight是个不错的选择
2.纯程序的话捕捉鼠标位置获取控件对象判断相同位置改变控件的背景或者边框样式 这些都是控件的属性在属性栏里可以看到的都能够调用出来并赋予值 但是某些属性值是只读的或者是枚举这个要注意
第4个回答  2012-02-02
楼上说的都挺好
相似回答