首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

实现单击左右光标实现图片的下一幅和上一副的功能

2012-10-23 
实现单击左右光标实现图片的上一幅和下一副的功能给位:我在picture中显示图片,想实现在picture控件里单击

实现单击左右光标实现图片的上一幅和下一副的功能
给位:
  
  我在picture中显示图片,想实现在picture控件里单击左右光标键时实现图片的上一幅和下一幅切换的功能。
没有找到与这功能配匹的触发事件。
  若有前辈知晓这个功能的实现,恳请交流。

[解决办法]
增加 pic 所在窗体的 KeyDown事件
[解决办法]

C# code
private void Form1_KeyDown(object sender, KeyEventArgs e)        {            if (e.KeyCode == Keys.Right)            {                if (ImgCount == imageList1.Images.Count - 1)                    ImgCount = 0;                else                    ImgCount++;            }            else if (e.KeyCode == Keys.Left)            {                if (ImgCount == 0)                    ImgCount = imageList1.Images.Count - 1;                else                    ImgCount--;            }            pictureBox1.Image = imageList1.Images[ImgCount];        }
[解决办法]
探讨
引用:
引用:

增加 pic 所在窗体的 KeyDown事件



但是,picturebox中没有这个事件 。而且是光标的左右移动,不是鼠标的左右移动。
我是VS2010.

我说增加 pic 所在的 窗体的 事件, 不是pic他自身的事件, 我就怕你看不懂我说的,连代码都贴出来了..还看不懂?

[解决办法]
还好,就按我说的办法干吧。
通过pic的MouseDown()事件设置:pic.Focus();
通过重写ProcessDialogKey(),可以判断pic的焦点问题。
protected override bool ProcessDialogKey(Keys keyData)
{
if (pictureBox1.Focused)
{
switch (keyData)
{
case Keys.Left:
MessageBox.Show("这里放置左移图片的方法");
break;
case Keys.Right:
MessageBox.Show("这里放置右移图片的方法");
break;
}
// 如果焦点在pictureBox上则不调用base.ProcessDialogKey(keyData)
return true;
}
return base.ProcessDialogKey(keyData);
}

热点排行