MonthCalendar的mousedown方法选择日期

Linux/macOS原生运行Minecraft基岩版:Wine/Proton兼容层方案全解析 在跨平台应用开发与部署领域,实现非原生平台软件的运行是一个经典挑战。其核心原理在于通过API兼容层,将目标平台的系统调用动态转译为宿主平台的原生指令,而非依赖资源开销巨大的完整虚拟机。这项技术的核心价值在于,它允许用户在熟悉的操作系统环境中无缝使用为其他平台设计的软件,极大地提升了工作流效率和用户体验。在游戏与应用兼容性场景中,Wine及其增强分支Proton已成为关键解决方案,它们通过实现Windows API并在Linux/macOS上映射为Vulkan或Metal等图形接口,为DirectX应用提供了 阅读详情

转载:http://www.cnblogs.com/TrueElement/archive/2012/01/11/2319991.html 感谢原作者。


写个小应用,主要是方便选中日期到datagridview,就想到利用MonthCalendar显示一个月历,然后利用鼠标点击选择。实现的方法主要是利用了mousedown事件以及MonthCalendar的HitTest()方法。

说说HitTest() 方法先,这个方法返回MonthCalendar ..::. HitTestInfo 类型,这种类型里面包含3种属性:HitArea、Point、Time。其中HitArea是一个枚举,包含

成员名称说明
Nowhere指定点或者不在月历控件上,或者在控件的非活动部分。
TitleBackground指定点在月标题的背景上。
TitleMonth指定点在月标题栏中的月名称上。
TitleYear指定点在年值上月的标题栏中。
NextMonthButton指定点在控件右上角的按钮上。如果用户单击此处,则月历将其显示滚动到下一个月或下一组月。
PrevMonthButton指定点在控件左上角的按钮上。如果用户单击此处,则月历将其显示滚动到上一个月或上一组月。
CalendarBackground指定点是日历的背景的组成部分。
Date指定点在日历中的某一日期上。MonthCalendar ..::. HitTestInfo 的 Time 属性设置为指定点处的日期。
NextMonthDate指定点在下一个月(部分显示在当前所显示月份的顶部)的某个日期上。如果用户单击此处,则月历将其显示滚动到下一个月或下一组月。
PrevMonthDate指定点在前一个月(部分显示在当前所显示月份的顶部)中的某个日期上。如果用户单击此处,则月历将其显示滚动到上一个月或上一组月。
DayOfWeek指定点在日期缩写(例如,“Fri”)上。MonthCalendar ..::. HitTestInfo 的 Time 属性设置为 0001 年 1 月 1 日。
WeekNumbers指定点在周数上。只有在启用了 MonthCalendar 的 ShowWeekNumbers 属性时,这才会发生。 MonthCalendar ..::. HitTestInfo 的 Time 属性设置为最左侧的列中对应的日期。
TodayLink指定点在月历控件底端的今日链接上。

例如:

tmp.HitTest(e.Location)
{System.Windows.Forms.MonthCalendar.HitTestInfo}
    HitArea: Date
    Point: {X = 136 Y = 97}
    Time: {2012/7/1 0:00:00}

而当连续点击到TitleBackground(上面的 “2012年1月”那个区域)时,月历会变成如下:

0次1次2次3次

所以,根据这些情况,写了以下一个mousedown事件处理方法:

复制代码
        private byte haveHitTitleCnt = 0;//标题栏点击计数
        private void monthCalendar1_MouseDown(object sender, MouseEventArgs e)
        {
            
            MonthCalendar tmp = (MonthCalendar)sender;
            MonthCalendar.HitTestInfo hitInfo = tmp.HitTest(e.Location);

            if (hitInfo.HitArea == MonthCalendar.HitArea.Date)
            {
                if (haveHitTitleCnt == 0)
                {
                    this.dataGridView1.Rows.Add(this.monthCalendar1.SelectionStart.Date.ToShortDateString(), true, false);
                }
                else
                {
                    haveHitTitleCnt--;
                }
                
            }
            if (hitInfo.HitArea == MonthCalendar.HitArea.TitleBackground)
            {
                if (haveHitTitleCnt < 3)//最大到3
                {
                    haveHitTitleCnt++;
                }
                
            }
            

            
        }
复制代码

还有,为了完整一些,将

        this.monthCalendar1.MaxSelectionCount = 1;

点击其他部分,像TodayLink,不会引起date部分haveHitTitleCnt变化(即date显示层次(年、月、日)变化),所以就不用处理这些地方了。


使用Month Calendar获取日期 使用Month Calendar获取日期 使用Month Calendar获取日期 使用Month Calendar获取日期 立即下载

相关推荐

Skin_demo界面换肤程序

