Beispiel #1
0
        protected override void OnDataBindingComplete(DataGridViewBindingCompleteEventArgs e)
        {
            base.OnDataBindingComplete(e);
            for (int i = 0; i < this.Rows.Count; i += 2)
            {
                for (int j = 0; j < m_FixColumnCount; j++)
                {
                    DataGridViewTextBoxCellEx cell = this[j, i] as DataGridViewTextBoxCellEx;
                    cell.RowSpan = 2;
                }

                if (Util.ToString(this["colStatus", i].Value) == EnumOperatorType.Update.ToString())
                {
                    //更新行
                    for (int j = m_FixColumnCount; j < this.Columns.Count; j += 2)
                    {
                        if (Util.ToString(this[j, i].Value) != string.Empty)
                        {
                            DataGridViewTextBoxCellEx cell = this[j, i] as DataGridViewTextBoxCellEx;
                            cell.ColumnSpan = 2;
                        }
                        else
                        {
                            break;
                        }
                    }
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// 方法说明:检查当前单元格是否包含在合并的单元格中
        /// 作    者:jason.tang
        /// 完成时间:2013-01-04
        /// </summary>
        /// <param name="dgv">DataGridView控件</param>
        private void CheckIsInSpanCells(DataGridView dgv, DataGridView datagridview, DataGridViewTextBoxCellEx cellEx)
        {
            //Point p = FindSpanCell();
            int rowIndex = cellEx.RowIndex;
            int colIndex = cellEx.ColumnIndex;

            int colspan = cellEx.ColumnSpan;
            int rowspan = cellEx.RowSpan;

            if (cellEx.RowIndex < rowIndex + rowspan &&
                cellEx.ColumnIndex < colIndex + colspan)
            {
                datagridview.CurrentCell = datagridview.Rows[rowIndex].Cells[colIndex];
                Rectangle rect = datagridview.GetCellDisplayRectangle(colIndex, rowIndex, false);
                dgv.Top  = rect.Y - 1;
                dgv.Left = rect.X - 1;
            }
        }
        public void CrearDataGriedView(bool Actuliazar = false)
        {
            Columna ColumnaSelect = Form1.Proyecto_.ColumnaSelect;

            if (ColumnaSelect != null)
            {
                if (ColumnaSelectAnt != ColumnaSelect)
                {
                    Info_D.Rows.Clear();
                    NameColum.Text = "Columna: " + ColumnaSelect.Name;

                    for (int i = 0; i < ColumnaSelect.Seccions.Count; i++)
                    {
                        if (ColumnaSelect.Seccions[i].Item1 != null | Actuliazar)
                        {
                            Color Color_RefMen = Color.FromArgb(250, 99, 99);
                            Color Color_RefCum = Color.FromArgb(29, 94, 243);
                            Info_D.Rows.Add();
                            Info_D.Rows[Info_D.Rows.Count - 1].Cells[0].Value = ColumnaSelect.Seccions[i].Item2;
                            Info_D.Rows[Info_D.Rows.Count - 1].Cells[1].Value = ColumnaSelect.Seccions[i].Item1.Material.FC.ToString();
                            Info_D.Rows.Add();
                            Info_D.Rows[Info_D.Rows.Count - 1].Cells[0].Value = ColumnaSelect.Seccions[i].Item2;
                            Info_D.Rows[Info_D.Rows.Count - 1].Cells[1].Value = ColumnaSelect.Seccions[i].Item1.Material.FC.ToString();
                            Info_D.Rows.Add();
                            Info_D.Rows[Info_D.Rows.Count - 1].Cells[0].Value = ColumnaSelect.Seccions[i].Item2;
                            Info_D.Rows[Info_D.Rows.Count - 1].Cells[1].Value = ColumnaSelect.Seccions[i].Item1.Material.FC.ToString();

                            DataGridViewTextBoxCellEx cell = (DataGridViewTextBoxCellEx)Info_D[0, Info_D.Rows.Count - 3];
                            cell.RowSpan = 3;
                            DataGridViewTextBoxCellEx cell2 = (DataGridViewTextBoxCellEx)Info_D[1, Info_D.Rows.Count - 3];
                            cell2.RowSpan = 3;

                            double FactorConversion = 10000;

                            Info_D.Rows[Info_D.Rows.Count - 3].Cells["Locali"].Value = "Top";
                            Info_D.Rows[Info_D.Rows.Count - 2].Cells["Locali"].Value = "Medium";
                            Info_D.Rows[Info_D.Rows.Count - 1].Cells["Locali"].Value = "Bottom";

                            double ptop    = ColumnaSelect.resultadosETABs[i].AsTopMediumButton[0] / ColumnaSelect.Seccions[i].Item1.Area;
                            double pmedium = ColumnaSelect.resultadosETABs[i].AsTopMediumButton[1] / ColumnaSelect.Seccions[i].Item1.Area;
                            double pbutton = ColumnaSelect.resultadosETABs[i].AsTopMediumButton[2] / ColumnaSelect.Seccions[i].Item1.Area;

                            //Cuantia Mayor al 4%

                            if (ptop >= 0.04)
                            {
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["AceroR"].Style.BackColor = Color.FromArgb(247, 114, 114);
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["AceroR"].ToolTipText     = "Acero requerido mayor a la cuantía máxima permisible.";
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["AceroR"].Style.Font      = new Font("Vderdana", 8, FontStyle.Bold);
                            }
                            if (pmedium >= 0.04)
                            {
                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["AceroR"].Style.BackColor = Color.FromArgb(247, 114, 114);
                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["AceroR"].ToolTipText     = "Acero requerido mayor a la cuantía máxima permisible.";
                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["AceroR"].Style.Font      = new Font("Vderdana", 8, FontStyle.Bold);
                            }
                            if (pbutton >= 0.04)
                            {
                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["AceroR"].Style.BackColor = Color.FromArgb(247, 114, 114);
                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["AceroR"].ToolTipText     = "Acero requerido mayor a la cuantía máxima permisible.";
                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["AceroR"].Style.Font      = new Font("Vderdana", 8, FontStyle.Bold);
                            }

                            //Cuantia Mayor al 4%

                            Info_D.Rows[Info_D.Rows.Count - 3].Cells["AceroR"].Value = Math.Round(ColumnaSelect.resultadosETABs[i].AsTopMediumButton[0] * FactorConversion, 2);
                            Info_D.Rows[Info_D.Rows.Count - 2].Cells["AceroR"].Value = Math.Round(ColumnaSelect.resultadosETABs[i].AsTopMediumButton[1] * FactorConversion, 2);
                            Info_D.Rows[Info_D.Rows.Count - 1].Cells["AceroR"].Value = Math.Round(ColumnaSelect.resultadosETABs[i].AsTopMediumButton[2] * FactorConversion, 2);

                            Info_D.Rows[Info_D.Rows.Count - 3].Cells["Asasign"].Value = Math.Round(ColumnaSelect.resultadosETABs[i].As_asignado[0] * FactorConversion, 2);
                            Info_D.Rows[Info_D.Rows.Count - 2].Cells["Asasign"].Value = Math.Round(ColumnaSelect.resultadosETABs[i].As_asignado[1] * FactorConversion, 2);
                            Info_D.Rows[Info_D.Rows.Count - 1].Cells["Asasign"].Value = Math.Round(ColumnaSelect.resultadosETABs[i].As_asignado[2] * FactorConversion, 2);

                            if (ColumnaSelect.resultadosETABs[i].prequerida == null)
                            {
                                ColumnaSelect.CrearCuantiaProyectoAntiguos(i);
                            }

                            Info_D.Rows[Info_D.Rows.Count - 3].Cells["prequerida"].Value = Math.Round(ColumnaSelect.resultadosETABs[i].prequerida[0], 2) + "%";
                            Info_D.Rows[Info_D.Rows.Count - 2].Cells["prequerida"].Value = Math.Round(ColumnaSelect.resultadosETABs[i].prequerida[1], 2) + "%";
                            Info_D.Rows[Info_D.Rows.Count - 1].Cells["prequerida"].Value = Math.Round(ColumnaSelect.resultadosETABs[i].prequerida[2], 2) + "%";

                            Info_D.Rows[Info_D.Rows.Count - 3].Cells["pasignada"].Value = Math.Round(ColumnaSelect.resultadosETABs[i].pasignada[0], 2) + "%";
                            Info_D.Rows[Info_D.Rows.Count - 2].Cells["pasignada"].Value = Math.Round(ColumnaSelect.resultadosETABs[i].pasignada[1], 2) + "%";
                            Info_D.Rows[Info_D.Rows.Count - 1].Cells["pasignada"].Value = Math.Round(ColumnaSelect.resultadosETABs[i].pasignada[2], 2) + "%";

                            if (Math.Round(ColumnaSelect.resultadosETABs[i].Porct_Refuerzo[0], 3) > 105 | Math.Round(ColumnaSelect.resultadosETABs[i].Porct_Refuerzo[0], 3) < 95)
                            {
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["Porc_Ref"].Style.ForeColor = Color_RefMen;
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["Porc_Ref"].Style.Font      = new Font("Vderdana", 8, FontStyle.Bold);
                            }
                            else
                            {
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["Porc_Ref"].Style.ForeColor = Color_RefCum;
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["Porc_Ref"].Style.Font      = new Font("Vderdana", 8, FontStyle.Bold);
                            }
                            if (Math.Round(ColumnaSelect.resultadosETABs[i].Porct_Refuerzo[1], 3) > 105 | Math.Round(ColumnaSelect.resultadosETABs[i].Porct_Refuerzo[1], 3) < 95)
                            {
                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["Porc_Ref"].Style.ForeColor = Color_RefMen;
                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["Porc_Ref"].Style.Font      = new Font("Vderdana", 8, FontStyle.Bold);
                            }
                            else
                            {
                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["Porc_Ref"].Style.ForeColor = Color_RefCum;
                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["Porc_Ref"].Style.Font      = new Font("Vderdana", 8, FontStyle.Bold);
                            }
                            if (Math.Round(ColumnaSelect.resultadosETABs[i].Porct_Refuerzo[2], 3) > 105 | Math.Round(ColumnaSelect.resultadosETABs[i].Porct_Refuerzo[2], 3) < 95)
                            {
                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["Porc_Ref"].Style.ForeColor = Color_RefMen;
                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["Porc_Ref"].Style.Font      = new Font("Vderdana", 8, FontStyle.Bold);
                            }
                            else
                            {
                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["Porc_Ref"].Style.ForeColor = Color_RefCum;
                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["Porc_Ref"].Style.Font      = new Font("Vderdana", 8, FontStyle.Bold);
                            }

                            Info_D.Rows[Info_D.Rows.Count - 3].Cells["Porc_Ref"].Value = Math.Round(ColumnaSelect.resultadosETABs[i].Porct_Refuerzo[0], 2) + "%";
                            Info_D.Rows[Info_D.Rows.Count - 2].Cells["Porc_Ref"].Value = Math.Round(ColumnaSelect.resultadosETABs[i].Porct_Refuerzo[1], 2) + "%";
                            Info_D.Rows[Info_D.Rows.Count - 1].Cells["Porc_Ref"].Value = Math.Round(ColumnaSelect.resultadosETABs[i].Porct_Refuerzo[2], 2) + "%";

                            float FCMetros = 100;

                            if (ColumnaSelect.Seccions[i].Item1.Shape == TipodeSeccion.Rectangular)
                            {
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["B"].Value            = ColumnaSelect.Seccions[i].Item1.B * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["H"].Value            = ColumnaSelect.Seccions[i].Item1.H * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["TW"].Style.BackColor = Color.LightGray;
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["TF"].Style.BackColor = Color.LightGray;

                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["B"].Value            = ColumnaSelect.Seccions[i].Item1.B * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["H"].Value            = ColumnaSelect.Seccions[i].Item1.H * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["TW"].Style.BackColor = Color.LightGray;
                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["TF"].Style.BackColor = Color.LightGray;

                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["B"].Value            = ColumnaSelect.Seccions[i].Item1.B * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["H"].Value            = ColumnaSelect.Seccions[i].Item1.H * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["TW"].Style.BackColor = Color.LightGray;
                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["TF"].Style.BackColor = Color.LightGray;

                                DataGridViewTextBoxCellEx cell3 = (DataGridViewTextBoxCellEx)Info_D["B", Info_D.Rows.Count - 3];
                                DataGridViewTextBoxCellEx cell4 = (DataGridViewTextBoxCellEx)Info_D["H", Info_D.Rows.Count - 3];
                                DataGridViewTextBoxCellEx cell5 = (DataGridViewTextBoxCellEx)Info_D["TW", Info_D.Rows.Count - 3];
                                DataGridViewTextBoxCellEx cell6 = (DataGridViewTextBoxCellEx)Info_D["TF", Info_D.Rows.Count - 3];
                                cell3.RowSpan = 3; cell4.RowSpan = 3; cell5.RowSpan = 3;; cell6.RowSpan = 3;
                            }

                            if (ColumnaSelect.Seccions[i].Item1.Shape == TipodeSeccion.Circle)
                            {
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["B"].Value            = ColumnaSelect.Seccions[i].Item1.B * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["H"].Style.BackColor  = Color.LightGray;
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["TW"].Style.BackColor = Color.LightGray;
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["TF"].Style.BackColor = Color.LightGray;

                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["B"].Value            = ColumnaSelect.Seccions[i].Item1.B * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["H"].Style.BackColor  = Color.LightGray;
                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["TW"].Style.BackColor = Color.LightGray;
                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["TF"].Style.BackColor = Color.LightGray;

                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["B"].Value            = ColumnaSelect.Seccions[i].Item1.B * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["H"].Style.BackColor  = Color.LightGray;
                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["TW"].Style.BackColor = Color.LightGray;
                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["TF"].Style.BackColor = Color.LightGray;

                                DataGridViewTextBoxCellEx cell3 = (DataGridViewTextBoxCellEx)Info_D["B", Info_D.Rows.Count - 3];
                                DataGridViewTextBoxCellEx cell4 = (DataGridViewTextBoxCellEx)Info_D["H", Info_D.Rows.Count - 3];
                                DataGridViewTextBoxCellEx cell5 = (DataGridViewTextBoxCellEx)Info_D["TW", Info_D.Rows.Count - 3];
                                DataGridViewTextBoxCellEx cell6 = (DataGridViewTextBoxCellEx)Info_D["TF", Info_D.Rows.Count - 3];
                                cell3.RowSpan = 3; cell4.RowSpan = 3; cell5.RowSpan = 3;; cell6.RowSpan = 3;
                            }

                            if (ColumnaSelect.Seccions[i].Item1.Shape == TipodeSeccion.Tee | ColumnaSelect.Seccions[i].Item1.Shape == TipodeSeccion.L)
                            {
                                CSD SeccionTL = (CSD)ColumnaSelect.Seccions[i].Item1;

                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["B"].Value  = SeccionTL.B * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["H"].Value  = SeccionTL.H * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["TW"].Value = SeccionTL.TW * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 3].Cells["TF"].Value = SeccionTL.TF * FCMetros;

                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["B"].Value  = SeccionTL.B * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["H"].Value  = SeccionTL.H * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["TW"].Value = SeccionTL.TW * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 2].Cells["TF"].Value = SeccionTL.TF * FCMetros;

                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["B"].Value  = SeccionTL.B * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["H"].Value  = SeccionTL.H * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["TW"].Value = SeccionTL.TW * FCMetros;
                                Info_D.Rows[Info_D.Rows.Count - 1].Cells["TF"].Value = SeccionTL.TF * FCMetros;

                                DataGridViewTextBoxCellEx cell3 = (DataGridViewTextBoxCellEx)Info_D["B", Info_D.Rows.Count - 3];
                                DataGridViewTextBoxCellEx cell4 = (DataGridViewTextBoxCellEx)Info_D["H", Info_D.Rows.Count - 3];
                                DataGridViewTextBoxCellEx cell5 = (DataGridViewTextBoxCellEx)Info_D["TW", Info_D.Rows.Count - 3];
                                DataGridViewTextBoxCellEx cell6 = (DataGridViewTextBoxCellEx)Info_D["TF", Info_D.Rows.Count - 3];
                                cell3.RowSpan = 3; cell4.RowSpan = 3; cell5.RowSpan = 3;; cell6.RowSpan = 3;
                            }
                        }
                    }

                    ColumnaSelectAnt = ColumnaSelect;
                }
            }

            EstiloDatGridView(Info_D);
        }
        /// <summary>
        /// 方法说明:增加明细框Grid
        /// 作者:jason.tang
        /// 完成时间:2013-02-05
        /// </summary>
        /// <param name="top">上边距</param>
        /// <param name="left">下边距</param>
        /// <param name="objColumns">明细列集合</param>
        /// <param name="cellEx">单元格</param>
        private void AddDetailGridView(int top, int left, object objColumns, DataGridViewTextBoxCellEx cellEx, DataGridView datagridview, List <DetailGridViewTextBoxColumn> _dicColumns)
        {
            DataGridView dgv = new DataGridView();

            dgv.Name = string.Format("dgv{0}&{1}&{2}@{3}", cellEx.RowIndex, cellEx.ColumnIndex,
                                     Guid.NewGuid().ToString(), pageCount);
            dgv.BackgroundColor = Color.White;

            #region 明细框位置设定

            dgv.Top  = top;
            dgv.Left = left;

            //dgv.Name = string.Format("dgv{0}-{1}", cellEx.RowIndex.ToString(), cellEx.ColumnIndex.ToString());

            List <DetailGridViewTextBoxColumn> listColumns = new List <DetailGridViewTextBoxColumn>();
            if (objColumns != null)
            {
                DetailGridViewTextBoxColumn textBoxColumn;
                DetailCell[] detailCells = new DetailCell[] { };
                string       type        = objColumns.GetType().ToString();
                if (objColumns.GetType() == detailCells.GetType())
                {
                    detailCells = objColumns as DetailCell[];
                    foreach (DetailCell cell in detailCells)
                    {
                        textBoxColumn                    = new DetailGridViewTextBoxColumn();
                        textBoxColumn.Width              = cell.ColumnWidth;
                        textBoxColumn.Content            = cell.Content;
                        textBoxColumn.DetailSplitLine    = cell.DetailLine;
                        textBoxColumn.HeaderText         = cell.HeaderText;
                        textBoxColumn.Lans               = cell.Lans;
                        textBoxColumn.Length             = cell.Length;
                        textBoxColumn.ColumnName         = cell.Name;
                        textBoxColumn.PerProcessRow      = cell.PerProcessRow;
                        textBoxColumn.SplitLineInProcess = cell.ProcessDetailLine;
                        textBoxColumn.Rows               = cell.Rows.ToString();
                        textBoxColumn.SerialNumber       = cell.SerialNumber;
                        textBoxColumn.Source             = cell.Source;
                        textBoxColumn.SpaceRows          = cell.SpaceRows.ToString();
                        textBoxColumn.Tag                = cell.Tag;
                        textBoxColumn.Type               = string.IsNullOrEmpty(cell.Type) ? (ComboBoxSourceHelper.CellStyle)Enum.Parse(typeof(ComboBoxSourceHelper.CellStyle), "0") :
                                                           (ComboBoxSourceHelper.CellStyle)Enum.Parse(typeof(ComboBoxSourceHelper.CellStyle), cell.Type);
                        textBoxColumn.Visible         = cell.AdvanceProperty != ((ComboBoxSourceHelper.AdvanceProperty)Enum.Parse(typeof(ComboBoxSourceHelper.AdvanceProperty), "3")).ToString();
                        textBoxColumn.AdvanceProperty = !string.IsNullOrEmpty(cell.AdvanceProperty) ? (ComboBoxSourceHelper.AdvanceProperty)Enum.Parse(typeof(ComboBoxSourceHelper.AdvanceProperty), cell.AdvanceProperty) :
                                                        (ComboBoxSourceHelper.AdvanceProperty)Enum.Parse(typeof(ComboBoxSourceHelper.AdvanceProperty), "0");
                        textBoxColumn.SerialStep  = cell.SerialStep;
                        textBoxColumn.ColumnValue = cell.ColumnValue;

                        listColumns.Add(textBoxColumn);

                        if (_dicColumns != null && !_dicColumns.Contains(textBoxColumn))
                        {
                            _dicColumns.Add(textBoxColumn);
                        }
                    }
                }
            }

            dgv.Width  = datagridview.Columns[cellEx.ColumnIndex].Width;
            dgv.Height = datagridview.Rows[cellEx.RowIndex].Height;

            #endregion

            #region 明细框:处理合并的单元格

            int colspan = cellEx.ColumnSpan;
            int rowspan = cellEx.RowSpan;

            if (colspan > 1)
            {
                for (int i = 1; i < colspan; i++)
                {
                    dgv.Width += datagridview.Columns[cellEx.ColumnIndex + i].Width;
                }
            }
            if (rowspan > 1)
            {
                for (int i = 1; i < rowspan; i++)
                {
                    dgv.Height += datagridview.Rows[cellEx.RowIndex + i].Height;
                }
            }

            #endregion

            #region 明细框列表属性配置

            dgv.RowHeadersVisible = false;
            dgv.BorderStyle       = BorderStyle.None;
            //dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            dgv.ReadOnly                    = true;
            dgv.ScrollBars                  = ScrollBars.None;
            dgv.BorderStyle                 = BorderStyle.None;
            dgv.AllowUserToAddRows          = false;
            dgv.AllowUserToResizeColumns    = false;
            dgv.AllowUserToResizeRows       = false;
            dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
            //dgv.EditMode = DataGridViewEditMode.EditOnEnter;
            if (listColumns.Count > 0)
            {
                dgv.Rows.Clear();
                dgv.Columns.Clear();
                dgv.DefaultCellStyle.SelectionBackColor = Color.WhiteSmoke;
                dgv.DefaultCellStyle.SelectionForeColor = Color.Black;
                int    totalWidth = 0;
                int    totalRows  = 1;
                string tag        = string.Empty;
                foreach (DetailGridViewTextBoxColumn column in listColumns)
                {
                    dgv.Columns.Add(column);
                    totalWidth += column.Width;
                }

                if (totalWidth < dgv.Width)
                {
                    dgv.Columns[dgv.Columns.Count - 1].Width += dgv.Width - totalWidth;
                }

                if (listColumns != null && listColumns.Count > 0)
                {
                    DetailGridViewTextBoxColumn columns = (DetailGridViewTextBoxColumn)listColumns[0];
                    totalRows = int.Parse(columns.Rows);
                    for (int i = 0; i < totalRows; i++)
                    {
                        dgv.Rows.Insert(i, 1);
                    }
                }

                int rowHeight = dgv.Height - 23;
                //总宽度不足,补充到最后一列
                for (int i = 0; i < totalRows; i++)
                {
                    dgv.Rows[i].Height = rowHeight / totalRows;
                    if (i == totalRows - 1)
                    {
                        dgv.Rows[i].Height = rowHeight / totalRows + rowHeight % totalRows;
                    }
                }
            }

            int colRange = 0;
            foreach (DetailGridViewTextBoxColumn column in listColumns)
            {
                string columnValue = ((DetailGridViewTextBoxColumn)column).ColumnValue;
                if (!string.IsNullOrEmpty(columnValue) && string.IsNullOrEmpty(column.Source))
                {
                    string[] strValues = columnValue.Split(new char[] { ',' });
                    int      rowRange  = 0;
                    foreach (DataGridViewRow row in dgv.Rows)
                    {
                        row.Cells[colRange].Value = strValues[rowRange];
                        rowRange++;
                    }
                }//来源不为空,则自动带出来源数据
                else if (!string.IsNullOrEmpty(column.Source) && ModuleObject != null)
                {
                    foreach (PropertyInfo pi in ModuleObject.GetType().GetProperties())
                    {
                        if (pi.Name.ToLower() == column.Source.ToLower() && pi.GetValue(ModuleObject, new object[] { }) != null)
                        {
                            columnValue = pi.GetValue(ModuleObject, new object[] { }).ToString();
                            break;
                        }
                    }
                    int rowRange = 0;
                    foreach (DataGridViewRow row in dgv.Rows)
                    {
                        row.Cells[colRange].Value = columnValue;
                        rowRange++;
                    }
                }

                colRange++;
            }

            //dgv.CellClick += dgv_CellClick;
            //dgv.CellDoubleClick += DataGridView_CellDoubleClick;
            //dgv.CellMouseDown += DataGridView_CellMouseDown;
            //dgv.EditingControlShowing += dgv_EditingControlShowing;
            //dgv.KeyDown += dgv_KeyDown;
            //dgv.CellBeginEdit += dgv_CellBeginEdit;

            //dgvTemp = dgv;
            SetSerialNumberColumn(dgv);
            datagridview.Controls.Add(dgv);

            #endregion
        }
Beispiel #5
0
        private void CreateDataGridView()
        {
            Columna ColumnaSelect = Form1.Proyecto_.ColumnaSelect;

            if (ColumnaSelect != null)
            {
                if (ColumnaSelect.CantEstribos_Sepa == null)
                {
                    ColumnaSelect.CantEstribos_Sepa = new System.Collections.Generic.List <object[]>();
                    for (int i = ColumnaSelect.LuzAcum.Count - 1; i >= 0; i--)
                    {
                        ColumnaSelect.CantEstribos_Sepa.Add(new object[] { 0, 0, 0, 0, 0, 0 });
                    }
                    for (int i = ColumnaSelect.LuzAcum.Count - 1; i >= 0; i--)
                    {
                        if (ColumnaSelect.Seccions[i].Item1.Estribo == null)
                        {
                            CalCuantiaVol(ColumnaSelect.Seccions[i].Item1, false, i);
                        }
                        ColumnaSelect.CantidadEstribos(i);
                    }
                }

                if (ColumnaSelectAnt != ColumnaSelect)
                {
                    Info_Es_Col.Rows.Clear();

                    NameColum.Text = "Columna: " + ColumnaSelect.Name;

                    float FCMetros = 100;
                    Info_Es_Col.Rows.Add();

                    EncabezadosDataGridView();

                    for (int i = 0; i < ColumnaSelect.Seccions.Count; i++)
                    {
                        if (ColumnaSelect.Seccions[i].Item1 != null)
                        {
                            if (ColumnaSelect.Seccions[i].Item1.Estribo == null)
                            {
                                CalCuantiaVol(ColumnaSelect.Seccions[i].Item1, false, i);
                            }

                            Info_Es_Col.Rows.Add(ColumnaSelect.Seccions[i].Item2);
                            Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells[0].Value = ColumnaSelect.Seccions[i].Item2;
                            Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells[1].Value = ColumnaSelect.Seccions[i].Item1.Material.FC.ToString();

                            Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells[0].ReadOnly = true;
                            Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells[1].ReadOnly = true;

                            if (ColumnaSelect.Seccions[i].Item1.Estribo != null)
                            {
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["NoEstribo"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoEstribo.ToString();
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["S_value"].Value   = ColumnaSelect.Seccions[i].Item1.Estribo.Separacion.ToString();

                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["CantEstribos"].Value = (int)ColumnaSelect.CantEstribos_Sepa[i][0] + (int)ColumnaSelect.CantEstribos_Sepa[i][1] + (int)ColumnaSelect.CantEstribos_Sepa[i][2] + (int)ColumnaSelect.CantEstribos_Sepa[i][3];

                                int   CantEstribos = (int)ColumnaSelect.CantEstribos_Sepa[i][0] + (int)ColumnaSelect.CantEstribos_Sepa[i][1] + (int)ColumnaSelect.CantEstribos_Sepa[i][2] + (int)ColumnaSelect.CantEstribos_Sepa[i][3];
                                float PesoEstribos = (float)ColumnaSelect.Seccions[i].Item1.Peso_Estribo(ColumnaSelect.Seccions[i].Item1.Estribo, 0.04f, CantEstribos);

                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["PesoEstribos"].Value = String.Format("{0:0.00}", PesoEstribos);
                            }
                            else
                            {
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["S_value"].Value = 0;
                            }

                            Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["CantEstribos"].ReadOnly = true;
                            Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["NoEstribo"].ReadOnly    = false;
                            Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["S_value"].ReadOnly      = false;
                            Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["PesoEstribos"].ReadOnly = true;

                            if (ColumnaSelect.Seccions[i].Item1.Shape == TipodeSeccion.Rectangular)
                            {
                                DataGridViewTextBoxCellEx cell0 = (DataGridViewTextBoxCellEx)Info_Es_Col["NoRamasV_1", 0];
                                cell0.ColumnSpan = 2;
                                DataGridViewTextBoxCellEx cell00 = (DataGridViewTextBoxCellEx)Info_Es_Col["NoRamas_H1", 0];
                                cell00.ColumnSpan = 2;

                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["B"].Value            = ColumnaSelect.Seccions[i].Item1.B * FCMetros;
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["H"].Value            = ColumnaSelect.Seccions[i].Item1.H * FCMetros;
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["TW"].Style.BackColor = Color.LightGray;
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["TF"].Style.BackColor = Color.LightGray;

                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["NoRamasV_1"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoRamasV1;
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["NoRamasV_2"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoRamasV2;

                                DataGridViewTextBoxCellEx cell1 = (DataGridViewTextBoxCellEx)Info_Es_Col["NoRamasV_1", Info_Es_Col.Rows.Count - 1];
                                cell1.ColumnSpan = 2;

                                Info_Es_Col.Rows[0].Cells["NoRamasV_1"].Value = "No. Ramas Vertical";
                                Info_Es_Col.Rows[0].Cells["NoRamas_H1"].Value = "No. Ramas Horizontal";

                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["NoRamas_H1"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoRamasH1;
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["NoRamas_H2"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoRamasH2;
                                DataGridViewTextBoxCellEx cell2 = (DataGridViewTextBoxCellEx)Info_Es_Col["NoRamas_H1", Info_Es_Col.Rows.Count - 1];

                                cell2.ColumnSpan = 2;
                            }

                            if (ColumnaSelect.Seccions[i].Item1.Shape == TipodeSeccion.Circle)
                            {
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["B"].Value            = ColumnaSelect.Seccions[i].Item1.B * FCMetros;
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["H"].Style.BackColor  = Color.LightGray;
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["TW"].Style.BackColor = Color.LightGray;
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["TF"].Style.BackColor = Color.LightGray;
                            }

                            if (ColumnaSelect.Seccions[i].Item1.Shape == TipodeSeccion.Tee | ColumnaSelect.Seccions[i].Item1.Shape == TipodeSeccion.L)
                            {
                                CSD SeccionTL = (CSD)ColumnaSelect.Seccions[i].Item1;
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["B"].Value  = SeccionTL.B * FCMetros;
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["H"].Value  = SeccionTL.H * FCMetros;
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["TW"].Value = SeccionTL.TW * FCMetros;
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["TF"].Value = SeccionTL.TF * FCMetros;

                                Info_Es_Col.Rows[0].Cells["NoRamasV_1"].Value = "No. Ramas Vertical";
                                Info_Es_Col.Rows[0].Cells["NoRamas_H1"].Value = "No. Ramas Horizontal";

                                Info_Es_Col.Rows[0].Cells["NoRamasV_2"].Value = "No. Ramas Vertical";
                                Info_Es_Col.Rows[0].Cells["NoRamas_H2"].Value = "No. Ramas Horizontal";

                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["NoRamasV_1"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoRamasV1;
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["NoRamasV_2"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoRamasV2;

                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["NoRamas_H1"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoRamasH1;
                                Info_Es_Col.Rows[Info_Es_Col.Rows.Count - 1].Cells["NoRamas_H2"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoRamasH2;
                            }
                        }
                    }
                    ColumnaSelectAnt = ColumnaSelect;
                }
                EstiloDatGridView();
            }
        }
Beispiel #6
0
        private void CambiosDataGridView(int i)
        {
            Columna ColumnaSelect = Form1.Proyecto_.ColumnaSelect;

            NameColum.Text = "Columna: " + ColumnaSelect.Name;

            if (ColumnaSelect.Seccions[i].Item1 != null)
            {
                int IndiceRow = 0;
                for (int j = 0; j < Info_Es_Col.Rows.Count; j++)
                {
                    if (Info_Es_Col.Rows[j].Cells[0].Value.ToString() == ColumnaSelect.Seccions[i].Item2)
                    {
                        IndiceRow = j;
                    }
                }

                Info_Es_Col.Rows[IndiceRow].Cells["NoEstribo"].Value    = ColumnaSelect.Seccions[i].Item1.Estribo.NoEstribo.ToString();
                Info_Es_Col.Rows[IndiceRow].Cells["S_value"].Value      = ColumnaSelect.Seccions[i].Item1.Estribo.Separacion.ToString();
                Info_Es_Col.Rows[IndiceRow].Cells["CantEstribos"].Value = (int)ColumnaSelect.CantEstribos_Sepa[i][0] + (int)ColumnaSelect.CantEstribos_Sepa[i][1] + (int)ColumnaSelect.CantEstribos_Sepa[i][2] + (int)ColumnaSelect.CantEstribos_Sepa[i][3];

                int   CantEstribos = (int)ColumnaSelect.CantEstribos_Sepa[i][0] + (int)ColumnaSelect.CantEstribos_Sepa[i][1] + (int)ColumnaSelect.CantEstribos_Sepa[i][2] + (int)ColumnaSelect.CantEstribos_Sepa[i][3];
                float PesoEstribos = (float)ColumnaSelect.Seccions[i].Item1.Peso_Estribo(ColumnaSelect.Seccions[i].Item1.Estribo, 0.04f, CantEstribos);

                Info_Es_Col.Rows[IndiceRow].Cells["PesoEstribos"].Value = String.Format("{0:0.00}", PesoEstribos);



                if (ColumnaSelect.Seccions[i].Item1.Shape == TipodeSeccion.Rectangular)
                {
                    DataGridViewTextBoxCellEx cell0 = (DataGridViewTextBoxCellEx)Info_Es_Col["NoRamasV_1", 0];
                    cell0.ColumnSpan = 2;
                    DataGridViewTextBoxCellEx cell00 = (DataGridViewTextBoxCellEx)Info_Es_Col["NoRamas_H1", 0];
                    cell00.ColumnSpan = 2;

                    Info_Es_Col.Rows[IndiceRow].Cells["NoRamasV_1"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoRamasV1;
                    Info_Es_Col.Rows[IndiceRow].Cells["NoRamasV_2"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoRamasV1;

                    DataGridViewTextBoxCellEx cell1 = (DataGridViewTextBoxCellEx)Info_Es_Col["NoRamasV_1", Info_Es_Col.Rows.Count - 1];
                    cell1.ColumnSpan = 2;

                    Info_Es_Col.Rows[IndiceRow].Cells["NoRamas_H1"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoRamasH1;
                    Info_Es_Col.Rows[IndiceRow].Cells["NoRamas_H2"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoRamasH1;
                    DataGridViewTextBoxCellEx cell2 = (DataGridViewTextBoxCellEx)Info_Es_Col["NoRamas_H1", Info_Es_Col.Rows.Count - 1];
                    cell2.ColumnSpan = 2;
                }

                if (ColumnaSelect.Seccions[i].Item1.Shape == TipodeSeccion.Circle)
                {
                }

                if (ColumnaSelect.Seccions[i].Item1.Shape == TipodeSeccion.Tee | ColumnaSelect.Seccions[i].Item1.Shape == TipodeSeccion.L)
                {
                    Info_Es_Col.Rows[IndiceRow].Cells["NoRamasV_1"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoRamasV1;
                    Info_Es_Col.Rows[IndiceRow].Cells["NoRamasV_2"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoRamasV2;

                    Info_Es_Col.Rows[IndiceRow].Cells["NoRamas_H1"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoRamasH1;
                    Info_Es_Col.Rows[IndiceRow].Cells["NoRamas_H2"].Value = ColumnaSelect.Seccions[i].Item1.Estribo.NoRamasH2;
                }
            }
        }
Beispiel #7
0
        /// <summary>
        /// 方法说明:增加明细框Grid
        /// 作者:jason.tang
        /// 完成时间:2012-12-22
        /// </summary>
        /// <param name="top">上边距</param>
        /// <param name="left">下边距</param>
        /// <param name="objColumns">明细列集合</param>
        private void AddDetailGridView(int top, int left, object objColumns, List <DetailGridViewTextBoxColumn> _dicColumns, DataGridView datagridview, DataGridViewTextBoxCellEx cellEx)
        {
            DataGridView dgv = new DataGridView();

            dgv.BackgroundColor = Color.White;

            #region 明细框位置设定

            dgv.Top  = top;
            dgv.Left = left;

            CheckIsInSpanCells(dgv, datagridview, cellEx);

            dgv.Name = string.Format("dgv{0}-{1}", cellEx.RowIndex.ToString(), cellEx.ColumnIndex.ToString());

            List <DetailGridViewTextBoxColumn> listColumns = new List <DetailGridViewTextBoxColumn>();
            if (objColumns != null)
            {
                List <DetailGridViewTextBoxColumn> dicColumns = objColumns as List <DetailGridViewTextBoxColumn>;
                DetailGridViewTextBoxColumn        textBoxColumn;
                DetailCell[] detailCells = new DetailCell[] { };
                string       type        = objColumns.GetType().ToString();
                if (objColumns.GetType() == detailCells.GetType())
                {
                    detailCells = objColumns as DetailCell[];
                    foreach (DetailCell cell in detailCells)
                    {
                        textBoxColumn                    = new DetailGridViewTextBoxColumn();
                        textBoxColumn.Width              = cell.ColumnWidth;
                        textBoxColumn.Content            = cell.Content;
                        textBoxColumn.DetailSplitLine    = cell.DetailLine;
                        textBoxColumn.HeaderText         = cell.HeaderText;
                        textBoxColumn.Lans               = cell.Lans;
                        textBoxColumn.Length             = cell.Length;
                        textBoxColumn.ColumnName         = cell.Name;
                        textBoxColumn.PerProcessRow      = cell.PerProcessRow;
                        textBoxColumn.SplitLineInProcess = cell.ProcessDetailLine;
                        textBoxColumn.Rows               = cell.Rows.ToString();
                        textBoxColumn.SerialNumber       = cell.SerialNumber;
                        textBoxColumn.Source             = cell.Source;
                        textBoxColumn.SpaceRows          = cellEx.SpaceRows.ToString(); //cell.SpaceRows.ToString();
                        textBoxColumn.Tag                = cell.Tag;
                        textBoxColumn.Type               = string.IsNullOrEmpty(cell.Type) ? (ComboBoxSourceHelper.CellStyle)Enum.Parse(typeof(ComboBoxSourceHelper.CellStyle), "0") :
                                                           (ComboBoxSourceHelper.CellStyle)Enum.Parse(typeof(ComboBoxSourceHelper.CellStyle), cell.Type);
                        textBoxColumn.Visible         = cell.AdvanceProperty != ((ComboBoxSourceHelper.AdvanceProperty)Enum.Parse(typeof(ComboBoxSourceHelper.AdvanceProperty), "3")).ToString();
                        textBoxColumn.AdvanceProperty = !string.IsNullOrEmpty(cell.AdvanceProperty) ? (ComboBoxSourceHelper.AdvanceProperty)Enum.Parse(typeof(ComboBoxSourceHelper.AdvanceProperty), cell.AdvanceProperty) :
                                                        (ComboBoxSourceHelper.AdvanceProperty)Enum.Parse(typeof(ComboBoxSourceHelper.AdvanceProperty), "0");
                        textBoxColumn.SerialStep = cellEx.SerialStep; //cell.SerialStep;
                        listColumns.Add(textBoxColumn);
                        if (_dicColumns != null && !_dicColumns.Contains(textBoxColumn))
                        {
                            _dicColumns.Add(textBoxColumn);
                        }
                    }
                }
                else if (dicColumns != null)
                {
                    foreach (DetailGridViewTextBoxColumn col in dicColumns)
                    {
                        col.SerialStep = cellEx.SerialStep;
                        col.SpaceRows  = cellEx.SpaceRows.ToString();
                        listColumns.Add(col);
                    }
                }
            }

            if (datagridview.Controls.ContainsKey(dgv.Name) && objColumns != null)
            {
                SetDataGridViewColumns(listColumns, dgv.Name, datagridview);
                return;
            }

            dgv.Width  = datagridview.Columns[datagridview.CurrentCell.ColumnIndex].Width;
            dgv.Height = datagridview.Rows[datagridview.CurrentCell.RowIndex].Height;

            #endregion

            #region 明细框:处理合并的单元格

            int colspan = (datagridview.CurrentCell as DataGridViewTextBoxCellEx).ColumnSpan;
            int rowspan = (datagridview.CurrentCell as DataGridViewTextBoxCellEx).RowSpan;

            if (colspan > 1)
            {
                for (int i = 1; i < colspan; i++)
                {
                    dgv.Width += datagridview.Columns[datagridview.CurrentCell.ColumnIndex + i].Width;
                }
            }
            if (rowspan > 1)
            {
                for (int i = 1; i < rowspan; i++)
                {
                    dgv.Height += datagridview.Rows[datagridview.CurrentCell.RowIndex + i].Height;
                }
            }

            #endregion

            #region 明细框列表属性配置

            Control[] controls = datagridview.Controls.Find(dgv.Name, false);
            if (controls.Length > 0)
            {
                dgv = (DataGridView)controls[0];
                dgv.Rows.Clear();
                dgv.Columns.Clear();
            }


            dgv.Columns.Add("", "");
            dgv.Columns.Add("", "");
            //dgv.ColumnHeadersVisible = false;
            dgv.Rows[0].Height   = dgv.Height;
            dgv.Columns[0].Width = 25;
            dgv.Columns[1].Width = dgv.Width - 25;
            dgv.DefaultCellStyle.SelectionBackColor = Color.WhiteSmoke;
            dgv.BorderStyle = BorderStyle.None;
            //dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            dgv.RowHeadersVisible           = false;
            dgv.ReadOnly                    = true;
            dgv.ScrollBars                  = ScrollBars.None;
            dgv.AutoGenerateColumns         = false;
            dgv.AllowUserToResizeColumns    = true;
            dgv.AllowUserToResizeRows       = false;
            dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
            //dgv.RowHeightChanged += dgv_RowHeightChanged;
            datagridview.Controls.Add(dgv);
            if (listColumns.Count > 0)
            {
                SetDataGridViewColumns(listColumns, dgv.Name, datagridview);
            }

            #endregion
        }