- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我创建了一个简单的应用程序,用于使用鼠标滚轮缩放图片框内的图像。它在我的开发笔记本电脑 (Win10) 上完美运行。但是当我在我的台式电脑(Win7)上运行它时,缩放(使用鼠标滚轮)功能不起作用。
下面是我的实现片段:
private void InitializeComponent()
{
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.panel1 = new System.Windows.Forms.Panel();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// pictureBox1
//
this.pictureBox1.Location = new System.Drawing.Point(4, 0);
this.pictureBox1.Margin = new System.Windows.Forms.Padding(4);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(493, 583);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
this.pictureBox1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseDown);
this.pictureBox1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseMove);
this.pictureBox1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseUp);
this.pictureBox1.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseWheel);
//
// panel1
//
this.panel1.AutoScroll = true;
this.panel1.AutoSize = true;
this.panel1.Controls.Add(this.pictureBox1);
this.panel1.Location = new System.Drawing.Point(1, 2);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(714, 593);
this.panel1.TabIndex = 1;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoScroll = true;
this.ClientSize = new System.Drawing.Size(719, 594);
this.Controls.Add(this.panel1);
this.Margin = new System.Windows.Forms.Padding(4);
this.Name = "Form1";
this.Text = "Form1";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
private float ZOOM = 1.5f
private void pictureBox1_MouseWheel(object sender, System.Windows.Forms.MouseEventArgs e)
{
pictureBox1.Focus();
if (e.Delta < 0) //ZoomIn
{
Console.WriteLine("Mouse Wheel Zoom In");
if ((pictureBox1.Width < panel1.Width) && (pictureBox1.Height < panel1.Height))
{
pictureBox1.Width = Convert.ToInt32(pictureBox1.Width * ZOOM);
pictureBox1.Height = Convert.ToInt32(pictureBox1.Height * ZOOM);
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
this.Refresh();
}
}
else
{
//ZoomOut
Console.WriteLine("Mouse Wheel Zoom Out");
if ((pictureBox1.Width > panel1.Width) &&
(pictureBox1.Height > panel1.Height))
{
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.Width = Convert.ToInt32(pictureBox1.Width / ZOOM);
pictureBox1.Height = Convert.ToInt32(pictureBox1.Height / ZOOM);
}
}
}
我认为这是我的桌面 PC 上的 Control.MouseWheel 事件的问题。当我调试时,尽管我已经在图片框内聚焦或单击,但此事件从未出现。当我通过过滤 WM_MOUSEWHEEL = 0x20a;
消息尝试使用实现的其他实现时,它在我的笔记本电脑和台式机上都有效。知道为什么会发生这些不同的行为吗?感谢您的时间。
最佳答案
原来 Win 10 有一个名为“当我将鼠标悬停在非事件窗口上时滚动非事件窗口”的系统选项。这就是为什么我以前的代码只能在 Win 10 机器上工作。我添加了以下行来修复它。谢谢@HansPassant小费。
private void picBox_MouseHover(object sender, EventArgs e)
{
picBox.Focus();
}
关于c# - Control.MouseWheel 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44735362/
我正在将我的项目转换为 cordova 应用程序。但我陷入了鼠标滚轮事件。 Cordova 的这个事件有什么相同之处? 我有一个 Canvas 和上面的一些物体。我使用鼠标滚轮事件放大/缩小。我想将它
有什么方法可以使用子上的鼠标滚轮处理程序来确定鼠标是向上还是向下滚动?例如 Private Sub PictureBox1_MouseWheel(ByVal sender As Object, ByV
我正在尝试为 svg 实现鼠标滚轮事件。我正在使用下面的代码。如果我使用 $(document).bind() ,这可以正常工作,但如果我使用 svg id svgmain ,它就不起作用。我希望鼠标
我有一个 Panel,其中 AutoScroll 为真。该面板包含许多较小的面板,它们像瓷砖一样填充所有可用空间。当要显示的子面板太多时,我会按预期获得垂直滚动条。 这些“图 block ”中的每一个
场景: 我需要创建一个由鼠标滚轮触发的曲线动画(弧形)。 所以,我想出了一些代码。 See demo here var arc = { center: [-200, ($(window).he
一段时间以来,我一直在使用 Robot 类模拟鼠标事件,一切顺利,直到我尝试使用 mouseWheel 函数进行滚动。我只有这条简单的线: Robot robot = new Robot();
长话短说,我正在尝试将“鼠标滚轮”事件绑定(bind)到带有滚动条的 div。 当我在我创建的插件之外使用它时,我的代码可以工作,但是当我尝试将它变成插件时,它什么也不做。我尝试将“鼠标滚轮”更改为单
我目前在我的页面顶部有一个灵活的 slider ,它应该在滚动时改变幻灯片,并且在某个点之后它应该回到正常的滚动行为。 我想做的是最初锁定滚动(是的,我知道改变滚动行为对用户体验来说是一件可怕的事情,
我创建了一个简单的应用程序,用于使用鼠标滚轮缩放图片框内的图像。它在我的开发笔记本电脑 (Win10) 上完美运行。但是当我在我的台式电脑(Win7)上运行它时,缩放(使用鼠标滚轮)功能不起作用。 下
我在下面使用下面的代码,在不同的方向滚动两个 div () 但我很想知道你是否可以限制滚动,这样它每次滚动只触发一次(而不是不断滚动并发送我的函数进入无限循环。 $('.page-left, .pag
我有一个 Windows 窗体(在 C#.NET 中工作)。 该表单顶部有几个面板,底部有一些 ComboBoxes 和 DataGridViews。 我想在顶部面板上使用滚动事件,但是如果选择例如C
我有一个 WPF 应用程序,它使用 WindowsFormsHost 控件来承载 Windows.Forms 控件。 我试图实现 MouseWheel 事件 - 但似乎 MouseWheel 事件从未
嗨,我有一个表单,里面有几个框架。 对于某些框架,我希望滚动内容(或至少处理鼠标滚轮事件)。 我尝试过以下方法: 只需为每个帧分配一个 OnMouseWheel 事件处理程序 重写父窗体的 Mouse
我有一个 StackPanel,里面有一个 Listview。 我希望能够在窗口内滚动,以更改 selectedItem。 澄清; 我想在滚动鼠标滚轮时更改我的 ViewModels Selected
如何设置 GNU screen 以允许鼠标滚轮在回滚缓冲区中滚动?我尝试在 Google 上搜索此事,但大多数点击都是关于如何允许 screen 内的应用程序使用滚轮。 最佳答案 我相信您可以将这样的
有很多关于如何水平滚动 div 内容的示例。问题是,当您水平滚动的元素位于本身可垂直滚动的页面中间时(由于其内容比窗口大小长),页面会垂直滚动,div 的内容也会水平滚动。 示例如下:http://j
我有一个水平滚动的网站。我使用 mousewheel.js 通过鼠标滚轮水平滚动(或上下滚动)。我正在使用 CSS Tricks 中的片段像这样: $("body").mousewheel(funct
我正在尝试处理 Safari 上的 mouseWheel 事件。您可以在下面看到我的完整功能示例 hmtl5/js 代码,用于测试 mouseWheel 事件。 我的代码在每个 mouseWheel
我正在为小型企业开发应用程序,但我遇到了水平滚动查看器的问题。 水平滚动查看器出现在屏幕上,但鼠标滚轮不起作用。 我有这个 XAML 代码:
我正在创建一个 UserControl,它应该在鼠标悬停在控件上并且 MouseWheel 旋转时使用react。 目前我正在这样做,如下所示: public MyUserControl()
我是一名优秀的程序员,十分优秀!