// 29 137 // 166 282 // 311 427 // 456 562 // 25 553 private void InitialClassRoom() { int numberOfGroup = 1; int widthOfRoom = this.pictureBox1.Width; int heightofRoom = this.pictureBox1.Height; int floorGap = 35; int heightOfRow = 140; int totalColumns = numberOfGroup; totalColumns = 10; int numberOfUnit = totalColumns + numberOfGroup - 1; int widthOfUnit = widthOfRoom / numberOfUnit; int groupInitialLeft = 0; for (int i = 0; i < numberOfGroup; i++) { int numberofColumn = 10; int numberOfRow = 3; //heightOfRow = (heightofRoom - floorGap * numberOfRow) / numberOfRow; int groupWidth = 528; // int groupWidth = numberofColumn * widthOfUnit; Carbinet group = new Carbinet(this.pictureBox1.Controls); group.Left = groupInitialLeft; group.Top = 0; this.groups.Add(group); //初始化每一排的行 int initialTop = 32; for (int irow = 1; irow <= numberOfRow; irow++, initialTop = initialTop + (int)(heightOfRow + floorGap)) { CarbinetFloor row = new CarbinetFloor(group, irow, this.pictureBox1.Controls); row.Width = groupWidth; row.Height = heightOfRow; row.relativeTop = initialTop; row.relativeLeft = 25; group.AddFloor(row); for (int k = 1; k <= numberofColumn; k++) { string _equipmentID = i.ToString() + "," + irow.ToString() + "," + k.ToString(); DocumentFile df = new DocumentFile(_equipmentID, irow); df.Width = widthOfUnit; df.Height = heightOfRow; df.carbinetIndex = i; df.floorNumber = irow; df.columnNumber = k; df.indexBase = "z" + k.ToString("0000"); MemoryTable.unitTable.Rows.Add(new object[] { _equipmentID, "", i, irow, "empty", "normal" }); df.Click += new EventHandler(df_Click); group.AddDocFile(df); } } groupInitialLeft += groupWidth + widthOfUnit; } }
private void InitialCarbinet(Control.ControlCollection controls, int carbinet_index) { //防止重复操作 if (controls.Count <= 0) //if (this.pictureBox1.Controls.Count <= 0) { //Control.ControlCollection controls = this.pictureBox1.Controls; //货架数目 int numberOfGroup = 1; //整个可用空间的宽度 int widthOfRoom = this.work_width; //隔层的高度 int floorGap = height_of_gap; //总共有多少列 int totalColumns = 10; //总共要分多少列,包括两个货架之间,货架之间的间隔暂时采用和普通列同一宽度的做法 int numberOfUnit = totalColumns + numberOfGroup - 1; // 可以计算出没一列的宽度 int widthOfUnit = widthOfRoom / numberOfUnit; // 货架上的物品区域距离货架左边缘的距离 int groupInitialLeft = 0; //货架距离整个区域的左边缘的距离 int groupWidth = (widthOfRoom - widthOfUnit * (numberOfGroup - 1)) / numberOfGroup; //计算每一个货架的宽度,需要减去货架之间间隔的宽度 //for (int i = 0; i < numberOfGroup; i++) { int numberofColumn = 20;//预设值,之后需要作为参数提取 int numberOfRow = number_of_row; Carbinet group = new Carbinet(controls); //Carbinet group = new Carbinet(this.pictureBox1.Controls); group.Left = groupInitialLeft; group.Top = 0; if (carbinet_index == 0 && this.groups.Count > 0)//保证货架的顺序对应 { this.groups.Insert(0, group); } else { this.groups.Add(group); } //初始化每一排的行 int initialTop = top_of_first_row; for (int irow = 1; irow <= numberOfRow; irow++, initialTop = initialTop + (int)(height_of_row + floorGap)) { CarbinetFloor row = new CarbinetFloor(group, irow, controls); //CarbinetFloor row = new CarbinetFloor(group, irow, this.pictureBox1.Controls); row.Width = groupWidth; row.Height = height_of_row; row.relativeTop = initialTop; row.relativeLeft = this.broadslide_width; group.AddFloor(row); for (int k = 1; k <= numberofColumn; k++) { string _equipmentID = carbinet_index.ToString() + "," + irow.ToString() + "," + k.ToString(); DocumentFile df = new DocumentFile(_equipmentID, irow); df.Width = widthOfUnit; df.Height = height_of_row; df.carbinetIndex = carbinet_index; df.floorNumber = irow; df.columnNumber = k; df.indexBase = "z" + k.ToString("0000"); MemoryTable.unitTable.Rows.Add(new object[] { _equipmentID, "", carbinet_index, irow, "empty", "normal" }); df.Click += new EventHandler(df_Click); group.AddDocFile(df); } } groupInitialLeft += groupWidth + widthOfUnit; } } }