Exemplo n.º 1
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;
        }