动态视频播放器不会释放焦点

本文关键字:释放 焦点 视频 播放器 动态 | 更新日期: 2023-09-27 18:19:56

嗨,我认识的每个人默认情况下标签和图片框都不能有焦点,我在Form键上设计了一个方法,用箭头按钮移动这些控件

当我制作一个动态视频播放器控件时,我不能再移动这些控件,表单也不会再获得焦点

我试过了。在制作视频播放器后,有没有人能想到的东西可以让注意力集中在永久上

如果示例代码是Need,我会复制,但代码本身似乎很好,视频播放器只是保持焦点

表格1 Keydown

        if (SenderS == "Label")
        {
            // Label b = sender as Label;
            Label b = (Label)Controls[ControlID];
            int x = b.Location.X;
            int y = b.Location.Y;
            if (e.KeyCode == Keys.Right) x += 1;
            else if (e.KeyCode == Keys.Left) x -= 1;
            else if (e.KeyCode == Keys.Up) y -= 1;
            else if (e.KeyCode == Keys.Down) y += 1;
            b.Location = new Point(x, y);
        }

标签鼠标向下

        SenderS = "Label";
        Label b=sender as Label;
        ControlID = b.Name;

此代码运行良好,但当视频添加到表单中时,我无法再使用它我假设是因为表单不再接受keydown事件

动态视频播放器不会释放焦点

作为一般用途,您首先需要覆盖IsInputKey方法:

        private void YourControl_KeyDown(object sender, KeyEventArgs e)
        {
            //your logic here
        }
        protected override bool IsInputKey(System.Windows.Forms.Keys keyData)
        {
            switch (keyData)
            {
                case Keys.Right:
                case Keys.Left:
                case Keys.Up:
                case Keys.Down:
                    return true;
            }
            return base.IsInputKey(keyData);
        }

或者重写ProcessCmdKey方法。