首页 > 其他分享 >winform panel动态添加textbox控件

winform panel动态添加textbox控件

时间:2023-04-20 09:25:55浏览次数:40  
标签:control 控件 row int new winform txt TextBox panel

        //控件宽高
        int control_w = 159;
        int control_h = 55;
        //间隔距离
        int interval_x = 20;
        int interval_y = 20;
        //列可放置数量
        int row_count = 3;

        /// <summary>
        /// 动态加载人员选择框
        /// </summary>
        /// <param name="list"></param>
        public void LoadNameTextBox(List<PersonInformation> list)
        {
            //容器宽高 562 559
            int panel_w = pnlPerson.Width;
            int panel_h = pnlPerson.Height;
            row_count = panel_w / (control_w + interval_x);

            for (int i = 0; i < list.Count; i++)
            {
                int row = i / row_count;
                int column = i % row_count;

                var t = new TextBox();
                if (list[i].state == "0")
                {
                    t.BackColor = Color.LightGray;
                }
                else
                {
                    t.BackColor = Color.LimeGreen;
                }
                t.BorderStyle = BorderStyle.None;
                t.Font = new Font("宋体", 36F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(134)));
                t.ForeColor = Color.White;
                int x = (interval_x * (column + 1)) + (control_w * column);
                int y = (interval_y * (row + 1)) + (control_h * row);
                t.Location = new Point(x, y);
                t.Name = "txt" + list[i].person_id;
                t.Size = new Size(control_w, control_h);
                t.TabIndex = Int32.Parse(list[i].state);
                t.Text = list[i].name;
                t.TextAlign = HorizontalAlignment.Center;
                t.Click += new EventHandler(txt_Click);
                t.MouseDown += new MouseEventHandler(txt_MouseDown);
                t.MouseEnter += new EventHandler(txt_MouseEnter);
                this.pnlPerson.Controls.Add(t);
            }
        }

        void txt_Click(object sender, EventArgs e)
        {
            foreach (Control control in this.pnlPerson.Controls)
            {
                TextBox tb = (TextBox)control;
                if (tb.TabIndex == 0)
                {
                    tb.BackColor = Color.LightGray;
                }
                else
                {
                    tb.BackColor = Color.LimeGreen;
                }
            }
            TextBox txt = (TextBox)sender;
            txt.BackColor = Color.Red;
        }

        [DllImport("user32", EntryPoint = "HideCaret")]
        private static extern bool HideCaret(IntPtr hWnd);

        void txt_MouseDown(object sender, MouseEventArgs e)
        {
            HideCaret(((TextBox)sender).Handle);
        }
        void txt_MouseEnter(object sender, EventArgs e)
        {
            HideCaret(((TextBox)sender).Handle);
        }

  

标签:control,控件,row,int,new,winform,txt,TextBox,panel
From: https://www.cnblogs.com/aqing0/p/17335440.html

相关文章

  • WPF 给控件增加圆角效果注意事项
    一般都使用Border包住需要增加圆角效果的控件,但是有一些地方需要注意:<BorderCornerRadius="8"Background="Red"><TextBlockBackground="Red"Margin="4"Height="20"FontSize="8"Foreground="White"/>......
  • 【C#新手入门一】winform实现QQ登录窗口
    闲来无事,打算写一系列winform入门相关的小软件,算是对自己技术的一个复习和备忘,也希望能帮助刚入门的萌新(可能也帮不到,因为没有注释)第一期先用winform最大限度的还原QQ的登录界面,下图左侧是仿真的,右侧是QQ的界面,很明显能看出来高仿的和正版的区别,哈哈! 这是效果展示接下来......
  • 关于水稻SNP的填充面板(Imputation Panel)
    最近在想,水稻起码已经测序了上万份材料,为什么还没有开发出一个像样的imputationpanel?网上一查,实际上很多人有想过,有做过,也发表过高水平文章。比如3K数据一发表,康奈尔大学的SusanMcCouch就在NC上发表了panel及其imputationpipeline。Animputationplatformtoenhanceinteg......
  • Label 显示Gif动画,窗口关闭偶发性抛出 在创建窗口句柄之前,不能在控件上调用 Invoke
    2个问题如下,解决方案都一样 问题1UnhandledException:System.InvalidOperationException:在创建窗口句柄之前,不能在控件上调用Invoke或BeginInvoke。在System.Windows.Forms.Control.MarshaledInvoke(Controlcaller,Delegatemethod,Object[]args,Booleansynchro......
  • 高级控件RecycleView 设置Match_Parent 失效的解决办法
    解决方案:1.item使用RelativeLayout布局,并且布局中的view至少有一个layout_alignParentRight=true2.在adapte中的onCreateViewHolder,使用如下代码来获得View:publicViewHolderonCreateViewHolder(ViewGroupparent,intviewType){//下面这种办法会引起Match_Pa......
  • 界面控件DevExpress WPF甘特图组件,让项目管理拥有极佳性能!
    DevExpressWPF Gantt(甘特图)控件允许开发者在任何WPF桌面应用程序中快速集成项目计划和任务调度功能。在上文中(点击这里回顾>>)我们介绍了DevExpressWPF甘特图的性能、动态缩放等,本文将继续分享甘特图的其他功能,持续关注我们获取更多产品中文资讯哦~DevExpressWPF拥有120+个控......
  • 通过一个具体的例子,深入了解 SAP UI5 控件数据双向绑定的工作原理和问题排查方法试读
    笔者知识星球里有朋友提问:SAPUI5中的sap.m.select控件,在当前页面做任何操作时,都可以选中key值,但触发dialog之后,可以看到select框内的key值被清空,当关闭dialog后,再去选择key值,无任何反应,请问是select控件的问题还是dialog的问题又或者是odata写法有问题,谢谢!......
  • C#Winform窗体操作类&控件属性类
    WinForm磁性窗体吸附边缘1#region磁性窗体23publicclassMagneticManager4{5publicclassChildFormInfo6{7publicFormChild{get;set;}8publicMagne......
  • 香,一套逻辑轻松且智能解决PyQt中控件数值验证的问题
    在PyQt开发中,时常需要对控件的值进行校验,如需要校验QCheckBox是否被选中,QLabel是否校验值是否为空等等。在复杂的业务场景下,这类控件如果数量很多,逐个校验就显得麻烦,需要一一获得控件名称,再调用对应的方法来判断是否被选中、是否为空等。而且开发过程中如果多控件做了增减,还需要增......
  • MFC-GetWindowRect获取指定窗口或控件的边框矩形的尺寸
     HWNDhDlgWnd=::FindWindow(_T("#32770"),_T("测试窗口"));if(hDlgWnd){::ShowWindow(hDlgWnd,SW_NORMAL);::SetForegroundWindow(hDlgWnd);HWNDhBtn=::GetDlgItem(hDlgWnd,0x3E8);CRectmRect;......