- 积分
- 5
- 在线时间
- 2 小时
- 主题
- 2
- 注册时间
- 2018-8-19
- 帖子
- 3
- 最后登录
- 2022-2-13
- 帖子
- 3
- 软币
- 95
- 在线时间
- 2 小时
- 注册时间
- 2018-8-19
|
当然,只要很少很少的一部分功能。初学者,请教问题如下:
不论是Altium Design还是Multisim,将元件调入图纸都是 从库里将一个图标拖到图纸空间中,要多少个就可以拖多少个,而且,每个元件都可以响应鼠标、键盘事件实现拖动、翻转等。这个怎么实现呢?每个元件都是一个对象,然后要针对每个对象写代码才能响应各类事件,可是这个代码得要自动生成?还是用什么技术来实现?
picBox[0, 0] = new PictureBox();
picBox[0, 0].Leave += new EventHandler(picBox00_Leave); //失去焦点事件。
picBox[0, 0] = new PictureBox();
picBox[0, 0].Size = new System.Drawing.Size(10, 10);
picBox[0, 0].Location = new System.Drawing.Point(10, 100);
picBox[0, 0].SizeMode = PictureBoxSizeMode.AutoSize;
this.Controls.Add(picBox[0, 0]);
picBox[0, 0].Image = Image.FromFile(@"pict\meter\spower.jpg");
picBox[0, 0].Visible = true;
picBox[0, 0].BringToFront();
picBox[0, 0].Click += new System.EventHandler(this.picBox00_Click);
picBox[0, 0].PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.picBox00_PreviewKeyDown);
picBox[0, 0].Leave += new System.EventHandler(picBox00_Leave); //失去焦点事件。
picBox[0, 0].MouseDown += new System.Windows.Forms.MouseEventHandler(this.picBox00_MouseDown);
picBox[0, 0].MouseMove += new System.Windows.Forms.MouseEventHandler(this.picBox00_MouseMove);
picBox[0, 0].MouseUp += new System.Windows.Forms.MouseEventHandler(this.picBox00_MouseUp);
最后的几行就是增加事件,但只能是在下面写上picBox00_MouseDown等这样的函数,也就是只能增加一个对象。即便前面用 picBox[0, 0] = new PictureBox(); 生成多个元件,但实际上是不能用的,只有最后一个生成的能用。
private void picBox00_MouseDown(object sender, MouseEventArgs e)
{
this.picBox[0, 0].Focus();
picBox[0, 0].BringToFront();
MoveFlag[0, 0] = true;
xPos[0, 0] = e.X;
yPos[0, 0] = e.Y;
}
我想这类软件肯定不是这么做的,请提供思路,非常感谢。
|
|