玩转控件:扩展Dev中SimpleButton】的更多相关文章

何为扩展,顾名思义,就是在原有控件属性.事件的基础上拓展自己需要或实用的属性.事件等等.或者可以理解为,现有的控件已经不能完全满足我(的需求)了.好的扩展会使控件更加完善,实用,好用.不好的扩展,说白了就是画蛇添足!好了,跟着博主一起玩转控件吧,看看您在实际项目运用中是否也曾几何时遇到过这样的困惑. 本篇拿一个简单的Dev控件为例,件如其名——SimpleButton,一个成熟的软件,一定会考虑到所有人的操作习惯以及简洁舒适的界面.做人如是,控件如是. 本篇缘起于博主最近削尖脑袋,硬着头皮看英文…
又是一年清明节至,细雨绵绵犹如泪光,树叶随风摆动.... 转眼间,一年又过去了三分之一,疫情的严峻让不少企业就跟清明时节的树叶一样,摇摇欲坠.裁员的裁员,降薪的降薪,996的996~~说起来都是泪,以上种种竟然在本公司都能见到,然而你现在还能看到博主翘着二郎腿,在工位上信誓旦旦的敲着代码也是奇迹!哎,生活不易,且行且珍惜吧! Talk is Cheap, Show me the code! 如上所说,虽环境如此严峻,但也不能生疏了咱吃饭的手艺.不禁让我感受到,对技术的追求,不仅仅靠的是兴趣,更重…
缘由 一切实现来源于需求,目的在于不盲目造轮子,有小伙伴儿在看了<玩转控件:对Dev中GridControl控件的封装和扩展>文章后,私信作者说,因公司业务逻辑比较复杂,展示字段比较多,尤其网格列表控件展示数据太多时候,很多关键列信息不同用户要求展示效果不同,问我有没有好点的处理方式来满足不同客户的需求. 看到这里作者还是比较暗自窃喜的,毕竟自己造的轮子不止作者一个人在用,而且还能收获客户的实际需求来完善轮子.当然客户需求存在即合理.毕竟There are a thousand Hamlets…
鸣谢 随着前面几个章节对控件封装与扩展的分享,不少小伙伴儿们在作者公众号上反馈,并联系作者,表示通过这些系列和源码能学到不少细节上的东西,并运用到了自己的实际项目当中,也有不少伙伴儿反馈更好更优的处理方式.作者在此感谢大家的陪伴与探讨,希望能与大家一起学习,一起进步. 工欲善其事必先利其器 公众号反馈最多的是<玩转控件:封装Dev的LabelControl和TextEdit>,表示运用到自己实际项目后,确实大大减少了自己的工作量,并希望能有更多这种类型的博文.为了满足小伙伴儿的心愿,作者后续会…
俗话说的好:"工欲善其事必先利其器",作为软件攻城狮也是同样道理,攻城狮开发的软件目的是简化客户的操作,让客户动动手指就可以完成很多事情,减少人力成本.这也是系统/软件存在的目的.那对于攻城狮来说怎么简化自己的操作?让自己也动动手指就可以减少很多重复的工作呢?如果你对此也有同样的疑问或兴趣,那就跟作者一起看下去吧! 说到利器,自然而然的会想到宇宙第一IDE——Visual Studio 随着版本的迭代,大大的加快了攻城狮的编码效率.那对于我们自己开发的软件,如何减少重复操作,加快软件进…
前言 首先,跟守护在作者公众号和私信作者催更的朋友们道个歉.疫情的原因,公司从年初到现在一直处于996+的高压模式,导致公众号更新频率较低.而且作者每更新一篇原创公众号,既要对自己沉淀知识负责,也要对愿意和作者一起探讨一起学习一起进步的小伙伴儿们负责,防止误人子弟.所以作者的每一篇原创,都是作者在有限时间内仔细推敲后的产物,希望大家可以理解. Talk is Cheap!  前面分享的几个章节,差不多把实际用到的控件和容器的封装.扩展.重绘都举例到了(后续如果还有其他特例,作者也会更新进来).今…
很久没有更新博客了,本想着直接发一篇<手撕ERP>系列,从控件重写.重绘,到框架搭建,再到部分模块实现+业务的.但是每次动手的时候,都觉得难以下手.直接从数据库设计开始吧,模块设计还没定下来,从模块设计开始吧,winform自带控件和DevExpress控件用起来布局实在太难看了.算了,从低做起吧.接着6-7年前的玩转控件系列开始,工欲善其事必先利其器!利器备好,框架搭建完毕,模块设计就是拖控件而已! Talk is Cheap,Show me the Code! 首先,项目中新建一个窗体(用…
  前言 上一篇博文<玩转控件:重绘ComboBox —— 让ComboBox多列显示>中,根据大家的回馈,ComboBox已经支持筛选了,更新见博文最后最后最后面.   奇葩 这两天遇到一个很“诡异”的情况,之前手机拦截短信一直用腾讯手机管家,这两天发神经,把腾讯手机管家卸载掉,换成360手机管家.然后一如既往的设置好闹钟,睡觉.. 结果尼玛一觉睡到自然醒!拿过手机一看11:35am,手机闹钟居然没响!我很希望今天是星期六,为此我还狠劲的捏了下我白里透红的小脸,却无法扭转今天星期五的窘境.…
给easyui datebox扩展一个清空的实例 步骤一:拓展插件 /** * 给时间框控件扩展一个清除的按钮 */ $.fn.datebox.defaults.cleanText = '清空'; (function ($) { var buttons = $.extend([], $.fn.datebox.defaults.buttons); buttons.splice(1, 0, { text: function (target) { return $(target).datebox("o…
Material Design Extensions 在WPF开源控件库 Material Design in XAML Toolkit(本站介绍:链接)的基础上进行了控件扩展和特性新增.本开源项目中的控件或许不在Material Design specification明确规定中,在使用时也不会和Material Design in XAML Toolkit冲突,请放心使用. NuGet 安装NuGet包. PM> Install-Package MaterialDesignExtension…
前台: <asp:TemplateField HeaderText="充值总额|账号余额"> <ItemTemplate> <asp:Label ID="lblSurplusMoney" runat="server" Text=""></asp:Label> </ItemTemplate> </asp:TemplateField> /// <summ…
原文:OLE控件在Direct3D中的渲染方法 Windows上的图形绘制是基于GDI的, 而Direct3D并不是, 所以, 要在3D窗口中显示一些Windows中的控件会有很多问题 那么, 有什么办法让GDI绘制的内容在3D中显示出来?反正都是图像, 总有办法实现的嘛! 前段时间在研究浏览器在游戏中的嵌入, 基本的思路就是在后台打开一个浏览窗口, 然后把它显示的内容拷贝到一张纹理上, 再把纹理在D3D中绘制出来, 至于事件处理就要另做文章了. 所以, 其它的Windows里的GDI绘制的东西…
大家一定遇到这样的情况,想改变一下SL的DataPager的显示信息,比如希望分页控件上显示数据的总数.那么就需要扩展一下DataPager控件即可. 其实扩展DataPager很简单,只要获取到DataPager控件上的元素,然后再改变元素上数据.比如DataPager控件上显示“总页数”的元素是一个TextBlock,那么可以通过方法GetTemplateChild获取到,参数是元素的名称.然后通过重写方法OnApplyTemplate即可,下面请看代码 代码 Code highlighti…
摘要:NUI组件是公司新一代的前端开发框架,它精致优雅的前端编程模型,是大家能够,或者想接受学习它的重要原因,在使用它的时候,一定不免会想增加自己的控件,让别人也能够如此优雅的使用. 其实NUI的扩展机制不是很复杂,下面说说如何扩展一个新的NUI控件 NUI组件是公司新一代的前端开发框架,它精致优雅的前端编程模型,是大家能够,或者想接受学习它的重要原因,在使用它的时候,一定不免会想增加自己的控件,让别人也能够如此优雅的使用. 其实NUI的扩展机制不是很复杂,下面说说如何扩展一个新的NUI控件,一…
这几天要是用AxMicrosoft.Office.Interop.Owc11.AxSpreadsheet控件做查询,发现一系列问题,一点点记录下来吧,以备后查: 第一.相关属性:http://www.cnblogs.com/phenix3/articles/105308.html Office web component learning ---- Spreadsheet learning 一.Spreadsheet 对象 说明:表示电子表格的容器. ****************** 属性:…
接上一节内容:cocos2dx - shader实现任意动画的残影效果 本节主要讲一下扩展PageView控件功能 在实际游戏应用中,经常会碰到用原来的控件难以实现的功能.这时候就需要根据需求,通过选择合适的控件进行方便的扩展来实现. 扩展控件一般是通过对原来的控件进行继承来实现,这样可以很好的应用原来的属性及方法,同时可以方便的添加自己需要的方法及属性. 例子:实现对pageview进行循环翻页效果. 分析: 1.翻页方法有2个方式,滑动翻页及点击按钮左右翻动. 2.在触发翻页后需要移动页面位…
昨晚Insus.NET有怀旧一下<念念不忘,ASP.NET MVC显示WebForm网页或UserControl控件>http://www.cnblogs.com/insus/p/3641610.html 那仅是小小尝试,还有很多不明的地方. 那一篇其中有Render用户控件ascx的.如今Insus.NET想重构它一下,让步其能在Action或是Razor语法中使用. 创建一个AscxUtility.cs,这们我们可以在应用程序中多个地方使用. 这样我们就可以重构一下昨晚那个public A…
实现要素删除控件,扩展OpenLayers.Control类,实现效果:选择DeleteFeature工具后,选择要素,按delete键删除要素(这里的删除只是将feature设置成delete状态,需提交到远程服务器才能删除数据源中的要素),具体代码如下: OpenLayers.Control.DeleteFeature = OpenLayers.Class(OpenLayers.Control.SelectFeature, { deleteCodes: null, /* * layers--…
dev 图表控件 学习连接 新建一个winformApp form1上放一个button 再放一个chartControl Name 为cct 直接上代码 private void button1_Click(object sender, EventArgs e) { cct.Series.Clear(); //清掉原来的内容 Series s = new Series("货品流水", ViewType.Line);//建一个名为货品流水的 折线 cct.Series.Add(s);/…
   前言 今天,要跟大家一起分享是"GDI+动态生成流程图"的功能.别看名字高大上(也就那样儿--!),其实就是动态生成控件,然后GDI+绘制直线连接控件罢了.实际项目效果图如下: Talk is Cheap,Show me the Code 首先,人靠衣装马靠鞍!在绘制流程图之前,我们得有个高大上的背景来衬托,比如网格背景: 代码如下: /// <summary> /// 初始化网格 /// </summary> private void InitGridL…
一.下载My97DatePicker的压缩包My97DatePicker.rar,解压. 注:My97DatePicker最新版本有开发包,项目中使用时删掉,以便节省空间,提高程序的运行效率. 二.在MyEclipse中创建web project名为Wdate,将解压后的My97DatePicker文件拷贝到WebRoot目录下. 三.jsp页面中引入WdatePicker.js即可. <script  language="javascript" type="text/…
初学Android的时候,在Android Studio中xml里面添加一个Button.EditText等控件后,它的Text总是会显示大写,即使你输入的字符串是小写也不行,控制字符串大小写的属性是android:textAllCaps, 最后查看了一下Themes.xml文件,找到了一些端倪,发现在设置样式的时候,默认是把所有的字符串显示大写true. 如图,是从android的Style.xml中的截图,   [解决办法] 1. 把xml中你不想大写的控件添加一行 android:text…
今天不知道怎么回事怎么也找不到gridview列中的控件,关键是其为编辑时隐藏域中的控件,取值就很成问题了,网上搜了很到,找到这个比较经典的东东了,可能大家都知道,但很少对比整理到一起,有多种方法可以找到控件,但是当控件很难找到时,又指定了其dataitem,可以直接用下4的方法快速取值.呵呵,个人觉得这些整理了的资料最有价值 要获取当前行的某个数据列,在实践中总结有如下几种方法:1. Cells[x].Txt.     从列单元格的文本值获取.这种方法简单高率,最为常用,但是功能单纯.此法存在…
最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的”Smobiler Components”拖动一个PopList控件到窗体界面上 2.修改PopList控件的属性 a.Groups属性 打开集合编辑器,并点击“添加”,如图1 Text和Value中都输入需要在列表中显示的选项,如图2 在Items中添加数据,如图3 图1 图2 图3 b.Selections属…
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.Attributes.Add("onclick", "javascript:alert('当前ID为:" +DataBinder.Eval(e.Row.DataItem,"CID"…
先检查客户端浏览器是否安装了ActiveX控件,如果没有安装ActiveX,就需要先给浏览器提示下载并允许安装.否则就直接使用该ActiveX控件.我们可以使用CodeBase来满足我们的要求:下面是一个html的调用: <object classid="clsid:636B8CE1-7512-464C-B63C-FC75BDCA21DB" codebase="Charles2008ActiveX/setup.exe#version=1,0,0,0" widt…
http://blog.csdn.net/aben_2005/article/details/6592205 本文转载自:android中ListView控件&&onItemClick点击事件 listView= (ListView) this.findViewById(R.id.listview); List<HashMap<String,String>>data = new ArrayList<HashMap<String,String>>…
CompareValidator 控件用于将由用户输入到输入控件的值与输入到其他输入控件的值或常数值进行比较. -------如果输入控件为空,则不会调用任何验证函数,并且验证将成功.使用 RequiredFieldValidator 控件使字段成为必选字段. 在VS2012中 使用 CompareValidator 控件会显示错误  解决方法为: 将  C:\Program Files (x86)\Microsoft Web Tools\Packages\AspNet.ScriptManage…
单击Button会同时触发这两个事件,但先执行Click,后执行Command,在button控件中加上参数属性 CommandArgument='' 在click响应函数中可以用以下代码获得传递的参数 protected void Button_Click(object sender, EventArgs e)     {         Button Btn = sender as Button;         string commandArgument = Btn.CommandArg…
getLocationOnScreen ,计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标 getLocationInWindow ,计算该视图在它所在的widnow的坐标x,y值,//获取在整个窗口内的绝对坐标 (不是很理解= =.)getLeft , getTop, getBottom, getRight, 这一组是获取相对在它父亲里的坐标如果在Activity的OnCreate()事件输出那些参数,是全为0,要等…