
新增一个专门的"鼠标监听器"类,或者直接在你现有的类中实现"鼠标监听器".具体做法是在类声明语句中implements MouseListener.如下:
public class MouseAdp implements MouseListener{
public MouseAdp(){}
public void mouseClicked(MouseEvent e) {
/**鼠标点击事件(包括按下和d起两个动作)处理方法.**/
System.out.println("你点了我!")
}
public void mouseEntered(MouseEvent e) {
/**鼠标移到组件上方法时事件处理方法.**/}
public void mouseExited(MouseEvent e) {
/**鼠标移开组件时事件处理方法.**/}
public void mousePressed(MouseEvent e) {
/**鼠标在组件上按下(但没d起)时事件处理方法.**/}
public void mouseReleased(MouseEvent e) {
/**鼠标在组件上d起事件处理方法.**/}
}
然后在你的JLabel实例上,作用这个监听器,如:
JLabel lab = new JLabel("点我")
lab.addMouseListener(new MouseAdp())
using System
using System.Collections.Generic
using System.Linq
using System.Web
using System.Web.UI
using System.Web.UI.WebControls
using System.ComponentModel
namespace CustomControls
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:ClickLabel runat=server></{0}:ClickLabel>")]
public class ClickLabel : WebControl, IPostBackEventHandler
{
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public string Text
{
get
{
String s = (String)ViewState["Text"]
return ((s == null) ? "[" + this.ID + "]" : s)
}
set
{
ViewState["Text"] = value
}
}
protected override void RenderContents(HtmlTextWriter output)
{
output.Write(Text)
}
public event EventHandler Click
public ClickLabel()
{
}
protected void OnClick()
{
if (Click != null)
{
Click(this, new EventArgs())
}
}
//When postback is caused by this control, raise the event
void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)
{
OnClick()
}
//Add onclick attribute to cause a postback when Label is clicked
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
base.AddAttributesToRender(writer)
writer.AddAttribute(HtmlTextWriterAttribute.Onclick, Page.ClientScript.GetPostBackEventReference(this, "OnClick"))
}
}
}
我帮你写个,将以上代码编译成一个.DLL文件,就有一个带有单击事件的Label控件了
编译方法:
打开studio 随便新建一个项目,注意是项目,就会自动生成一个Default.aspx,和Default.aspx.cs两个文件,将以上代码复盖Default.aspx.cs的代码,然后可以点击项目菜单栏属性,可以修改程序集名和命名空间的名字例如:之后点击生成下的生成选择就会在你的BIN文件里生成一个dll
将它复制到你项目文件里就可以引用了
<%@ Register Assembly="ClickLabel" Namespace="CustomControls" TagPrefix="fa" %>
调用控件
<fa:ClickLabel Font-Size="15px" ID="ClickLabel5" OnClick="label_Click" runat="server" Text="确 定" />
后台代码
public void label_Click(object sender, EventArgs e)
{
}
UILabel *l = [[UILabel alloc] initWithFrame:CGRectMake(60, 0, listV.frame.size.width - 60, listV.frame.size.height)]
l.userInteractionEnabled=YES
UITapGestureRecognizer *labelTapGestureRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(labelTouchUpInside:)]
[l addGestureRecognizer:labelTapGestureRecognizer]
-(void) labelTouchUpInside:(UITapGestureRecognizer *)recognizer{
UILabel *label=(UILabel*)recognizer.view
NSLog(@"%@被点击了",label.text)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)