如何让鼠标滚轮改变背景图片
我正在创建一个UserControl,而我希望它的一种行为是,当用户将鼠标轮旋转时,背景图像在两个选项之间交替. 到目前为止,我所拥有的是:
14 2024-04-26
编程技术问答社区
鼠标滚轮事件启动
我在鼠标轮毂事件上调用我的私人方法有问题.实际上,当我仅递增变量或在标题栏中显示某些内容时,我的鼠标轮毂事件会正确触发方法取决于滚动速度,即一次滚动完成一次卷轴一次慢慢调用私人方法,但是当高速呼叫滚动时,私有方法会根据滚动速度多一次. 有关进一步说明,我将显示i在标题栏中显示I值的示例代码,并根据滚动速度正确地将其添加到列表框控件中滚动速度,该方法仅被调用一次. public partial class Form1 : Form { ListBox listBox1 = new ListBox(); int i = 0; public Form1() { InitializeComponent(); // Settnig ListBox control properties this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(
12 2024-04-26
编程技术问答社区
在C# Windows Forms中无法触发MouseWheel事件
首先,在Visual Studio 2008的Events Pane中未列出MouseWheel事件,这很烦人. 我在线找到了正确的格式,并将其写入我的代码: private void Form1_MouseWheel(object sender, MouseEventArgs e) { Debug.WriteLine("Foo"); } ...旋转鼠标时我没有得到任何响应. 我在代码的主班级区域中进行此操作,而设计人员仅包含一个表单/窗口/任何内容,因此鼠标不会失去焦点. namespace BlahBlah { public partial class Form1 : Form { ,相比之下,我在鼠标轮上方有此方法,它可以正常工作: private void Form1_MouseClick(object sender, MouseEventArgs e) {
4 2024-04-19
编程技术问答社区
鼠标滚轮在ScrollViewer的子控件上不起作用
我有点期望我的ScrollViewer的子控制器可以自动将鼠标轮毂送回ScrollViewer,事实并非如此. 我有一个带有ListBox的ScrollViewer.如果我手动将列表框的宽度大小比滚动浏览器小于scrollviewer,则鼠标轮毂在所有scrollviewer上都可以使用,但是当鼠标位于列表框上方时没有效果. . 这样做的标准方法是什么?我是否将事件触发器放在列表框上,将事件射向父母?我是否处理并在后面的代码中重新安排事件? 解决方案 ListBox的模板中有一个ScrollViewer,因此ScrollViewer将处理事件并阻止它们传播视觉树. 通过在ScrollViewer内拥有ListBox,您到底要实现什么?也许您需要重新制定ListBox,但是如果没有更多信息,就不可能说.
2 2024-04-19
编程技术问答社区
控制键加鼠标滚轮
在C#中处理CTRL +鼠标车轮的更好方法是什么? 我已经弄清楚了如何处理鼠标车事件,但是如何知道CTRL键也被按下? 解决方案 使用静态属性: System.Windows.Forms.Control.ModifierKeys
12 2024-04-18
编程技术问答社区
鼠标滚轮事件要与悬停的控件一起工作
在我的C#3.5 Windows表单应用程序中,我有一些拆分框架.每个内部都有一个列表控件(码头填充).当焦点放在这些控件之一上,我移动鼠标滚轮时,现在滚动的列表将被滚动. 我的任务是滚动列表,该列表当前由鼠标悬停,而不是所选的列表.在Windows表单中可能吗?如果没有,PinVoke是否可以? 解决方案 看起来您可以使用IMessageFilter并使用Pinvoke来处理此操作.可以在重定向鼠标车轮事件中找到VB中的一个示例. Windows表单控制.您应该能够轻松将其转换为C#. 兴趣点 此类对给定任务使用以下技术: 收听控件的鼠标enenter和Mouseleave事件,以确定鼠标指针何时在控件上. 实现iMessageFilter以在应用程序中捕获WM_MouseWheel消息. pinvoke Windows API调用SendMessage将WM_MouseWheel消息重定向到控件的句柄. iMessageFilter对象被实现为鼠
4 2024-04-18
编程技术问答社区
在控制台应用程序中捕获鼠标滚轮事件
有没有一种方法可以使用C#在控制台应用程序中捕获鼠标车轮事件,就像您将在GUI/Window应用程序中捕获鼠标车轮事件吗? 我想这样做以滚动在控制台中的一部分文本. 我已经搜索了Google,但我只能找到窗口应用程序中的鼠标车轮事件. 解决方案 您可以使用"两个"零件来执行此操作: 在鼠标车轮事件上创建全局系统钩(很好的例子 使用PINVOKE的第二个检查控制台是否处于活动状态(您 可以在这里找到一个示例: 确定是否激活了当前应用程序(focus)) 您可以在2中扩展功能以获取窗口rect 其他解决方案 呼叫 ReadConsoleInput ReadConsoleInput 功能.当轮子在控制台上旋转时,您将收到MOUSE_WHEELED事件.
4 2024-04-16
编程技术问答社区
如何在picturebox中放大一个点
这是我的代码. 我能够缩放图片框,但不能放大. 当我旋转鼠标车轮时,如何放大鼠标点? 变量是: - private double m_dZoomscale = 1.0; //THIS IS THE ZOOM SCALE TO WHICH EACH OBJECT //ARE ZOOMED IN THE CANVAS public static double s_dScrollValue = .01; //scale factor value for mouse scroll zooming 油漆代码是: - private void m_Picturebox_Canvas_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphic
6 2024-04-15
编程技术问答社区
使用鼠标滚轮缩放图像。
在下面的代码中,我试图通过鼠标滚轮缩小图像.但是该代码无法正常工作,它只是在刷新面板,但不能调整它的大小.实际上,我正在从另一个称为解密的类创建的内存流中获取图像.完整的图像显示正确显示,但我无法使用鼠标轮毂事件执行图像的放大. 请帮助我. private void Form2_Load(object sender, EventArgs e) { this.Width = Screen.PrimaryScreen.WorkingArea.Width; this.Height = Screen.PrimaryScreen.WorkingArea.Height; this.CenterToScreen(); PicturePanel= new PictureBox(); PicturePanel.Dock = DockStyle.Fill; //PicturePanel.SizeMode = PictureBoxSizeMode.Aut
16 2024-04-15
编程技术问答社区
拖动/删除时可以使用鼠标滚轮吗?
在Winforms中,调用A DoDragDrop开始拖动项目后,不再使用鼠标轮滚动,并且不再调用控件的MouseWheel事件,直到用户掉落他要拖动的任何东西为止./p> 有没有办法在拖动时使鼠标轮毂工作? 解决方案 您可以使用键盘钩获得全局MouseWheel. using System; using System.ComponentModel; using System.Runtime.InteropServices; using System.Windows.Forms; using Microsoft.Win32.SafeHandles; using BOOL = System.Boolean; using DWORD = System.UInt32; using HHOOK = SafeHookHandle; using HINSTANCE = System.IntPtr; using HOOKPROC = HookProc; using LPARAM =
0 2024-04-15
编程技术问答社区
我怎样才能用鼠标滚轮滚动我的面板?
我的表格上有一个面板,将自动滚动设置为true,因此自动出现卷轴. 我如何使其使用户可以使用鼠标滚轮滚动面板?谢谢. 解决方案 面板中的面板或控件必须具有焦点.请注意,如果带有焦点的控件具有滚动条,它将滚动而不是面板. 其他解决方案 对我有用的是添加panel1_MouseEnter eventhandler: private void panel1_MouseEnter(object sender, EventArgs e) { panel1.Focus(); } 其他解决方案 下面的代码对我有用..... Public Form { InitializeComponent(); this.MouseWheel += new MouseEventHandler(Panel1_MouseWheel); } private void Panel1_MouseWheel(object sender, MouseEventArgs
0 2024-04-13
编程技术问答社区
ScrollViewer的鼠标滚轮不能滚动
我目前正在从事我的第一个WPF项目,并试图使ListView可滚动. 起初,我认为这可以通过简单地限制ListView的宽度和高度来轻松完成,从而迫使滚动条在内容超过其空间时自动出现.一开始这似乎很好,但是由于处理PreviewMouseDown事件(可以拖动列表的项目),它在选择项目后不起作用. 第二次尝试(使用ScrollViewer) 当然,只要清单的内容大于其最大高度,这会导致第二个滚动条.选择栏仍然在选择项目后仍无法使用. 第三(非常愚蠢)尝试(禁用卷轴副本)
4 2024-04-11
编程技术问答社区
C# | 如何防止我的组合框中的鼠标滚轮 | 滚动?
我有一个组合,我想防止用户用鼠标轮滚动. 有一个简单的方法吗? (C#,VS2008) 解决方案 使用void comboBox1_MouseWheel(object sender, MouseEventArgs e) { ((HandledMouseEventArgs)e).Handled = true; } 注意:您必须在代码中创建事件: comboBox1.MouseWheel += new MouseEventHandler(comboBox1_MouseWheel); 其他解决方案 对于WPF,而是处理PreviewMouseWheel事件. 考虑ComboBox.IsDropDownOpen,如果在选择ComboBox时,选择ComboBox.IsDropDownOpen也可以使用鼠标滚动. . 另一件事是在整个应用程序中应用相同的行为. 我通常使用以下代码进行以上所有操作: app.xaml
8 2024-04-11
编程技术问答社区
在wpf中禁用鼠标滚轮的itemscontrol
我有一个带有滚动浏览器的USERCONTROL,然后有一堆儿童控件,例如文本框,无线电按钮和列表框等.我可以使用鼠标轮来滚动父滚动浏览器,直到我的鼠标降落在列表框中,然后鼠标车轮事件开始进入列表框. 有什么方法可以让列表框将这些事件发送回父控件?从内侧删除列表箱,像以下问题一样的父控件建议(鼠标车轮在ScrollViewer的子控制器上无法正常工作)不是解决方案. 我尝试了 private void ListBox_PreviewMouseWheel(object sender, MouseWheelEventArgs e) { e.Handled = true; } 但这也没有起作用. 谢谢 解决方案 您所引用的答案正是导致您的问题的原因,scrollviewer内部的列表框(由scrollviewer组成)(由scrollviewer组成)捕获了鼠标轮毂事件并处理了它,以防止它泡泡并因此ScrollViewer不知道发生了这一事件.
8 2024-04-10
编程技术问答社区
tkinter: 绑定鼠标滚轮到滚动条
我有这个可滚动的框架(实际上是帆布内的框架). import Tkinter as tk class Scrollbarframe(): def __init__(self, parent,xsize,ysize,xcod,ycod): def ScrollAll(event): canvas1.configure(scrollregion=canvas1.bbox("all"),width=xsize,height=ysize,bg='white') self.parent=parent self.frame1=tk.Frame(parent,bg='white') self.frame1.place(x=xcod,y=ycod) canvas1=tk.Canvas(self.frame1) self.frame2=tk.Frame(canvas
6 2024-03-30
编程技术问答社区
鼠标滚轮时,oxyplot轴锁定中心
我是WPF和Oxyplot的新手. 现在,我想创建一个像示波器这样的动态线图,但是我不知道如何在鼠标滚轮变焦时锁定值. . 示例: 红点是鼠标位置.通常,变焦A-> b,变焦C->D. 解决方案 我找到了一个用于阻断轴变焦中心的解决方案.您必须创建一个自定义LinearAxis才能实现: public class FixedCenterLinearAxis : LinearAxis { double center = 0; public FixedCenterLinearAxis() : base(){} public FixedCenterLinearAxis(double _center) : base() { center = _center; } public override void ZoomAt(double factor, double x) { base.Zo
12 2024-03-23
编程技术问答社区
窗口在MouseWheelMotion事件中变成空白
我已经编写了一个简单的程序,该程序显示了钥匙按压,绘制了" Hello World"一词,其中一个人的光标移动(单​​击时使用跟踪模式),并且还循环浏览" Hello World"的颜色,滚动鼠标滚动时出去.但是,有一个问题:当鼠标轮滚动整个窗口时,整个窗口变为空白(显示您第一次制作组件时的默认灰色),然后随着颜色更改而重新绘制(仅对" Hello World",似乎不需要整个框架重新绘制. 空白的时间似乎与鼠标轮滚动的力相关,如果我非常轻微的滚动,只有一个很小的时刻,所有东西都没有显示出来,但是很难滚动可以使窗户滚动.空白2-3秒. 我尝试了双重缓冲 - 认为这可能是某种屏幕闪烁 - 但这没有任何改变,我对可能导致这种怪异效果的原因感到不知所措.好像在发生车轮运动事件时,框架图像正在加载. (是否有一种立即退出轮毂事件以减少加载时间的方法?(这只是我对可能的解决方案的猜测). 代码在下面.任何想法都将不胜感激. package keymouse; im
0 2024-03-22
编程技术问答社区
如何在Java AWT ScrollPane中使用我的触控板进行水平鼠标滚轮滚动
像许多现代老鼠和触控板一样,我的笔记本电脑支持垂直和水平滚动.习惯后,这是一个令人上瘾的功能.我只是希望我的Java应用程序通过触控板/鼠标轮毂支持水平滚动,但是我到处搜索的任何地方似乎都无法在Java中进行. 我真的很想有人告诉我,我以某种方式做错了,此功能已经要求行为: https://bugs.java.com/bugdatabase/view_bug?bug_id=64440198 无法做这个简单的事情实际上是我正在处理的应用程序的破坏者.实际上,对于任何应用程序,我都可以设想!我在Java后端花了一些时间,所以我真的很想找到这个看似简单的事情的解决方案. 问题是我该怎么做才能实施这种行为? RAW OS级别的事件甚至是Java对我的曝光,然后我需要从头开始写这件事吗? import java.awt.*; public class ScrollExample extends Canvas { public void paint(Graphic
0 2024-03-22
编程技术问答社区
Flex 4和ScrollBar的stepSize
我想指定使用VSCrollbar滚动的金额. 因此,在Flex 3中,我们有" LinesCrollsize",但是该属性如何在Flex 4中调用? 我认为它是vscrolbar.Stepsize的 - 但剂量无需做任何事情. 有人请帮助我. 我只是在鼠标车轮上更快地滚动滚动. 解决方案 可以查看这是我在自己的布局类中所做的: override public function getVerticalScrollPositionDelta(navigationUnit:uint):Number { var n:Number=super.getVerticalScrollPositionDelta(navigationUnit); if (navigationUnit==NavigationUnit.DOWN || navigationUnit==NavigationUnit.UP) return 10*n; return n; } 其他解决方
6 2024-02-28
编程技术问答社区