Exemplo n.º 1
0
        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();
                }
            }
        }
Exemplo n.º 3
0
        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;
        }