当前位置: 代码迷 >> 综合 >> Winform下相关知识
  详细解决方案

Winform下相关知识

热度:26   发布时间:2023-10-26 16:52:19.0

1.字符串比较用 equals,常量放前面,变量放后面,这样不用先判断变量是否为空

2. dataTable.copy();//复制结构和数据
    dataTable.clone();//仅复制结构,不复制数据

3.BeginInit和EndInit

如果一个组件实现ISupportInitialize接口,那么设计器就会生成BeginInit和EndInit。
该接口的最大作用就是,把多个BeginInit和EndInit之间的命令当成一锤子买卖来对待。
假设一个类,有个最大值和当前值,限定当前值不能大于最大值。
难题是设计器很难保证要首先设置最大值,然后再设置当前值(可能其他控件也会设置My实例)。
如果支持了ISupportInitialize,那么My类就理解现在还是初始化阶段,不用麻烦去检查错误,不用麻烦去处理每个变动

4.用户控件和自定义组件和窗体

用户控件:自定义的可重用组件,易于创建,如果控件有大量静态布局,用户控件是首选,不可添加到工具箱

自定义组件:也是可重用组件,用代码创建,比较难创建userControl类,易用性更强,可添加到工具箱,被编译成dll

窗体:上述两者的容器

5.DataTable 和 DataView 互相转换

    DataView view = DataTable.DefaultView;
    view.RowFilter = "BANKNO='5002'";//DataView 查询条件
    view.Sort = "CHANNELID,NETPOINT,BANKNO,PAYWAY";//DataView  排序

   DataTable.DataSource = view.Table;

6.添加弹框
      MessageBox.Show("当前工作日TA已完成清算", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

7.添加选择弹框

                 DialogResult dateMessage = XtraMessageBox.Show(string.Format("文件头账单生成日期:{0}与当前交易日:{1}不一致,是否继续对账?", "1", "1"), "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                        if (dateMessage == DialogResult.No)
                        {
                            return;
                        }

8.计时功能
      System.Diagnostics.Stopwatch singleStopwatch = new System.Diagnostics.Stopwatch();
      singleStopwatch.Reset();singleStopwatch.Start();  

      singleStopwatch.Stop();

      singleStopwatch.Elapsed.TotalSeconds;

9.操作文件夹

 //判断该目录是否存在,不存在则创建
                        if (!Directory.Exists(localDir))
                        {
                            Directory.CreateDirectory(localDir);
                        }

Directory.GetFiles(localDir)//获取文件目录下所有文件

10.一行行得读txt文件

while (!file.EndOfStream)
                {

                    var _row = file.ReadLine();
                    if (_rowNum == 1)
                    {
                        _row = System.Text.RegularExpressions.Regex.Replace(_row, @"\s+", "|");  //把空格转换成 | 以便后面截取字符串,替换字符必须在原字符串中没有出现
                        tradeNum = _row.Split('|')[0] is null ? ":0" : _row.Split('|')[0];//截取到交易总笔数字段
                        tradeNum = tradeNum.Split(':')[1] is null ? "0" : tradeNum.Split(':')[1];
                        log.Info(string.Format("快钱对账文件交易总笔数:{0}", tradeNum))         

                    }                                 
                }
 

  相关解决方案