我认为这与投射有关:
首先,我为我的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,以便上述代码能够正常工作吗?
答案 0 :(得分:1)
你可以把苹果变成橙色吗?不。嗯,你不能只从System.out.println(value)
个实例中做出MouseEventArgs
。
在这种情况下,您的代码没有意义。您正试图获取悬停事件的按钮。悬停是在没有任何按钮点击的情况下完成的。如果您想知道在悬停时按下的按钮,您需要先缓存EventArgs
和MouseDown
事件以注册单击的按钮。
答案 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.MouseDown
和PictureBox.MouseMove
个事件从您第一次按下按钮的位置开始,同时在按住按钮的同时移动鼠标并松开按钮。
PictureBox.MouseUp