一个经典的界面研究程序,界面通过自绘的方式实现,并通过钩子函数和子类化儿改变程序界面,对想研究界面皮肤和子类化等问题的,具有非常好的参考价值

在MonthCalendar控件中选中日期

在MonthCalendar控件中选中日期          MonthCalendar是VS.NET里面的一个月历控件,虽然现在有很多别人写的月历控件,但这个控件对付不少应用还是足够了。由于最近一直在写记帐软件,其中就得用它选日期,所以对它大致了解了一些。                  在这个控件中点每个元素(日期、标题、星期、链接等等)都会触发一个点击事件,而.NET中并没

苗伟的专栏 3257

KIBANA可视化管理界面说明

更说明转自https://blog.youkuaiyun.com/IT_ZRS/article/details/125496588 1 主要结构功能 使用浏览器访问 ip:5601 默认端口,进入首页 Discover:日志管理视图 主要进行搜索和查询 Visualize:统计视图 构建可视化的图表 Dashboard:仪表视图 将构建的图表组合形成图表盘 Timelion:时间轴视图 随着时间流逝的数据 APM:性能管理视图 应用程序的性能管理系统 Canvas:大屏展示

tian830937的专栏 7084

C#中日历控件的使用monthCalendar,dateTimePicker

monthCalendar:获取选择日期的值:在monthCalendar1_DateChanged事件中得到string starttime = monthCalendar1.SelectionStart.ToString("yyyy-MM-dd");dateTimePicker:设置日期格式,最大时间最小时间获取选择日期的值:在dateTimePicker1_ValueChanged事件中得到...

你要明白,任何问题都不是孤立存在的,一定有人曾经遇到过,并且已经有更好的解决办法了,只是我还不知道。我不应该在黑暗中独自前行,去重新发明轮子,也许我的顿悟,只是别人的基本功!我应该要站在巨人的肩膀上,学习更成熟的经验和方法,然后再来解决这个问题 1万+

PADS安装教程(超详细)

声明:个人实践 一、工具准备 pads9.5完整破解版百度网盘提取码【wjx9】 链接:https://pan.baidu.com/s/1pIP6BJO435ssmF7Hjwyz8A 提取码:wjx9 安装环境:win10 64位 二、开始解压安装 关闭杀毒,exe以管理员身份运行 点击【skip】,不然又得licese 点击【agree】 点击【modify】 设置安装的工具、路径及工程路径 设置完成后,开始【install】 在之后注册。 将Crack复制到PADS安装目录

qq_42057393的博客 5万+

【STM32Cube HAL】输入捕获(六)——脉宽测量

1

HAHAHA 4907

C#的MonthCalendar控件(月历控件)

MonthCalendar控件(月历控件)提供了一个直观的图形界面,可以让用户查看和设置日期。MonthCalendar控件中可以使用鼠标进行拖曳,用于选择一段连续的时间,此段连续的时间包括时间的起始和结束。一、更改控件的外观MonthCalendar控件允许用多种方法自定义月历的外观。例如,可以选择显示或隐藏周数和当前日期。将ShowWeekNumbers属性设置为true,实现在控件中显示周数。也可以用代码或在“属性”窗口中设置此属性。周数以单独的列出现在一周的第一天的左边。二、在。

wenchm的博客 2405

Windows服务器环境下 OpenCode Skill 下载与运行全流程实战指南(小白版)

Windows服务器环境下 OpenCode Skill 下载与运行全流程实战指南(小白版),OpenCode技能安装与使用指南,分为四个步骤:1)准备Windows服务器环境并确认OpenCode可用;2)通过Git或直接下载方式获取Skill;3)配置技能路径至.opencode/config.json;4)运行测试技能。关键点包括路径配置必须使用双反斜杠、确保Python环境正确安装、管理员权限运行等。文中提供了文本总结技能的完整案例,从创建skill.yaml和main.py到注册运行的全流程,并针

专注于编程、AI、人工智能等多个领域内容研究和分析 1080

winfrom MonthCalendar的mousedown方法 获得 选择日期

资料来源http://www.cnblogs.com/TrueElement/archive/2012/01/11/2319991.html private void monthCalendar_MouseDown(object sender, MouseEventArgs e) { MonthCalendar.HitT...

amkr21253的博客 161

YOLOv11改进 - 卷积Conv | PConv(Pinwheel-shaped Conv): 风车状卷积用于红外小目标检测 | AAAI 2025

