private void mniInsertTable_Click(object sender, EventArgs e) { frmInsertTable vFrmInsertTable = new frmInsertTable(); vFrmInsertTable.ShowDialog(); if (vFrmInsertTable.DialogResult == System.Windows.Forms.DialogResult.OK) { HCRichData vTopData = FEmrView.ActiveSectionTopLevelData() as HCRichData; DeTable vTable = new DeTable(vTopData, vFrmInsertTable.RowCount, vFrmInsertTable.ColCount, vTopData.Width); FEmrView.InsertItem(vTable); } }
public void SetHCView(HCView aHCView) { FHCView = aHCView; HCRichData vData = FHCView.ActiveSection.ActiveData; DeTable vTable = vData.GetActiveItem() as DeTable; // 表格 tbxCellHPadding.Text = vTable.CellHPadding.ToString(); tbxCellVPadding.Text = vTable.CellVPadding.ToString(); cbxBorderVisible.Checked = vTable.BorderVisible; tbxBorderWidth.Text = vTable.BorderWidth.ToString(); tbxFixRowFirst.Text = (vTable.FixRow + 1).ToString(); tbxFixRowLast.Text = (vTable.FixRow + vTable.FixRowCount).ToString(); tbxFixColFirst.Text = (vTable.FixCol + 1).ToString(); tbxFixColLast.Text = (vTable.FixCol + vTable.FixColCount).ToString(); // 行 if (vTable.SelectCellRang.StartRow >= 0) { tabRow.Text = "行(" + (vTable.SelectCellRang.StartRow + 1).ToString() + ")"; if (vTable.SelectCellRang.EndRow > 0) { tabRow.Text += " - (" + (vTable.SelectCellRang.EndRow + 1).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 + 1).ToString() + "," + (vTable.SelectCellRang.StartCol + 1).ToString() + ") - (" + (vTable.SelectCellRang.EndRow + 1).ToString() + "," + (vTable.SelectCellRang.EndCol + 1).ToString() + ")"; } else { vAlignVer = vTable.GetEditCell().AlignVert; tabCell.Text = "单元格(" + (vTable.SelectCellRang.StartRow + 1).ToString() + "," + (vTable.SelectCellRang.StartCol + 1).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.CellHPadding = byte.Parse(tbxCellHPadding.Text); vTable.CellVPadding = byte.Parse(tbxCellVPadding.Text); vTable.BorderWidth = byte.Parse(tbxBorderWidth.Text); vTable.BorderVisible = cbxBorderVisible.Checked; vTable.FixRow = (sbyte)(int.Parse(tbxFixRowFirst.Text, 0) - 1); vTable.FixRowCount = (byte)(int.Parse(tbxFixRowLast.Text, 0) - vTable.FixRow); vTable.FixCol = (sbyte)(int.Parse(tbxFixColFirst.Text, 0) - 1); vTable.FixColCount = (byte)(int.Parse(tbxFixColLast.Text, 0) - 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(); } } }
private void pmView_Opening(object sender, CancelEventArgs e) { HCCustomData vActiveData = FEmrView.ActiveSection.ActiveData; HCCustomItem vActiveItem = vActiveData.GetActiveItem(); HCCustomData vTopData = null; HCCustomItem vTopItem = vActiveItem; while (vTopItem is HCCustomRectItem) { if ((vTopItem as HCCustomRectItem).GetActiveData() != null) { if (vTopData != null) { vActiveData = vTopData; vActiveItem = vTopItem; } vTopData = (vTopItem as HCCustomRectItem).GetActiveData(); vTopItem = vTopData.GetActiveItem(); } else { break; } } if (vTopData == null) { vTopData = vActiveData; } mniTable.Enabled = vActiveItem.StyleNo == HCStyle.Table; if (mniTable.Enabled) { DeTable vTable = vActiveItem as DeTable; mniInsertRowTop.Enabled = vTable.GetEditCell() != null; mniInsertRowBottom.Enabled = mniInsertRowTop.Enabled; mniInsertColLeft.Enabled = mniInsertRowTop.Enabled; mniInsertColRight.Enabled = mniInsertRowTop.Enabled; mniSplitRow.Enabled = mniInsertRowTop.Enabled; mniSplitCol.Enabled = mniInsertRowTop.Enabled; mniDeleteCurRow.Enabled = vTable.CurRowCanDelete(); mniDeleteCurCol.Enabled = vTable.CurColCanDelete(); mniMerge.Enabled = vTable.SelectedCellCanMerge(); } mniCut.Enabled = (!FEmrView.ActiveSection.ReadOnly) && vTopData.SelectExists(); mniCopy.Enabled = mniCut.Enabled; IDataObject vIData = Clipboard.GetDataObject(); mniPaste.Enabled = ((!(vTopData as HCRichData).ReadOnly) && ((vIData.GetDataPresent(HC.View.HC.HC_EXT)) || vIData.GetDataPresent(DataFormats.Text) || (vIData.GetDataPresent(DataFormats.Bitmap)))); mniControlItem.Visible = ((!(vTopData as HCRichData).ReadOnly) && (!vTopData.SelectExists()) && (vTopItem is HCControlItem) && (vTopItem.Active)); if (mniControlItem.Visible) { mniControlItem.Text = "属性(" + (vTopItem as HCControlItem).GetType().Name + ")"; } mniDeItem.Visible = false; mniDeleteProtect.Visible = false; if (vTopItem is DeItem) { if ((vTopItem as DeItem).IsElement) { mniDeItem.Visible = true; mniDeItem.Text = (vTopItem as DeItem)[DeProp.Name]; } if (FEmrView.DesignModeEx) // 文档设计模式 { if (vTopData.SelectExists()) { mniDeleteProtect.Text = "只读"; mniDeleteProtect.Visible = true; } else if ((vTopItem as DeItem).EditProtect) { mniDeleteProtect.Text = "取消只读"; mniDeleteProtect.Visible = true; } } } if ((vTopData as HCViewData).ActiveDomain.BeginNo >= 0) { mniDeGroup.Visible = true; mniDeGroup.Text = (vTopData.Items[(vTopData as HCViewData).ActiveDomain.BeginNo] as DeGroup)[DeProp.Name]; } else { mniDeGroup.Visible = false; } mniSplit.Visible = mniControlItem.Visible || mniDeItem.Visible || mniDeGroup.Visible; }