zoukankan      html  css  js  c++  java
  • 用户控件

    用户控件
     用户控件:也就是自定义控件
                                                                                                          可以把数据库的人员管理系统的展示可以,放头像
                                                                                                          制作方法:
                                                                                                        (一)在一项目上右键点击添加一个新建项,找到【用户控件】UserControl
                                                                                                        (二)双击打开用户自定义控件
                                                                                                        (三)这个东西很像无边框窗口,实际可以理解成panel容器
                                                                                                        (四)然后把其他已有的了控件往里拽就是了
                                                                                                        (五)这样就是一个初步的人物小卡片了
                                                                                                        (六)点击启动,生成成功了
                                                                                                        (七)然后按住拖进去就会看到一个一模一样的标签卡片
                                                                                                        (八)然后右键查看属性会发现和Panel容器一样
                                                                                                        (九)但是没有办法在属性里改变内容
                                                                                                        (十)点击进入构造函数进行访问,同时设置权限,并选取图片
                                                                                                        
                                                                                                        (十一)设置图片的大小可以用代码
                                                                                                        
                                                                                                        【绑定数据库】
                                                                                                        (十二)因为需要把数据库的东西展示出来,所以需要连接数据库
                                                                                                        首先,把刚才构造函数里写的代码删掉不要了
                                                                                                        然后,把图片按刚才的方法放到指定位置,一一对应相应的人
                                                                                                        排列相应的布局,查看代码写方法
                                                                                                        
                                                                                                        
                                                                                                        开始封装:
                                                                                                        public void DataBind()                                     
                                                                                                              {
                                                                                                                      flowLayoutPanel1.Controls.Clear();                                       
                                                                                                                      //将数据库的数据取出来
                                                                                                                      List<Users> ulist = new UsersData().SelectALL();                          
    
                                                                                                                      //每一个数据对象都做成一个用户控件:遍历
    
                                                                                                                       int count = 0;                                                                       定义count是零
                                                                                                                       int HeadIndex = 0;                                                               
                                                                                                                                                                                                                   
                                                                                                                       foreach (Users u in ulist)                                                      遍历
                                                                                                                              {
                                                                                                                                     UserControl1 uc = new UserControl1();                  
                                                                                                                                     【uc.label5.Text = u.Ucode;】                    
                                                                                                                                     uc.pictureBox1.BackgroundImage = Image.FromFile("img/" + HeadIndex + ".png");             图像的绑定
                                                                                                                                     uc.label1.Text = "姓名:" + u.NickName;                          
                                                                                                                                     uc.label2.Text = "性别:" + (u.Sex ? "" : "");
                                                                                                                                     uc.label3.Text = "生日:" + u.Birthday.ToString("yyyy年MM月dd日");
                                                                                                                                     uc.label4.Text = "民族:" + u.Nation;          民族没有属性扩展
                                                                                                                                     HeadIndex++;                                             
                                                                                                                                     //将做好的用户控件添加到容器中
                                                                                                                                     flowLayoutPanel1.Controls.Add(uc);               
    
    
                                                                                                                                     然后是判断:
                                                                                                                                      if (count < 2)                                              
                                                                                                                                              {
                                                                                                                                                     Panel p = new Panel();                           设置之间的间距,在中间放一个Panel,每创建完一个再创建一个Panel
                                                                                                                                                     p.Height = uc.Height;
                                                                                                                                                     p.Width = 50;
                                                                                                                                                     flowLayoutPanel1.Controls.Add(p);
                                                                                                                                               }
                                                                                                                                              count++;                                                         
                                                                                                                                              if (count >= 3) { count = 0; }                            
                                                                                                                                        }
                                                                                                                                  }
                                                                                                       
                                                                                                        public Form1()
                                                                                                              {
                                                                                                                      InitializeComponent();
                                                                                                                      DataBind();                                               调方法
                
                                                                                                               }
                                                                                                      (十三)没有出现滚动条
                                                                                                      (十四)可以设置布局的大小
                                                                                                      (十五)背景色的布局
                                                                                                      (十六)设置之间的间距
                                                                                                      (十七)Panel p = new Panel(); 
                                                                                                                                                   
                                                                                                      (十八)定义一个中间变量(也可以用Margin属性)
                                                                                                      (十九)背景变色:
                                                                                                      private Color oldcolor;                                            
                                                                                                      private bool colorget = false;                                   
                                                                                                      private void UserControl1_MouseEnter(object sender, EventArgs e)
                                                                                                               {
                                                                                                                         if (colorget == false)                            
                                                                                                                                 {
                                                                                                                                           oldcolor = this.BackColor;           
                                                                                                                                                                                          
                                                                                                                                           colorget = true;                          
                                                                                                                                  }
                                                                                                                                 this.BackColor = Color.Red;
                                                                                                                }
    
                                                                                                      【MouseLeave-----鼠标移出】
                                                                                                      private void UserControl1_MouseLeave(object sender, EventArgs e)
                                                                                                                 {
                                                                                                                              this.BackColor = oldcolor;                           
                                                                                                                  }
                                                                                                      (二十)这时鼠标移动到图片时并不会改变颜色,而是默认已移出,
                                                                                                      图片的鼠标设置完成了之后,再把其他的label1鼠标属性也一个个的绑定
                                                                                                      基本已经完成了
                                                                                                      (二十一)还可以是鼠标变小手
                                                                                                      (二十二)增加修改和删除按钮
                                                                                                      private void button2_Click(object sender, EventArgs e)
                                                                                                                      {
                                                                                                                                    new UsersData().DeleteUser(this.label5.Text);
                                                                                                                                    Form1 f1 = this.Parent.Parent as Form1;                        
                                                                                                                                    f1.DataBind();                                                                 
                                                                                                                        }
                                                                                                        (二十三)删完之后调取刷新
                                                                                                        (二十四)这时删完之后清空
                                                                                                        
                                                                                                        (二十五)基本完成
                                                                                                        (二十六)修改:
                                                                                                        Form2 f2 = new Form2(this.label5.Text);              和删除一样,传入的是它的编号,不懂得话看看删除方法
                                                                                                        f2.Show();
                                                                                                        然后在Form2的构造函数里写
                                                                                                        public update(string uc)                                       
                                                                                                                     {
                                                                                                                                    InitializeComponent();
                                                                                                                                    label1.Text = "要删除的编号是:"+uc;                 
                                                                                                                     }
                                                                                                        (二十七)基本完成
  • 相关阅读:
    cocos2dx-lua牧场小游戏(一)
    【足迹C++primer】40、动态数组
    C++ 函数
    TCP closing a connection
    POJ 1410 Intersection(计算几何)
    使用OGG&quot;Loading data from file to Replicat&quot;的方法应该注意的问题:replicat进程是前台进程
    PHP 文件操作类(创建文件并写入) 生成日志
    Android横屏竖屏设置
    Jetty 9.3庆祝20周年生日快乐,并添加HTTP/2支持
    【转】有效修改max open files/ulimit -n
  • 原文地址:https://www.cnblogs.com/yunpeng521/p/7215951.html
Copyright © 2011-2022 走看看