我有一个图片框控件,点击它后,另一个PictureBox出现在特定位置。 I.o.w它没有从工具箱中添加。
PictureBox picOneFaceUpA = new PictureBox();
picOneFaceUpA.Location = new Point(42, 202);
picOneFaceUpA.Width = 90;
picOneFaceUpA.Height = 120;
picOneFaceUpA.Image = Image.FromFile("../../Resources/" + picFaceUpToBeMoved[0] + ".png");
Controls.Add(picOneFaceUpA);
picOneFaceUpA.BringToFront();
如何将MouseClick事件处理程序添加到此控件?
由于
答案 0 :(得分:9)
只需使用+=
运算符添加事件处理程序:
picOneFaceUpA.MouseClick += new MouseEventHandler(your_event_handler);
或者:
picOneFaceUpA.MouseClick += new MouseEventHandler((o, a) => code here);
答案 1 :(得分:1)
WinForms订阅活动的最佳方式 - 在设计器中选择您的控件,转到“属性”窗口并选择“事件”选项卡。然后选择您想要的任何事件(单击,鼠标单击等),然后双击事件名称右侧的空格。将生成事件处理程序并订阅事件。
如果要手动订阅事件,请将事件处理程序添加到事件
picOneFaceUpA.MouseClick += PicOneFaceUpA_MouseClick;
在您编写Tab
后点击+=
将生成处理程序。或者您可以手动编写:
void PicOneFaceUpA_MouseClick(object sender, MouseEventArgs e)
{
// handle click event
if (e.Button == MouseButtons.Left)
MessageBox.Show("Left button clicked");
}
BTW 如果您不需要有关点击事件的其他信息(例如,点击了哪个按钮),请改用Click
事件。它默认处理左键单击:
picOneFaceUpA.Click += PicOneFaceUpA_Click;
和处理程序:
void PicOneFaceUpA_Click(object sender, EventArgs e)
{
// show another picture box
}
答案 2 :(得分:1)
如果您输入picOneFaceUpA.Click +=
然后点击标签,它会自动为您完成并实现事件处理程序:
private void button2_Click(object sender, EventArgs e)
{
PictureBox picOneFaceUpA= new PictureBox();
picOneFaceUpA.Click += new EventHandler(picOneFaceUpA_Click);
}
void picOneFaceUpA_Click(object sender, EventArgs e)
{
throw new NotImplementedException();
}
答案 3 :(得分:1)
您似乎知道如何添加动态控件,然后您应该这样做
this.picOneFaceUpA.MouseClick += new MouseEventHandler(yourMethodName); //hook
并删除活动
this.picOneFaceUpA.MouseClick -= yourMethodName; //unhook
该方法应声明如下:
private void yourMethodName(object sender, MouseEventArgs e)
{
//your code here
}