揭橥多个Winform新控件:Winfrom下的查询控件和情节体现控件

“落红不是凶横物,化作春泥更护花。”

比方大家看过作者的小说小说《查询控件、分页控件、页面突显控件,小编的Web开发三大得力助手》相信大家都对Web中的查询控件、页面突显控件有成百上千感触,今后本人这两个揭橥三个Winform版本的一般控件:Winfrom下的查询控件和内容突显控件。

童希“啪”地合上在此此前的日记本,望向户外三三两两飘落的花瓣儿:“落花啊……”

率先大家回想一下Web的询问控件和内容显示控件先。

曾外祖母家的果树二〇一九年有没有开放呢?

WEB查询控件

一、

  1. 依照设定的字段属性在界面展现相应的求证及控件
  2. 支撑下拉列表之间的联动,帮助输入数据的验证操作。
  3. 协助查询历史记录纪念功用
  4. 协理日期控件的合一
  5. 支持移动省公司界面样式集成

童希一出生就被抱到农村外祖母家。古老的桔黄石板路,锈迹斑斑的己巳革命大铁门,整整一座山的果树。放眼望去一片天灰之中唯一的少数朱砂就是曾外祖母家层层红瓦堆叠成的宽大屋顶。童希就在那片土地上一点一点地长大。

图片 1

童希对老人家没什么心境,确切地说,是从未有过什么印象。在童希蹲在地上看蚂蚁搬家的时候,把各个颜色的花瓣收集起来的时候,只怕学着三姑拿着小刀切菜喂鸡的时候,清瘦的男生和长着娃娃脸的家庭妇女会忽然冒出,满面春风地说:“父亲四姨回来了。”童希一直对那句话抱有疑问,总觉得应该改成:“叔叔岳母来了。”可能“二叔婆婆来拜会了。”但那并不是少儿应该计较的政工。

WEB页面显示控件

老人会带着童希到山头走他早已度过无数十次的路,一边走一边说道着“一会回家的时候把那些水果啊蔬菜啊每样带回家里一点些,那样就又足以省下一大笔花销”之类的话题。

  1. 支撑查看、扩张、编辑三系列型的页面突显
  2. 据悉设定的字段属性在界面显示相应的注脚及控件
  3. 协助布局和体裁修改
  4. 资助日期控件的购并
  5. 支持移动省公司界面样式集成

偶尔也会问:“童希,和岳父丈母娘在一起开不开玩笑?”

图片 2

“唔。”

下边作者来介绍下Winform下的多个控件。

“那孩子,在乡村都待的不爱说道了,童希应该和四叔岳母最知心才对呀。”

Winfrom下的查询控件和内容展现控件和Web的性子和着力框架是一样的,都以依照字段新闻,自动构筑UI,并提供对数据的证实,下拉列表联动等,以便减弱界面代码和界面布局导致的工作量充实。

怎么亲近得起来吧。为何你们每趟说带本身玩时只是盘算着从那里拿走什么样呢?为啥如此七个让自家觉得暖和的地点你们却认为哪儿都脏的麻烦下脚呢?为啥你们总会骗小编说睡一觉醒来会有幽默的东西,等醒来后却都丢掉你们的踪迹呢?童希认为内心很空很空,像有一个雅观的精灵对您说:“闭上眼睛,笔者带你飞哦。”等听到耳边簌簌流动的风声,睁开眼睛,却发现本身正在落下万丈深渊。

做那两个控件的首要目标是缩减代码,并利于代码生成工具Database2Sharp自动生成UI内容(WEB和Winform界面),相当于把界面显示的逻辑进行了打包。

童希从小就理解什么样是虚伪和欺骗,她无法相信广大人。

图片 3

二、

图片 4

110虚岁的童希在升学宴上手忙脚乱。

虽说和Web界面的控件使用办法大多,我们如故来体现下有关的代码把,这样有助于驾驭控件的施用方面。

根本不擅长表明的童希被亲人们须求讲话敬酒。尽管早就料到会有这一项,就准备了一段周详体面的话,却被妈妈搅得乌烟瘴气。“童希啊,别只多谢曾外祖父啊…你应当多谢阿姨嘛…还有小姑…大家见谅啊,小编家童希不太会讲话……”突然被打断,童希只可以含糊为止。

询问控件窗体的片段代码:

