Csharp/C Sharp/GUI Windows Form/Cursor — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 14:33, 26 мая 2010
Содержание
All Mouse Cursors
<source lang="csharp">
using System; using System.Drawing; using System.Windows.Forms;
class MouseCursors: Form {
Cursor[] acursor = { Cursors.AppStarting, Cursors.Arrow, Cursors.Cross, Cursors.Default, Cursors.Hand, Cursors.Help, Cursors.HSplit, Cursors.IBeam, Cursors.No, Cursors.NoMove2D, Cursors.NoMoveHoriz, Cursors.NoMoveVert, Cursors.PanEast, Cursors.PanNE, Cursors.PanNorth, Cursors.PanNW, Cursors.PanSE, Cursors.PanSouth, Cursors.PanSW, Cursors.PanWest, Cursors.SizeAll, Cursors.SizeNESW, Cursors.SizeNS, Cursors.SizeNWSE, Cursors.SizeWE, Cursors.UpArrow, Cursors.VSplit, Cursors.WaitCursor }; string[] astrCursor = { "AppStarting", "Arrow", "Cross", "Default", "Hand", "Help", "HSplit", "IBeam", "No", "NoMove2D", "NoMoveHoriz", "NoMoveVert", "PanEast", "PanNE", "PanNorth", "PanNW", "PanSE", "PanSouth", "PanSW", "PanWest", "SizeAll", "SizeNESW", "SizeNS", "SizeNWSE", "SizeWE", "UpArrow", "VSplit", "WaitCursor" }; public static void Main() { Application.Run(new MouseCursors()); } public MouseCursors() { Text = "Mouse Cursors"; ResizeRedraw = true; } protected override void OnMouseMove(MouseEventArgs mea) { int x = Math.Max(0, Math.Min(3, mea.X / (ClientSize.Width / 4))); int y = Math.Max(0, Math.Min(6, mea.Y / (ClientSize.Height / 7))); Cursor.Current = acursor[4 * y + x]; } protected override void OnPaint(PaintEventArgs pea) { Graphics grfx = pea.Graphics; Brush brush = new SolidBrush(ForeColor); Pen pen = new Pen(ForeColor); StringFormat strfmt = new StringFormat(); strfmt.LineAlignment = strfmt.Alignment = StringAlignment.Center; for (int y = 0; y < 7; y++){ for (int x = 0; x < 4; x++) { Rectangle rect = Rectangle.FromLTRB( x * ClientSize.Width / 4, y * ClientSize.Height / 7, (x + 1) * ClientSize.Width / 4, (y + 1) * ClientSize.Height / 7); grfx.DrawRectangle(pen, rect); grfx.DrawString(astrCursor[4 * y + x], Font, brush, rect, strfmt); } } }
}
</source>
Hand Cursor
<source lang="csharp"> using System.Drawing; using System.Windows.Forms;
class FormProperties {
public static void Main() { Form form = new Form(); form.Text = "Form Properties"; form.Cursor = Cursors.Hand; Application.Run(form); }
}
</source>
Load animated cursor
<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using System.IO; public class Form1 : Form {
public Form1() { InitializeComponent(); try { this.Cursor = AdvancedCursors.Create(Path.rubine(Application.StartupPath, "blob.ani")); } catch (Exception err) { MessageBox.Show(err.Message); } } private void InitializeComponent() { this.SuspendLayout(); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 266); this.Text = "Form1"; this.ResumeLayout(false); }
[STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); }
} public class AdvancedCursors {
[DllImport("User32.dll")] private static extern IntPtr LoadCursorFromFile(String str); public static Cursor Create(string filename) { IntPtr hCursor = LoadCursorFromFile(filename); if (!IntPtr.Zero.Equals(hCursor)) { return new Cursor(hCursor); } else { throw new ApplicationException("Could not create cursor from file " + filename); } }
}
</source>
Load cursor file(*.cur)
<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;
public class Form1 : Form {
public Form1() { this.SuspendLayout(); this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 268); this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint); this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove); this.ResumeLayout(false); } private void Form1_MouseMove(object sender, MouseEventArgs e) { Point p = new Point(e.X, e.Y); Rectangle r; if (new Rectangle(0, 0, 100, 100).Contains(p)) this.Cursor = new Cursor("MyCursor.cur"); else if (new Rectangle(100, 0, 100, 100).Contains(p)) this.Cursor = Cursors.Hand; else if (new Rectangle(0, 100, 100, 100).Contains(p)) this.Cursor = Cursors.VSplit; else if (new Rectangle(100, 100, 100, 100).Contains(p)) this.Cursor = Cursors.UpArrow; else this.Cursor = Cursors.Default; } private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.FillRectangle(Brushes.Blue, 0, 0, 100, 100); g.FillRectangle(Brushes.Red, 100, 0, 100, 100); g.FillRectangle(Brushes.Yellow, 0, 100, 100, 100); g.FillRectangle(Brushes.Green, 100, 100, 100, 100); } static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); }
}
</source>
Set form window cursor
<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using System.IO; public class Form1 : Form {
public Form1() { InitializeComponent(); try { this.Cursor = AdvancedCursors.Create(Path.rubine(Application.StartupPath, "blob.ani")); } catch (Exception err) { MessageBox.Show(err.Message); } } private void InitializeComponent() { this.SuspendLayout(); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 266); this.Text = "Form1"; this.ResumeLayout(false); }
[STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); }
} public class AdvancedCursors {
[DllImport("User32.dll")] private static extern IntPtr LoadCursorFromFile(String str); public static Cursor Create(string filename) { IntPtr hCursor = LoadCursorFromFile(filename); if (!IntPtr.Zero.Equals(hCursor)) { return new Cursor(hCursor); } else { throw new ApplicationException("Could not create cursor from file " + filename); } }
}
</source>
Set Form window cursor to wait cursor
<source lang="csharp">
using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; public class MainForm : System.Windows.Forms.Form { private System.ruponentModel.Container components; public MainForm() { InitializeComponent(); BackColor = Color.Tomato; Opacity = 0.5d; Text = "www.nfex.ru"; Cursor = Cursors.WaitCursor; this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint); } protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } private void InitializeComponent() { this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(292, 273); this.Text = "Form1"; } [STAThread] static void Main() { Application.Run(new MainForm()); } private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { Graphics g = e.Graphics; g.DrawString("www.nfex.ru", new Font("Times New Roman", 20), new SolidBrush(Color.Black), 40, 10); } }
</source>