csharp:FlowLayoutPanel

博客主要展示了C#中使用FlowLayoutPanel的相关代码。包含添加新文本框及各类控件的方法,以及添加控件事件和获取添加控件值的功能。还提供了判断奇偶数的函数,用于处理控件添加和数据插入逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        /// <summary>
        /// 集合添加的控件
        /// 涂聚文20150339
        /// </summary>
        public void AddNewTextBox()
        {
            Point p = new Point();


            Label lb1 = new Label();
            this.Controls.Add(lb1);
            lb1.Text = "关系名称";
            lb1.Top = cLeft * 25;
            lb1.RightToLeft = RightToLeft.Yes;
            cLeft = cLeft + 1;
            flowLayoutPanel1.Controls.Add(lb1);

            System.Windows.Forms.ComboBox cmb = new ComboBox();
            relationshipTypeViewTitile.SetCombox(cmb);
            this.Controls.Add(cmb);
            cmb.Top = cLeft * 25;
            cmb.Size = new System.Drawing.Size(121, 20);
            cmb.Left = 2;
            flowLayoutPanel1.Controls.Add(cmb);

            Label lb2 = new Label();
            this.Controls.Add(lb2);
            lb2.Text = "关系人姓名";
            lb2.Top = cLeft * 25;
            lb2.RightToLeft = RightToLeft.Yes;
            cLeft = cLeft + 1;
            flowLayoutPanel1.Controls.Add(lb2);

            System.Windows.Forms.TextBox txtName = new System.Windows.Forms.TextBox();
            this.Controls.Add(txtName);
            txtName.Name = "txtName";
            txtName.Top = cLeft * 25;
            txtName.Left = 200;
            txtName.Text = "";// "TextBox" + this.cLeft.ToString();
            cLeft = cLeft + 1;
            flowLayoutPanel1.Controls.Add(txtName);

            Label lbtel = new Label();
            this.Controls.Add(lbtel);
            lbtel.Text = "关系人电话";
            lbtel.Top = cLeft * 25;
            lbtel.RightToLeft = RightToLeft.Yes;
            lbtel.Left = 200;
            cLeft = cLeft + 1;
            flowLayoutPanel1.Controls.Add(lbtel);

            System.Windows.Forms.TextBox txtTel = new System.Windows.Forms.TextBox();
            this.Controls.Add(txtTel);
            txtTel.Name = "txtTel";
            txtTel.Top = cLeft * 25;
            txtTel.Left = 200;
            txtTel.Text = "";// "TextBox" + this.cLeft.ToString();
            cLeft = cLeft + 1;
            flowLayoutPanel1.Controls.Add(txtTel);


            Label lb4 = new Label();
            this.Controls.Add(lb4);
            lb4.Text = "关系人生出日期";
            lb4.RightToLeft = RightToLeft.Yes;
            lb4.Top = cLeft * 25;
            cLeft = cLeft + 1;
            flowLayoutPanel1.Controls.Add(lb4);

            System.Windows.Forms.DateTimePicker dtime = new System.Windows.Forms.DateTimePicker();
            dtime.Size = new Size(155, 30);
            this.Controls.Add(dtime);
            cLeft = cLeft + 1;
            flowLayoutPanel1.Controls.Add(dtime);


            Label lb5 = new Label();
            this.Controls.Add(lb5);
            lb5.Text = "关系人描述";
            lb5.Top = cLeft * 25;
            lb5.RightToLeft = RightToLeft.Yes;
            cLeft = cLeft + 1;
            flowLayoutPanel1.Controls.Add(lb5);

            System.Windows.Forms.TextBox txtRelationDesc = new System.Windows.Forms.TextBox();
            this.Controls.Add(txtRelationDesc);
            txtRelationDesc.Name = "txtRelationDesc";
            txtRelationDesc.Top = cLeft * 25;
            txtRelationDesc.Left = 200;
            txtRelationDesc.Text = "";// "TextBox" + this.cLeft.ToString();
            cLeft = cLeft + 1;
            flowLayoutPanel1.Controls.Add(txtRelationDesc);





        }

        /// <summary>
        /// 添加控件事件
        /// 涂聚文20150339
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            AddNewTextBox();
        }
        /// <summary>
        /// 获取添的控件的值
        /// 涂聚文20150339
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
             int s = 0;
            int k = 0;
            int n = 0;

            for (int i = 0; i < flowLayoutPanel1.Controls.Count; i++)
            {

                if (flowLayoutPanel1.Controls[i].GetType() == typeof(ComboBox)) //按类型查找
                {

                    customerRelationTypeID = ((ComboBox)this.flowLayoutPanel1.Controls[i]).SelectedValue.ToString();
                }
                if (flowLayoutPanel1.Controls[i].GetType() == typeof(TextBox))
                {
                    //MessageBox.Show(((TextBox)this.flowLayoutPanel1.Controls[i]).Name);

                    if (((TextBox)this.flowLayoutPanel1.Controls[i]).Name.Contains("txtName"))
                    {
                        customerRelationName = ((TextBox)this.flowLayoutPanel1.Controls[i]).Text.Trim();
                    }
                    if (((TextBox)this.flowLayoutPanel1.Controls[i]).Name.Contains("txtTel"))
                    {
                        customerRelationTel = ((TextBox)this.flowLayoutPanel1.Controls[i]).Text.Trim();
                    }
                    if (((TextBox)this.flowLayoutPanel1.Controls[i]).Name.Contains("txtRelationDesc"))
                    {
                        customerRelationDesc = ((TextBox)this.flowLayoutPanel1.Controls[i]).Text.Trim();
                    }
                }

                if (flowLayoutPanel1.Controls[i].GetType() == typeof(DateTimePicker)) //按类型查找
                {

                    customerBirthday = ((DateTimePicker)this.flowLayoutPanel1.Controls[i]).Value;
                }

                if (IsOdd5(i))
                {

                    customerRelationContactsId = CustomerRelationContactsId;

                    if (Operator == 1)
                    {

                        customerRelationshipListInfo.CustomerBirthday = customerBirthday;
                        customerRelationshipListInfo.CustomerRelationContactsId = customerRelationContactsId;
                        customerRelationshipListInfo.CustomerRelationDesc = customerRelationDesc;
                        customerRelationshipListInfo.CustomerRelationName = customerRelationName;
                        customerRelationshipListInfo.CustomerRelationTel = customerRelationTel;
                        customerRelationshipListInfo.CustomerRelationTypeID = customerRelationTypeID;
                        k = customerRelationshipListBLL.InsertCustomerRelationshipList(customerRelationshipListInfo);

                        //MessageBox.Show(customerRelationTypeID + customerRelationName + customerRelationTel);
                        n++;

                    }


                }

            }
            if (n > 0)
            {
                DialogResult dresult = MessageBox.Show("添加了" + n.ToString() + "条联系人", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                if (dresult == DialogResult.OK)
                {
                    this.Close();
                    this.DialogResult = DialogResult.OK;
                }
            }
            else
            {
                DialogResult dresult = MessageBox.Show("存在问题,添加了" + n.ToString() + "条联系人", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                if (dresult == DialogResult.No)
                {
                    this.Close();
                    this.DialogResult = DialogResult.OK;
                }
                if (dresult == DialogResult.Yes)
                {
                    return;
                }
            }

        }

        /// <summary>
        /// 判断奇偶数的函數
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        public static bool IsOdd2(int n)
        {
            return Convert.ToBoolean(n % 2);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        public static bool IsOdd5(int n)
        {
            int b = 0;
            bool isb = false;
            b = n % 9;
            if (n > 0)
            {
                if (b == 0)
                {
                    isb = true;
                }
            }
            return isb;
        }

  

转载于:https://www.cnblogs.com/geovindu/p/4375833.html

FlowLayoutPanel 一些应用程序需要一个布局可随窗体大小的调整或其中内容大小的改变而自动进行适当排列的窗体。在需要动态布局并且不希望在代码中显式处理 Layout 事件时,可考虑使用布局面板。 FlowLayoutPanel是.NET Framework的新增控件。顾名思义,面板可以采用Web窗体的方式给Windows窗体布局。FlowLayoutPanel是一个容器,允许以垂直或水平的方式放置包含的控件。除了放置控件之外,还可以剪辑控件。放置的方向使用FlowDirection属性和FlowDirection枚举来设置。WrapContents属性确定在重新设置窗体的大小时,控件是放在下一行、下一列,还是剪辑控件。 FlowLayoutPanel 按特定的流方向排列其内容:水平或垂直。其内容可从一行换到下一行,或者从一列换到下一列。另一种情况是不换行,而是将其内容截掉。 相信大家在做WinForm项目的时候,要对大量的控件进行排序(位置摆放),这个容器肯定最受欢迎,但很遗憾的是,此容器本身虽支持Dock和Anchor属性,但不支持放入此容器内的控件的Dock和Anchor属性(自动调整宽度),也就说,但窗体伸缩,FlowLayoutPanel容器自身可以缩放,但是里面的控件就没那么幸运了,不支持自动缩放,这样就必须写方法来触发新的事件来调整控件的大小,这样就会导致窗体的闪烁(重绘)。 借助ManagedSpy工具,我们可以看到此容器里面的器件的结构,我们可以在Form1里面添加一个事件SizeChanged 对容器里面每个器件重新给它大小 就行了。 附件:FlowLayoutPanel的Demo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值