求助:(WinForm)关于Panel上鼠标事件的两个简单问题,我找了近两天都没有找到答案,每个问题50分!

birdxxxx 2004-09-17 06:34:35
1、我在Form上面加了一个Panel,没有填充满整个Form,左边空出来一部分。然后Panel里放了一个背景图片,比Panel要大些。我现在希望把整个图片都显示出来,也就是说Panel需要有滚动条。
以前的方法是在它上面再加个PictureBox控件,但PictureBox控件有个问题,我无法实现鼠标在上面的拖放。

2、我在Panel上用鼠标每次拖放生成一个PiceureBox控件,然后可以在这个控件上显示右键菜单,处理代码如下:(MyObject_MouseDown是m_object的注册事件,ctmenuCircle为ContextMenu控件)
private void MyObject_MouseDown(object sender, MouseEventArgs e)
{
try
{
if(e.Button==MouseButtons.Left)
{
else if(e.Button==MouseButtons.Right)
{
Point p = new Point(0,0);
p.X = e.X;
p.Y = e.Y;
Point fromPoint = pnlSeatArea.PointToClient(p);
ctmenuCircle.MenuItems.Clear();
ctmenuCircle.MenuItems.Add("删除", new System.EventHandler(this.DeleteSeatCircle));
ctmenuCircle.Show(pnlSeatArea, fromPoint);
}
}
catch (Exception ex)
{
throw (ex);
}
}
}

...全文
184 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
birdxxxx 2004-09-17
  • 打赏
  • 举报
回复
谢谢chNET(有神论者),50分定给!不过要等到周日。周日晚上我会结贴。但如果第1个问题解决,我会立刻结贴。
sanall 2004-09-17
  • 打赏
  • 举报
回复
2、
private void MyObject_MouseDown(object sender, MouseEventArgs e)
{
if(e.Button==MouseButtons.Right)
{
ctmenuCircle.Show(pnlSeatArea, new point(e.x,e.y));
}
}
chNET 2004-09-17
  • 打赏
  • 举报
回复
2、 try

private void Form1_Load(object sender, System.EventArgs e)
{
ContextMenu m = new ContextMenu();
m.MenuItems.Clear();
m.MenuItems.Add("删除");
pictureBox1.ContextMenu = m;
}
birdxxxx 2004-09-17
  • 打赏
  • 举报
回复
在代码 里没有问题,贴上来的时候不小心贴多了。抱歉!

晕,第2个问题居然没写完!才发现。
如下:
2、我在Panel上用鼠标每次拖放生成一个PiceureBox控件,然后可以在这个控件上显示右键菜单,处理代码如下:(MyObject_MouseDown是m_Ojbect的注册事件,ctmenuCircle为ContextMenu控件)
private void MyObject_MouseDown(object sender, MouseEventArgs e)
{
try
{
if(e..Button==MouseButtons.Right)
{
Point p = new Point(0,0);
p.X = e.X;
p.Y = e.Y;
Point fromPoint = pnlSeatArea.PointToClient(p);
ctmenuCircle.MenuItems.Clear();
ctmenuCircle.MenuItems.Add("删除", new System.EventHandler(this.DeleteSeatCircle));
//ctmenuCircle.Show(pnlSeatArea, fromPoint);
ctmenuCircle.Show(m_Ojbect, fromPoint);
}
catch (Exception ex)
{
throw (ex);
}
}
}
虽然鼠标右键可以出现弹出菜单,但菜单却不是出现在鼠标点击的位置上,不知道怎么回事?
BearRui 2004-09-17
  • 打赏
  • 举报
回复
第2个什么问题啊,

// 下面的判断语句好象有问题吧
if(e.Button==MouseButtons.Left)
{
else if(e.Button==MouseButtons.Right)
{
birdxxxx 2004-09-17
  • 打赏
  • 举报
回复
在线等待,立结!
(俺的结贴率可是100%呀,即便是还是没解决的问题,结贴时间最多都不超过两天)

比较急,本来今天交货的,看来要拖到下周一,问题全卡在鼠标操作这些上面了。以前做的是Web,所以这方面不熟悉,都是临时抱佛脚的。

各位XDJM,有劳了!

111,100

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