XX科技继续11-08

来源:互联网 发布:java内存溢出原因 编辑:程序博客网 时间:2024/06/06 05:49

= =虽然是个小项目,也是很锻炼自己的,恩,是自己…
首先,全局变量申明在Program中,使用时可以不适用命名空间直接program.类名.具体参数,但是还是建议不要滥用全局变量(模拟),小程序可以随便使用.
2.推荐使用系统的控件,我竟然自己在哪里使用半天输入框让别人输入分别输入年月日
3.学vs是掌握众多类库的使用方法,往下面是理解,从反编译,官方文档开始
4.这次做软件,其实软件真正的核心代码我没有认真考虑过,一直处于一个边做变想边改的状态,很游离,考虑的事情太多.下次做程序前先将程序核心代码编译,整个流程先写一遍.代码只是工作,你的价值在于思路.
5.程序员考虑的事情远比其他的多.比如,如果你使用日志文件(以后一定使用),那就得考虑日志文件增长问题.如果使用txt控件,得考虑是否为空值或其他能否成功转换为用户需要的数值.
6.做程序是一件很快乐的事情,拓宽你的思路,逼迫你想的多一点,想的在多一点.生活中处处充满如果,尽我所能就好
7.在我看来,trycarch损耗的性能非常少,尽量多的使用TRYCATCH,你可以不显示给用户,但是你必须卸载后台那个文件中,给自己一个反馈.给自己更多意见
8.String.Format(“{0}”,value) 是神器
关于tostring的自动补齐的问题,推荐使用toString().PadLeft(位数,’0’);,这中间位数可以直接考虑使用变量来代理,事半功倍
9.关于类中,使用面向对象的知识能很好的修改,属性限制输入输出.
10.渐渐注意点访问修饰符的使用

以下为
零散达到代码知识点
如果输入的值为enter键

 if (e.KeyCode == Keys.Enter)

系统默认播放wav类,继承于media–SoundPlayer

ShowDialog() 强制新窗体为活动窗体,不关掉不能后动后面的

关于MentStrip
MenuStrip.Items.RemoveAt(int index)
移除指定索引处菜单栏

关于时间的格式,不特别声明的话是直接使用电脑上的时间格式的,所以以后需要指定时间格式
toString() 常见的时间代码
y-年 M-月 d-天 H-小时 m-分钟 s-秒

直接使用类添加dgv 添加数据源时使用该数据源, 在后台赋值时请这样子
案例

 List<TBarPlan> barPlans = new List<TBarPlan>();           DataSet ds= DbHelperSQLite.Query(strSql);           for (int i = 0; i < ds.Tables[0].Rows.Count; i++)           {               barPlans.Add(new TBarPlan {                   Barcode = ds.Tables[0].Rows[i][0].ToString(),                   Barcode2 = ds.Tables[0].Rows[i][1].ToString(),                   BarInfo = ds.Tables[0].Rows[i][2].ToString(),                   PlanDate =DateTime.Parse( ds.Tables[0].Rows[i][3].ToString()),                   Flag =Int32.Parse( ds.Tables[0].Rows[i][4].ToString()),               });           }           return barPlans;

中间使用循环赋值
类的实例.Add(new 类名
{
类中所有项赋值过去

});
其中strsql为sql语句

***mb tab 可以使用ex.Message直接输出,我的意见是输出到日志上…

使用了感觉最蠢的方法一直锁定焦点
focus();

select count(列名) from 表明 查询数量
使用execscalar 返回查询结果,因为是查询,所以是这样子.

获得表格类似手动点击了一行的效果
dgv.CurrenCell =dgv.rows[int index].cells[int index];
活动单元为特定的一个
dgv.CurrenRow.Selected=true;
当前整行选中
其中:Currently为当前 Cell细胞

线程池
优点:使用方便简单,高效,面对使用运行时间短,但是经常运行的方法十分有效
缺点:无法跨线程,无法精准控制线程中活动,例如优先级,暂停 关闭等
先声明一个返回值为空的,传入参数为object类型的方法
调用线程池使用
ThreadPool.QueueserWorkItem(new WaitCallBack(方法名),参数)

很实用的小方法

DialogResult dr = MessageBox.Show("未加载计划表,是否加载今日计划表?", "系统提示", MessageBoxButtons.YesNo);

弹窗供用户选择,判断使用选择结果为

if(dr=DialogResult.Yes)

\t tab空格 \r 回车

不要随意跟换dgv的datacesource 原先的格式会消失

注意接受输入的txt框是否为多行,会造成换行但是无法知道的情况

关闭当前窗体
this.dispose()
this.close()

this.DialogResult=dialogResult.yes;

dtp.CustomFormat=”yyyy-MM-dd”;
—————自定义设置dtp显示的格式

select * from TDevice where LENGTH (DeviceNO)={0},value
查询长度

使用批处理传递很多语句,执行会很快,但是仅限于本地,在网络情况下很不好,建议使用存储过程

在别的方法中想调用一个系统自动生成的类似于按钮点击事件的方法可以采用这种方法
btnCreateAllCode_Click(sender, e);

dgv.BeginEdit(bool )
是否进入编辑状态 光标位置

dgv.readOnly=true; 只读状态

dgv.CurrentCell.RowIndex 获取当前选中行索引

做软件难,多做控制,多做备注,多学习.加油

0 0
原创粉丝点击