怎么实现单击鼠标图片变小双击鼠标图片变大啊~~~~

heyheyyoyo 2012-12-16 07:26:47
用到了picturebox控件~~
想要实现单击鼠标图片变小
双击鼠标图片变大(当然是击图片啦~)
还有就是点击右键能实现图片移动~

可是。。。有点困难呢对我来说。。。

所以小妹又来求大神相助啦~下面附上我的零零乱乱的代码。。。TAT
  private void pictureBox1_MouseMove(object sender,System.Windows.Forms.MouseEventArgs e)
{
this.Text=String.Concat("当前鼠标位置:","(",e.X.ToString(),",",e.Y.ToString(),")");
/* if (e.Button == MouseButtons.Left)
{
pictureBox1.Location = new Point(Cursor.Position.X - (p.X - cp.X), Cursor.Position.Y - (p.Y - cp.Y));
}*/
}
private void pictureBox1_MouseHover(object sender, System.EventArgs e)
{
this.Text = "单击左键放大图片,单击右键缩小图片,用光标移动图片";
}
private void pictureBox1_MouseLeave(object sender, System.EventArgs e)
{
this.Text = "作品信息查询";
}
private void pictureBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{

/* p.X = Cursor.Position.X;
p.Y = Cursor.Position.Y;
cp.X = pictureBox1.Location.X;
cp.Y = pictureBox1.Location.Y;*/

//double scale = 1.0;
if (e.Button == MouseButtons.Left) scale = 0.9;
//if (e.Button == MouseDoubleClick) scale = 0.9;
pictureBox1.Size = new System.Drawing.Size((int)(pictureBox1.Width * scale), (int)(pictureBox1.Height * scale));
}
double scale = 1.0;
private void pictureBox1_DoubleClick(object sender, EventArgs e)
{

scale = 1.1;
}



并不是所有屏蔽掉的语句都不要了。。。哎呀TAT我只是在做实验。。。相信大神懂的。。。。

谢大神。。TAT
...全文
715 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
heyheyyoyo 2012-12-19
  • 打赏
  • 举报
回复
引用 37 楼 ducker3590 的回复:
把pictureBox1_Cl……
讷~!我竟然忘记了还有mouseclick这个东西!!!!!!!!! 太谢谢您啦!!!!!!!!!!!!~~~~~~~ 不过我觉得36#的大哥说得对~~忽忽~~不过我想做的终于是实现了~~!!!! 谢谢大家!!!!!
heyheyyoyo 2012-12-19
  • 打赏
  • 举报
回复
引用 36 楼 sp1234 的回复:
改为用滚轮缩放吧! 先要注重用户体验的交互设计,然后才是编程。
一句话,醍醐灌顶的感觉呐。。。。。。
csdnFUCKINGSUCKS 2012-12-18
  • 打赏
  • 举报
回复
引用 35 楼 heyheyyoyo 的回复:
引用 34 楼 ducker3590 的回复:引用 32 楼 heyheyyoyo 的回复:引用 30 楼 ducker3590 的回复:触摸板有模拟鼠标滚轮操作的 唔唔唔。。能不能帮忙解决一下按右键移动时。。。图片也会变小的问题。。。 嗯 我去看看 讷讷~~~~谢谢谢谢~~~~
把pictureBox1_Click和pictureBox1_DoubleClick这两个事件去掉 换成下面这两个

/// <summary>
        /// 鼠标单击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
        {
            //判断是否是按的鼠标左键 避免按到右键误操作
            if (e.Button == System.Windows.Forms.MouseButtons.Left)
            {
                //如果当前图片框的宽高大于初始的宽高 说明已放大 则还原初始大小
                if (this.pictureBox1.Width > this.with && this.pictureBox1.Height > this.height)
                {
                    this.pictureBox1.Width = this.with;
                    this.pictureBox1.Height = this.height;
                }
            }
        }

        /// <summary>
        /// 鼠标双击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void pictureBox1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            //判断是否是按的鼠标左键
            if (e.Button == System.Windows.Forms.MouseButtons.Left)
            {
                this.pictureBox1.Width += 50;
                this.pictureBox1.Height += 50;
            }
        }
  • 打赏
  • 举报
回复
改为用滚轮缩放吧! 先要注重用户体验的交互设计,然后才是编程。
heyheyyoyo 2012-12-18
  • 打赏
  • 举报
回复
引用 34 楼 ducker3590 的回复:
引用 32 楼 heyheyyoyo 的回复:引用 30 楼 ducker3590 的回复:触摸板有模拟鼠标滚轮操作的 唔唔唔。。能不能帮忙解决一下按右键移动时。。。图片也会变小的问题。。。 嗯 我去看看
讷讷~~~~谢谢谢谢~~~~
极限编程 2012-12-17
  • 打赏
  • 举报
回复
最好是鼠标拖拽移动,鼠标滚轮进行缩放,符合一般的操作习惯
heyheyyoyo 2012-12-17
  • 打赏
  • 举报
