计时器、单击、mousedown、mouseup 事件不能一起工作

2023-12-27

正在寻找有关我遇到的问题的帮助

抱歉,如果这个问题已经被问过,我找不到类似的东西。

这个想法是当点击图片框时将图像更改为ON。

如果按住图片框超过 2 秒以打开新表单并将图片框保留为“关闭”。

但是,如果图片框被单击“打开”,然后按住 2 秒然后返回,我需要图片框状态保持“打开”。

这是我到目前为止所尝试过的。

我相信要使其正常工作,我需要阻止 MouseUp 事件的发生。

有没有办法可以在 Tick 发生时停止 MouseUp?

有没有更简单/更好的方法来做到这一点?

任何帮助,将不胜感激。

    private void time_HoldDownInternal_Tick(object sender, EventArgs e)
    { 
        time_HoldDownInternal.Enabled = false;
        time_HoldDownInternal.Interval = 1000;
        form1show.Visible = true;
    }

    private void pb_pictureBoxTest_MouseDown(object sender, MouseEventArgs e)
    {
        mainMenuVariables.mousedown = true;
        time_HoldDownInternal.Enabled = true;
    }

    private void pb_pictureBoxTest_MouseUp(object sender, MouseEventArgs e)
    {
        mainMenuVariables.mousedown = false;
        //MessageBox.Show("mouse up");
        time_HoldDownInternal.Enabled = false;
        time_HoldDownInternal.Interval = 1000;
    }

    private void pb_pictureBoxTest_Click(object sender, EventArgs e)
    {
        if (mainMenuVariables.mousedown == true)
        {
            if (mainMenuVariables.pictureBox == false)
            {
                mainMenuVariables.pictureBox = true;
                pb_pictureBoxTest.Image = new Bitmap(mainMenuVariables.pictureBoxOn);
                return;
            }
            if (mainMenuVariables.pictureBox == true)
            {
                mainMenuVariables.pictureBox = false;
                pb_pictureBoxTest.Image = new Bitmap(mainMenuVariables.pictureBoxOff);
                return;
            }
        }
        if (mainMenuVariables.mousedown == false)
        {
            //nothing
        }
    }

无需启动计时器,只需在按下鼠标时记录当前时间即可。然后鼠标抬起,检查是否已经过了2秒。例如:

private void pb_pictureBoxTest_MouseDown(object sender, MouseEventArgs e)
{
    mainMenuVariables.mousedown = true;
    mainMenuVariables.mousedowntime = DateTime.Now;
}