更出其不意的是,曾祖父依旧在酒席上哭了。

        private void InitSearch()
        {
            SearchControl1.Dock = DockStyle.Fill;
            //SearchControl1.PanelBorderStyle = TableLayoutPanelCellBorderStyle.Single;
            this.groupBox1.Controls.Add(SearchControl1);

“童童啊,那回走远了…自身小心点…外祖母没看见你上高校,外祖父再见你也不知情是怎么时候……”伯公的话断断续续却让童希的心猛地刺痛了一下。

            this.SearchControl1.OutSQLValueChanged += new OutSQLChangedHandle(SearchControl1_OutSQLValueChanged);
            this.SearchControl1.OnAddNew += new AddNewHandler(SearchControl1_OnAddNew);
            this.SearchControl1.OnDelete += new DeleteHandler(SearchControl1_OnDelete);

那事童希第二回放见曾外祖父哭,第几次,是在小姨的葬礼上。

            Button appendButton = CreateButton(“btnAppended”, “其他”);
            this.SearchControl1.AppendedButtons = new Button[] { appendButton };

在童希模拟考的下七日,奶奶突然住了院。

            FieldInfo nameInfo = new FieldInfo(“Name”, “姓名”, FieldType.String);

童希走进病房的时候,曾祖母已经不认识人,说不出话,也不会喝水了。曾外祖父用医用纱布沾满水,放在曾外祖母的嘴里,让太婆一点一点地吮吸。“童童来看您啊。”曾祖父朝童希招了摆手。“曾外祖母。”童希站在床边,不知该说什么好只是握住外婆的手——曾经粗糙却温暖如春的手,近年来却那么冰冷。曾祖母竟有些握紧了一出手,口中发出几声声响。童希却听不清她在说哪些。

            FieldInfo cityInfo = new FieldInfo(“City”, “城市”, FieldType.String);
            cityInfo.Width = 100;
            cityInfo.Items = new CListItem[] { new CListItem(“北京市”, “北京”), new CListItem(“广州”), new CListItem(“成都”) };
            cityInfo.TargetFieldName = “Area”;
            cityInfo.OnFillItem += new AddItemHandler(this.OnFillItem);

太婆,你认出作者来了是吗?你在责备小编为啥不早点来看你吧?我明白前些天你突然精神了众多,要下地散步,而你指出的绝无仅有多个渴求,就是要见见女儿。哪个人都晓得,那表示什么样。

            FieldInfo areaInfo = new FieldInfo(“Area”, “地区”, FieldType.String);
            areaInfo.Items = new CListItem[0];

是了,回光返照。

            FieldInfo manInfo = new FieldInfo(“Man”, “是或不是男性”, FieldType.Boolean);
            FieldInfo birthInfo = new FieldInfo(“Birthday”, “出生日期”, FieldType.DateTime);
            FieldInfo ageInfo = new FieldInfo(“Age”, “年龄”, FieldType.Numeric);

“童希,你阿姨,没了。”丈母娘在电话机里这么告诉童希。

            this.SearchControl1.SearchFields = new FieldInfo[] { nameInfo, cityInfo, areaInfo, manInfo, birthInfo, ageInfo };
            this.SearchControl1.RowControls = 3;
            this.SearchControl1.ShowAddNew = true;
            this.SearchControl1.LabelHorizontalAlign = System.Windows.Forms.VisualStyles.HorizontalAlign.Right;
            this.SearchControl1.InSQL = “Select * from Test”;

“哦。”童希很平静,本身也不明白为啥。她安静地赶返乡下,平静地朝曾祖母的木棺鞠躬,平静地转身离开。

            BindData();
        }

