最新文章
|
知识管理交流
→『 技术文档交流 』
本版文数:7638 今日文数:2658
|
我在多年之前设计过一个ActiveX的打印控件,当时在市面上找不到符合自己要求的打印控件,所以就按照自己的思路设计开发了一个打印控件,并共享出来,没想到得到许多同行朋友的认可,大家用起来觉得还挺不错的。已经过了许多年,浏览器已经由当年的IE或以IE为内核的国产浏览器为主流,转为以Google的Chrome浏览器或以Ch...
|
打印HTML页面的话,我使用WebBrowser控件。1、设置默认打印机///<summary>///页面加载///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidForm...
|
publicpartialclassPrint:Formpd_PrintPage();btnPrint.Enabled=true;}privatevoidpd_PrintPage()privatevoidPrintDocument(objectsender,WebBrowserDocumentCompletedEven...
|
在项目中,有一个需求时是需要打印产品页面。但是打印出来的版本和网页上的版本不太一致,有些图片不需要,网页上以tab选项卡显示的内容,都需要在打印页面中看到..等等。CSS针对这种需求,引入了一个@media规则,@media规则允许你根据不同的media指定不同的cssstyle.@mediaprint指的就是prin...
|
用属性代替可访问的字段1、.NET数据绑定只支持数据绑定,使用属性可以获得数据绑定的好处;2、在属性的get和set访问器重可使用lock添加多线程的支持。readonly(运行时常量)和const(编译时常量)1、const只可用于基元类型、枚举、字符串,而readonly则可以是任何的类型;2、const在编译时将...
|
邮箱在我们日常工作中,可以说是非常常见了。个人邮箱一般都是免费的,但企业邮箱会收费,虽然一般情况下,市面邮箱已经够用了。但有些企业对内容安全要求比较严格、或者需要搭建邮件营销系统等一些场景下,我们就需要开发自己的邮箱系统。项目简介这是基于.Net开发的、开源的邮箱组件,功能强大、支持所有邮件协议、具备识别垃圾邮件、群发...
|
喜欢C#的其中一个原因,就是C#的语法非常简洁,C#具有可读性和易写性、高效性、强大的功能性等优点,使得开发人员能够更快速、更高效地开发出高质量的应用程序。下面盘点10个C#常用的简洁语法,你用过几个?01属性初始化器以下例子,为Name属性设置默认值“John”。publicclassPerson="Joh...
|
为什么将网页html的内容导出为excel文件后布局会乱将网页HTML的内容导出为Excel文件后,布局会乱的原因主要有以下几点:1.HTML和Excel是两种不同的文件格式,它们的布局和排版方式不同。HTML是一种标记语言,用于描述网页的结构和样式,而Excel是一种电子表格软件,用于处理和展示数据。因此,将HTML...
|
isEmpty和isBlank的区别!isEmpty和isBlank的区别!#isEmpty系列StringUtils.isEmpty()是否为空.可以看到""空格是会绕过这种空判断,因为是一个空格,并不是严格的空值,会导致isEmpty("")=falseStringUtils...
|
前言在.NET开发过程中,可以使用一些辅助的代码生成器来提高开发效率,之前在.NETFW时代有国产的“动软代码生成器”,现在早已不维护了。下面介绍几种.NET码生成器,供大家参考使用。最后一个代码生产器绝对优秀,推荐使用。T4TextTemplateGeneratorT4是.NET框架提供的一种代码生成引擎。它使用类似...
|
前言关于历史久远的系统,源代码已经找不到的程序,要想再进行二次开发需要借助反编译工具进行修改。一、dnspy是什么?dnspy是反编译工具,用于调试没有源码的.net程序。二、使用步骤1.下载工具有64位和32位两个版本,根据程序的版本下载。文件-》打开-》找到对应的DLL文件即可。可对代码进行修改和调试。但是看不到页...
|
在去年九月份的时候,我分享了几款反编译工具,里面提到了dnSpy,但是实际上,我几乎没怎么用过它,只是在Github上大概看了一下,知道它很强大,能够反编译、调试、编辑C#DLL。直到前两天,我分享了一下用ILspy配合reflexil修改现有.netDLL里面的常量参数,这时有友友再次提到dnSpy,这才使我想起了它...
|
1简介html2canvas屏幕截图基于DOM,因此可能不是100%准确到真实表示,因为它不会制作实际的屏幕截图,而是根据页面上可用的信息构建屏幕截图。附件:html2canvas.rar官网地址2安装2.1es6模块化引入方式,项目中使用npminstall--savehtml2canvas//或yarnaddhtm...
|
vlookup函数匹配不出来的原因及解决方法在excel表格中,我们经常会使用vlookup函数来查找定位字符,但是近期却用户在使用中遇到了vlookup函数匹配不出来的情况,这是怎么回事呢?不要着急,下面小编就为大家分享vlookup函数匹配不出来的原因及解决方法,希望对你有所帮助。vlookup函数匹配不出来的原因...
|
网页500错误的原因和解决方法网页500错误的原因和解决方法网页500错误(500InternalServerError)是一种常见的HTTP状态码,指示Web服务器遇到了错误,无法完成客户端的请求。500错误通常是由于服务器端的问题导致的,例如代码错误、数据库连接失败、服务器繁忙等。当Web服务器遇到500错误时,会...
|
背景运营同事发现大量的拼单、淘宝和闲鱼上的会员账号租借服务、外借账号等问题已经影响到了公司营收。为了缓解这种问题,我们决定限制单一账号能够保持登陆状态的设备数量,以此提高租借账号的成本。要想限制设备,首先要解决的问题就是如何识别一台设备。这可以借助FingerprintJS来解决,然而并不是所有指纹选项都能够投入到生产...
|
Fingerprintjs2是一款开源的设备指纹采集器。最初的fingerprintjs库创建于2012年,但是由于新版本的开发很难保持向后兼容,因此Fingerprintjs2项目中增加了很多的新内容。该项目将更多、更有效的来源用于指纹识别,并且可配置,也就是说用户可以选择性地开启其中的选项。该项目还将重点关注IE插...
|
Fingerprint2是一款开源的设备指纹生成器。主要用于判断用户是否是新增用户,或者判断设备是否为新增访问设备。在项目中应用:1、npm下载Fingerprint2库:npminstallfingerprintjs2-S2、在项目中引入Fingerprint2:importFingerprint2from‘fing...
|
FingerprintJS之前有后端小哥问道,前端可否生成浏览器唯一标识UUID,发给后端处理。当时我想都不用想,直接拒绝(手动狗头)。后来想了想,这是个不错了研究题材,就google了一把,于是乎发现了这个宝藏库(FingerprintJS)。它能够生成浏览器唯一标识来区别不同的用户,pro版本的识别率高达99.5%...
|
SQLServer(MSSQLSERVER)无法启动怎么解决?1、IP地址配置不正确:打开MicrosoftSQLServer2005配置工具下的SQLServerConfigurationManager,选择MSSQLSERVER协议,然后双击右边窗口的TCP/IP,在弹出窗口中检查IP配置。2、可能是因为VIA协议...
|
今天来分享10个开源的前端低代码项目!GOVIEWGoView是一个使用Vue3搭建的低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可完成业务需求。它的技术栈为:Vue3+Typescript4+Vite2+NaiveUI+ECharts5+Axios+Pinia2+PlopJS。Gitee:...
|
Vue结合了React和Angular的优点,并且有着团结、活跃且庞大的社区,可以帮助解决开发中遇到的问题。开源社区不断提出解决问题的新方法。工具和库的数量也贡献量不断的增加。使用Vue的好处该框架非常小。约为18–21KB;Vue支持用基于组件的方法来构建Web应用;详细的文档。这对于初学者来说很容易上手;易于理解。...
|
场景:在运行、调试代码的时候,往往会遇到一些异常情况,很多时候我们代码写得足够健壮,所以出现的概率比较低,但是如果一旦出现,我们又没处理好,就可能会导致程序的崩溃、退出;当然还有一部分在方法内被我们用trycatch给处理掉了,但是不得不承认,还是会有极少的异常未被规避,或者说,相信不是所有的方法内都做了异常处理,所以...
|
其实对于两个程序之间进行通信的实现方式有很多种,一般会采用服务端+客户端的模式,此处我们是进行两个客户端之间的通信,如果用一种最简单的方式去实现的话,我认为可以采用写文件的方式,即一个读,一个写。这个写法的话可以参考之前的关于文件读写的文章;但这里我们使用的是另一种,基于WindowsAPI实现Windows消息的发送...
|
select标签中设置只读几种解决方案需求:只读但需要传递到后台。readonly设置对select标签无效!方式一、直接在标签中用js方法设置不可变更(推荐)<selectreadonly="readonly"onfocus="this.defaultIndex=this.selecte...
|