using System;
using System.Collections.Generic;
using System.Text;

using System.Windows.Forms;

namespace My.Utils
{
    /// <summary>
    /// 工具助手类
    /// </summary>
    class HelperUtils
    {
        ///------------------------------------------------------------------------------
        /// <summary>
        ///     利用ToolTips控件，显示tips提示信息
        /// </summary>
        /// <param name="sender">传进来的需要绑定消息的控件</param>
        /// <param name="title">tips标题</param>
        /// <param name="message">tips具体内容</param>
        ///------------------------------------------------------------------------------
        public static void ShowTips( Object sender,string title,string message )
        {
            ToolTip TT = new ToolTip();                                                  //创建ToolTip
            TT.BackColor = System.Drawing.Color.FromArgb(
                ((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); //背景颜色
            TT.ForeColor = System.Drawing.Color.Green;                                   //z字体颜色
            TT.IsBalloon = true;                                                         //气球状显示打开
            TT.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info;                      //显示信息标志
            TT.ToolTipTitle = title;                                                     //提示标题

            Control t = new Control();
            t = (Control)sender;                                                         //获取到传过来的控件
           
            TT.Show(message, t, 0, (0 - t.Height * 9 / 10));                             //具体显示位置定位
        }

        ///------------------------------------------------------------------------------
        /// <summary>
        /// 限制输入框中的数据只能为空格，退格，数字，逗号，字母。0 - 数字。 1 - 字母
        /// 2 - MCU液晶屏
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <param name="flag">类型。0 - 数字。 1 - 字母2 - MCU液晶屏</param>
        /// <returns>如果非法，返回false,并禁止键盘输入。否则返回true</returns>
        ///------------------------------------------------------------------------------
        public static bool AcceptedCharHandle(Object sender, KeyPressEventArgs e,int flag)
        {
            if( flag == 0 )                                                              //进行数字检查
            {
                if (e.KeyChar >= '0' && e.KeyChar <= '9' ||                              //数字0~9
                    e.KeyChar == 0x08                                                    //退格键，及删除键
                    )
                {
                    return true;
                }
                else
                {
                    e.Handled = true;                                                    //禁止输入
                    return false;
                }
            }
            else if( flag == 1 )                                                         //进行字母检查
            {
                if (
                    e.KeyChar == 0x08                    ||                              //退格键，及删除键
                    e.KeyChar >= 'a' && e.KeyChar <= 'z' ||                              //小写字母
                    e.KeyChar >= 'A' && e.KeyChar <= 'Z'                                 //大写字母
                    )
                {
                    return true;
                }
                else
                {
                    e.Handled = true;                                                    //禁止输入
                    return false;
                }
            }
            else if (flag == 2)                                                         //进行MCU液晶屏合法字符检查
            {
                //除了数字、逗号和退格键,其他都不给输入
                if (e.KeyChar >= '0' && e.KeyChar <= '9' ||                              //数字0~9
                    e.KeyChar == 0x08                    ||                              //退格键，及删除键
                    e.KeyChar == ','                     ||                              //逗号
                    e.KeyChar >= 'a' && e.KeyChar <= 'z' ||                              //小写字母
                    e.KeyChar >= 'A' && e.KeyChar <= 'Z' ||                              //大写字母
                    e.KeyChar == ' '                                                     //空格键
                    )
                {
                    return true;
                }
                else
                {
                    e.Handled = true;                                                    //禁止输入
                    return false;
                }
            }
            else                                                                         //保留增加标志
            { 
                return false;
            }
        }

        ///------------------------------------------------------------------------------
        /// <summary>
        /// 根据不同的标志FLAG，发出不同的声音。 flag = 0 警告声
        /// </summary>
        /// <param name="flag">flag = 0 警告声</param>
        /// -----------------------------------------------------------------------------
        public static void ActionSoundEvent(string path,int flag)
        {
            if (flag == 0)                                                               //警告声标志
            {
                System.Media.SoundPlayer p = new System.Media.SoundPlayer();             //播放警告声音
                p.SoundLocation = path;                                                  //"sound\\error.wav"; //载入声音文件
                p.Play();                                                                //播放
            }
            else
            {
                //保留，扩展
            }
        }


        /// <summary>
        /// 延时函数。
        /// </summary>
        /// <param name="time">需要延时的次数，非精确时间</param>
        public static void Delay(int time)
        {
            for (int i = 0; i < time; i++)                                               //延时
            {
                for (int j = 0; j < i; j++)
                    ;                                                                    //空操作
            }
        }


       




    }
}


/* ***  2010/09/26 截止  苏州大学嵌入式仿真研究所 *** */
