Example #1
0
        /// <summary>
        /// 取得一个空闲的AccessItem,如果没有,就新建,且设置好这个事件监听。
        /// </summary>
        /// <returns></returns>
        protected AccessItem getFreeAccessItem()
        {
            //首先判断LstAccessItem中是否有空闲的。
            for (int i = 0; i < LstAccessItem.Count; i++)
            {
                //如果是空闲的,就取得这个
                if (LstAccessItem[i].Visible == false)
                {
                    LstAccessItem[i].Visible = true;                 //设置可见
                    flowLayoutPanel1.Controls.Add(LstAccessItem[i]); //将这个AccessItem加到布局中,以便显示啊。
                    return(LstAccessItem[i]);
                }
            }

            //到这类就表示,得新建一个 AccessItem ,然后设置各种事件了吧。
            AccessItem AccessItem_Retrun = getAccessItem();

            AccessItem_Retrun.Visible = true;
            LstAccessItem.Add(AccessItem_Retrun);
            init_event_AccessItem(AccessItem_Retrun);

            flowLayoutPanel1.Controls.Add(AccessItem_Retrun);//将这个AccessItem加到布局中,以便显示啊。

            return(AccessItem_Retrun);
        }
Example #2
0
        /// <summary>
        /// 插入的话,应该不需要参数吧。
        /// </summary>
        public void DataInsert()
        {
            DataRow dr = DT.NewRow();              //新建一行

            default_DataRow(dr);                   //设置默认的
            DT.Rows.Add(dr);                       //然后将这行加到DataTable中。
            AccessItem item = getFreeAccessItem(); //取得一个空的AccessItem

            item.DR = dr;                          //设置这些数据

            //并且设置取得焦点。
            item.getFocus();

            update();
        }
Example #3
0
 /// <summary>
 /// 初始化单个 AccessItem的事件
 /// </summary>
 /// <param name="item"></param>
 public virtual void init_event_AccessItem(AccessItem item)
 {
     item.DataUpdate   += Item_DataUpdate;
     item.DataDelete   += Item_DataDelete;
     item.DataCommmand += Item_DataCommmand;
 }