mouseklick und ..
-
Hallo,
wie kann ich einen Button einstellen, so damit wenn ich auf Ihn klicke folgendes passiert:
Ein Rechteck soll gezeichnet werden, ich kann ein rechteck alleine zeichnen, also :
private static void f1_paint( object sender, PaintEventArgs e ) { // Get Graphics Object Graphics g = e.Graphics; // Create Font Font f = new Font( "Verdana", 12 ); // Create Brush SolidBrush b = new SolidBrush( Color.Tomato ); // Pen definieren Pen bluePen= new Pen(Color.DarkCyan,2); g.DrawRectangle(bluePen,10,10,50,50); } f.Dispose(); b.Dispose(); }
aber wie kann ich das so verbinden, das es erst nach einem Mouseklick pasiert??
kann man das irgendwie schon im Designer von SharpDevelopement einstellen?
oder kann ich die Methode f1_paint in der Mouseklick Methode angeben?, aber was kommt dann als parameter in die Methode fi???Danke
-
bool isMouseDown = false; private void Form_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { DrawRect( this.CreateGraphics() ); isMouseDown = true; } private void Form_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { if( isMouseDown ) DrawRect( e.Graphics ); } private void DrawRect( Graphics g ) { // Create Font Font f = new Font( "Verdana", 12 ); // Create Brush SolidBrush b = new SolidBrush( Color.Tomato ); // Pen definieren Pen bluePen= new Pen(Color.DarkCyan,2); g.DrawRectangle(bluePen,10,10,50,50); f.Dispose(); b.Dispose(); }
-
also mein kompletter Code sieht so aus, habe deins ersucht klappte aber nicht, was muß ich zusätzlich denn noch ändern???
using System; using System.Drawing; using System.Windows.Forms; namespace Test { /// <summary> /// Description of MainForm. /// </summary> public class MainForm : System.Windows.Forms.Form { private System.Windows.Forms.Button button1; public MainForm() { // // The InitializeComponent() call is required for Windows Forms designer support. // InitializeComponent(); this.Paint += new PaintEventHandler( f1_paint ); // // TODO: Add constructor code after the InitializeComponent() call. // } [STAThread] public static void Main(string[] args) { Application.Run(new MainForm()); } #region Windows Forms Designer generated code private void InitializeComponent() { this.button1 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // button1 // this.button1.Location = new System.Drawing.Point(80, 304); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(128, 32); this.button1.TabIndex = 0; this.button1.Text = "EinmalEins"; this.button1.Click += new System.EventHandler(this.Button1Click); // // MainForm // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(360, 358); this.Controls.Add(this.button1); this.Name = "MainForm"; this.Text = "MainForm"; this.ResumeLayout(false); } private static void f1_paint( object sender, PaintEventArgs e ) { // Get Graphics Object Graphics g = e.Graphics; // Create Font Font f = new Font( "Verdana", 12 ); // Create Brush SolidBrush b = new SolidBrush( Color.Tomato ); // Pen definieren Pen bluePen= new Pen(Color.DarkCyan,2); // Ueberschrift g.DrawString( "Hallo", f, b, 100, 100 ); } // Now tidy up f.Dispose(); b.Dispose(); } #endregion void Button1Click(object sender, System.EventArgs e) { } } }
will also nach dem Mausklick die Graphic ausgeben ..
-
Du musst nichts ändern, mein Code funktioniert.
Wenn Du nur bei einem Button- bzw. Mouse-Click das Rechteck zeichnen willst, dann schreibe folgenden Code in die Routine.Graphics g = this.CreateGraphics(); Font f = new Font( "Verdana", 12 ); SolidBrush b = new SolidBrush( Color.Tomato ); Pen bluePen= new Pen(Color.DarkCyan,2); g.DrawRectangle(bluePen,10,10,50,50); // Ressourcen noch freigeben