公布五个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,并提供对数据的验证,下拉列表联动等,以便减弱界面代码和界面布局导致的工作量充实。

       
林悦然第二次看见肖言恩时,陈宇也到场。周末的夜晚,他们两人一同出去散步。明明才第二次看见肖言恩,林悦然对他说的话却比对陈宇说的还要多。

做这两个控件的严重性目标是削减代码,并有益于代码生成工具Database2夏普自动生成UI内容(WEB和Winform界面),相当于把界面展现的逻辑举办了打包。

       
从这将来,林悦然便经常看见肖言恩了。教学楼,食堂,田径场,无论林悦然在什么地方似乎总能看见她。而每趟看见她,林悦然都很欢喜。有时候两人就那么微笑的看着对方,也不发话。周末的夜幕,他们也会共同出去走走,像老朋友一般,却又不像老朋友。

图片 3

       
直到一天,肖言恩对林悦然说自己有喜欢的女人了。喜欢的女孩子?林悦然的心目深感空了一块。

图片 4

        “那你去表白啊。”

尽管如此和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];

        两年来,他直接陪在他的身边。

            菲尔德(Field)(Field)Info manInfo = new FieldInfo(“Man”, “是否男性”, Field(Field)Type.Boolean);
            菲尔德(Field)Info birthInfo = new Field(Field)Info(“Birthday”, “出生日期”, FieldType.Date提姆e);
            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”;

       
9月8日的早上,夕阳很温暖。林悦然和肖言恩来到江边。晚霞把苍天染成了橘色,江水上涨,有船舶漂浮其上,岸边柳树垂丝,随风摆动,六人的阴影也被夕阳拉得很长很长。

            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 Field(Field)Info(“Man”, “是否男性”, Field(Field)Type.Boolean);
            manInfo.Items = new CListItem[] { new CListItem(“男性”, “True”), new CListItem(“女性”, “False”) };
            manInfo.DefaultValue = “False”;

        “读了大学,你势必要好好的,一定要具备你想要的生活。”

            菲尔德(Field)(Field)Info birthInfo = new Field(Field)Info(“Birthday”, “出生日期”, 菲尔德(Field)(Field)Type.DateTime);
            birthInfo.IsRequired = true;
            birthInfo.DefaultValue = “2009-1-1”;
            birthInfo.CustomFormat = “yyyy-MM-dd”;

        不过肖言恩怎样晓得,林悦然的世界,没了他,便只剩下黑白。

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

        林悦然最终两回看见肖言恩,是一个有阳光,有微风的光景。

            菲尔德(Field)Info favoriteInfo = new 菲尔德(Field)Info(“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; //默认一行放置2个控件组
            //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是测试例子的数据库脚本,允许例子前,请开首化数据库。

张家口大学 商大学 2017级 财务管理5班 李丽 1700150528

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

企望我们利用愉快,下一步我将集成UI的自动生成到Database2Sharp中,和Web一样,利用查询控件和分页控件、页面呈现控件完成UI的变通。