none
C# 制作表情控件 出错 RRS feed

  • 问题

  • 制作表情控件:

    namespace Example13.ImageList

     public class ImageListPopupEventArgs : EventArgs
        {
            public Image img;
            public ImageListPopupEventArgs(Image imgaes)
            {
                img = imgaes;
            }
        }

     public delegate void ImageListPopupEventHandler(object sender, ImageListPopupEventArgs ilpea);


        public partial class Component1 : Panel
        {
            public Component1()
            {
                InitializeComponent();
            }

            public Component1(IContainer container)
            {
                container.Add(this);

                InitializeComponent();
            }

            public event ImageListPopupEventHandler ItemClick;

            PictureBox pic;

            private Image img;

            public Image Img
            {
                get { return img; }
                set { img = value; }
            }

            protected override void OnPaint(PaintEventArgs e)
            {
                base.OnPaint(e);

                for (int i = 0; i < 2; i++)
                {
                    pic = new PictureBox();
                    pic.Name = "pic" + i;
                    pic.Location = new Point(2 + (22 * i), 2);
                    pic.Width = 20;
                    pic.Height = 20;
                    pic.BackColor = Color.RoyalBlue;
                    pic.SizeMode = PictureBoxSizeMode.CenterImage;
                    pic.Image = Resources.bq_002;
                    pic.Click += new EventHandler(pic_Click);
                    pic.MouseHover += new EventHandler(pic_MouseHover);
                    pic.MouseLeave += new EventHandler(pic_MouseLeave);
                    this.Controls.Add(pic);
                }
            }

            void pic_MouseLeave(object sender, EventArgs e)
            {
                Control p_control = sender as Control;
                p_control.Size = new Size(20, 20);
            }

            void pic_MouseHover(object sender, EventArgs e)
            {
                Control p_control = sender as Control;
                p_control.Size = new Size(50, 50);
            }

           public  void pic_Click(object sender, EventArgs e)
            {
                Form1 f1 = new Form1();
                PictureBox p_control = sender as PictureBox;
                //if (ItemClick != null)
                //{
                    ItemClick(p_control, new ImageListPopupEventArgs(p_control.Image));
               // }
            }

        }
    }

    From窗体

    private Component1 aa; //= new Component1();
            public Form1()
            {
                InitializeComponent();
                aa = new Component1();
                aa.ItemClick += new ImageListPopupEventHandler(aa_ItemClick);
            }

            void aa_ItemClick(object sender, ImageListPopupEventArgs ilpea)
            {
                pictureBox1.Image = ilpea.img;
            }

    出错:

    2013年4月29日 3:48

全部回复