已经实现在tabpage上动态生成picturebox图标,现在需要通过右键上下文菜单的"删除"项来删除该图标,怎么编程实现删除操作?并把结果保存到数据库(图标记录有数据库表单包含的对应信息)?

解决方案 »

  1.   

    写一个右键菜单显示的方法,动态生成的时候就指定pic的右键
     private void Form3_Load(object sender, EventArgs e)
            {            PictureBox pic1 = new PictureBox();
                this.panel1.Controls.Add(pic1);
                pic1.MouseUp += new MouseEventHandler(pic_MouseUp);
                
            }        void pic_MouseUp(object sender, MouseEventArgs e)
            {
                this.contextMenuStrip1.Show();
                this.contextMenuStrip1.Top = e.Y;
                this.contextMenuStrip1.Left = e.X;
                string name = ((PictureBox)sender).Name;
                //知道了name,就可以操纵pic了,然后把他从panel中删除
                this.panel1.Controls.Remove((PictureBox)sender);
                
            }
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;namespace WindowsApplication21
    {
        
        public partial class Form3 : Form
        {
            private PictureBox pic = null;
            public Form3()
            {
                InitializeComponent();
            }        private void Form3_Load(object sender, EventArgs e)
            {            PictureBox pic1 = new PictureBox();
                this.panel1.Controls.Add(pic1);
                pic1.MouseUp += new MouseEventHandler(pic_MouseUp);
                
            }        void pic_MouseUp(object sender, MouseEventArgs e)
            {
                this.contextMenuStrip1.Show();
                this.contextMenuStrip1.Top = e.Y;
                this.contextMenuStrip1.Left = e.X;
                this.pic = (PictureBox)sender;
                //知道了name,就可以操纵pic了,然后把他从panel中删除
               // this.panel1.Controls.Remove((PictureBox)sender);
                
            }
           
            void btn1_MouseHover(object sender, EventArgs e)
            {
                //鼠标在上面就显示
            }        private void ssToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if (pic != null)
                {
                    this.panel1.Controls.Remove(pic);
                }
                else
                {
                    MessageBox.Show("err");
                }
            }    }
    }