예제 #1
0
        void PrepareDataGrid()
        {
            ReqTraceUIDataGridView dataGridOld = null;

            if (dataGridReq != null)
            {
                dataGridOld = dataGridReq;
                tabPageTable.Controls.Remove(dataGridReq);
            }
            dataGridReq = new ReqTraceUIDataGridView(tabPageTable.Size.Width, dataGridOld,
                                                     this as ReqTraceUIDataGridView.ITraceViewGridCb);
            tabPageTable.Controls.Add(dataGridReq);
        }
        public ReqTraceUIDataGridView(int nWidth, ReqTraceUIDataGridView dataGridOld, ITraceViewGridCb cb)
        {
            DataGridViewListBoxColumn lbCol;

            this.cb = cb;
            string[]          astrMnuEntry;
            ToolStripMenuItem tsMnuItem;
            int nMnuItem;

            nWidth -= RowHeadersWidth;

            ColumnCount           = 3;
            Location              = new Point(0, 0);
            Dock                  = DockStyle.Fill;
            AllowUserToAddRows    = false;
            AllowUserToDeleteRows = false;

            lbCol      = new DataGridViewListBoxColumn();
            lbCol.Name = "Trace to";
            Columns.Add(lbCol);

            lbCol      = new DataGridViewListBoxColumn();
            lbCol.Name = "Trace from";
            Columns.Add(lbCol);

            Columns[0].Name    = "Tag";
            Columns[0].Visible = false;
            Columns[0].Width   = 0;
            Columns[1].Name    = "Name";
            Columns[1].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
            Columns[1].Width = nWidth / 10;
            Columns[2].Name  = "Text";
            Columns[2].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
            Columns[2].Width = nWidth / 2;
            Columns[3].Width = nWidth / 5;
            Columns[4].Width = nWidth / 5;

            if (dataGridOld != null)
            {
                for (int i = 0; i < ColumnCount; i++)
                {
                    Columns[i].Width = dataGridOld.Columns[i].Width;
                }
            }

            DataGridViewRow row = RowTemplate;

            row.Height = Font.Height * 11 / 2;

            ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText;

            // Create the ContextMenuStrip.
            mnuCtxRow = new ContextMenuStrip();
            cb.GetRowCtxMenu(out astrMnuEntry);
            nMnuItem = 0;
            foreach (string str in astrMnuEntry)
            {
                if (str.Length > 0)
                {
                    tsMnuItem     = new ToolStripMenuItem(str, null, mnuCtxRow_Click);
                    tsMnuItem.Tag = nMnuItem;
                    mnuCtxRow.Items.Add(tsMnuItem);
                }
                else
                {
                    mnuCtxRow.Items.Add(new ToolStripSeparator());
                }
                nMnuItem++;
            }
            mnuCtxRow.Items.Add(new ToolStripSeparator());
            mnuCtxRow.Items.Add(new ToolStripMenuItem("Copy", null, mnuCpy_Click));
        }