“童童,你不再看岳母一眼吧?”曾祖父的响声带着哭腔。

        private void BindData()
        {
            using (SqlConnection conn = new SqlConnection(CONNECTION_STRING))
            {
                conn.Open();

童希下意识向前迈出半只脚的偏离,但终究守口如瓶。

                string sql = this.SearchControl1.OutSQL;
                SqlCommand command = new SqlCommand(sql, conn);
                foreach (string key in this.SearchControl1.PagerParameters.Keys)
                {
                    command.Parameters.Add(new SqlParameter(key, this.SearchControl1.PagerParameters[key]));
                }

“算了,别让他看了,小孩子别吓坏了。”二姑执意把童希推出了门。

                SqlDataAdapter adapter = new SqlDataAdapter(command);
                DataSet ds = new DataSet();
                adapter.Fill(ds, “test”);

“曾祖母多想再看您一眼啊,童童——”背后是祖父的哭声。

                this.dataGridView1.DataSource = ds.Tables[0];
            }

早晨,童希飞速地在桌边算着习题,岳母坐在床边瞅着她。

 

“唉,你三姑苦了百年,作者对她还某些好,想想也极度。”大姑突然惊叹。

页面显示控件的窗体部分代码:

童希依旧算着。

        private void InitEditControl()
        {
            editControl.Dock = DockStyle.Fill;

“一天从早忙到晚地干活,伺侯你曾祖父——你曾外祖父后天当着那么几人的面还哭那么大声?也真够丢人的。小编都替她……”

            //editControl.ControlType = ControlType.Edit;
            //TestInfo info = new TestInfo();
            //info.Name = “wuhuacong”;
            //editControl.EntityObject = info;

“够了!”童希“腾”地出发,冲出了门外。

            FieldInfo nameInfo = new FieldInfo(“Name”, “姓名”, FieldType.String);
            nameInfo.IsRequired = true;
            nameInfo.ToolTip = “请输入用户名称”;
            nameInfo.ColumnSpan = 2;
            nameInfo.Width = 400;
            //nameInfo.MaxLength = 255;
            //nameInfo.TextColumns = 100;
            //nameInfo.TextRows = 2;
            //nameInfo.Enabled = false;
            nameInfo.IsMultiLine = true;
            //if (editControl.ControlType != ControlType.Add)
            //{
            //    nameInfo.Enabled = false; //设置“名称”不可编辑
            //}

“明日还要考试呢,你去哪?哎,童希……”姨妈的喊声逐步模糊。

            FieldInfo cityInfo = new FieldInfo(“City”, “城市”, FieldType.String);
            cityInfo.Items = new CListItem[] { new CListItem(“北京市”, “北京”), new CListItem(“广州”), new CListItem(“成都”), new CListItem(“武汉”) };
            cityInfo.TargetFieldName = “Area”;
            cityInfo.OnFillItem = new AddItemHandler(this.AddItem);
            cityInfo.ColumnSpan = 2;

童希不停地跑着。

            FieldInfo areaInfo = new FieldInfo(“Area”, “地区”, FieldType.String);
            areaInfo.Items = new CListItem[0];

晚风微凉,街道两旁的霓虹灯变幻着颜色,五色流转,让童希一阵头晕。

            FieldInfo manInfo = new FieldInfo(“Man”, “是还是不是男性”, FieldType.Boolean);
            manInfo.Items = new CListItem[] { new CListItem(“男性”, “True”), new CListItem(“女性”, “False”) };
            manInfo.DefaultValue = “False”;

为啥外祖母生前您不对他好一些啊?

            FieldInfo birthInfo = new FieldInfo(“Birthday”, “出生日期”, FieldType.Date提姆e);
            birthInfo.IsRequired = true;
            birthInfo.DefaultValue = “2009-1-1”;
            birthInfo.CustomFormat = “yyyy-MM-dd”;

干什么你不精通孝顺还健在的伯伯吧?

            FieldInfo ageInfo = new FieldInfo(“Age”, “年龄”, FieldType.Numeric);
            //ageInfo.CustomFormat = “#.##”;

缘何您要等到失去了才学会尊重吧?

            FieldInfo favoriteInfo = new FieldInfo(“Favorites”, “兴趣爱好”, FieldType.String);
            favoriteInfo.Items = new CListItem[] { new CListItem(“篮球”), new CListItem(“足球”), new CListItem(“网球”), 
                new CListItem(“乒乓球”), new CListItem(“台球”,”t”), new CListItem(“羽毛球”, “y”) };
            favoriteInfo.ItemsType = ListControlType.CheckBoxList;
            favoriteInfo.ColumnSpan = 2;
            favoriteInfo.Width = 300;
            //favoriteInfo.DefaultValue = “篮球,乒乓球,t,y”;

终极,童希停在了该校楼后的桃树。树下是一地凋零的花瓣儿,在路灯昏黄的灯光下有个别颤动。童希蹲下来,像小时候同样用拇指和食指小心地捏起一片片花瓣,放在用裙子前摆围成的“袋子”里。

            editControl.EidtFields = new FieldInfo[] { nameInfo, cityInfo, areaInfo, manInfo, birthInfo, ageInfo, favoriteInfo };
            editControl.RowControls = 2; //默许一行放置1个控件组
            //editControl.ContentControlWidth = 200;//全数控件统一宽度
            editControl.LabelHorizontalAlign = HorizontalAlign.Right;//标签文本对其方法
            editControl.PanelBorderStyle = TableLayoutPanelCellBorderStyle.None;//表格样式

“怎么忍心落下来呢……”童希喃喃道。

            editControl.OnCancel = new CancelHandler(this.OnCancel);
            editControl.OnSaveData = new SaveDataHandler(this.OnSaveData);
            this.groupBox1.Controls.Add(editControl);
        }

三、

        private void Form1_Load(object sender, EventArgs e)
        {
            InitEditControl();
        }

实质上小时候的童希是很淘气的。不过,也很爱哭。

 

譬如说拿木棍去戳公鸡的鸡冠,却被公鸡追的满院子跑的时候;

上边附上使用的例子,可以下载下来渐渐研讨,其中Database.sql是测试例子的数据库脚本,允许例子前,请先导化数据库。

诸如想把玻璃摔成美丽的散装,却割破手指的时候;

http://files.cnblogs.com/wuhuacong/TestWinControl.rar 

比如白天缠着伯公讲鬼典故,中午却被惊恐不已的梦惊醒的时候;童希都会用哭泣来终结。

指望大家利用欢乐,下一步小编将集成UI的自动生成到Database2Sharp中,和Web一样,利用查询控件和分页控件、页面展现控件已毕UI的变迁。

如若是光天化日,外祖母不管在做怎么样,都赶紧在围裙上擦擦手,跑过来摸摸童希的小脸,查看她随身的每一处,不停念叨着:“伤到没有啊童童,伤拿哪了?……不哭不哭啊……”假设是中午,就把童希搂进自个儿的被窝,小声说:“呶,外祖母给你讲大伯小时候的事体好倒霉?你姑丈他呀,时辰候可老实了……”那单臂确实很粗糙,摸在脸上有点疼,但却很有效,童希总会转哭为笑只怕酣然入睡。

唯独有五遍,这几个都不管用。

外婆家附近住着二个整日无所事事的人。三十多岁的汉子,不是干些捻脚捻手的事,就是遍地转悠,倚在什么人家门口讲着部分童希听不懂的段落,和我们齐声笑得没有形象。人们总是愿意与他说笑两句,却又防着别让她随手拿走了何等事物。

这一次,童希蹲在大门旁的田地里帮外婆把土豆装筐,就听见那人戏谑的笑声:“呦,小姨娘,帮外婆干活呢。”

童希警惕地看向他。姑奶奶起身招呼了一声:“是您呀。”

“大娘,你看看本身手里那把木头剑,给您孙女玩如何?”他向四姨挥了挥手中的剑。曾外祖母拍击掌,走了过去。

何人料那人却意想不到把剑架在曾外祖母脖子上,得意地向童希笑着:“大妈娘,你怕不怕?”

童希愣了刹那间,许多TV里的镜头在脑公里一闪而过。她转身跑向瓦房,眼泪止不住地流上面颊。

“哎,你那人,吓坏了子女。”外婆一把推开那剑,追着童希跑了千古。

“小编就逗逗她……”那人愣了一下,悻悻地转身离开。

“童童不哭啊,他和您闹着玩吧……都以假的……”曾外祖母用手擦着童希脸上的泪花。童希的泪花却来了闸,她时而扑进姑奶奶的怀抱,那样真实而温和。“奶……奶……我……小编绝不和你分手……”童希不停地哭泣,话也不成句子。“好了好了,外婆在那吗……不会分其余……啊……”外婆拍着童希的脊梁,叹了口气。

这时候的童希,第2遍发现到“分别”这一个词,觉得它是那么的万人传实,令人不敢面对,她用哭泣来释放自个儿的不安。那时候的外祖母或者想到了不可胜数,而那时候的童希须求的,其实只是3个方可赋予百分百信任的胸怀。

只是将来,世上再没有那样的怀抱来抚平泪水,所以一定要坚强。

四、

远近驰名的阳光把窗框的黑影印在课桌上,体育场馆里弥漫着一种呛人的平淡,语文先生在讲台上不停踱着步。

“哎,童希童希,下节体育课去打羽毛球啊,前几日天气很好吧。”同桌小艾用胳膊肘碰了碰童希,悄悄地说。

“不了,我去自习室上自习。别和本人开口,听课。”童希头也不抬。

“诶——不是最高兴羽毛球么……”小艾第三遍碰了钉子,窝回座位,觉得不解气,又小声嘀咕一句:“怎么如今都冷冰冰的。”

“‘落红不是凶狠物,化作春泥更护花’落红的生命即便平息了,不过后代却替它一连了性命……也注解了俺积极性的人生态度……”老师正活跃地品析着古诗,童希却长期不恐怕回神。

落花啊……

太婆仙逝后的非常长一段时间内,童希总会梦见曾祖母家满山的果树开着花。清风吹过,粉古金色、茶色、淡浅黑褐的花瓣携光飞舞,恍若仙境。外祖母就站在最大的那棵桃树下,安心地笑着,草绿的花把外祖母的脸部映得健康红润。

闪动之间,天色昏暗,全部的花都初阶衰落,零落的花瓣儿变成粉浅紫蓝,盖住一整片山。外婆就带着笑容一点一点地隐去了,不让童希抓不住一丝美好。

一次又几回地从梦中惊醒,童希终于打车回去了小村。

就在三姨逝世后赶紧,伯公坚韧不拔让邻村老伴驾鹤归西了的于小姨搬来共同住,说是相互有个照应。这惹来了重重流言,直指外祖父的冷淡、不念旧情。童希没什么感觉,对于四姨很谦虚,但她只愿意叫她于二姨,绝不叫“外祖母”。

“为啥吗?”童希曾并膝坐在祖父身边,这么问道。曾外祖父只是叹一口气:“因为……很像啊……”之后就是瞧着橘红的日光没入山后,久久不说话。

是啊,很像啊。于二姨有着和外祖母一样的口音和话音;于二姨和大姑一样勤劳地侍奉花草,把家里打扫得条理清楚;于大姑和祖母一样做出香馥馥的饭食,从不多言。原来,外祖父一样无法承受没有奶奶的日子。

即便于二姨尽心尽力地招呼着果园,整座山的果树却再没有开过花,好似枯木。人们都说花被小姑带走了,童希却觉得那是因为它们都在投机的梦里开过了。

童希站在那棵最大的桃树下,伸手抚过它粗糙的树干,好像姑奶奶的牢笼,令人宽慰。

太婆,小编有努力学习呦,本次模拟考试小编得了榜首吧。

太婆,小编有试着去相信身边的人了吧,同学们都很好啊。

曾祖母,你在梦中让自个儿来看你,作者就来了哟。

曾祖母,作者……有点想你了呢。

五、

童希盯起首中的日记本,它承载着温馨全部学生时期啊。

日记本的末梢一页贴了一张相片:曾外祖母抱着年幼的童希站在桃树下,童希梳着多只羊角小辫,笑得专程灿烂。一束阳光打在外婆的鬓角,追溯着众多年前拾壹分温暖的清晨。

岳母说:“童童心花怒放,外婆就快意嘛。”

照片的正下方,正是一笔一画认真写下的那句“落红不是凶暴物,化作春泥更护花”。

外祖母,小编早已以为,落花真的很残忍,明明和树那样丹舟共济,却忍心离开它的身边;

外婆,作者早已认为,分别是那么恐怖,作者一直告诉本人你并从未偏离,那都不是的确,我不敢回去那间尚未您的瓦房里;

外祖母,小编一度以为,只要自个儿不落泪,我就是强项的;但是实际上,作者直接在回避。

花要落,是因为要呵护他平昔钟爱的树,而树在替他活下来,并开出更赏心悦目的花朵。

不哭,并不是坚强,而是不敢面对。当自家能为您流出眼泪时,那漂浮已久的痛才和自己的心恰好重合,没有怎么可以动摇。在自小编肯认可对你的眷念时,作者才敢面对你的远去。

逝去的人只好住在生存的人的记念里,所以小编永久都不会把你忘记。

太婆你说过,小编开玩笑你就会心花怒放。那么,作者要一向一向称心快意下去,哪怕时光轮转,哪怕荆棘四处,哪怕那众人有那么多不美好的事情,你永远都看得见自个儿最灿烂的一言一行。

大姨,就让作者替你再笑一辈子吧。

“啪”,一颗泪珠滴在照片上,恰好覆上一片落花。