首页上一页 1 下一页尾页 1 条记录 1/1页
关于《c#范例自学手册》自定义最大化、最小化和关闭按钮的问题
发表在C#图书答疑
2010-08-13
是否精华
是
否
版块置顶:
是
否
关键代码:
namespace 自定义窗体的最大化_最小化和关闭按钮
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
#region 控件的设置
……
#endregion
}
#region 设置窗体的最大化、最小化和关闭按钮的单击事件
///<summary>
///设置窗体的最大化、最小化和关闭按钮的事件
///</summary>
///<param Frm_Tem = "Form">窗体</param>
///<param n ="int">标识</param>
public void FrmClickMeans(Form Frm_Tem, int n)
{
switch (n)
{
case 0://最小化
……
case 1://最大化
……
case 2://关闭
Frm_Tem.Close();
break;
}
}
#endregion
#region 控制图片的切换状态
/// <summary>
/// 控制图片的切换状态
public static PictureBox Tem_PictB = new PictureBox();
public void ImageSwitch(object sender, int n, int ns)
{
Tem_PictB = (PictureBox)sender;
switch (n)
{
case 0://最小化按钮随鼠标的变化
Tem_PictB.Image = null;
if (ns == 0)//鼠标移入
Tem_PictB.Image = Properties.Resources.最小化变色;
if (ns == 1)//鼠标移出
Tem_PictB.Image = Properties.Resources.最小化按钮;
break;
case 1://最大化按钮随鼠标的变化
Tem_PictB.Image = null;
if (ns == 0)//鼠标移入
Tem_PictB.Image = Properties.Resources.最大化变色;
if (ns == 1)//鼠标移出
Tem_PictB.Image = Properties.Resources.最大化按钮;
break;
case 2://关闭按钮随鼠标的变化
Tem_PictB.Image = null;
if (ns == 0)//鼠标移入
Tem_PictB.Image = Properties.Resources.关闭变色;
if (ns == 1)//鼠标移出
Tem_PictB.Image = Properties.Resources.关闭按钮;
break;
}
}
#endregion
private void pictureBox_Min_Click(object sender, EventArgs e)
{
FrmClickMeans(this, Convert.ToInt16(((PictureBox)sender).Tag.ToString()));//这如何理解?谢谢
}
private void pictureBox_Min_MouseEnter_1(object sender, EventArgs e)
{
ImageSwitch(sender, Convert.ToInt16(((PictureBox)sender).Tag.ToString()), 0);
}
private void pictureBox_Min_MouseLeave_1(object sender, EventArgs e)
{
ImageSwitch(sender, Convert.ToInt16(((PictureBox)sender).Tag.ToString()), 1);
}
}
}
在调试的时候未能通过,在“ ImageSwitch(sender, Convert.ToInt16(((PictureBox)sender).Tag.ToString()), 0);”处提示“未处理FormatException:输入字符串格式不正确”。我是按照书上做的,为什么会出现这样的问题,我在网上查了很久未果,希望老师帮一下忙。(还有我用的是VS2005,而书上的例子是VS2008,应该不会是版本的问题吧)
namespace 自定义窗体的最大化_最小化和关闭按钮
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
#region 控件的设置
……
#endregion
}
#region 设置窗体的最大化、最小化和关闭按钮的单击事件
///<summary>
///设置窗体的最大化、最小化和关闭按钮的事件
///</summary>
///<param Frm_Tem = "Form">窗体</param>
///<param n ="int">标识</param>
public void FrmClickMeans(Form Frm_Tem, int n)
{
switch (n)
{
case 0://最小化
……
case 1://最大化
……
case 2://关闭
Frm_Tem.Close();
break;
}
}
#endregion
#region 控制图片的切换状态
/// <summary>
/// 控制图片的切换状态
public static PictureBox Tem_PictB = new PictureBox();
public void ImageSwitch(object sender, int n, int ns)
{
Tem_PictB = (PictureBox)sender;
switch (n)
{
case 0://最小化按钮随鼠标的变化
Tem_PictB.Image = null;
if (ns == 0)//鼠标移入
Tem_PictB.Image = Properties.Resources.最小化变色;
if (ns == 1)//鼠标移出
Tem_PictB.Image = Properties.Resources.最小化按钮;
break;
case 1://最大化按钮随鼠标的变化
Tem_PictB.Image = null;
if (ns == 0)//鼠标移入
Tem_PictB.Image = Properties.Resources.最大化变色;
if (ns == 1)//鼠标移出
Tem_PictB.Image = Properties.Resources.最大化按钮;
break;
case 2://关闭按钮随鼠标的变化
Tem_PictB.Image = null;
if (ns == 0)//鼠标移入
Tem_PictB.Image = Properties.Resources.关闭变色;
if (ns == 1)//鼠标移出
Tem_PictB.Image = Properties.Resources.关闭按钮;
break;
}
}
#endregion
private void pictureBox_Min_Click(object sender, EventArgs e)
{
FrmClickMeans(this, Convert.ToInt16(((PictureBox)sender).Tag.ToString()));//这如何理解?谢谢
}
private void pictureBox_Min_MouseEnter_1(object sender, EventArgs e)
{
ImageSwitch(sender, Convert.ToInt16(((PictureBox)sender).Tag.ToString()), 0);
}
private void pictureBox_Min_MouseLeave_1(object sender, EventArgs e)
{
ImageSwitch(sender, Convert.ToInt16(((PictureBox)sender).Tag.ToString()), 1);
}
}
}
在调试的时候未能通过,在“ ImageSwitch(sender, Convert.ToInt16(((PictureBox)sender).Tag.ToString()), 0);”处提示“未处理FormatException:输入字符串格式不正确”。我是按照书上做的,为什么会出现这样的问题,我在网上查了很久未果,希望老师帮一下忙。(还有我用的是VS2005,而书上的例子是VS2008,应该不会是版本的问题吧)