czlyzhj 发表于 2019-4-13 15:50:23

想要做一个类似于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]
查看完整版本: 想要做一个类似于Altium Design或者Multisim的软件