c#我可以将EventArgs转入MouseEventArgs吗?

时间:2018-06-01 13:40:16

标签: c#

认为这与投射有关:

首先,我为我的picturebox声明了一个事件处理程序:

        pictureBox1.MouseHover += new EventHandler(this.pictureBox1_MouseHover);

接下来,我试图检查左鼠标按钮是否按下:

    private void pictureBox1_MouseHover(object sender, EventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            /*some gibberish for when the left mouse button is held*/
        }

    }

但这不起作用,因为EventArgs不是MouseEventArgs

我可以Cast或以某种方式将EventArgs e转换为MouseEventArgs,以便上述代码能够正常工作吗?

2 个答案:

答案 0 :(得分:1)

你可以把苹果变成橙色吗?不。嗯,你不能只从System.out.println(value)个实例中做出MouseEventArgs

在这种情况下,您的代码没有意义。您正试图获取悬停事件的按钮。悬停是在没有任何按钮点击的情况下完成的。如果您想知道在悬停时按下的按钮,您需要先缓存EventArgsMouseDown事件以注册单击的按钮。

答案 1 :(得分:0)

如果要在移动鼠标时检查是否按下了鼠标按钮,那么如果要记录鼠标移动,则应订阅const express = require('express'); const router = express.Router(); const bodyParser = require('body-parser'); const timestamps = require('mongoose-timestamp'); router.use(bodyParser.urlencoded({ extended: true })); router.use(bodyParser.json()); const SessionSchema = require('./Session'); // register the mongo model const mongoose = require('mongoose'); const Session = mongoose.model('session'); //Post a session to the database router.post('/', function(req, res) { const new_session = { gameTitle : req.body.gameTitle, users : req.body.user, scores : req.body.score, positions : req.body.position }; new_session.save((err, saved_session) => { if(err) { res.json(err); } else { res.json(saved_session); } }); }); PictureBox.MouseDownPictureBox.MouseMove个事件从您第一次按下按钮的位置开始,同时在按住按钮的同时移动鼠标并松开按钮。

PictureBox.MouseUp