Files
FSI.BT.IR.Tools/SharpClipboard/SharpClipboard.Tests.NetCoreWinForms/MainForm.cs
Maier Stephan SI 1c68b8f401 Sicherung
2023-04-17 07:07:49 +02:00

126 lines
4.9 KiB
C#

using System;
using System.IO;
using System.Drawing;
using System.Diagnostics;
using System.Windows.Forms;
using System.Security.Principal;
using System.Collections.Generic;
namespace SharpClipboard.Tests.NetCoreWinForms
{
public partial class MainForm : Form
{
#region Constructor
public MainForm()
{
InitializeComponent();
}
#endregion
#region Fields
private static WK.Libraries.SharpClipboardNS.SharpClipboard clipboard =
new WK.Libraries.SharpClipboardNS.SharpClipboard();
#endregion
#region Events
private void sharpClipboard1_MonitorClipboardChanged(object sender, EventArgs e)
{
chkMonitorClipboard.Checked = sharpClipboard1.MonitorClipboard;
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
sharpClipboard1.MonitorClipboard = chkMonitorClipboard.Checked;
}
private void chkObserveTexts_CheckedChanged(object sender, EventArgs e)
{
sharpClipboard1.ObservableFormats.Texts = chkObserveTexts.Checked;
}
private void chkObserveImages_CheckedChanged(object sender, EventArgs e)
{
sharpClipboard1.ObservableFormats.Images = chkObserveImages.Checked;
}
private void chkObserveFiles_CheckedChanged(object sender, EventArgs e)
{
sharpClipboard1.ObservableFormats.Files = chkObserveFiles.Checked;
}
private void sharpClipboard1_ClipboardChanged(object sender, WK.Libraries.SharpClipboardNS.SharpClipboard.ClipboardChangedEventArgs e)
{
if (e.ContentType == WK.Libraries.SharpClipboardNS.SharpClipboard.ContentTypes.Text)
{
txtCopiedTexts.Text = sharpClipboard1.ClipboardText;
// Alternatively, you can use:
// ---------------------------
// txtCopiedTexts.Text = (string)e.Content;
}
else if (e.ContentType == WK.Libraries.SharpClipboardNS.SharpClipboard.ContentTypes.Image)
{
pbCopiedImage.Image = sharpClipboard1.ClipboardImage;
// Alternatively, you can use:
// ---------------------------
// pbCopiedImage.Image = (Image)e.Content;
}
else if (e.ContentType == WK.Libraries.SharpClipboardNS.SharpClipboard.ContentTypes.Files)
{
// Declare variable to add the list of copied files.
List<string> files = new List<string>();
// Add all copied files to the declared variable.
foreach (string file in sharpClipboard1.ClipboardFiles)
{
files.Add(Path.GetFileName(file));
}
Debug.WriteLine(sharpClipboard1.ClipboardFiles.ToArray());
// Add all copied files to the files ListBox.
lstCopiedFiles.Items.Clear();
lstCopiedFiles.Items.AddRange(files.ToArray());
// Alternatively, you can use:
// ---------------------------
// lstCopiedFiles.Items.AddRange(((List<string>)e.Content).ToArray()));
}
else if (e.ContentType == WK.Libraries.SharpClipboardNS.SharpClipboard.ContentTypes.Other)
{
// Do something with 'e.Content' or alternatively
// 'sharpClipboard1.ClipboardObject' property here...
// A great example is when a user has copied an Outlook Mail item.
// Such an item will be of a complex object-type that can be parsed and
// examined using the 'Microsoft.Office.Interop.Outlook' namespace features.
// See here: https://stackoverflow.com/questions/25375367/how-to-copy-mailitem-in-outlook-c-sharp
// You can however still use the 'ClipboardText' property if you
// prefer simply displaying the copied object in text format.
txtCopiedTexts.Text = sharpClipboard1.ClipboardText.ToString();
}
// If you wish to get details of the application from where
// any text, file, image or other objects were cut/copied,
// simply add a TextBox and uncomment the lines below.
// --------------------------------------------------------
// textBox1.Text =
// $"Name: {e.SourceApplication.Name} \n" +
// $"Title: {e.SourceApplication.Title} \n" +
// $"ID: {e.SourceApplication.ID} \n" +
// $"Handle: {e.SourceApplication.Handle} \n" +
// $"Path: {e.SourceApplication.Path}";
// --------------------------------------------------------
// This could come in-handy if you're developing a clipboard-monitoring app.
}
#endregion
}
}