首页新闻找找看学习计划

如何解决自定义控件上内容的单击事件问题

0
[待解决问题]

 

c#winform项目,我需要处理自定义控件的单击事件,但是点击自定义控件上的文字,无法触发自定义控件的单击事件,如何解决。?

上面的方框是一个自定义控件。

 

 

 以下是动态添加的代码

//根据plgoods的宽度计算一行显示几个商品
int showCountOneRow = plGoods.Size.Width / 150 - 1;
int curRowTotalWidth = 0;
int rowIndex = 0;
int colIndex = 0;
for (int i = 0; i < res.result.Count; i++)
{
if (curRowTotalWidth > plGoods.Size.Width)
{
rowIndex++;
curRowTotalWidth = 0;
colIndex = 0;
}

JToken goodsInfo = res.result[i];
UcBlock ucBlock = new UcBlock(goodsInfo["goods_name"].ToString(), "¥" + goodsInfo["price"]);
ucBlock.Tag = goodsInfo;
ucBlock.Location = new Point(10 + colIndex * 140, 30 + rowIndex * 100);
ucBlock.BorderStyle = BorderStyle.FixedSingle;
ucBlock.MouseClick += UcBlockOnMouseClick;
plGoods.Controls.Add(ucBlock);

curRowTotalWidth += 200;
colIndex++;
//ucBlock1.Tag = goodsInfo;
}

 

 

我加了自定义控件的单击事件了,但是如果点在文字上,无法触发自定义控件的单击事件,如何解决?

我目前的解决办法是给自定义控件上所有文字都加单击事件处理,单击文字时触发自定义控件的单击事件。

感觉有点麻烦,有没有其他解决办法?

 

public partial class UcBlock : UserControl
{
public UcBlock(string goodsName, string priceInfo)
{
InitializeComponent();

this.lblName.Text = goodsName;
this.lblPrice.Text = priceInfo;
}

private void lblName_MouseClick(object sender, MouseEventArgs e)
{
this.OnMouseClick(e);
}

private void lblPrice_MouseClick(object sender, MouseEventArgs e)
{
this.OnMouseClick(e);
}
}

一级码农VIP的主页 一级码农VIP | 菜鸟二级 | 园豆:206
提问于:2018-04-02 15:59
< >
分享
所有回答(1)
0

只能这样解决。

一级码农VIP | 园豆:206 (菜鸟二级) | 2018-04-19 21:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册