零碎知识点汇总
来源:互联网 发布:虚拟扫描仪软件 编辑:程序博客网 时间:2024/05/17 21:41
这次合作,我们在讨论的时候发现,好多零碎的知识当时重构的时候查过,但是这次再用,还是记不住,也没有做总结,所以还得去查,所以这次就总结一些我在重构的时候遇到的一些小问题,和对应的解决方法,亦或是通过这个问题了解到的小知识。
1.算钱的时候遇到的Int函数
- Int(X)函数:数轴上向零取整,也就是不大于x的最大整数。
- CInt(X)函数:四舍五入取整,无论正数还是负数。但是遇到0.5的情况,则往往取偶数值。
举例:Int(4.6)=4 Int(-4.6)=-5
举例:CInt(1.5)=2 CInt(1.4)=1 CInt(1.6)=2
机房中有一个用例是查询正在工作的教师,教师在登录的时候,向工作记录中添加的是登录信息,而登出信息的字段是NULL值,所以当我想要查询的时候,我写的语句是这样的:
<span style="font-size:18px;">select * from T_WorkLog where UserID=1 and logoutDate =Null</span>
后来我改了一下sql语句,发现查到了这条数据:
原因:NULL表达的意思不是零,而是不可知,不确定,所以我们不能用=,<>,来进行判断,因为NULL与任何类型的值进行比较或运算的结果都是UnKnow,其实在自考中我们已经学过了这个小知识,但是在实际应用中又经常忘记
3.有关继承窗体的小设置
继承窗体中要想要更改父窗体的控件,我们必须将父窗体上的控件的modifiers 改为 protected,这个属性有五中不同的修饰符,分别是:Public、Protected 、Protected Internal、Internal、Privated,下边详细的讲解一下这五中修饰符在c#中的含义与作用
- Public:公有的,可以被任意存取
- Protected:只可以被本类和其继承子类存取
- Protected Internal:唯一一种组合限制修饰符,它只可以被本程序集内所有类和这些类的继承自己所存取
- Internal:只可以被本程序集内所有的类存取
- Privated:私有的,只可以被本类所存取。
这五中访问修饰符相当于给外界提供的五中不同的“钥匙”,这就保证了类中数据的安全性。
类本身有两道防线,一是命名空间(namespace),另一个是程序集(assembly),成员则有三道防线,因为类也是成员的一道方向,如果外界想要访问类中的成员,就要看该成员的修饰符是不是可以给你提供一把访问的钥匙。
4.关于界面优化的代码
我们在注册或者登录的时候,经常会见到textbox中会有浅灰色的提示文字(如下图),让文本框获得焦点的时候,该提示文字消失,当该文本框失去焦点的时候,如果该文本框没有键入内容,该提示文字又会再次出现,如何实现呢?其实很简单,只要熟悉控件的基本属性,很容易就做出来了。
首先我们要写两个方法,分别是控件获得焦点和失去焦点
窗体加载:
private void frmAddUser_Load(object sender, EventArgs e) { cboUserLevel.Items.Add("操作员"); cboUserLevel.Items.Add("管理员"); txtUserName.Focus(); txtUserID.Text = "请输入8位以内用户名"; txtUserID.Font = new Font(txtUserID.Font.Name, 9); txtUserID.ForeColor = Color.Gray; txtUserPWD1.Text = "请输入16位以内密码"; txtUserPWD1.Font = new Font(txtUserID.Font.Name, 9); txtUserPWD1.ForeColor = Color.Gray; txtUserPWD1.PasswordChar = Convert.ToChar(0); }
获得焦点:
private void txtUserID_Enter(object sender, EventArgs e) { txtUserID.Text = ""; txtUserID.ForeColor = System.Drawing.Color.Black; txtUserID.Font = new Font(txtUserID.Font.Name, 12); } private void txtUserPWD1_Enter(object sender, EventArgs e) { txtUserPWD1.Text = ""; txtUserPWD1.ForeColor = System.Drawing.Color.Black; txtUserPWD1.Font = new Font(txtUserPWD1.Font.Name, 12); }
失去焦点:
private void txtUserPWD1_Leave(object sender, EventArgs e) { if (txtUserPWD1.Text == "") { txtUserPWD1.ForeColor = System.Drawing.Color.Gray; txtUserPWD1.Text = "请输入16位以内密码"; txtUserPWD1.Font = new Font(txtUserPWD1.Font.Name, 9); txtUserPWD1.PasswordChar = Convert.ToChar(0); } } private void txtUserID_Leave(object sender, EventArgs e) { if (txtUserID.Text == "") { txtUserID.ForeColor = System.Drawing.Color.Gray; txtUserID.Text = "请输入12位以内用户名"; txtUserID.Font = new Font(txtUserID.Font.Name, 9); } }
写完之后发现一个问题,窗体一加载,焦点就获到了txtUserID上,不管我怎么在窗体加载中写让别的控件.focus都没有用,然后就发现了窗体上有一个属性,一定要把这个属性改掉才可以,将TabStop改为false,这个属性是当窗体打开是此空间是否获得焦点。
这样这个小小的提示功能就完成了
总结
在机房合作的时候,就会发现,有很多东西,我们当时不会,但是当时查了忘记了,没有好好的总结,也许是看不起这些零碎的小知识,但是正是这些微不足道的小的知识点推进了我们走向终点的脚步
1 0
- Android 零碎知识点汇总
- IOS 零碎知识点汇总
- 零碎知识点汇总
- 零碎知识点
- 零碎知识点
- 零碎知识点
- 零碎知识点
- 零碎知识点
- 零碎知识点
- 零碎知识点
- 零碎知识点
- 零碎知识点
- 零碎知识点
- 零碎知识点
- 零碎知识点
- 零碎知识点
- 零碎知识点
- 零碎知识点
- Hibernate Criteria对象详解(条件查询)
- 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码
- 为何要学习Java语言
- hdu4006 The kth great number(优先队列)
- BZOJ_P4415 [SHOI2013]发牌(线段树)
- 零碎知识点汇总
- 抓住每一次学习的机会
- Quartz2D - 画柱状图
- struts2学习笔记-------为action的属性注入值
- 【项目经验】EasyUI Tree
- 【ShawnZhang】带你看蓝桥杯——算法训练 最小乘积(基本型)
- [网络流24题][CODEVS1904]最小路径覆盖问题(最大流||匈牙利算法)
- 下拉页面静止,旋转圆扭刷新效果
- 基本排序算法总结(C/C++)