一个小疑点,请问一下大家
一个小问题,请教一下大家。
窗体Form1 上有
(1)pictureBox 控件3个 名称依次为pictureBox_1、pictureBox_2、pictureBox_3,它们的tag标识依次为1、2、3
(2)panel 控件3个,名称依次为panel_Gut_1、panel_Gut_2、panel_Gut_3
namespace 仿XP系统的任务栏菜单
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private static Panel Var_Panel = new Panel();
private static PictureBox Var_Pict = new PictureBox();
private static int Var_i = 0;
private Font Var_Font = new Font("宋体", 9);
private void pictureBox_1_Click(object sender, EventArgs e)
{
Var_i = Convert.ToInt16(
(
(PictureBox)sender
).Tag.ToString()
);
switch (Var_i)
{
case 1:
{
Var_Panel = panel_Gut_1;
Var_Pict = pictureBox_1;
break;
}
case 2:
{
Var_Panel = panel_Gut_2;
Var_Pict = pictureBox_2;
break;
}
case 3:
{
Var_Panel = panel_Gut_3;
Var_Pict = pictureBox_3;
break;
}
}
if (Convert.ToInt16(Var_Panel.Tag.ToString()) == 0 || Convert.ToInt16(Var_Panel.Tag.ToString()) == 2)
{
Var_Panel.Tag = 1;//隐藏标识
Var_Pict.Image = null;
Var_Pict.Image = Properties.Resources.朝下按钮;
Var_Panel.Visible = false;
}
else
{
if (Convert.ToInt16(Var_Panel.Tag.ToString()) == 1)
{
Var_Panel.Tag = 2;//显示标识
Var_Pict.Image = null;
Var_Pict.Image = Properties.Resources.朝上按钮;
Var_Panel.Visible = true;
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
pictureBox_1.Image = null;
pictureBox_1.Image = Properties.Resources.朝上按钮;
pictureBox_2.Image = null;
pictureBox_2.Image = Properties.Resources.朝上按钮;
pictureBox_3.Image = null;
pictureBox_3.Image = Properties.Resources.朝上按钮;
Var_Font = label_1.Font;
}
}
}
请问以上代码中 Var_Panel、Var_Pict 这两个变量有什么用,它们与定义的那几个变量是什么关系。
------解决思路----------------------
一开始new的过程没有任何意义
然后就是对应引用关系,然后用一个变量来做后续处理,注意这是一个引用类型
其实就这些代码的话,完全没必要static,就click事件内一个局部变量就可以了
------解决思路----------------------
可以根据Click对象的Text或Tag属性来Find控件,这样的话就不需要太多的判断,代码也易懂些。
------解决思路----------------------
Var_Panel、Var_Pict 这两个变量起到指向想要的三个控件中的一个,以方便后面的处理。其实用局部变量比较合适,没必要定义成全局的。
------解决思路----------------------
Var_Panel、Var_Pict 这两个变量是引用三个容器、图片控件的作用,楼主先去了解下引用类型,这样就容易理解了。
窗体Form1 上有
(1)pictureBox 控件3个 名称依次为pictureBox_1、pictureBox_2、pictureBox_3,它们的tag标识依次为1、2、3
(2)panel 控件3个,名称依次为panel_Gut_1、panel_Gut_2、panel_Gut_3
namespace 仿XP系统的任务栏菜单
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private static Panel Var_Panel = new Panel();
private static PictureBox Var_Pict = new PictureBox();
private static int Var_i = 0;
private Font Var_Font = new Font("宋体", 9);
private void pictureBox_1_Click(object sender, EventArgs e)
{
Var_i = Convert.ToInt16(
(
(PictureBox)sender
).Tag.ToString()
);
switch (Var_i)
{
case 1:
{
Var_Panel = panel_Gut_1;
Var_Pict = pictureBox_1;
break;
}
case 2:
{
Var_Panel = panel_Gut_2;
Var_Pict = pictureBox_2;
break;
}
case 3:
{
Var_Panel = panel_Gut_3;
Var_Pict = pictureBox_3;
break;
}
}
if (Convert.ToInt16(Var_Panel.Tag.ToString()) == 0 || Convert.ToInt16(Var_Panel.Tag.ToString()) == 2)
{
Var_Panel.Tag = 1;//隐藏标识
Var_Pict.Image = null;
Var_Pict.Image = Properties.Resources.朝下按钮;
Var_Panel.Visible = false;
}
else
{
if (Convert.ToInt16(Var_Panel.Tag.ToString()) == 1)
{
Var_Panel.Tag = 2;//显示标识
Var_Pict.Image = null;
Var_Pict.Image = Properties.Resources.朝上按钮;
Var_Panel.Visible = true;
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
pictureBox_1.Image = null;
pictureBox_1.Image = Properties.Resources.朝上按钮;
pictureBox_2.Image = null;
pictureBox_2.Image = Properties.Resources.朝上按钮;
pictureBox_3.Image = null;
pictureBox_3.Image = Properties.Resources.朝上按钮;
Var_Font = label_1.Font;
}
}
}
请问以上代码中 Var_Panel、Var_Pict 这两个变量有什么用,它们与定义的那几个变量是什么关系。
------解决思路----------------------
一开始new的过程没有任何意义
然后就是对应引用关系,然后用一个变量来做后续处理,注意这是一个引用类型
其实就这些代码的话,完全没必要static,就click事件内一个局部变量就可以了
------解决思路----------------------
可以根据Click对象的Text或Tag属性来Find控件,这样的话就不需要太多的判断,代码也易懂些。
------解决思路----------------------
Var_Panel、Var_Pict 这两个变量起到指向想要的三个控件中的一个,以方便后面的处理。其实用局部变量比较合适,没必要定义成全局的。
------解决思路----------------------
Var_Panel、Var_Pict 这两个变量是引用三个容器、图片控件的作用,楼主先去了解下引用类型,这样就容易理解了。