this.KeyPreview = true;
this.MouseWheel += new MouseEventHandler(Form1_MouseWheel);

this.KeyPreview = true是要让窗体优先响应按键事件。

void Form1_MouseWheel(object sender, MouseEventArgs e)
        {
            if (e.Delta > 0)
            {
                ShowPrevPicture();
            }
            else
            {
                ShowNextPicture();
            }
        }

我这里是让鼠标滚轮往下滚时显示下一张图,往上滚时显示上一张。

按键事件的话需要重载ProcessDialogKey函数

protected override bool ProcessDialogKey(Keys keyData)
        {
            switch (keyData)
            {
                case Keys.Left:
                case Keys.Up:
                    ShowPrevPicture();
                    return true;
                case Keys.Right:
                case Keys.Down:
                case Keys.Enter:
                    ShowNextPicture();
                    return true;
                case Keys.Delete:
                    DeleteCurrentPicutreFromHardDisk();
                    return true;
                case Keys.Subtract:
                    DownImageLevel(PictureList.ElementAt(curIndex));
                    DeleteCurrentPicutureFromShowList();
                    return true;
                case Keys.Add:
                case Keys.Insert:
                    UpImageLevel(PictureList.ElementAt(curIndex));
                    DeleteCurrentPicutureFromShowList();
                    return true;
            }
            return false;
        }