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