在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
C#实例应用总结(一) 本人没有系统学习过,C#,只是在工作中积累了一些,为了方便以后开发中使用,在此做一下总结,如有不对的地方,欢迎各位观众多多批评与指正! 您的意见,才能使大家更好的进步!望不吝指教! 概念就不说了,有兴趣的话,可以留言,以后再加上! 工具用的是VS2013,后台用的java 一、gridView的增删改查, 1、查询 根据sql查询, ServiceFactory.CreateService<IDeptParameterService>().queryWaitParameter(param).Then(list => ServiceResult<List<WaitParVo>> queryWaitParameter(string pkDept); IDeptParameterService是我的service类,里面只写方法,页面的上方法体里,用“.”的方式,可以调用出自己写的方法, list 用list变量来接收 this.gridControl1.DataSource = list;赋值给你要显示的gridControl的列表上的数据源,列表上写好对应的名称即可! ServiceResult<List<WaitParVo>> queryWaitParameter(string pkDept);是service层的方法, WaitParVo为该列表对应的实体类, string pkDept为参数, queryWaitParameter方法名。 2、新增 gridView经常会用到新增的时候,在这里,提供两种方法,(当然也希望各位观众有更好的方法,多多指教。) 这两种也是视条件来决定,有一种,只插入数据库的方式,然后,刷新页面,即新增一行。下面会细讲! 主要讲第二种, gridView1.AddEmptyRow<WaitParVo>(row => string.IsNullOrEmpty(row.Code), new WaitParVo AddEmptyRow为新增一行的方法, WaitParVo,该gridView对应的实体类 row 变量名, string.IsNullOrEmpty(row.Code)是否为空判断 {}里面为需要给列表赋的值。 可根据实际情况改变。 其中ar是什么? 这段代码是我从自己的项目上粘出来的,讲一下,为什么这么写 我当时的需求是这样的 点击右箭头,变成这样
点击》按钮,左侧列表全部移动到右侧,《和<同理 左侧列表为gridControl1,右侧为GridControl2
var ar = this.gridView2.GetFocusedRow() as ArguVo; 左右同理,先获取到列表的光标选中行this.gridView2.GetFocusedRow() as ArguVo; 用变量来接收,增加之后,把获取到的值,赋值给另一个列表的对应字段。 int rowindex = gridView2.FocusedRowHandle;获取选中行的下标,根据选中行的下标删除。完成移动的操作! 在写》的方法
private List<WaitParVo> WList;
}); 先根据列表对应的实体类,创建list集合, 用foreach遍历新增,将集合里所有的值,全部新增,根据集合里的值,对应赋值给,两一个列表的相应名称。 this.gridControl1.DataSource = null;将之前的列表为空。 完成移动,右侧同理 3、删除、 ①将DataSource置为null,再保存, ②删除表中的信息,在次查询,后面会讲 ③单行删除,(删除所选中行) int rowindex = gridView2.FocusedRowHandle; 欢迎补充 4、修改 List<ArguVo> arguList = gridView1.DataSource as List<ArguVo>; 首先获取到当前列表,遍历当前列表,这里是等到了列表的主键,根据主键修改,java代码,执行修改的sql语句,即可实现。 在这里要讲一下,我的需求,希望会对大家有所帮助, 右侧列表不可编辑,点击修改,参数值和停用可编辑, 选中参数值,查看属性,optionsColumn里面,allowedit设置为true,readonly为false,这是可编辑状态 参数说明,参数名称的属性,因为这里是不可编辑的,均设置为allowedit为false,readonly为true,不可编辑 在修改按钮的点击事件下, setBtnStatus(true);//设置按钮状态 并写setBtnStatus方法,方法如下将boolean值以参数的形式传递进去, /// <summary> 即可,不要忘了将其他按钮下的状态,置位false;可根据实际情况改变。 至此,增删改查已完成。日后或有补充。 在讲一下树状图,treeList 在vs中的工具栏里,有treelist工具,通过查询的方法,将列表的数据,以树的形式展现出来。也页面设计器中,右键选中 run Designer fieldName为你想展示出来的实体类中的哪一个字段,这里是因为要展示两个字段,在实体类中加 public string TreeText get CodeDept 和 NameDept;为你实体类中本身的值。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------2017年12月28日 按回车页面上输入框跳转问题 如果这些输入框,在一个panel下,是可以自动正常跳转的,会按照顺序跳转,但是如果想让他按回车之后跳转到某一个输入框的话, 在设计器页面下,点击视图,里面有一个tab建顺序按钮 点击之后,
上图蓝色的为编号,x.y.z。 xy一样,主要看z 鼠标点击一次蓝色的小方块,蓝色的小方块为初始时,在此点击+1, 比方说A输入框的蓝色的小方块为7.1.15,想让他跳转到右侧的B输入框,则把右侧的输入框设置为7.1.16即可,其他的同理,系统会自动按照顺序一步一步跳转过去。 记得修改完之后,要将tab键顺序关掉,可以按esc,保存,生成即可。 并将enterMoveNextControl属性设置为true(一般默认为true)
顺带说一下,keyPress事件点击
private void cboPosision_KeyPress(object sender, KeyPressEventArgs e) 双击keypress事件,cboPosision_KeyPress获取该事件的输入框, meComment.Focus();获取焦点的输入框, meComment为输入框的名字。 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------2017年12月28日 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------2018年01月06日 C#里按钮的快捷键 先说一下思路吧,有两种思路,一种是注册事件,另一种是在属性里添加, 这次先讲一下在属性里添加的方式,后续会整理注册事件的方式 首先,先写一个公共类, 类名HotKeysManager(可随个人喜好) 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Windows.Forms; 6 7 using Zebone.His.Controls; 8 9 namespace Zebone.His.Utils 10 { 11 /// <summary> 12 /// 快捷键管理 13 /// </summary> 14 public class HotkeysManager 15 { 16 private List<HotkeysInfo> hotkeysItems = new List<HotkeysInfo>(); 17 18 /// <summary> 19 /// 清空所有的快捷键 20 /// </summary> 21 public void Clear() 22 { 23 hotkeysItems.Clear(); 24 } 25 26 /// <summary> 27 /// 触发指定快捷键对应的操作,指定的快捷键有对应操作时,返回true,否则返回false 28 /// </summary> 29 /// <param name="keys">快捷键键位</param> 30 /// <returns></returns> 31 public bool Handle(Keys keys, ref bool suppressKeyPress) 32 { 33 foreach (var item in hotkeysItems) 34 { 35 if (item.Keys == keys) 36 { 37 item.Action(); 38 suppressKeyPress = item.SuppressKeyPress; 39 40 return true; 41 } 42 } 43 44 return false; 45 } 46 47 /// <summary> 48 /// 注册快捷键 49 /// </summary> 50 /// <param name="hotkeysRegistration">注册快捷键接口</param> 51 /// <returns></returns> 52 public HotkeysManager Register(IHotkeysRegistration hotkeysRegistration) 53 { 54 if (hotkeysRegistration != null) hotkeysRegistration.RegisterHotkeys(this); 55 56 return this; 57 } 58 59 /// <summary> 60 /// 注册快捷键 61 /// </summary> 62 /// <param name="keys">快捷键键位</param> 63 /// <param name="description">快捷键说明</param> 64 /// <param name="action">快捷键对应操作</param> 65 public HotkeysManager Register(Keys keys, string description, Action action) 66 { 67 return Register(keys, description, false, action); 68 } 69 70 /// <summary> 71 /// 注册快捷键 72 /// </summary> 73 /// <param name="keys">快捷键键位</param> 74 /// <param name="description">快捷键说明</param> 75 /// <param name="suppressKeyPress">执行快捷键后,是否取消按键输入</param> 76 /// <param name="action">快捷键对应操作</param> 77 public HotkeysManager Register(Keys keys, string description, bool suppressKeyPress, Action action) 78 { 79 hotkeysItems.Insert(0, new HotkeysInfo() 80 { 81 Keys = keys, 82 Action = action, 83 SuppressKeyPress = suppressKeyPress, 84 Description = description 85 }); 86 87 return this; 88 } 89 90 /// <summary> 91 /// 获取当前已经注册的快捷键数量 92 /// </summary> 93 internal int Count 94 { 95 get { return hotkeysItems.Count; } 96 } 97 98 /// <summary> 99 /// 从控件中发现并注册快捷键 100 /// </summary> 101 /// <param name="control"></param> 102 /// <returns></returns> 103 internal HotkeysManager Register(Control control) 104 { 105 //查找并注册按钮快捷键 106 var button = control as IButtonControl; 107 var supportHotkeys = control as ISupportHotkeys; 108 if (button != null && supportHotkeys != null && supportHotkeys.Hotkeys != Keys.None) 109 { 110 Register(supportHotkeys.Hotkeys, control.Text, button.PerformClick); 111 } 112 113 if (control is IHotkeysRegistration) 114 { 115 Register(control as IHotkeysRegistration); 116 } 117 118 //从子控件中查找 119 foreach (var c in control.Controls) 120 { 121 if (c is Control) Register(c as Control); 122 } 123 124 return this; 125 } 126 127 private class HotkeysInfo 128 { 129 public Keys Keys { get; set; } 130 131 public Action Action { get; set; } 132 133 public bool SuppressKeyPress { get; set; } 134 135 public string Description { get; set; } 136 } 137 } 138 } 代码里有相应注释,后期会在次详细处理 在写一个公共的类,引用这个类的方法,我这里写的是BaseForm(名称可随个人喜好)
上面要用using的方式引用之前的utils 然后在你要添加的页面引用baseForm public partial class InternEmpEdit : BaseForm 然后点击toolbar按钮----属性 (这里以F2为例) 如下图 保存生成,即可。 本期先整理到这,如有疑问,尽情留言! 您的质疑,使我们共同进步。 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------2018年01月06日 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------2018年01月08日 C#上传图片 图片上传,首先在页面上定义一个PictureEdit的控件, 再加一个buttencontrol 再添加一个工具控件,OpenFileDialog(在工具箱中可以找到,名字自拟,这里气的名字为ofdPhoto) 接下来开始写代码, ①首先要创建对应的实体类,数据库里存储的类型为image 对应的实体类的类型为 /// <summary> ②要适应格式, private const string FILEFILTER = "图片|*.jpg;*.png;*.gif;*.jpeg;*.bmp|所有文件|*.*"; 如图 ③赋值
} ④上传按钮的点击事件 private void buttonControl1_Click(object sender, EventArgs e) ⑤第五步,最关键的一步 private void ofdPhoto_FileOk(object sender, CancelEventArgs e) pePhoto为pictureEdit的名称 上传成功,保存进数据库即可。 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------2018年01月08日 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------2018年01月11日 C#保留小数点后几位String.Format("{0:N1}", a) 保留小数点后一位 String.Format("{0:N2}", a) 保留小数点后两位 String.Format("{0:N3}", a) 保留小数点后三位
C#保留小数位N位四舍五入
C#保留小数位N位四舍五入
---------------------------------------------------------------------------------------------------------------------------------------------------------------------2018年01月11日 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------2018年04月20日 C# 怎么判断输入的字符串是整数(输入的不一定是字符串类型,可以是object类型) /// <summary> 我这里传的参数是string 类型,当然也可以传一个obj类型 不过在 long.TryParse(s, out num); 中的s可以加上.toString(); 在需要的方法中调用即可 (附赠按钮的点击方法) private void btnSaveSupply_Click_1(object sender, EventArgs e) 红色字体为调用该方法处 ----------------------------------------------------------------------------------------------------------------------------------------------------------2018-06-05 C#列表中判断输入的值是否为数字 两种思路。 但是首先要写一个方法,方法分为两种: 1 1 /// <summary> 2 /// 判断输入是否数字 3 /// </summary> 4 /// <param name="num">要判断的字符串</param> 5 /// <returns></returns> 6 public static bool VldInt(string num) 7 { 8 #region 9 int ResultNum; 10 return int.TryParse(num, out ResultNum); 11 #endregion 2 1 /// <summary> 2 /// 判断输入的是否为数字 3 /// </summary> 4 /// <param name="num"></param> 5 /// <returns></returns> 6 public static bool isNum(string num) 7 { 8 #region 9 try 10 { 11 Convert.ToInt32(num); 12 return true; 13 } 14 catch 15 { 16 return false; 17 } 18 #endregion 19 }
一,可以在保存时做判断, 点击按钮,获取需要的所有列表,循环遍历调用方法,如果不符合条件,跳出循环,不细讲了 二、EditValueChanging事件,实时判断, 1 private void riteQuan_EditValueChanging(object sender, DevExpress.XtraEditors.Controls.ChangingEventArgs e) 2 { 3 var row = gvApply.GetFocusedRow() as BdOrdSetAndDtVO; 4 var aa = isNum(e.NewValue.ToString()); 5 if (!aa) e.NewValue = "1"; 6 if (e.NewValue.ToString() != "" || e.NewValue != null) 7 { 8 row.Quan = Convert.ToDecimal(e.NewValue); 9 } 10 if (row != null && row.Quan != 0) 11 { 12 var i = e.NewValue; 13 row.Amount = row.PriceCg * row.Quan; 14 } 15 else 16 gvApply.DeleteRow(gvApply.FocusedRowHandle); 17 gvApply.RefreshData(); 18 } 19 #endregion 其中第四行调用该方法,第5行判断,如果不满足条件,赋默认值为1 -------------------------------------------------------------------------------------------------------------------------------------------------------2018-06-05
String.Format("{0:N1}", a) 保留小数点后一位 String.Format("{0:N2}", a) 保留小数点后两位 String.Format("{0:N3}", a) 保留小数点后三位
C#保留小数位N位四舍五入
C#保留小数位N位四舍五入
|
请发表评论