c# - 单击事件未在 Windows 窗体用户控件上注册
问题描述
我想创建一个 C# Windows 窗体应用程序,其中有一个流布局面板,其中填充了用户控件元素。每次单击元素时,某些标签必须显示其属性。但是,单击事件未注册。我在 show_preview() 方法上添加了一些断点,它从不调用该方法。Load 事件正在调用 show_preview 但我想根据单击的用户控件更改标签。
这是表格:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
load_plots();
}
private void load_plots()
{
ArrayList items = new ArrayList();
for (int i = 0;i<100;i++)
{
PlotItem plot = new PlotItem();
plot.Place = "Ilion";
plot.Price = i * 1000;
plot.Space = i * 10;
plot.Title = "Plot No." + i;
plot.Width = flowLayoutPanel1.Width - 30;
plot.Click += new EventHandler(this.show_preview);
items.Add(plot);
flowLayoutPanel1.Controls.Add(plot);
}
}
private void show_preview(object sender, EventArgs e)
{
PlotItem clicked = sender as PlotItem;
plot_title.Text = "Hello";
plot_size.Text = clicked.Space.ToString();
plot_value.Text = clicked.Price.ToString();
}
这是情节项目:
public partial class PlotItem : UserControl
{
public PlotItem()
{
InitializeComponent();
}
#region Properties
[Category("Plot Object")]
private String _place;
public String Place
{
get { return _place; }
set { _place = value; }
}
[Category("Plot Object")]
private double _price;
public double Price
{
get { return _price; }
set { _price = value; label_price.Text = value.ToString() + "€"; }
}
[Category("Plot Object")]
private String _use;
public String Use
{
get { return _use; }
set { _use = value; }
}
[Category("Plot Object")]
private double _space;
public double Space
{
get { return _space; }
set { _space = value; label_size.Text = value.ToString() + "m2"; }
}
[Category("Plot Object")]
private String _title;
public String Title
{
get { return _title; }
set { _title = value; label_title.Text = value; }
}
[Category("Plot Object")]
private Image _icon;
public Image Icon
{
get { return _icon; }
set { _icon = value; plot_preview.Image = value; }
}
#endregion
private void panel1_MouseEnter(object sender, EventArgs e)
{
this.BackColor = Color.Silver;
}
private void panel1_MouseLeave(object sender, EventArgs e)
{
this.BackColor = System.Drawing.SystemColors.Control;
}
谢谢你的时间。
解决方案
推荐阅读
- kubernetes - 指定每个节点的确切 pod 数量,然后执行映像版本升级
- debugging - Aurelia:从 Chrome 调试控制台调用函数
- angular - 同一组件中的角度5重置图表js栏
- php - 阻止:在 HTTPS 中加载 Laravel CSS 和 JS 时出现混合内容错误
- c# - 修复 VSTO 插件的零 GUID
- android - 你如何在 Kotlin 中注释 Pair 参数?
- twilio - Twilio:设置拨出电话小部件的电话号码
- facebook - 从 Facebook 的 MessengerExtensions 使用 getContext 时出现错误
- c# - 实现异步代码的自动重启
- android - android架构组件+改造