Winform C#截屏实现

本文介绍了一个使用C# WinForm在Win10系统下实现屏幕截图的方法。通过创建一个无边框最大化Form作为画布,监听键盘ESC键退出,以及处理MouseDown、Up、Move事件来实现截屏和操作。代码简洁,但未经调试,主要分享实现思路。
摘要由CSDN通过智能技术生成

        项目中需要实现自动截取屏幕,网络上找了好久,发现好可以达到效果的程序,太复杂。代码少的程序,截屏时的效果并不太理想。综合网上的程序,略做改动,记录如下。

实现思路:

1.新建一个form窗体,FormStyle为None,初始化时最大化,作为截屏的画布。

2.实现按键监听事件,响应ESC退出

3.实现Mouse Down、Up、Move事件,实现截取退出截屏等操作。

       下面直接上代码,关键部分,看注释。代码上传时,有改动,未调试,可能有问题,主要是记录实现思路。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Test_Screen_Capture
{
    public partial class ScreenCapture : Form
    {
        public ScreenCapture()
        {
            InitializeComponent();
        }


        private Image _back { get; set; }
        private bool _downed { get; set; }
        private Image _image { get; set; }
        public Image selected_image { get; set; }
        public Rectangle rect { get; set; }
        private Point _down_point { get; set; }
        private SolidBrush _mask { get; set; }

        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);

            Graphics org = e.Graphics; //画出选择区域
            org.DrawImage(_image, rect, rect, GraphicsUnit.Pixel);

            Graphics g = e.Graphics;
            g.SmoothingMode = System.Drawing.Drawing2D.Smoothin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值