using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;
class ImageClip : Form {
MenuItem miCut, miCopy, miPaste, miDel;
Image image;
public static void Main() {
Application.Run(new ImageClip());
}
public ImageClip() {
Text = "Image Clip";
MenuItem mi = new MenuItem("&Edit");
mi.Popup += new EventHandler(MenuEditOnPopup);
Menu.MenuItems.Add(mi);
int index = Menu.MenuItems.Count - 1;
miCut = new MenuItem("Cu&t");
miCut.Click += new EventHandler(MenuEditCutOnClick);
miCut.Shortcut = Shortcut.CtrlX;
Menu.MenuItems[index].MenuItems.Add(miCut);
miCopy = new MenuItem("&Copy");
miCopy.Click += new EventHandler(MenuEditCopyOnClick);
miCopy.Shortcut = Shortcut.CtrlC;
Menu.MenuItems[index].MenuItems.Add(miCopy);
miPaste = new MenuItem("&Paste");
miPaste.Click += new EventHandler(MenuEditPasteOnClick);
miPaste.Shortcut = Shortcut.CtrlV;
Menu.MenuItems[index].MenuItems.Add(miPaste);
miDel = new MenuItem("De&lete");
miDel.Click += new EventHandler(MenuEditDelOnClick);
miDel.Shortcut = Shortcut.Del;
Menu.MenuItems[index].MenuItems.Add(miDel);
}
void MenuEditOnPopup(object obj, EventArgs ea) {
miCut.Enabled = miCopy.Enabled = miDel.Enabled = image != null;
IDataObject data = Clipboard.GetDataObject();
miPaste.Enabled = data.GetDataPresent(typeof(Bitmap)) || data.GetDataPresent(typeof(Metafile));
}
void MenuEditCutOnClick(object obj, EventArgs ea) {
MenuEditCopyOnClick(obj, ea);
MenuEditDelOnClick(obj, ea);
}
void MenuEditCopyOnClick(object obj, EventArgs ea) {
Clipboard.SetDataObject(image, true);
}
void MenuEditPasteOnClick(object obj, EventArgs ea) {
IDataObject data = Clipboard.GetDataObject();
if (data.GetDataPresent(typeof(Metafile)))
image = (Image)data.GetData(typeof(Metafile));
else if (data.GetDataPresent(typeof(Bitmap)))
image = (Image)data.GetData(typeof(Bitmap));
Invalidate();
}
void MenuEditDelOnClick(object obj, EventArgs ea) {
image = null;
Invalidate();
}
}