• C#一些小知识点


    1. 在Load时候由代码来做控件PictureBox,并且用代码将图片加载进去:

     private void Form2_Load(object sender, EventArgs e)
            {
                DirectoryInfo dir = new DirectoryInfo(@"F:imagecar");
                FileInfo[] files = dir.GetFiles("*.jpg");
    
                foreach (FileInfo f in files)
                {
                    //造PictureBox
                    PictureBox pb = new PictureBox();
                    //加载图片
                    pb.Image = Image.FromFile(f.FullName);
                    //设置图片框大小
                    pb.Size = new System.Drawing.Size(100, 80);
                    //设置缩放
                    pb.SizeMode = PictureBoxSizeMode.Zoom;
                    //加到流式布局控件中去
                    flowLayoutPanel1.Controls.Add(pb);
                    //给图片框加上click事件
                    pb.Click +=pb_Click;
                }
            }

    2. 关于事件,sender是指事件源,比如在PictureBox上加的点击事件,则事件源就是该PictureBox,sender是个object类型,所以要强转一下。E是事件数据,EventArgs是事件数据的基类。

     private void pb_Click(object sender, EventArgs e)
            {
                picShow.Image = ((PictureBox)sender).Image;
            }

    3. 代码加事件,去事件

     pb.Click +=pb_Click;  去事件用”-=”,加完事件之后Tab键生成。

    4.   #region 这是自定义的工具函数

         #region 这是自定义的工具函数
         中间一般将自己写的工具函数(供其他函数调用的)包在中间,这样能使代码更清晰。
         #endregion

    5. 关闭程序

    Application.Exit();是整个应用程序结束,比this.close()更直接。
    This.close();是关闭窗口导致程序结束。

    6. 在一个图片上面的指定位置写文字:

                //加载图像
                Image img = Image.FromFile(@"E:cyl.jpg");
                Graphics g = Graphics.FromImage(img);
                //写字
                string s = "http://www.ITNBA.COM";
                Font font = new System.Drawing.Font("隶书", 14, FontStyle.Italic);
                SolidBrush brush = new SolidBrush(Color.Blue);
                g.DrawString(s, font, brush, 10, 10);
                
                //保存
                img.Save(@"E:cyl0.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

    7. 测定一个字符串的宽和高:

               //测定字体的宽与高
                SizeF size = g.MeasureString(s,font);
                size.Width是测量出的字符串的宽度
                ssize.Height是测量出的字符串的高度

    8. 在一个图片上画上另一个图片(加水印)。

               //加载图像
                Image img = Image.FromFile(@"E:cyl.jpg");//目标图像
                Image wm = Image.FromFile(@"E:bb.gif");//要加的水印
    
                //取得画板
                Graphics g = Graphics.FromImage(img);
                //画图像
                g.DrawImage(wm, 10, 10);
    
                //保存图片
                img.Save(@"E:cyl2.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

    9. 将图片放进数据库   

                //取出文本框中代号
                string code = textBox1.Text;
                //将图片变为字节数组读入内存
                FileStream stream = new FileStream(fileName, FileMode.Open);
                byte[] picture = new byte[stream.Length];
                stream.Read(picture, 0, picture.Length);
                stream.Close();
                //将图片的字节数组放进数据库存储
                PictureTableAdapter adapter = new PictureTableAdapter();
                adapter.AddPicture(code, picture);

    10. 将图片从数据库取出

                //从数据库取图片
                MyDB.PictureDataTable table = new PictureTableAdapter().GetDataByCode(textBox1.Text);
                if (table.Rows.Count > 0)
                {
                    //用数组接收
                    byte[] b = table[0].Pic;
    
                    //将图片写入硬盘
                    FileStream stream = new FileStream(@"D:	est.jpg", FileMode.Create);
                    stream.Write(b, 0, b.Length);
                    stream.Close();
  • 相关阅读:
    background及background-size
    -ms-,-moz-,-webkit-,-o-含义
    &:first-of-type含义
    ES6的Promise对象
    LightOJ 1029 Civil and Evil Engineer最小生成树和最大生成树
    快速幂模板
    poj2965 The Pilots Brothers' refrigerator 枚举或DFS
    poj1753Flip Game(枚举+DFS)
    POJ 1751Highways
    HDU 1875 畅通工程再续 prim模板题
  • 原文地址:https://www.cnblogs.com/Alvin-ftd/p/4104291.html
Copyright © 2020-2023  润新知