1

私はC#が初めてで、いくつかのコードを書き始めたばかりです。心に留めていることがありますが、それに進む前に、この問題について助けが必要です。マウスのクリックを検出して実行中のプロセスを終了するには? いくつかの行を書きましたが、コンパイルして実行すると、マウスのクリックはまったく効果がありません。誰かが私を見て助けてくれませんか?これが私のセリフです...

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Graphic_test_1
{
    public partial class Form1 : Form
    {
            public static Single lim_x, lim_y; // limits in X & Y
            public static int dly = 45;
            System.Drawing.Pen myPen = new System.Drawing.Pen(System.Drawing.Color.Blue); // color of the pen
            System.Drawing.Graphics Canvas;
            public Boolean clik = false; // initialize
            public string mystring;
            public Form1()
            {
                    InitializeComponent();
            }

            protected override void OnMouseClick(MouseEventArgs e)
            {
                    base.OnMouseClick(e);
                    clik = true;
                    lim_x = e.X;
                    lim_y = e.Y;
            }

            private void btgo_Click(object sender, EventArgs e) // Start drawing  [GO]
            {
                    Canvas = this.CreateGraphics();
                    btgo.Enabled = false;
                    MessageBox.Show("Checking the limits of the canvas.\r\n" +
                            "Click anywhere to stop and find out X position",
                            "Watching Coordinates",
                            MessageBoxButtons.OK, MessageBoxIcon.Information);
                    btgo.Visible = false;
                    btend.Enabled = false;

                    myPen.Color=System.Drawing.Color.Red; // color of the pen
                    myPen.Width = 2; // pen width
                    System.Drawing.Font drawfont = new System.Drawing.Font("Arial", 10); // Graphics font
                    System.Drawing.SolidBrush mybrush = new System.Drawing.SolidBrush(System.Drawing.Color.Black); // color for the font
                    System.Drawing.Color background;
                    background = this.BackColor;

                    lim_x = 0; // initialize
                    do
                    {
                            Canvas.DrawLine(myPen, 0, 200, lim_x, 200);
                            mystring = "Current X = " + lim_x.ToString();
                            mybrush.Color = System.Drawing.Color.Black;
                            Canvas.DrawString(mystring, drawfont, mybrush, 351, 334);
                            System.Threading.Thread.Sleep(dly);
                            mybrush.Color = background; // use the background color
                            Canvas.FillRectangle(mybrush, new Rectangle(350, 333, 500, 353));
                            if (clik)
                            {
                                    mybrush.Color = background; // use the background color
                                    Canvas.FillRectangle(mybrush, new Rectangle(350, 333, 500, 353));
                                    mystring = "Current X = " + lim_x.ToString();
                                    mybrush.Color = System.Drawing.Color.Black;
                                    Canvas.DrawString(mystring, drawfont, mybrush, 351, 334);
                                    MessageBox.Show("Final position in X = " + lim_x.ToString(),
                                            "Mouse click detected",
                                            MessageBoxButtons.OK, MessageBoxIcon.Stop);
                                    break;
                            }
                            else
                                    lim_x++;
                    } while (lim_x < 611);

                    myPen.Dispose(); // release the pen
                    mybrush.Dispose(); // release the brush
                    Canvas.Dispose(); // release the canvas
                    btend.Enabled = true;
                    btend.Focus();
            }

            private void btend_Click(object sender, EventArgs e) // quit program  [END]
            {
                    Dispose(); // program ends.
            }

    }

}

4

2 に答える 2

3

フォームを閉じたい場合は、 を使用しますthis.Close()。アプリケーションを終了したい場合は、 を使用できますApplication.Exit()

于 2013-06-20T17:52:48.510 に答える