园子里面有位朋友对我这个小框架提出了一些建议,我觉得很适用(不管是圆友还是用户给我提出的意见,我都认真考虑了,该采纳的都采纳了,我相信这样一来我这个程序应该会更完整,在此感谢大家的指点),有两点建议我比较认同,第一点就是在用户没有登录ID的情况下可以自由申请帐号,然后等待管理员审核之后方可生效,这种功能还是比较人性化的,不是说你没有登录ID就完全没办法操作这个系统,至少可以申请一个登录ID,至于什么时候可以得到审核,那是另外一件事情了,我相信这样一来对用户的体验一定会好很多,所以我将这个功能完善了一下,很简单,我的数据库里面本身有一列字段--IsEnable,大致的意思就是表示该用户是不是属于启用状态,现在刚好派上用场了。登录界面增加“申请帐号”的链接,这个“申请帐号"的功能更管理员新建User的功能基本一样,唯一不同的是申请者无法改变用户的状态,默认都是不启用的,提交申请请求之后数据库里面增加相应的记录,但是在被审核通过之前无法登录,待管理员上线审核了用户提交的请求之后方可登录。
第二点就是在每次用户登录之后提示上一次的登录信息,比如上次的登录地点,登录IP,登录时间以及有消息的话可以提示出来,这一点其实最初就有这个功能的计划,后来发现WinForm更WebForm不一样,每次弹出提示框之后会有一点点的“迟钝”的感觉,不像WebForm里面那么流畅,后来找“度娘”要了一点关键代码,虽然效果比我之前好了一点点,但是感觉还是不够理想,提示框关闭的时候就好像我们的电脑死机了似的,那个提示框所在的屏幕那一块的背景就是一块白花花的。
关键代码就是这一段:
[DllImportAttribute("user32.dll")] private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags); // 该函数可以实现窗体的动画效果 /// <summary> /// 自左向右显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略 /// </summary> public const Int32 AW_HOR_POSITIVE = 0x00000001; /// <summary> /// 自右向左显示窗口。当使用了 AW_CENTER 标志时该标志被忽略 /// </summary> public const Int32 AW_HOR_NEGATIVE = 0x00000002; /// <summary> /// 自顶向下显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略 /// </summary> public const Int32 AW_VER_POSITIVE = 0x00000004; // /// <summary> /// 自下向上显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略 /// </summary> public const Int32 AW_VER_NEGATIVE = 0x00000008; // /// <summary> /// 若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展 /// </summary> public const Int32 AW_CENTER = 0x00000010; // /// <summary> /// 隐藏窗口,缺省则显示窗口 /// </summary> public const Int32 AW_HIDE = 0x00010000; // /// <summary> /// 激活窗口。在使用了AW_HIDE标志后不要使用这个标志 /// </summary> public const Int32 AW_ACTIVATE = 0x00020000; // /// <summary> /// 使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略 /// </summary> public const Int32 AW_SLIDE = 0x00040000; // /// <summary> /// 使用淡入效果。只有当hWnd为顶层窗口的时候才可以使用此标志 /// </summary> public const Int32 AW_BLEND = 0x00080000; //
大致效果如下图所示:
这里记录了每一个操作的日志信息。
时间: 2024-10-10 03:32:26