Files
ScreenCaptureApp/MainForm.cs
2025-06-09 20:21:03 +07:00

79 lines
2.8 KiB
C#

using System;
using System.Drawing;
using System.Windows.Forms;
namespace ScreenCaptureApp
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void btnCapture_Click(object sender, EventArgs e)
{
this.Hide();
using (var captureForm = new ScreenCaptureForm())
{
if (captureForm.ShowDialog() == DialogResult.OK)
{
// Добавляем кнопки для выбора действия
using (var resultForm = new ResultForm(captureForm.CapturedImage))
{
if (resultForm.ShowDialog() == DialogResult.OK)
{
SaveImage(captureForm.CapturedImage);
}
else if (resultForm.DialogResult == DialogResult.Yes)
{
CopyToClipboard(captureForm.CapturedImage);
}
}
}
}
this.Show();
}
private void SaveImage(Image image)
{
using (SaveFileDialog sfd = new SaveFileDialog())
{
sfd.Filter = "PNG Image|*.png|JPEG Image|*.jpg|Bitmap Image|*.bmp";
sfd.Title = "Save Screenshot";
sfd.FileName = "screenshot.png";
if (sfd.ShowDialog() == DialogResult.OK)
{
image.Save(sfd.FileName, GetImageFormat(sfd.FileName));
MessageBox.Show("Screenshot saved successfully!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
private void CopyToClipboard(Image image)
{
try
{
Clipboard.SetImage(image);
MessageBox.Show("Screenshot copied to clipboard!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show($"Failed to copy to clipboard: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private System.Drawing.Imaging.ImageFormat GetImageFormat(string fileName)
{
string ext = System.IO.Path.GetExtension(fileName).ToLower();
switch (ext)
{
case ".jpg": return System.Drawing.Imaging.ImageFormat.Jpeg;
case ".jpeg": return System.Drawing.Imaging.ImageFormat.Jpeg;
case ".bmp": return System.Drawing.Imaging.ImageFormat.Bmp;
default: return System.Drawing.Imaging.ImageFormat.Png;
}
}
}
}