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);
}
}
只能这样解决。