已有56人关注
关于《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,应该不会是版本的问题吧)
分享到:
精彩评论 1
小科_mrkj
学分:43 LV2
2010-08-13
沙发
读者朋友:
    您好,Convert.ToInt16(((PictureBox)sender).Tag.ToString()));这个是获取PictureBox控件的Tag值,并转换为int类型,你出现错误应该是没有设置PictureBox控件的Tag值造成的,你可以在属性对话框中队Tag值进行设置,具体的可以参见我们光盘中附带的源程序。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照