注册 登录
编程论坛 C# 论坛

c# 类里面的问题

於晓琪123 发布于 2014-12-18 18:21, 487 次点击
using System;
using System.Collections.Generic;
using
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication14
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int i = 0;
      private void Form1_load(object sender, EventArgs e)
      {
            pictureBox1.Image = imageList1.Images[i];

      }
        
        private void button1_Click(object sender, EventArgs e)
        {
            
            i += 1;
            i = i > imageList1.Images.Count - 1 ? 0 : i;
            pictureBox1.Image = imageList1.Images[i];
            
        }

        

    }
}
我总是感觉这里不需要load 方法   可以直接把load方法去掉  直接 像定义变量意义   pictureBox1.Image = imageList1.Images[i];  求一个合理的解释  尽量说的专业点  拓展的说一下。 我这里没想通 - -
3 回复
#2
xydddaxia2014-12-20 11:04
Load方法里面能操作Form1里面的私有变量,
pictureBox1.Image = imageList1.Images[i]; 放在 InitializeComponent();之后也可以
#3
lxsxd2014-12-21 09:09
1、load 方法是窗体载入时完成的,其实也就是类。类中定义的变量对于其他类来说都是私有变量。私有变量只允许本类访问。
2、如果去掉,直接写成pictureBox1.Image = imageList1.Images[i];应该说也没有什么问题。类外定义的变量,一般的就是要定义为共有变量。
3、这里在load方法里的原因是:窗体设计,在窗体载入时,把窗体初始化。为了在初始化时,让窗体完成一些基本操作(加载),就把能在窗体载入时要做的基本操作放在一起,放在一个类里。这就是load方法存在的意义。
#4
huwengui2014-12-21 11:48
回复 楼主 於晓琪123
你可以在load()方法里面加上这个if(!IsPostBack),你就会发现有时候定义只有放在Load()里面才可以的
1