回复
引用 15 楼 ducker3590 的回复:
我想问呢。。。。有没有一个东西。。。可以直接用来控制双击。。。。比如说我举个例子哈。。。。 if (e.Button == MouseDoubleClick) 像这样的可以写在条件句啊类似句子里的。。。。。(当然标红的这个是错的。。我瞎编的)
  • 打赏
  • 举报
回复
在click事件里判断一下是不是鼠标左键点击的
heyheyyoyo 2012-12-17
  • 打赏
  • 举报
回复
引用 5 楼 ducker3590 的回复:
鼠标移动事件是看得网上的 不过效果不是很好 建议用windows API来做 C# code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273……
程序运行起来又一个问题呢!!! 就是点右键进行移动时。。。。。。。图片也会变小!!!!!!
csdnFUCKINGSUCKS 2012-12-17
  • 打赏
  • 举报
回复
引用 32 楼 heyheyyoyo 的回复:
引用 30 楼 ducker3590 的回复:触摸板有模拟鼠标滚轮操作的 唔唔唔。。能不能帮忙解决一下按右键移动时。。。图片也会变小的问题。。。
嗯 我去看看
csdnFUCKINGSUCKS 2012-12-17
  • 打赏
  • 举报
回复
引用 31 楼 heyheyyoyo 的回复:
引用 30 楼 ducker3590 的回复:触摸板有模拟鼠标滚轮操作的 摔桌。。。。!。。。我不会!!!!TAT
姑娘 冷静!!
heyheyyoyo 2012-12-17
  • 打赏
  • 举报
回复
引用 22 楼 C_htp 的回复:
那个双击事件叫什么~~~~~~~
heyheyyoyo 2012-12-17
  • 打赏
  • 举报
回复
引用 20 楼 C_htp 的回复:
很有悟性嘛、……
嘿嘿嘿不要夸我我笨得要死~~~ >w<.. 唔。。。可是e.Buttou是可以随便赋值的?。。。如果不是系统内自己包含的事件。。。。我自己赋的值怎么让e.Button响应。。。。?
  • 打赏
  • 举报
回复
引用 20 楼 C_htp 的回复:
引用 17 楼 heyheyyoyo 的回复: 引用 15 楼 ducker3590 的回复: 我想问呢。。。。有没有一个东西。。。可以直接用来控制双击。。。。比如说我举个例子哈。。。。 if (e.Button == MouseDoubleClick) 像这样的可以写在条件句啊类似句子里的。。。。。(当然标红的这个是错的。。我瞎编的) 很有悟性嘛、 MouseDoub……
不过这是多此一举、 VS的按钮有双击事件的
heyheyyoyo 2012-12-17
  • 打赏
  • 举报
回复
引用 19 楼 ducker3590 的回复:
嗷嗷嗷怎么解释。。。。。 就是像 if (e.Button == MouseButtons.Left) 里的MouseButtons.Left。。。是一个事件直接控制击左键, 有没有一个事件可以直接控制双击的。。。。。而不用再 private void pictureBox1_DoubleClick(object sender, EventArgs e) 这样写。。。。。
  • 打赏
  • 举报
回复
引用 17 楼 heyheyyoyo 的回复:
引用 15 楼 ducker3590 的回复: 我想问呢。。。。有没有一个东西。。。可以直接用来控制双击。。。。比如说我举个例子哈。。。。 if (e.Button == MouseDoubleClick) 像这样的可以写在条件句啊类似句子里的。。。。。(当然标红的这个是错的。。我瞎编的)
很有悟性嘛、 MouseDoubleClick你可以想成是一个变量、 当你触发双击事件的时候就把一个值赋给它、 然后if (e.Button == 你赋给的值(MouseDoubleClick))
heyheyyoyo 2012-12-17
  • 打赏
  • 举报
回复
引用 30 楼 ducker3590 的回复:
触摸板有模拟鼠标滚轮操作的
唔唔唔。。能不能帮忙解决一下按右键移动时。。。图片也会变小的问题。。。
heyheyyoyo 2012-12-17
  • 打赏
  • 举报
回复
引用 30 楼 ducker3590 的回复:
触摸板有模拟鼠标滚轮操作的
摔桌。。。。!。。。我不会!!!!TAT
csdnFUCKINGSUCKS 2012-12-17
  • 打赏
  • 举报
回复
引用 29 楼 heyheyyoyo 的回复:
引用 27 楼 qq_1277874734 的回复:最好是鼠标拖拽移动,鼠标滚轮进行缩放,符合一般的操作习惯 确实是呢。。。。TAT。。。没想到。。。。可是用本本的话。。。木有滚轮。。。。。
触摸板有模拟鼠标滚轮操作的
csdnFUCKINGSUCKS 2012-12-17
  • 打赏
  • 举报
回复
引用 17 楼 heyheyyoyo 的回复:
引用 15 楼 ducker3590 的回复: 我想问呢。。。。有没有一个东西。。。可以直接用来控制双击。。。。比如说我举个例子哈。。。。 if (e.Button == MouseDoubleClick) 像这样的可以写在条件句啊类似句子里的。。。。。(当然标红的这个是错的。。我瞎编的)
额 不太明白你的意思
加载更多回复(19)

111,125

社区成员

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

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

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