VS 2010 C# winform:[3]记住密码

2025-09-21 07:42:18

1、构建窗体文件。CheckBox控件。

VS 2010 C# winform:[3]记住密码

VS 2010 C# winform:[3]记住密码

2、在登录按钮写事件,如果登录成功以后,判断记住密码是否被选中,写入配置文件。

                    //记住密码                    if (cb_jzmm.Checked == true)                    {                        WriteIni("My Section", this.txtDLM.Text.ToString(), this.txtMM.Text.ToString(), string.Format(@"{0}\XXX.dll", Application.StartupPath));                    }                    else                    {                        WriteIni("My Section", this.txtDLM.Text.ToString(), "空", string.Format(@"{0}\XXX.dll", Application.StartupPath));                    }

VS 2010 C# winform:[3]记住密码

3、用户名输入框添加事件。用于判断输入的用户名是否记住密码,如果记住密码就读出密码。

        private void txtDLM_TextChanged(object sender, EventArgs e)        {

            string DLM = this.txtDLM.Text.ToString();            string result = ReadIni("My Section", DLM, string.Format(@"{0}\XXX.dll", Application.StartupPath));            if (result == null || result =="空")            {                this.txtMM.Text = "";                this.cb_jzmm.Checked = false;            }            else            {                this.txtMM.Text = result;                this.cb_jzmm.Checked = true;            }           

        }

VS 2010 C# winform:[3]记住密码

4、运行效果,输入用户名,就自动出现密码。

VS 2010 C# winform:[3]记住密码

5、其中XXX.dll文件需要存放的位置为,当前程序的同级目录。里面的内容为:[My Section] 如图

VS 2010 C# winform:[3]记住密码

VS 2010 C# winform:[3]记住密码

6、补充一个类。代码如下:

        #region 登录记住密码        /// <summary>        /// 提供INI文件的写操作(如Key和Value都为空(null), 则删除Section指定的节下所有键值(包括节名)[如Value为空(null), 则删除Section节下Key键值])        /// </summary>        /// <param name="Section">指定的节名</param>        /// <param name="Key">指定的键名</param>        /// <param name="Value">Key的值(请将相应的类型ing,long...转换为string类型)</param>        /// <param name="FilePath">INI文件全路径</param>        /// <returns></returns>        public static bool WriteIni(string Section, string Key, string Value, string FilePath)        {            //成功返回非零            long lRe = WritePrivateProfileString(Section, Key, Value, FilePath);            return lRe == 0L ? false : true;        }

        /// <summary>        /// 提供INI文件的读操作        /// </summary>        /// <param name="Section">指定的节名</param>        /// <param name="Key">指定的键名</param>        /// <param name="FilePath">INI文件全路径</param>        /// <returns>请将string类型转换为相应int,long的类型(返回值不应超过255字符)</returns>        public static string ReadIni(string Section, string Key, string FilePath)        {            int Size = 255;            StringBuilder ReStr = new StringBuilder(255);            GetPrivateProfileString(Section, Key, "ERROR...", ReStr, Size, FilePath);            if (ReStr.ToString() == "ERROR...")            {                return null;            }            return ReStr.ToString();        }

        /// <summary>        /// C#申明INI文件的写操作函数WritePrivateProfileString()        /// </summary>        /// <param name="Section"></param>        /// <param name="Key"></param>        /// <param name="Value"></param>        /// <param name="FilePath"></param>        /// <returns></returns>        //读写INI文件功能        [DllImport("kernel32")]        public static extern long WritePrivateProfileString(string Section,//指定的节名            string Key,                                                      //指定的键名            string Value,            string FilePath);

        /// <summary>        /// C#申明INI文件的读操作函数GetPrivateProfileString        /// </summary>        /// <param name="Section"></param>        /// <param name="key"></param>        /// <param name="Def"></param>        /// <param name="RetVal"></param>        /// <param name="Size"></param>        /// <param name="FilePath"></param>        /// <returns></returns>        [DllImport("kernel32")]        public static extern int GetPrivateProfileString(string Section,  //指定的节名            string key,          //指定的键名            string Def,          //如果未取得正确的值则返回自定义的字符串            StringBuilder RetVal,//保存字符串值            int Size,            //指定RetVal的长度            string FilePath);   //ini文件路径(如果ini文件不在操作系统文件夹内,则必须指定ini文件的绝对路径)        #endregion 登录记住密码

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