none
關於 C# picturebox之問題 RRS feed

  • 問題

  • 原本我的 box[x,y].Image  是套用到 split2.png
    今天我想當 這些box[x,y] 被點擊時,就會換成blue.gif  

    但問題是當執行時根本不會跑到 box_Click那段  請問是出了哪些問題 ??

                                                                                                              

    {

        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }


            PictureBox[,] box = new PictureBox[18, 18];
            private void Form1_Load(object sender, EventArgs e)
            {
                mode(1);


            }

            public void mode(int a)
            {
                 //----------------------------------------------------------------------------//

                    for (int x = 0; x < 18; x++)
                    {
                            for (int y = 0; y < 18; y++)
                            {
                                box[x,y] = new System.Windows.Forms.PictureBox();
                                box[x,y].Name = "box" + ( 18*x + y + 1) ;
                                box[x,y].Location = new Point(100 + x * 40, y * 40);
                                box[x,y].SizeMode = PictureBoxSizeMode.CenterImage;
                                box[x,y].Size = new System.Drawing.Size(40, 40);
                                box[x,y].Image = Image.FromFile(@"C:\Users\ken\Desktop\c#-game\resource\background\test\object\" + "split2" + ".png");
                                this.Controls.Add(box[x, y]);
                                box[x, y].BringToFront();
                                box[x, y].Click += new System.EventHandler(box_Click);

                            }

                    }

            }

            public void box_Click(object sender, EventArgs e)
             {
                 PictureBox box1 = sender as PictureBox;
                 box1.Image = Image.FromFile(@"C:\Users\ken\Desktop\c#-game\resource\background\test\object\" + "blue" + ".gif");
             }


        }
    }


    2015年2月10日 上午 05:12

解答

  • 這我就不知道了...

    我把我可以跑的code貼上來 盡人事了


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
    
            PictureBox[,] box = new PictureBox[18, 18];
            private void Form2_Load(object sender, EventArgs e)
            {
                mode(1);
            }
    
            public void mode(int a)
            {
                //----------------------------------------------------------------------------//
    
                for (int x = 0; x < 18; x++)
                {
                    for (int y = 0; y < 18; y++)
                    {
                        box[x, y] = new System.Windows.Forms.PictureBox();
                        box[x, y].Name = "box" + (18 * x + y + 1);
                        box[x, y].Location = new Point(100 + x * 40, y * 40);
                        box[x, y].SizeMode = PictureBoxSizeMode.CenterImage;
                        box[x, y].Size = new System.Drawing.Size(40, 40);
                        box[x, y].Image = Image.FromFile(@"C:\Users\AAAAAAA\Desktop\c#-game\WindowsFormsApplication1\1.png");
                        this.Controls.Add(box[x, y]);
                        box[x, y].BringToFront();
                        box[x, y].Click += new System.EventHandler(box_Click);
    
                    }
    
                }
    
            }
    
            public void box_Click(object sender, EventArgs e)
            {
                PictureBox box1 = sender as PictureBox;
                box1.Image = Image.FromFile(@"C:\Users\AAAAAAA\Desktop\c#-game\WindowsFormsApplication1\2.png");
            }
    
    
        }
    }



    2015年2月10日 上午 07:43

所有回覆

  • 我照著你的程式碼貼上 只改了圖檔路徑 我的可以唷!!

    紅色是click的部分

    結果圖:


    2015年2月10日 上午 05:55
  • 這....

    還是我有組件還是環境沒有設定?? 

    關於動態 控制項部分 ??


    2015年2月10日 上午 07:10
  • 這我就不知道了...

    我把我可以跑的code貼上來 盡人事了


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
    
            PictureBox[,] box = new PictureBox[18, 18];
            private void Form2_Load(object sender, EventArgs e)
            {
                mode(1);
            }
    
            public void mode(int a)
            {
                //----------------------------------------------------------------------------//
    
                for (int x = 0; x < 18; x++)
                {
                    for (int y = 0; y < 18; y++)
                    {
                        box[x, y] = new System.Windows.Forms.PictureBox();
                        box[x, y].Name = "box" + (18 * x + y + 1);
                        box[x, y].Location = new Point(100 + x * 40, y * 40);
                        box[x, y].SizeMode = PictureBoxSizeMode.CenterImage;
                        box[x, y].Size = new System.Drawing.Size(40, 40);
                        box[x, y].Image = Image.FromFile(@"C:\Users\AAAAAAA\Desktop\c#-game\WindowsFormsApplication1\1.png");
                        this.Controls.Add(box[x, y]);
                        box[x, y].BringToFront();
                        box[x, y].Click += new System.EventHandler(box_Click);
    
                    }
    
                }
    
            }
    
            public void box_Click(object sender, EventArgs e)
            {
                PictureBox box1 = sender as PictureBox;
                box1.Image = Image.FromFile(@"C:\Users\AAAAAAA\Desktop\c#-game\WindowsFormsApplication1\2.png");
            }
    
    
        }
    }



    2015年2月10日 上午 07:43
  • 已找到問題點。

    本人將Form的 enable 設定成 false 感謝唷^__^ 

    2015年2月10日 上午 09:30