public void SetHCView(HCView aHCView) { FHCView = aHCView; HCRichData vData = FHCView.ActiveSection.ActiveData; DeTable vTable = vData.GetActiveItem() as DeTable; // 表格 tbxCellHPadding.Text = String.Format("{0:0.##}", vTable.CellHPaddingMM); tbxCellVPadding.Text = String.Format("{0:0.##}", vTable.CellVPaddingMM); cbxBorderVisible.Checked = vTable.BorderVisible; tbxBorderWidth.Text = String.Format("{0:0.##}", vTable.BorderWidthPt); tbxFixRowFirst.Text = (vTable.FixRow).ToString(); if (vTable.FixRowCount > 0) { tbxFixRowLast.Text = (vTable.FixRow + vTable.FixRowCount - 1).ToString(); } else { tbxFixRowLast.Text = tbxFixRowFirst.Text; } tbxFixColFirst.Text = (vTable.FixCol).ToString(); if (vTable.FixColCount > 0) { tbxFixColLast.Text = (vTable.FixCol + vTable.FixColCount - 1).ToString(); } else { tbxFixColLast.Text = tbxFixColFirst.Text; } // 行 if (vTable.SelectCellRang.StartRow >= 0) { tabRow.Text = "行(" + (vTable.SelectCellRang.StartRow).ToString() + ")"; if (vTable.SelectCellRang.EndRow > 0) { tabRow.Text += " - (" + (vTable.SelectCellRang.EndRow).ToString() + ")"; } tbxRowHeight.Text = vTable.Rows[vTable.SelectCellRang.StartRow].Height.ToString(); // 行高 } else { tabTableInfo.TabPages.Remove(tabRow); } // 单元格 if ((vTable.SelectCellRang.StartRow >= 0) && (vTable.SelectCellRang.StartCol >= 0)) { HCAlignVert vAlignVer = HCAlignVert.cavTop; if (vTable.SelectCellRang.EndRow >= 0) // 多选 { vAlignVer = vTable[vTable.SelectCellRang.StartRow, vTable.SelectCellRang.StartCol].AlignVert; tabCell.Text = "单元格(" + (vTable.SelectCellRang.StartRow).ToString() + "," + (vTable.SelectCellRang.StartCol).ToString() + ") - (" + (vTable.SelectCellRang.EndRow).ToString() + "," + (vTable.SelectCellRang.EndCol).ToString() + ")"; } else { vAlignVer = vTable.GetEditCell().AlignVert; tabCell.Text = "单元格(" + (vTable.SelectCellRang.StartRow).ToString() + "," + (vTable.SelectCellRang.StartCol).ToString() + ")"; } cbbCellAlignVert.SelectedIndex = (int)vAlignVer; } else { tabTableInfo.TabPages.Remove(tabCell); } dgvTable.RowCount = vTable.Propertys.Count + 1; if (vTable.Propertys.Count > 0) { int vRow = 0; foreach (KeyValuePair <string, string> keyValuePair in vTable.Propertys) { dgvTable.Rows[vRow].Cells[0].Value = keyValuePair.Key; dgvTable.Rows[vRow].Cells[1].Value = keyValuePair.Value; vRow++; } } this.ShowDialog(); if (this.DialogResult == System.Windows.Forms.DialogResult.OK) { FHCView.BeginUpdate(); try { // 表格 vTable.CellHPaddingMM = Single.Parse(tbxCellHPadding.Text); vTable.CellVPaddingMM = Single.Parse(tbxCellVPadding.Text); vTable.BorderWidthPt = float.Parse(tbxBorderWidth.Text); vTable.BorderVisible = cbxBorderVisible.Checked; vTable.SetFixRowAndCount(sbyte.Parse(tbxFixRowFirst.Text), (byte)(Math.Max(0, int.Parse(tbxFixRowLast.Text) - int.Parse(tbxFixRowFirst.Text) + 1))); vTable.SetFixColAndCount(sbyte.Parse(tbxFixColFirst.Text), (byte)(Math.Max(0, int.Parse(tbxFixColLast.Text) - vTable.FixCol))); // 行 if (vTable.SelectCellRang.StartRow >= 0) { int viValue = int.Parse(tbxRowHeight.Text); if (vTable.SelectCellRang.EndRow > 0) { for (int vR = vTable.SelectCellRang.StartRow; vR <= vTable.SelectCellRang.EndRow; vR++) { vTable.Rows[vR].Height = viValue; } } else { vTable.Rows[vTable.SelectCellRang.StartRow].Height = viValue; } } // 单元格 if ((vTable.SelectCellRang.StartRow >= 0) && (vTable.SelectCellRang.StartCol >= 0)) { if (vTable.SelectCellRang.EndCol > 0) { for (int vR = vTable.SelectCellRang.StartRow; vR <= vTable.SelectCellRang.EndRow; vR++) { for (int vC = vTable.SelectCellRang.StartCol; vC <= vTable.SelectCellRang.EndCol; vC++) { vTable[vR, vC].AlignVert = (HCAlignVert)cbbCellAlignVert.SelectedIndex; } } } else { vTable.GetEditCell().AlignVert = (HCAlignVert)cbbCellAlignVert.SelectedIndex; } } vTable.Propertys.Clear(); string vsValue = ""; for (int i = 0; i < dgvTable.RowCount; i++) { if (dgvTable.Rows[i].Cells[0].Value == null) { continue; } if (dgvTable.Rows[i].Cells[1].Value == null) { vsValue = ""; } else { vsValue = dgvTable.Rows[i].Cells[1].Value.ToString(); } if (dgvTable.Rows[i].Cells[0].Value.ToString().Trim() != "") { vTable.Propertys.Add(dgvTable.Rows[i].Cells[0].Value.ToString(), vsValue); } } if (FReFormat) { FHCView.ActiveSection.ReFormatActiveItem(); } } finally { FHCView.EndUpdate(); } } }