首页 新闻 会员 周边

Image pic = pictureBox1.Image不是同一个image数据类型吗 ?

0
悬赏园豆:5 [已解决问题] 解决于 2017-01-30 21:48
  private void pictureBox1_Click(object sender, EventArgs e)

        {
            Image pic = pictureBox1.Image;
           
            if(isopen)
            {
                isopen = false;
                pictureBox1.Image = Resources.image2;

            }
            else
            {
                isopen = true;
                //   pictureBox1.Image = Resources.image1;这样写正常的
                pic = Resources.image1;//这样写不行,难道 pic和pictureBox1.Image 不是同一个数据类型吗 ?
            }
       
        }
        private bool isopen 
       { get; set; }
hello,逗比的主页 hello,逗比 | 菜鸟二级 | 园豆:203
提问于:2017-01-28 22:52
< >
分享
最佳答案
0

这不是数据类型不同,是你对C#基础知识理解还不够啊,你看看属性property的标准写法:

private Image image = null;
public Image
{
  get{ reutrn image; }
  set{ image = value; }
}

Image pic = pictureBox1.Image这条话会让pic指向get里面的image,而不是对象的属性,

你再用pic = Resources.image1,结果就是pic变成了指向Resources.image1,而不是给pictureBox1.Image属性赋值Resources.image1

收获园豆:5
新的开始 | 小虾三级 |园豆:679 | 2017-01-30 19:32

非常感谢你的解答  。我现在 弄懂了,当时 有一个误区 ,一个变量引用一个对象的属性,变量改变以为对象属性也会改变。下面有代码,虽然代码弄复杂了,但是理解东西还是有收获的 。另外 收获·

 companyModel model =(companyModel ) node.Tag;    这里 model可以不需要new companyModel(),可以不需要开辟新空间.如果已经有空间只要指向原来空间,不需要new()。类似companyModel model = xxx  ,有“=”就相当于有分配的堆空间,无需要new,就不会开辟新的空间,直接引用原来空间。

 {
            PictureBox pb = pictureBox1;
            Image pic=null;//要赋值null,否则没空间,后面pic无法使用
      

            if (isopen)
            {
                isopen = false;
                //   pictureBox1.Image = Resources.image2;
               // pb.Image = Resources.image2;
               pic = Resources.image2;
                pb.Image = pic;
                //  pictureBox1.Refresh();

                //   pictureBox1.Image = pic;

            }
            else
            {
                isopen = true;
                //   pictureBox1.Image = Resources.image1;这样写正常的
                pic = Resources.image1;
                pb.Image = pic;                // pictureBox1.Image = pic;
                                               //  pictureBox1.Refresh();
            }
hello,逗比 | 园豆:203 (菜鸟二级) | 2017-01-30 21:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册