本文介绍了风车状卷积(PConv)和基于尺度的动态(SD)损失在YOLOv11中的结合应用。PConv采用不对称填充,通过特殊结构设计、卷积运算和分组卷积技术,能更好地适应红外小目标的像素高斯空间分布,在少量增加参数的情况下极大扩展感受野。SD损失可根据目标大小动态调整尺度和位置损失的影响。我们将PConv集成到YOLOv11的主干网络低层,并在相关配置文件中进行设置。实验证明,YOLOv11 - PConv在IRSTD - 1K和SIRST - UAVB数据集上取得显著性能提升,验证了方法的有效性和泛化能

魔改工程师的博客 1334

化工仿真软件:gPROMS二次开发_(1).gPROMS基础知识

在gPROMS中,模型是通过定义变量、参数和方程来创建的。模型可以是简单的单元操作,如换热器、反应器,也可以是复杂的系统,如整个化工流程。变量是模型中表示状态或输出的量。在gPROMS中,变量需要显式定义其类型和单位。# 定义变量VAR# 温度变量,单位为K# 压力变量,单位为Pa# 组分摩尔分数,数组变量参数是模型中表示常量或初始条件的量。参数同样需要定义其类型和单位。# 定义参数PAR# 理想气体常数,单位为J/(mol·K)# 反应器体积,单位为m^3# 初始摩尔数。

kkchenjj的博客 617

实现C#.net下日期控件MonthCalendar的DoubleClick双击事件

需求:      双击某个日期,需要弹出一个与该日期相应的窗口,来写日报,这时就需要日期的双击事件;现状:      在MonthCalendar控件的属性窗口中,并没有双击DoubleClick事件,查看MonthCalendar类,确实有MonthCalendar事件,但是经过测试没有作用必须自己手动添加类似与功能的双击事件方案:       日期空间有MouseDow

2229

【即插即用模块】注意力篇 | MICCAI 2023 | MFE:多尺度特征提取,告别固定感受野,猛涨2个点!

本文提出一种用于低分辨率乳腺癌病理图像超分辨率与分类的网络SHISRCNet。针对现有方法处理低分辨率图像效果差、感受野固定等问题,设计了多特征提取模块(MFE),通过多速率空洞卷积覆盖全尺度感受野(局部到全局),结合递进残差连接和动态权重融合机制,实现自适应多尺度特征增强。实验表明,该模块在超分辨率任务中PSNR提升近2个点,分类准确率显著提高。代码提供详细注释,支持即插即用,适用于各类多尺度视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 206

winform控件之MonthCalendar

MonthCalendar控件是一个日历控件,是系统提供好的是我们可以用可视化的方式来实现日期的选择,这个控件主要就是一些属性的设置,没有什么需要特别注意的地方,完整的属性最好还是参考官方,网址如下MonthCalendar Class 下面我们还看看这个控件是如何使用的 1.界面布局 界面布局如下 控件比较简单,就是一个MonthCalendar,一个Label和一个Textbox ...

mill_li的博客 1909

Jenkins部署前后端分离项目最全图文教程(手把手教学)

最近Jenkins部署的热度比较高,于是就想出一篇关于我是如何使用Jenkins部署前后端分离项目的,本篇记录了我是如何一步一步去配置、搭建和部署的完整流程,每一行代码都进行了实测和讲解,通过图文的教学写成博客分享给大家!

黄团团的个人博客 4780

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

WinForm控件之【MonthCalendar】

基本介绍 日期月历控件,顾名思义用来主要用来展示月历,获取年份、月份、日期、时分秒信息等 常设置属性 FirstDayOfWeek:面板展示周期的循序,一周的第一天由从周几开始排列; MaxDate:可以为月历控件选择的最大日期; MinDate:可以为月历控件选择的最小日期; SelectionRange:的字符串; MaxSelectionCount:可为该控件选择的...

weixin_30648587的博客 806

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

使用SkinManager实现换肤功能

试着用鸿洋大神写的SkinManager实现了换肤功能。 一、配置 在app下build.gradle中添加依赖: //换肤功能 compile 'com.zhy:changeskin:4.0.2' 这样就配置好了,然后在程序入口进行初始化。 二、全局初始化 在自己创建的继承application的类中添加: //换肤sdk初始化 SkinManager.getInstanc

brave_shine的博客 4818

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

BusinessSkinForm中Calendar组件中文显示BUG的解决

 版本:Version 6.30 BUG现象:日历组件的中文周标签全部显示变成了“星期”,如下图:BUG分析:追踪源码到bsCalendar.pas,找到procedure TbsSkinMonthCalendar.DrawCalendar(Cnvs: TCanvas);S := ShortDayNames[(Ord(FirstDayOfWeek) + I) mod 7 + 1]; /

applebomb的专栏 1846
上一篇: Winform-NumericUpDown和ComboBox年月日时联动
下一篇: ComboBox绑定数据源时触发SelectedIndexChanged事件的处理办法
蝶恋花雨
博客等级 码龄21年 1290粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值