using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class MainClass {
private FontDialog fontDlg = new FontDialog();
private Font currFont = new Font("Times New Roman", 12);
public static void Main() {
FontDialog fontDlg = new FontDialog();
if (fontDlg.ShowDialog() != DialogResult.Cancel) {
Console.WriteLine(fontDlg.Font);
}
}
}
GUI Windows Form
Focus Form
/*
Professional Windows GUI Programming Using C#
by Jay Glynn, Csaba Torok, Richard Conway, Wahid Choudhury,
Zach Greenvoss, Shripad Kulkarni, Neil Whitlow
Publisher: Peer Information
ISBN: 1861007663
*/
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace Wrox.ProgrammingWindowsGUI.Chapter5
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class FocusForm : System.Windows.Forms.Form
{
private System.Windows.Forms.TextBox txtFocusForm;
private System.Windows.Forms.Button btFocusForm;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public FocusForm()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.txtFocusForm = new System.Windows.Forms.TextBox();
this.btFocusForm = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// txtFocusForm
//
this.txtFocusForm.Location = new System.Drawing.Point(8, 8);
this.txtFocusForm.Name = "txtFocusForm";
this.txtFocusForm.Size = new System.Drawing.Size(336, 20);
this.txtFocusForm.TabIndex = 0;
this.txtFocusForm.Text = "";
this.txtFocusForm.LostFocus += new System.EventHandler(this.txtFocusForm_LostFocus);
this.txtFocusForm.GotFocus += new System.EventHandler(this.txtFocusForm_GotFocus);
//
// btFocusForm
//
this.btFocusForm.Location = new System.Drawing.Point(8, 40);
this.btFocusForm.Name = "btFocusForm";
this.btFocusForm.Size = new System.Drawing.Size(336, 23);
this.btFocusForm.TabIndex = 1;
this.btFocusForm.Text = "This button does nothing";
this.btFocusForm.Click += new System.EventHandler(this.btFocusForm_Click);
//
// FocusForm
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(352, 70);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.btFocusForm,
this.txtFocusForm});
this.MaximizeBox = false;
this.Name = "FocusForm";
this.Text = "FocusForm";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new FocusForm());
}
protected void txtFocusForm_LostFocus(object sender, EventArgs e)
{
// MessageBox.Show("Goodbye!");
}
protected void txtFocusForm_GotFocus(object sender, EventArgs e)
{
// MessageBox.Show("Hello!");
}
private void btFocusForm_Click(object sender, System.EventArgs e)
{
bool canFocus = txtFocusForm.CanFocus;
bool containsFocus = this.ContainsFocus;
bool focused = txtFocusForm.Focused;
MessageBox.Show("Textbox can focus: " + canFocus +
"
Form children contain focus: " + containsFocus +
"
Textbox has focus: " + focused);
txtFocusForm.Focus();
}
}
}
Hex View
/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO;
using System.Text;
namespace HexView
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class frmHexView : System.Windows.Forms.Form
{
private System.Windows.Forms.MainMenu mainMenu1;
private System.Windows.Forms.MenuItem mnuFileMenu;
private System.Windows.Forms.MenuItem mnuFileOpen;
private System.Windows.Forms.MenuItem mnuFileClose;
private System.Windows.Forms.MenuItem mnuFileExit;
private System.Windows.Forms.MenuItem mnuAboutMenu;
private System.Windows.Forms.MenuItem mnuAboutHexView;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.OpenFileDialog openFileDialog1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public frmHexView()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
textBox1.BackColor = Color.White;
this.openFileDialog1.Filter = "Text files (*.txt)|*.txt|Wide Character Files (*.wcs)|*.wcs|All Files (*.*)|*.*||";
textBox1.Font = new Font ("Courier New", 12);
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.mainMenu1 = new System.Windows.Forms.MainMenu();
this.mnuFileMenu = new System.Windows.Forms.MenuItem();
this.mnuFileOpen = new System.Windows.Forms.MenuItem();
this.mnuFileClose = new System.Windows.Forms.MenuItem();
this.mnuFileExit = new System.Windows.Forms.MenuItem();
this.mnuAboutMenu = new System.Windows.Forms.MenuItem();
this.mnuAboutHexView = new System.Windows.Forms.MenuItem();
this.textBox1 = new System.Windows.Forms.TextBox();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.SuspendLayout();
//
// mainMenu1
//
this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.mnuFileMenu,
this.mnuAboutMenu});
//
// mnuFileMenu
//
this.mnuFileMenu.Index = 0;
this.mnuFileMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.mnuFileOpen,
this.mnuFileClose,
this.mnuFileExit});
this.mnuFileMenu.Text = "File";
//
// mnuFileOpen
//
this.mnuFileOpen.Index = 0;
this.mnuFileOpen.Text = "Open";
this.mnuFileOpen.Click += new System.EventHandler(this.OnFileOpen);
//
// mnuFileClose
//
this.mnuFileClose.Index = 1;
this.mnuFileClose.Text = "Close";
this.mnuFileClose.Click += new System.EventHandler(this.OnFileClose);
//
// mnuFileExit
//
this.mnuFileExit.Index = 2;
this.mnuFileExit.Text = "Exit";
this.mnuFileExit.Click += new System.EventHandler(this.OnFileExit);
//
// mnuAboutMenu
//
this.mnuAboutMenu.Index = 1;
this.mnuAboutMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.mnuAboutHexView});
this.mnuAboutMenu.Text = "About";
//
// mnuAboutHexView
//
this.mnuAboutHexView.Index = 0;
this.mnuAboutHexView.Text = "About HexView";
this.mnuAboutHexView.Click += new System.EventHandler(this.OnAboutAbout);
//
// textBox1
//
this.textBox1.Dock = System.Windows.Forms.DockStyle.Fill;
this.textBox1.Multiline = true;
this.textBox1.Name = "textBox1";
this.textBox1.ReadOnly = true;
this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.textBox1.Size = new System.Drawing.Size(592, 317);
this.textBox1.TabIndex = 0;
this.textBox1.Text = "";
this.textBox1.WordWrap = false;
//
// frmHexView
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(592, 317);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.textBox1});
this.Menu = this.mainMenu1;
this.Name = "frmHexView";
this.Text = "Hex View";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new frmHexView());
}
byte [] Data;
private void OnFileOpen(object sender, System.EventArgs e)
{
if (openFileDialog1.ShowDialog () == DialogResult.Cancel)
return;
FileStream strm;
try
{
strm = new FileStream (openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
}
catch (Exception)
{
string str = "Cannot open " + openFileDialog1.FileName + " for reading";
MessageBox.Show (str, "HexView");
return;
}
if (Data != null)
Array.Clear (Data, 0, Data.Length);
Data = new Byte[strm.Length];
strm.Read (Data, 0, (int) strm.Length);
strm.Close();
FillTextBox ();
int index = openFileDialog1.FileName.LastIndexOf ('');
this.Text = this.Text + " - " + openFileDialog1.FileName.Substring (index + 1);
}
private void FillTextBox ()
{
textBox1.Text = "";
StringBuilder strb = new StringBuilder ();
StringBuilder text = new StringBuilder ();
char [] ch = new char [1];
for (int x = 0; x < Data.Length; x += 16)
{
text.Length = 0;
strb.Length = 0;
for (int y = 0; y < 16; ++y)
{
if ((x + y) > (Data.Length - 1))
break;
ch[0] = (char) Data[x + y];
strb.AppendFormat ("{0,0:X2} ", (int) ch[0]);
if (((int) ch[0] < 32) || ((int) ch[0] > 127))
ch[0] = '.';
text.Append (ch);
}
text.Append ("
");
while (strb.Length < 52)
strb.Append (" ");
strb.Append (text.ToString());
textBox1.Text += strb.ToString ();
}
textBox1.Select (0, 0);
}
private void OnFileClose(object sender, System.EventArgs e)
{
textBox1.Text = "";
this.Text = "Hex View";
}
private void OnFileExit(object sender, System.EventArgs e)
{
Application.Exit ();
}
private void OnAboutAbout(object sender, System.EventArgs e)
{
About about = new About();
about.ShowDialog();
}
}
/// <summary>
/// Summary description for About.
/// </summary>
public class About : System.Windows.Forms.Form
{
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button button1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public About()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(148, 112);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(104, 24);
this.button1.TabIndex = 2;
this.button1.Text = "OK";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// label1
//
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.label1.Location = new System.Drawing.Point(36, 16);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(344, 56);
this.label1.TabIndex = 0;
this.label1.Text = "A Simple Hex Viewer";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label2
//
this.label2.Location = new System.Drawing.Point(36, 80);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(344, 16);
this.label2.TabIndex = 1;
this.label2.Text = "C# Tips and Techniques";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// About
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(416, 149);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.button1,
this.label2,
this.label1});
this.Name = "About";
this.Text = "About Hex View";
this.ResumeLayout(false);
}
#endregion
private void button1_Click(object sender, System.EventArgs e)
{
this.Close ();
}
}
}
Fake Drag And Drop
/*
User Interfaces in C#: Windows Forms and Custom Controls
by Matthew MacDonald
Publisher: Apress
ISBN: 1590590457
*/
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace FakeDragAndDrop
{
/// <summary>
/// Summary description for FakeDragAndDrop.
/// </summary>
public class FakeDragAndDrop : System.Windows.Forms.Form
{
internal System.Windows.Forms.Label lblDragger;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public FakeDragAndDrop()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(FakeDragAndDrop));
this.lblDragger = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// lblDragger
//
this.lblDragger.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.lblDragger.Image = ((System.Drawing.Bitmap)(resources.GetObject("lblDragger.Image")));
this.lblDragger.Location = new System.Drawing.Point(110, 105);
this.lblDragger.Name = "lblDragger";
this.lblDragger.Size = new System.Drawing.Size(72, 56);
this.lblDragger.TabIndex = 2;
this.lblDragger.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lblDragger_MouseUp);
this.lblDragger.MouseMove += new System.Windows.Forms.MouseEventHandler(this.lblDragger_MouseMove);
this.lblDragger.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lblDragger_MouseDown);
//
// FakeDragAndDrop
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.lblDragger});
this.Name = "FakeDragAndDrop";
this.Text = "Fake Drag And Drop";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new FakeDragAndDrop());
}
// Keep track of when fake "drag and drop" mode is enabled.
private bool isDragging = false;
// Store the location where the user clicked the control.
private int clickOffsetX, clickOffsetY;
// Start dragging.
private void lblDragger_MouseDown(System.Object sender,
System.Windows.Forms.MouseEventArgs e)
{
isDragging = true;
clickOffsetX = e.X;
clickOffsetY = e.Y;
}
// End dragging.
private void lblDragger_MouseUp(System.Object sender,
System.Windows.Forms.MouseEventArgs e)
{
isDragging = false;
}
// Move the control (during dragging).
private void lblDragger_MouseMove(System.Object sender,
System.Windows.Forms.MouseEventArgs e)
{
if (isDragging == true)
{
// The control coordinates are converted into form coordinates
// by adding the label position offset.
// The offset where the user clicked in the control is also
// accounted for. Otherwise, it looks like the top-left corner
// of the label is attached to the mouse.
lblDragger.Left = e.X + lblDragger.Left - clickOffsetX;
lblDragger.Top = e.Y + lblDragger.Top - clickOffsetY;
}
}
}
}
FakeDragAndDrop.zip( 23 k)
Drag and drop the PictureBox
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
public class Form1 : System.Windows.Forms.Form
{
private bool isDragging = false;
private int currentX, currentY;
Rectangle dropRect = new Rectangle(180, 180, 60, 60);
private PictureBox myPictureBox;
public Form1()
{
InitializeComponent();
CenterToScreen();
myPictureBox = new PictureBox();
myPictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
myPictureBox.Location = new System.Drawing.Point(64, 32);
myPictureBox.Size = new System.Drawing.Size(50, 50);
myPictureBox.Image = new Bitmap("winter.jpg");
myPictureBox.MouseDown += new MouseEventHandler(myPictureBox_MouseDown);
myPictureBox.MouseUp += new MouseEventHandler(myPictureBox_MouseUp);
myPictureBox.MouseMove += new MouseEventHandler(myPictureBox_MouseMove);
myPictureBox.Cursor = Cursors.Hand;
Controls.Add(myPictureBox);
}
private void InitializeComponent()
{
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 273);
this.Text = "Dragging Images";
this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
}
static void Main()
{
Application.Run(new Form1());
}
private void myPictureBox_MouseDown(object sender, MouseEventArgs e)
{
isDragging = true;
currentX = e.X;
currentY = e.Y;
}
private void myPictureBox_MouseMove(object sender, MouseEventArgs e) {
if (isDragging) {
myPictureBox.Top = myPictureBox.Top + (e.Y - currentY);
myPictureBox.Left = myPictureBox.Left + (e.X - currentX);
}
}
private void myPictureBox_MouseUp(object sender, MouseEventArgs e)
{
isDragging = false;
Console.WriteLine(dropRect.Contains(myPictureBox.Bounds));
}
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g = e.Graphics;
g.FillRectangle(Brushes.AntiqueWhite, dropRect);
g.DrawString("Drag and drop the image here.", new Font("Times New Roman", 8), Brushes.Red, dropRect);
}
}
Drag and drop image to another window
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class Palette : Form
{
private System.Windows.Forms.Label lblPictureThree;
private System.Windows.Forms.Label lblPictureTwo;
private System.Windows.Forms.Label lblPictureOne;
public Palette() {
InitializeComponent();
}
private void lbl_MouseDown(object sender, MouseEventArgs e)
{
Label lbl = (Label)sender;
lbl.DoDragDrop(lbl.Image, DragDropEffects.Copy);
}
private void InitializeComponent()
{
this.lblPictureThree = new System.Windows.Forms.Label();
this.lblPictureTwo = new System.Windows.Forms.Label();
this.lblPictureOne = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// lblPictureThree
//
this.lblPictureThree.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.lblPictureThree.Image = new Bitmap("winter.jpg");
this.lblPictureThree.Location = new System.Drawing.Point(12, 113);
this.lblPictureThree.Name = "lblPictureThree";
this.lblPictureThree.Size = new System.Drawing.Size(56, 48);
this.lblPictureThree.TabIndex = 6;
this.lblPictureThree.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lbl_MouseDown);
//
// lblPictureTwo
//
this.lblPictureTwo.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.lblPictureTwo.Image = new Bitmap("winter.jpg");
this.lblPictureTwo.Location = new System.Drawing.Point(12, 61);
this.lblPictureTwo.Name = "lblPictureTwo";
this.lblPictureTwo.Size = new System.Drawing.Size(56, 48);
this.lblPictureTwo.TabIndex = 5;
this.lblPictureTwo.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lbl_MouseDown);
//
// lblPictureOne
//
this.lblPictureOne.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.lblPictureOne.Image = new Bitmap("winter.jpg");
this.lblPictureOne.Location = new System.Drawing.Point(12, 9);
this.lblPictureOne.Name = "lblPictureOne";
this.lblPictureOne.Size = new System.Drawing.Size(56, 48);
this.lblPictureOne.TabIndex = 4;
this.lblPictureOne.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lbl_MouseDown);
//
// Palette
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(83, 173);
this.Controls.Add(this.lblPictureTwo);
this.Controls.Add(this.lblPictureOne);
this.Controls.Add(this.lblPictureThree);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.Name = "Palette";
this.ShowInTaskbar = false;
this.Text = "Palette";
this.ResumeLayout(false);
}
[STAThread]
static void Main()
{
Application.Run(new DrawingArea());
}
}
public class DrawingArea : Form
{
private System.Windows.Forms.PictureBox picDrawingArea;
public DrawingArea()
{
InitializeComponent();
}
private void DrawingArea_Load(object sender, EventArgs e)
{
Palette frmTool = new Palette();
this.AddOwnedForm(frmTool);
frmTool.Show();
picDrawingArea.AllowDrop = true;
}
private void picDrawingArea_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Bitmap))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void picDrawingArea_DragDrop(object sender, DragEventArgs e)
{
Graphics g = picDrawingArea.CreateGraphics();
g.DrawImage((Image)e.Data.GetData(DataFormats.Bitmap),
new Point(e.X - this.Left, e.Y - this.Top));
}
private void InitializeComponent()
{
this.picDrawingArea = new System.Windows.Forms.PictureBox();
((System.ComponentModel.ISupportInitialize)(this.picDrawingArea)).BeginInit();
this.SuspendLayout();
//
// picDrawingArea
//
this.picDrawingArea.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.picDrawingArea.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.picDrawingArea.Location = new System.Drawing.Point(1, 2);
this.picDrawingArea.Name = "picDrawingArea";
this.picDrawingArea.Size = new System.Drawing.Size(377, 270);
this.picDrawingArea.TabIndex = 2;
this.picDrawingArea.TabStop = false;
this.picDrawingArea.DragDrop += new System.Windows.Forms.DragEventHandler(this.picDrawingArea_DragDrop);
this.picDrawingArea.DragEnter += new System.Windows.Forms.DragEventHandler(this.picDrawingArea_DragEnter);
//
// DrawingArea
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(379, 274);
this.Controls.Add(this.picDrawingArea);
this.Name = "DrawingArea";
this.Text = "Drawing Area";
this.Load += new System.EventHandler(this.DrawingArea_Load);
((System.ComponentModel.ISupportInitialize)(this.picDrawingArea)).EndInit();
this.ResumeLayout(false);
}
}
Drag and drop inside a container
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
public class Form1 : System.Windows.Forms.Form
{
internal System.Windows.Forms.Label lblDragger;
public Form1()
{
InitializeComponent();
}
private void InitializeComponent()
{
this.lblDragger = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// lblDragger
//
this.lblDragger.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.lblDragger.Image = new Bitmap("winter.jpg");
this.lblDragger.Location = new System.Drawing.Point(110, 105);
this.lblDragger.Name = "lblDragger";
this.lblDragger.Size = new System.Drawing.Size(72, 56);
this.lblDragger.TabIndex = 2;
this.lblDragger.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lblDragger_MouseUp);
this.lblDragger.MouseMove += new System.Windows.Forms.MouseEventHandler(this.lblDragger_MouseMove);
this.lblDragger.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lblDragger_MouseDown);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.lblDragger});
this.Name = "Form1";
this.Text = "Fake Drag And Drop";
this.ResumeLayout(false);
}
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private bool isDragging = false;
private int clickOffsetX, clickOffsetY;
private void lblDragger_MouseDown(System.Object sender, System.Windows.Forms.MouseEventArgs e)
{
isDragging = true;
clickOffsetX = e.X;
clickOffsetY = e.Y;
}
private void lblDragger_MouseUp(System.Object sender, System.Windows.Forms.MouseEventArgs e)
{
isDragging = false;
}
private void lblDragger_MouseMove(System.Object sender,
System.Windows.Forms.MouseEventArgs e)
{
if (isDragging == true)
{
lblDragger.Left = e.X + lblDragger.Left - clickOffsetX;
lblDragger.Top = e.Y + lblDragger.Top - clickOffsetY;
}
}
}