0

オブジェクトのクラス (picturebox) を作成してから、それをメイン コードと呼んで、別の picturebox のメニューから他の picturebox を作成しようとしています。それらをパネルに固定して、図や組織図を描きたい。

ありがとう

クラス _createpicture { public int p; public int p_2;

        PictureBox pictureBox2 = new PictureBox();
        Panel panel1 = new Panel();
        Color color = new Color();

        Pen pen = new Pen(Color.Black, 1);
        Bitmap flag = new Bitmap(40, 30);
        ContextMenu cm = new ContextMenu();
        public int x;
        public int y;



       public _createpicture () {

           pictureBox2.Size = new Size(40, 30);
           pictureBox2.MouseClick += new MouseEventHandler(pic_mouseclick);
           pictureBox2.MouseMove += new MouseEventHandler(pic_mouseMouve);

           MenuItem item_1 = cm.MenuItems.Add("Définir");
           MenuItem item_2 = cm.MenuItems.Add("Supprimer");
           item_1.Click += new EventHandler(item_1_Click);
           item_2.Click += new EventHandler(item_2_Click);


    }


       private void item_1_Click(object sender, EventArgs e)
       {
           var myForm = new Form2();
           myForm.Show();

       }

       private void item_2_Click(object sender, EventArgs e)
       {
           pictureBox2.Dispose();
       }

        public void _create_picture(PictureBox pictureBox2, int p, int p_2, Color color)
        {


        }

        public void _add(Panel panel1, int p, int p_2, Color color)
        {

            panel1.Controls.Add(pictureBox2);
            pictureBox2.BackColor = color;
            Graphics flagGraphics = Graphics.FromImage(flag);
            flagGraphics.DrawRectangle(pen, p, p_2, 20, 10);
            flagGraphics.FillRectangle(Brushes.Red, p, p_2, 40, 30);
            pictureBox2.Image = flag;
            panel1.Controls.Add(pictureBox2);


        }

        public void pic_mouseclick(object sender, MouseEventArgs e) 
        {


            if (e.Button == MouseButtons.Right)
            {
                pictureBox2.ContextMenu = cm;

            }
            if (e.Button == MouseButtons.Left)
            {

                x = e.X;
                y = e.Y;

            }

        }

        public void pic_mouseMouve(object sender, MouseEventArgs e)
        {

          if (e.Button == MouseButtons.Left)
            {

                pictureBox2.Left += (e.X - x);
                pictureBox2.Top += (e.Y - y);

            }

}}

パブリック部分クラス Form1 : Form { _createpicture _createpicture10 = new _createpicture(); . . . .

 if (radioButton2.Checked) {
                _createpicture10._create_picture(picturebox10, e.X, e.Y, Color.Red); _createpicture10._add(this.panel1, e.X, e.Y, Color.Red);
            }

}
4

0 に答える 0