我使用以下MouseMove事件处理程序将文本文件内容显示为CheckedListBox上的工具提示,并且有一个标记到每个checkedListBoxItem的文本文件对象.
private void checkedListBox1_MouseMove(object sender, MouseEventArgs e)
{
int itemIndex = checkedListBox1.IndexFromPoint(new Point(e.X, e.Y));
if (itemIndex >= 0)
{
if (checkedListBox1.Items[itemIndex] != null)
{
TextFile tf = (TextFile)checkedListBox1.Items[itemIndex];
string subString = tf.JavaCode.Substring(0, 350);
toolTip1.ToolTipTitle = tf.FileInfo.FullName;
toolTip1.SetToolTip(checkedListBox1, subString + "\n... ... ...");
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,我的应用程序因为checkedListBox上频繁的鼠标移动而变慢.
作为替代方案,我想,我应该使用MouseHover事件及其处理程序.但我找不到我的musePointer目前在哪个checkedListBoxItem.像这样:
private void checkedListBox1_MouseHover(object sender, EventArgs e)
{
if (sender != null)
{
CheckedListBox chk = (CheckedListBox)sender;
int index = chk.SelectedIndex;
if (chk != null)
{
TextFile tf = (TextFile)chk.SelectedItem; …Run Code Online (Sandbox Code Playgroud) 我有一个视频播放器页面,希望播放列表 div 仅在鼠标移动时淡入,并在鼠标空闲 3 秒时淡出。div 的类是“fadeobject”,它的 ID 是“”video-chooser”
升级到jquery 1.4时,以下代码中断:
$().mousemove(
function (e) {
defaults.mouseX = e.pageX;
defaults.mouseY = e.pageY;
});
};
Run Code Online (Sandbox Code Playgroud)
似乎是一个合理的解决办法是添加"html"作为选择器,例如:$("html").
修复工作正常 - 除非用户将鼠标移离页面,否则它不会将鼠标位置注册到边界之外.例如,当尝试使用鼠标位置进行拖动时,超出屏幕的移动量非常重要.有人有任何想法吗?
提前致谢.
我正在尝试使用带有圆角矩形的WPF画布,我可以使用鼠标拖动它.然而,一旦我尝试在画布上捕获鼠标,我就不再获得移动事件了.
这是一个"mycanvas"用户控件,矩形是"foo"用户控件.这些(减去前言)的XAML是:
mycanvas.xaml:
<Canvas MouseDown="CanvasMouseDown" MouseMove="CanvasMouseMove" MouseUp="CanvasMouseUp" Background="White">
<my:Foo HorizontalAlignment="Left" Canvas.Left="97" Canvas.Top="30" x:Name="m_foo" VerticalAlignment="Top" Height="87" Width="128" />
</Canvas>
Run Code Online (Sandbox Code Playgroud)
foo.xaml:
<Border BorderThickness="2" BorderBrush="Black" CornerRadius="15" Background="Plum">
<Grid>
<Label Content="Foo" Height="28" HorizontalAlignment="Left" Margin="6,6,0,0" Name="label1" VerticalAlignment="Top" />
</Grid>
</Border>
Run Code Online (Sandbox Code Playgroud)
然后处理程序是:mycanvas.xaml.cs:
private void CanvasMouseDown(object sender, MouseButtonEventArgs e)
{
if (e.Source is Foo)
{
m_moving = e.Source as Foo;
CaptureMouse();
e.Handled = true;
}
}
private void CanvasMouseMove(object sender, MouseEventArgs e)
{
if (m_moving != null)
{
Canvas.SetLeft(m_moving, e.GetPosition(this).X);
Canvas.SetTop(m_moving, e.GetPosition(this).Y);
}
}
private void CanvasMouseUp(object …Run Code Online (Sandbox Code Playgroud) 我有一个使用GDI +绘制的自定义UserControl.它是一个透明控件,在父控件的顶部绘制小形状.
所有父窗口都创建控件,为其绘制一个Rectangle以在其中绘制自身,然后在用户单击非透明区域时接收事件.
绘图部分工作正常,但现在我需要做的是尽可能无缝地将所有MouseMove,MouseClick等事件转发到父控件,如果这些事件发生在形状之外.
使用GraphicsPath绘制形状,我已经能够使用GraphicsPath.IsVisible()检测鼠标位置是否在形状上.
我希望以一种在父级上需要零或最少额外代码的方式执行此操作.父母不一定知道MouseMove事件是否是从子控件转发的,它应该平等对待它们.
我必须使用pinvoke/SendMessage()来执行此操作吗?或者使用.NET框架有更简单的方法吗?
我试图将mousemove事件绑定到正文.到目前为止我的尝试:
$('html, body').mousemove(function(event){...});
$('html, body')[0].onmousemove= function(event){...};
$('body').bind('mousemove', function(event){...});
document.onmousemove = function(event){...};
document.getElementsByTagName('body')[0].onmousemove = function(event){...};
Run Code Online (Sandbox Code Playgroud)
编辑:
window.onmousemove = function(event){...}; // doesn't work either
Run Code Online (Sandbox Code Playgroud)
编辑2:我需要全身反应,而不仅仅是嵌套元素.
所有这些都有效,但在IE中没有.
我怎么解决这个问题?
我已经为mousehold事件下载了一个JQuery插件.
http://remysharp.com/2006/12/15/jquery-mousehold-event/
我有这个调用mousemove事件的div:
div.addEventListener('mousemove',function() {
//things
});
Run Code Online (Sandbox Code Playgroud)
每当我像这样调用mousehold事件时:
var value = 0;
$(div).mousehold(function() {
value += 20;
$(div).html(value);
});
Run Code Online (Sandbox Code Playgroud)
它会奏效.但是如果我在onmousehold上开始移动(因此,调用mousemove事件),则值不再增加,这意味着,即使我仍然保持左键单击,它也停止调用mousehold事件.
我怎么能实现这一点,当我做一个鼠标移动时,mousehold事件仍然有效?TNX!
我使用jQuery Mobile的swiperight和swipeleft事件.它们在开发时在我的台式机和iphone上运行得非常好但是当我在我的Windows手机上测试它们时,两个事件都不会触发.
看起来很简单:
<div class="swiper">Content</div>
Run Code Online (Sandbox Code Playgroud)
和脚本
$(".swiper").swiperight(function(event){
alert('swiperight');
});
$(".swiper").swipeleft(function(event){
alert('swipeleft');
});
Run Code Online (Sandbox Code Playgroud)
与$(".swiper")相同的问题.live('swipeleft swiperight')
有人有解决方案吗?根据http://jquerymobile.com/blog/2012/08/01/announcing-jquery-mobile-1-2-0-alpha/,他们对Windows Phone提供A级支持.
我有一个表格,里面有一个小Panel叫Player.如何将面板"链接"到用户的鼠标,以便在鼠标移动时移动?
我已经订阅Player_MouseMove了Player.MouseMove活动,但我无法弄清楚鼠标实际移动了多少.我能想到的唯一方法是拥有这样的:
private Point previousLocation;
private void Player_MouseMove(object sender, MouseEventArgs e)
{
int differenceX, differenceY;
differenceX = e.X - previousLocation.X;
differenceY = e.Y - previousLocation.Y;
previousLocation = e.Location;
}
Run Code Online (Sandbox Code Playgroud)
这看起来很愚蠢,有一个额外的变量并且每次计算差异.完美的方式会是Player.LinkToCursor();这样的,但如果没有自动化的方式,至少还有更好的方法吗?
我想知道相对于html元素的鼠标位置.我也知道元素的大小.
mousemove ×10
jquery ×3
winforms ×3
.net ×2
c# ×2
javascript ×2
bind ×1
canvas ×1
css ×1
elm ×1
events ×1
html ×1
mouseevent ×1
mousehover ×1
onmousemove ×1
parent ×1
swipe ×1
wpf ×1