private void pb_pictureBoxTest_MouseUp(object sender, MouseEventArgs e)
{
    mainMenuVariables.mousedown = false;
    var clickDuration = DateTime.Now - mainMenuVariables.mousedowntime;

    if ( clickDuration > TimeSpan.FromSeconds(2))
    {
        // Do 'hold' logic (e.g. open dialog, etc)
    }
    else
    {
        // Do normal click logic (e.g. toggle 'On'/'Off' image)
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计时器、单击、mousedown、mouseup 事件不能一起工作 的相关文章

  • 访问私人成员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 通过将类的私有成员转换为 void 指针 然后转换为结构来访问类的私有成员是否合适 我认为我无权修改包含我需要访问的数据成员的类 如果不道德 我
  • 是否可以强制 XMLWriter 将元素写入单引号中?

    这是我的代码 var ptFirstName tboxFirstName Text writer WriteAttributeString first ptFirstName 请注意 即使我使用 ptFirstName 也会以双引号结束 p
  • Qt-Qlist 检查包含自定义类

    有没有办法覆盖加载自定义类的 Qt QList 的比较机制 即在 java 中你只需要重写一个比较方法 我有一个带有我的自定义类模型的 QList QList
  • 获取按下的按钮的返回值

    我有一个在特定事件中弹出的表单 它从数组中提取按钮并将标签值设置为特定值 因此 如果您要按下或单击此按钮 该函数应返回标签值 我怎样才能做到这一点 我如何知道点击了哪个按钮 此时代码返回 DialogResult 但我想从函数返回 Tag
  • pthread_cond_timedwait() 和 pthread_cond_broadcast() 解释

    因此 我在堆栈溢出和其他资源上进行了大量搜索 但我无法理解有关上述函数的一些内容 具体来说 1 当pthread cond timedwait 因为定时器值用完而返回时 它如何自动重新获取互斥锁 互斥锁可能被锁定在其他地方 例如 在生产者
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • 如何忽略“有符号和无符号整数表达式之间的比较”?

    谁能告诉我必须使用哪个标志才能使 gcc 忽略 有符号和无符号整数表达式之间的比较 警告消息 gcc Wno sign compare 但你确实应该修复它警告你的比较
  • 实时服务器上的 woff 字体 MIME 类型错误

    我有一个 asp net MVC 4 网站 我在其中使用 woff 字体 在 VS IIS 上运行时一切正常 然而 当我将 pate 上传到 1and1 托管 实时服务器 时 我得到以下信息 网络错误 404 未找到 http www co
  • Newtonsoft JSON PreserveReferences处理自定义等于用法

    我目前在使用 Newtonsoft Json 时遇到一些问题 我想要的很简单 将要序列化的对象与所有属性和子属性进行比较以确保相等 我现在尝试创建自己的 EqualityComparer 但它仅与父对象的属性进行比较 另外 我尝试编写自己的
  • 当 contains() 工作正常时,xpath 函数ends-with() 工作时出现问题

    我正在尝试获取具有以特定 id 结尾的属性的标签 like span 我想获取 id 以 国家 地区 结尾的跨度我尝试以下xpath span ends with id Country 但我得到以下异常 需要命名空间管理器或 XsltCon
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • for循环中计数器变量的范围是多少?

    我在 Visual Studio 2008 中收到以下错误 Error 1 A local variable named i cannot be declared in this scope because it would give a
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • C++ fmt 库,仅使用格式说明符格式化单个参数

    使用 C fmt 库 并给定一个裸格式说明符 有没有办法使用它来格式化单个参数 example std string str magic format 2f 1 23 current method template
  • ASP.NET MVC 6 (ASP.NET 5) 中的 Application_PreSendRequestHeaders 和 Application_BeginRequest

    如何在 ASP NET 5 MVC6 中使用这些方法 在 MVC5 中 我在 Global asax 中使用了它 现在呢 也许是入门班 protected void Application PreSendRequestHeaders obj
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob

随机推荐

  • 想要从其他活动更改 TextView 的文本吗?

    我目前正在设计一个电子书阅读器应用程序作为我的项目 我在更改文本时遇到问题textview来自其他活动 我的项目内容 活动1包含两个按钮 当button1单击 某些文本 应该出现 何时button2单击 其他文本 应该出现在文本视图1这是在
  • HTML5 Canvas 无法在外部 JavaScript 文件中工作

    我已经用 JavaScript 编写了这段代码 当我将其包含在我的 index html 页面上时 它工作得非常好
  • 什么是“覆盖条件”?

    的来源Statemtl 中的变压器 http hackage haskell org packages archive mtl 2 1 2 doc html src Control Monad State Class html states
  • Sqlite 中的多线程

    我正在使用 System data sqlite 连接到 Sqlite 数据库 按照SQLite 文档 http www sqlite org threadsafe html 用户可以通过使用启用多线程SQLITE OPEN NOMUTEX
  • tkinter treeview单击所选项目的事件[重复]

    这个问题在这里已经有答案了 在我的小型 tkinter 应用程序中 我的树具有如下图所示的结构 我只想在用户双击树的最后一个项目 Amount1 或 Amount2 等 时才创建单击事件 不幸的是 当我单击树的任何项目时 单击事件会起作用
  • Node-gyp 和自定义依赖/库/头安装路径

    我有一个构建环境 其中我的库 和标头 安装到自定义位置 从 npm 安装软件包时 使用 node gyp 的模块会失败 因为它们找不到我已安装的库 或标头 如何让 node gyp 知道我的自定义安装位置 linux 如果你设置CXXFLA
  • 无法连接到服务器 127.0.0.1 shell/mongo.js

    当我在 ubuntu 中设置 mongodb 时 我尝试 mongo 它显示此错误 couldn t connect to server 127 0 0 1 shell mongo js 那么我能做什么 thanks 手动删除锁定文件 su
  • 将对象传递给 PowerShell 函数

    我试图将 SQL 适配器对象传递给 PowerShell 函数 但收到此错误 executeQueryAndFillTable 无法处理参数转换 参数 da 无法转换类型的 System Object 值 System Object 以键入
  • 如何使用Vue登录后渲染标题和侧边栏

    我有一个 Vue js 应用程序 目前我使用不同的页面渲染它 我遇到了一个问题 当我第一次登录时 它只会渲染单个主要组件 即根据 vue 路由器的页面 我正在寻找一种方法来运行我的登录功能 然后转到 dashboard但我希望它重新渲染我的
  • 选择最高薪水

    假设工资表 name lowhours highhours wage Default 0 0 40 0 100 Default 40 0 50 0 150 Default 50 0 70 5 154 Default 70 5 100 0 2
  • 从 Perforce 恢复已删除的文件

    上个月我从 Perforce 中删除了一个文件 有办法从 P4 中检索它吗 如果是这样 我可以使用什么命令 注意 我不是 p4 的管理员 我不希望该文件返回到 P4 但我只想将其保留在我的本地工作区中 另外 我不知道上个月删除它的确切时间范
  • 如何获得unix中每列的最大长度?

    假设 我有一个这样的源文件 ID NAME ADDRESS 1 ABC PUNE 2 XYZA MUMBAI 12 VB NAGPUR 我想获取每列的最大长度 不包括标题名称 输出应该是这样的 2 4 6 我已经尝试过这样的命令 尾部 2
  • 相对于batch的查询成本是100%

    我不确定如何解释这一点 但我在 sql server 2005 中运行的所有查询都有 100 的 查询成本 相对于批处理 有什么办法可以降低成本吗 如果您的批次 您在给定调用中执行的操作 有一个查询 那么relative对于该批次 该查询占
  • 如何在android中获取用户定义的“设备名称”?

    我正在尝试获取在设置中设置的用户定义的设备名称 我已经尝试了几种选择 但到目前为止还没有任何结果 如果它有帮助或有害 我需要在广播接收器中使用它 Thanks 这让我得到了我所需要的 http cmanios wordpress com 2
  • 如何从 Google Apps 脚本上的“doPost”请求获取原始 URL

    我一直在尝试识别对 Google Apps 脚本发出的 POST 请求的来源doPost 内容服务 function doPost request Something like this var originURL request head
  • 如何为列表框中的每个项目设置不同的工具提示文本?

    我有一个与对象集合进行数据绑定的列表框 列表框被配置为显示每个对象的标识符属性 我想显示一个工具提示 其中包含悬停在 列表框中的项目的特定信息 而不是整个列表框的一个工具提示 我正在 WinForms 中工作 感谢一些有用的博客文章 整理了
  • 无法在跨客户端google oauth2.0中交换访问令牌和刷新令牌的授权代码

    我在 Android 应用程序上实现 Google Play 服务登录并将授权代码传递到后端服务器时遇到问题 因此服务器将交换访问令牌和刷新令牌的代码 首先让我写几行已经尝试过 读过的内容 在 code google com apis co
  • Zookeeper 的临时 znode 的用例是什么?

    Zookeeper 文档内容如下 ZooKeeper 也有临时节点的概念 只要创建 znode 的会话处于活动状态 这些 znode 就会存在 当会话结束时 znode 将被删除 当您想要实现 待定 时 临时节点非常有用 我了解其功能 但是
  • PHP - 下载次数

    如何显示一个计数器来计算文件的下载次数 我以前见过 下载了 450 次 谢谢 不要让用户直接下载文件 而是通过如下脚本 file REQUEST file dldir downloads if file exists dldir file
  • 计时器、单击、mousedown、mouseup 事件不能一起工作

    正在寻找有关我遇到的问题的帮助 抱歉 如果这个问题已经被问过 我找不到类似的东西 这个想法是当点击图片框时将图像更改为ON 如果按住图片框超过 2 秒以打开新表单并将图片框保留为 关闭 但是 如果图片框被单击 打开 然后按住 2 秒然后返回