关于自定义控件事件问题!求大神们。

问题描述

写了自定义控件,其中有个ButtonButtonFrist,想问下ButtonFristClick事件如何触发自定义控件ButtonClick事件。写了以下。//1.先定义ButtonClick类publicclassButtonClickEventArgs:EventArgs{privatestringas_PageType;publicstringPageType{get{returnas_PageType;}}publicButtonClickEventArgs(stringPageType){this.as_PageType=PageType;}}//2、定义一个委托publicdelegatevoidButtonClickEventHandler(objectserder,ButtonClickEventArgse);//3、定义一个事件publiceventButtonClickEventHandlerButtonClick;//4、引发事件这“引发事件”怎样写?还有和ButtonFrist的Click事件如何关联,谢谢大神们。

解决方案

解决方案二:
看看msdn的讲解吧很详细https://msdn.microsoft.com/zh-cn/library/edzehd2t%28v=vs.110%29.aspx
解决方案三:
1.在自定义控件中双击一下按钮ButtonFrist生成此按钮的单击事件,在这个按钮的单击事件中引发你写的自定义事件触发事件前先判断ButtonClick不等于nullif(ButtonClick!=null){ButtonClick(this,abc);//abc为ButtonClickEventArgs类的实例需在上面new出来//这里其实是调用了下面说的方法,不同的窗体使用这个自定义控件可以实现不同的方法处理,相当于在这里挖了一个坑.//紧接着下面就可以根据实例中PageType的不同值做相应的处理.//这里其实也体现了多态.如有的时候该值从界面上控件中得到,有时又是通过计算得到.通过不同的方法来实现}2.事件中方法的绑定当自定义控件生成好之后将其添加到窗体中,在窗体的Load事件中通过ButtonClick+=(两下tab)为自定义控件的ButtonClick事件自动生成方法.然后在生成的方法中进行处理,可以在这里为PageType设置不同的值运行时生成方法中的第二个参数实例其实就是自定义窗体中的abc
解决方案四:
自定义按钮控件对当前按钮重绘privatevoidTransparencyButton_Paint(objectsender,PaintEventArgse){this.BackColor=Color.Transparent;//使当前控件透明sm=e.Graphics.SmoothingMode;//设置呈现质量ColorshineColor=Color.Black;Rectanglerect2=newRectangle(0,0,this.Width,this.Height);//设置绘制按钮的矩形区域Rectanglerect1=newRectangle(0,this.Height/2,this.Width,this.Height/2);//设置绘制按钮下半部的矩形区域if(this.CTransparence==0)//如果按钮的透明度为0{CobOblongDown(rect2,e.Graphics);//绘制按扭的背景CobOblong(rect2,e.Graphics,this.ShineColor);//绘制按扭的背景}else{if(this.CTransparence>0)//如果按钮的透明度不为0{CobOblongDown(rect2,e.Graphics);//绘制按扭的背景for(inti=0;i<CTransparence;i++){CobOblong(rect2,e.Graphics,this.ShineColor);//绘制按扭的背景颜色}//codego.net/}}inttem_n=(int)(this.CTransparence/3);//获取一个值,用于设置下半部按钮的颜色深度if(tem_n==0)//如果为0CobAjar(rect1,e.Graphics,this.ShineColor);//绘制按扭的下半部背景else{if(tem_n>0)//如果不为0{for(inti=0;i<tem_n;i++)//加深下部按钮的颜色{CobAjar(rect1,e.Graphics,this.ShineColor);//绘制按扭的下半部背景颜色}}}CobOblong(rect2,e.Graphics,this.UndersideShine);//设置下半部按钮的光泽度if(pub_ButtonClick==false)//判断按钮是否按下(false为按下){CobOblongDown(rect2,e.Graphics);//绘制按扭的背景}if(this.NText.Length>0)//如果Text属性中有值ProtractText(e.Graphics);//绘制透明按钮的文本信息}

时间: 2024-12-01 10:12:26

关于自定义控件事件问题!求大神们。的相关文章

WINFORM中用DSOFramer打开word,如何监听Ctrl+P按键事件?求大神解答!

问题描述 WINFORM中用DSOFramer打开word,如何监听Ctrl+P按键事件?求大神解答!在WINFORM窗体中,我可以监听到CTRL+P,但是一把鼠标移到DSOFramer的控件中,点击一下,再按CTRL+P就会直接弹出打印的对话框来,而没有触发任何事件.请教大神,如何监听DSOFramer的控件中的CTRL+P事件.谢谢! 解决方案 解决方案二:顶起,请各位大神不吝赐教!解决方案三:顶起,这个DSOFramer控件有这些事件,请大家帮我看一下,哪一个事件可以监听键盘按键的事件,我

ichart 点击事件-跪求大神告知...ichart 鼠标点击图片的小点获取值X轴的日期

问题描述 跪求大神告知...ichart 鼠标点击图片的小点获取值X轴的日期 鼠标点击图片上的点,怎样取到鼠标点击所对应的日期(http://img.ask.csdn.net/upload/201602/25/1456365880_797186.png)

窗体-C#中如何添加FormClose事件 按了关闭,程序没有停止调试,求大神指导

问题描述 C#中如何添加FormClose事件 按了关闭,程序没有停止调试,求大神指导 刚开始学习C#窗体 做登录界面 在登录按钮设置了 连接一个成功提示,但是进去了按关闭的时候,窗体并没有停止运行,一直在调试,求该如何解决,希望大神们帮帮忙 private void button1_Click(object sender, EventArgs e) { if(textBox1.Text=="admin"&&textBox2.Text=="123")

javascript-js事件代理问题 求大神啊 在线等!!!!谢谢大神,新年快乐!

问题描述 js事件代理问题 求大神啊 在线等!!!!谢谢大神,新年快乐! js事件代理 比如我的HTML布局是这样的 <div id="all"> <div id="share"> <div id="comment"> <div id="commentList"> </div> ...(N个标签) </div> </div> </div&

android-Android 写事件监听 真机调试出现闪退(我是新手,刚学Android,求大神指教)

问题描述 Android 写事件监听 真机调试出现闪退(我是新手,刚学Android,求大神指教) 这是我的程序: ImageView imageView = (ImageView) findViewById(R.id.login_image); imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); 这是错误日志: 03-08 18:10:43

点击事件-求大神帮我看下Fragment的问题

问题描述 求大神帮我看下Fragment的问题 问题是这样的我在一个FragmentA中点击listview的一个item跳到FragmentB中(replace方法),在B中的布局中点击仍然可以相应FragmentA中listview中的点击事件是什么情况?急急急 解决方案 哥们你这描述的太模糊了,贴代码上来看看. 解决方案二: 找到了,是布局的问题正在改中,谢谢哈

事件- 急!!求大神 帮帮忙 bandedGridView行定位

问题描述 急!!求大神 帮帮忙 bandedGridView行定位 双击选中的行 编辑完后调用bandedGridView1_RowUpdated这个事件 操作成功后 重新加载数据后 将选中行的FocusedRowHandle 重新赋给bandedGridView1 但是不管用 加载后选中的是默认的第一行 代码 private int focusedRowHandle = -1; private void loadData() { gridControl1.DataSource = ds.Tab

imageview-关于ImageView快速改变背景图片无法响应点击事件的问题,求大神。。。。。

问题描述 关于ImageView快速改变背景图片无法响应点击事件的问题,求大神..... 我的ImageView是ListView里面的一个控件,我现在快速改变ImageView的背景图片(一秒十次) 此时点击事件就会没有效果(改变我使用的是通知适配器发生改变),请问这是什么现象,有大神告诉我一下吗,或者有其他的解决这种方法的办法吗? 就是ListView里面的一个ImageView当我点击的时候快速改变背景图 解决方案 未在快速改变ImageView的背景图片前,点击是可以用的吗? 如果可以,

js问题-js 移除select下拉框里的onchange 事件如何实现,求大神解答

问题描述 js 移除select下拉框里的onchange 事件如何实现,求大神解答 js 移除select下拉框里的onchange 事件如何实现,求大神解答 解决方案 为什么非得要去掉,函数里不写任何代码不就得了了.. 解决方案二: 不写不就行了吗??具体的说下.... 解决方案三: 我select下拉框里有个onchange事件来实现联动功能,但是我在某些情况下不希望发生联动,所以想特定的时候不执行onchange事件 解决方案四: $('#btn').unbind("click"

webview-WebView 加载的页面,当触发网页中类似toast的事件时,toast里的内容模糊,求大神解

问题描述 WebView 加载的页面,当触发网页中类似toast的事件时,toast里的内容模糊,求大神解 详情是:在手机的webview载入如下网址后,点击Add to cart就会出现上图的情况http://m.aliexpress.com/item/32329058540.html?sk=vzNZvnIai%3A&cpt=1439022323417&productId=32329058540&aff_platform=aaf&aff_trace_key=3094989