c# - 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;
}
解决方案
推荐阅读
- flutter - Flutter:将 CollectionReferece 传递给 Stream
- postgis - 查找适合主折线的折线列表 - 巴士路线和自行车道
- django - Rel.to 在 Django 2.0 中已弃用
- c++ - 使用 Clang / OLLVM 在 Linux 上交叉编译 helloworld Windows 可执行文件时出现问题
- regex - 在括号+静态文本中提取值的正则表达式命令是什么?
- spring - Spring Boot (v2.3.1):Spring Batch 将数据从一个步骤传递到另一个步骤
- snowflake-cloud-data-platform - C# 雪花命令
- javascript - 如何使用 vue.js 中的单击事件从数据表中删除行而不干扰计算函数
- excel - 将单元格设置为静态值或数据验证列表,具体取决于另一个单元格
- python - 如何使用 python 使我的网站无法访问