C#一些小知识点

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

 private void Form2_Load(object sender, EventArgs e)
        {
            DirectoryInfo dir = new DirectoryInfo(@"F:\image\car");
            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:\bbb.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:\test.jpg", FileMode.Create);
                stream.Write(b, 0, b.Length);
                stream.Close();

 

C#一些小知识点

上一篇:事件(C#)


下一篇:【C#】递归搜索指定目录下的指定项目(文件或目录)