首页 > 解决方案 > C# GUI -- 使形状跟随鼠标并在点击时放置

问题描述

我正在开发一个基本的 GUI Windows 窗体应用程序。它允许用户使用滑动条更改颜色,使用滚动条更改形状的大小,并单击复选框以确定是否应填充形状,如果单击清除按钮则清除屏幕,以及使用按钮在形状之间切换. 我目前正在使用 MouseMove 事件来使形状跟随面板内部的鼠标。我还有一个 MouseClick 事件。当有鼠标点击时,我希望它“放置”该形状,以便图形持续存在。我已经能够将单个形状移动到用户单击的位置并使其跟随鼠标,我只是不知道如何将两者结合起来。

这是我到目前为止所拥有的:

        void DrawShape()
        {
            //g.Clear(Color.White);
            p.Color = Color.FromArgb(r, gr, b);
            if (IsChecked) // If checkbox is checked for fill
            {
                if (IsRect)
                {
                    g.FillRectangle(myBrush, left, top, wid, ht); // Filled Rectangle
                }
                else if (IsEllipse)
                {
                    g.FillEllipse(myBrush, left, top, wid, ht); // Filled Ellipse
                }
            }
            else // not filled
            {
                if (IsRect) 
                {
                    g.DrawRectangle(p, left, top, wid, ht); // empty rectangle
                }
                else if (IsEllipse)// empty ellipse
                {
                    g.DrawEllipse(p, left, top, wid, ht);
                }
            }

        }
        private void panel1_MouseMove(object sender, MouseEventArgs e) // when mouse moves
        {
            left = e.X;
            top = e.Y;
            DrawShape();
        }
        private void panel1_MouseClick(object sender, MouseEventArgs e) //when mouse clicks
        {
            left = e.X;
            top = e.Y;
            IsClick = true;
            DrawShape();
            IsClick = false;
        }

标签: c#windows-forms-designer

解决方案


推荐阅读