public class button : Button
{ protected override void OnMouseMove(MouseEventArgs e)
{
this.BackColor = System.Drawing.Color.Red;
}
}
在OnMouseLeave事件里面,把背景颜色还原就可以了吧
{ protected override void OnMouseMove(MouseEventArgs e)
{
this.BackColor = System.Drawing.Color.Red;
}
}
在OnMouseLeave事件里面,把背景颜色还原就可以了吧
onmouseover
个人觉得,没有必要这样做,这样反而会增加自己的工作强度(不管能不能实现你的功能)。
yuewenbin(学习NET) 的做法可以的。
我也这样想的啊
一般都是这种方法啊,楼主的说法好像不太行呢
在下终于研究成功!!!把孔件放进 panl在作一个控件即可 只是,好像微软的工具有问题,当把做好的控件放到tabPage,在拿下来就可显示.负责不行.怪了
haohaohaohao()
在上面说:你的意思是在设计面板上就让你的按钮响应你的鼠标消息???我现在知道什么叫异想天开,白日做梦了!!!
唯一的办法,自己完全开发一个编译器,设计与调试实时结合!!================开玩笑!这叫异想天开?我已经成功,不信你时时!
这里由你想要得答案
所以,我说的那种控件当然可以做出了
我是参考了这个以后,才把我做的控件的一些bug去掉的
大家可以看看关键是OnLoadhttp://www.codeproject.com/cs/miscctrl/yatoolbox/toolbox_src.zip要搞研究的朋友,可以先自己试着做,再看看这个源代码
写一个控件:代码自动生成就行。
一定要 using System.ComponentModel; 程序的引用中要添 system.Design.dll 文件
[Designer(typeof(RedButtonDesigner))] //这是调用设计时类(不要忘写)
public class RedButton : System.Windows.Forms.Button再编写个这个设计时 类
public class RedButtonDesigner : System.Windows.Forms.Design.ControlDesigner // 继承ControlDesigner
{
//下面两个方法是在设计时调用的。
protected override void OnMouseEnter()
{
this.Control.BackColor =Color.Red ;
}
protected override void OnMouseLeave()
{
this.Control.BackColor =Color.White ;
}
}
注意改变设计时类代码后,要重新编译才有用。。
设计时很有用,一般编报表特别好。。
可以的话,看看 SharpDevelop 的。
{
return true;
} protected override void OnMouseEnter()
{
this.Control.BackColor = Color.Red;
}
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;
using System.Windows.Forms.Design;
using System.ComponentModel.Design;namespace ButtonDesignerDemo
{
/// <summary>
/// MyButton 的摘要说明。
/// </summary>
[Designer(typeof(MyButton.MyButtonDesigner))]
public class MyButton : System.Windows.Forms.Button
{
internal class MyButtonDesigner : ControlDesigner
{
private DesignerVerbCollection verbs = null; private void OnVerbRed(object sender, EventArgs e)
{
Control.BackColor = Color.Red;
} private void OnVerbGreen(object sender, EventArgs e)
{
Control.BackColor = Color.Green;
} private void OnVerbBlue(object sender, EventArgs e)
{
Control.BackColor = Color.Blue;
} public override DesignerVerbCollection Verbs
{
get
{
if (verbs == null)
{
verbs = new DesignerVerbCollection();
verbs.Add(
new DesignerVerb(
"Red",
new EventHandler(OnVerbRed)));
verbs.Add(
new DesignerVerb(
"Blue",
new EventHandler(OnVerbBlue)));
verbs.Add(
new DesignerVerb(
"Green",
new EventHandler(OnVerbGreen)));
}
return verbs;
}
} protected override void OnMouseEnter()
{
this.Control.BackColor = Color.Pink;
} protected override void OnMouseLeave()
{
this.Control.BackColor = Color.Yellow;
} }
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null; public MyButton()
{
// 该调用是 Windows.Forms 窗体设计器所必需的。
InitializeComponent(); // TODO: 在 InitializeComponent 调用后添加任何初始化 } /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} #region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
#endregion
}
}