• C#-常用知识点


    1.日期相关

    获取英文月份名称 : DateTime.Now.ToString("MMMM")

    1.1 各个字母所代表的意思

    1.MM:月份 2.mm:分钟 3. MMMM:文字形式月份 4.MMM:三个字母缩写的月份

    4.HH:24小时制 5.hh:12小时制

    6.ddd:三个字母缩写的星期 7.dddd:完整的星期

    8.t: 单字母 A.M./P.M. 缩写(A.M. 将显示为“A”) 9.tt:两字母 A.M./P.M. 缩写(A.M. 将显示为“AM”)

    9.zz 时区(eg:+8)

    10.d (eg:11/3/2017)

    2. 拖拽图片显示到 PictureBox中

    首先 修改窗体的 AllowDrop 属性为true ,然后在 DragEnter 事件中写下如下代码,实际上就是获取存放拖放文件的本地路径

            private void FrmAddFood_DragEnter(object sender, DragEventArgs e)
            {
                e.Effect = DragDropEffects.Copy;//设置拖放操作中目标放置类型为复制
                string[] str_Drop = (string[])e.Data.GetData(DataFormats.FileDrop, true);//拖放的多个文件的路径列表  
                string tempstr = str_Drop[0];//获取拖放第一个文件的路径
                try
                {
                    Image img = Image.FromFile(tempstr);//存储拖放的图片
                    pic.Image = img;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                }
            }
    

    3.string数组转换为int数组

     string[] strs = { "1", "2", "3" };
     int[] nums = Array.ConvertAll<string, int>(strs, t => int.Parse(t));
    

    4.获取屏幕尺寸

        //不包含任务栏
        int width1 = SystemInformation.WorkingArea.Width;
        int height1 = SystemInformation.WorkingArea.Height;
    
        //包含任务栏
        int width2 = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
        int height2 = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;
    

    5.压缩图片,生成缩略图

     /// <summary>
     /// 生成缩略图
     /// </summary>
     /// <param name="sourceImage">源图</param>
     /// <param name="width">新图宽</param>
     /// <param name="height">新图高</param>
     /// <returns>新图</returns>
     public Image GetReducedImage(Image sourceImage, int width, int height)
     {
         Bitmap bitmap = new Bitmap(width, height);
         Graphics g = Graphics.FromImage(bitmap);
         g.Clear(Color.Transparent); //清空背景图,以透明色填充
         //在新图片的指定位置绘制指定大小的原图片对象
         g.DrawImage(sourceImage, new Rectangle(0, 0, width, height));
         return bitmap;
     }
    

    方式二:

    img.GetThumbnailImage(width, height, null, IntPtr.Zero);
    

    6.货币格式字符串转换为 Int

      int str= int.Parse("$123,123.00", System.Globalization.NumberStyles.AllowThousands| System.Globalization.NumberStyles.AllowDecimalPoint|  ystem.Globalization.NumberStyles.AllowCurrencySymbol);
    

    7.修改配置文件

        private void SetAppSetting(string key, string value)
        {
            // 1.Debug目录下的配置文件
            Configuration config = ConfigurationManager.OpenExeConfiguration("UI.exe");
            config.AppSettings.Settings[key].Value = value;
            config.Save();
    
            // 2.项目目录下的配置文件
            //获取配置文件目录
            string path = Environment.CurrentDirectory;
            path = path.Substring(0, path.Length - 9) + "App.config";
            //修改指定属性值
            XDocument doc = XDocument.Load(path);
            var rts = doc.Root.Element("appSettings");
            rts.Elements().Single(t => t.Attribute("key").Value == key).Attribute("value").Value = value;
            doc.Save(path);
        } 
    

    8.获取当前程序运行绝对路径

    Environment.CurrentDirectory
    

    9.无边框窗体拖动实现

        int x;
        int y;
        private void Item_MouseDown(object sender, MouseEventArgs e)
        {
            x = e.X;
            y = e.Y;
        }
        private void Item_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                this.Location = new Point(this.Location.X + (e.X - this.x), this.Location.Y + (e.Y - this.y));
            }
        }
    

    10.转换Linq结果集为 DataTable

            public static DataTable ToDataTable<T>(IEnumerable<T> ds)
            {
                DataTable dt = new DataTable();
                //Column Name
                foreach (var item in ds.First().GetType().GetProperties())
                {
                    dt.Columns.Add(item.Name);
                }
                //Datarow
                foreach (var item in ds)
                {
                    DataRow dr = dt.NewRow();
                    foreach (DataColumn col in dt.Columns)
                    { 
                        dr[col.ColumnName] = item.GetType().GetProperty(col.ColumnName).GetValue(item);
                    }
                    dt.Rows.Add(dr);
                }
                return dt;
            }  
    

    11.生成唯一字符串

    Guid.NewGuid().ToString("N");
    

    12. C#实现中国式四舍五入

    Math.Round(123.125, 2, MidpointRounding.AwayFromZero);
    
  • 相关阅读:
    tiny4412 串口驱动分析八 --- log打印的几个阶段之内核启动阶段(printk tiny4412串口驱动的注册)
    tiny4412 串口驱动分析七 --- log打印的几个阶段之内核启动阶段(earlyprintk)
    tiny4412 串口驱动分析六 --- TTY驱动架构
    Android简单的利用SoundPool进行播放铃声的实例代码
    Android简单的利用MediaRecorder进行录音的实例代码
    tiny4412 串口驱动分析五 --- LDD3上TTY驱动程序源码
    tiny4412 串口驱动分析四 --- 修改默认的串口输出
    tiny4412 串口驱动分析三 --- log打印的几个阶段之内核自解压
    tiny4412 串口驱动分析二 --- printk的实现
    tiny4412 串口驱动分析一 --- u-boot中的串口驱动
  • 原文地址:https://www.cnblogs.com/-Tiger/p/7965551.html
Copyright © 2020-2023  润新知