예제 #1
0
        public static void DailyScheduleView(DataGridView view, MainForm mainForm)
        {
            if (view.DataSource == null)
            {
                return;
            }

            view.ColumnHeadersVisible = false;
            view.RowHeadersVisible = false;
            view.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
            view.AutoResizeColumns();
            view.AutoResizeRows();
            view.AllowUserToResizeColumns = false;
            view.AllowUserToResizeRows = false;

            // LessonId
            view.Columns[0].Visible = false;
            view.Columns[0].Width = 0;

            // Ring
            view.Columns[1].Width = 56;
            view.Columns[1].DefaultCellStyle.Font = new Font(view.DefaultCellStyle.Font.FontFamily, 14);
            view.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

            // LessonSummary
            // view.Columns[2].Width = Percent(88, view.Width);
            view.Columns[2].Width = view.Width - view.Columns[1].Width - 20;
        }
예제 #2
0
        private string fillSQLOption(List <String> possibleQ, System.Windows.Forms.DataGridView grid_view)
        {
            //setup grid
            grid_view.AllowUserToAddRows = false;

            grid_view.Rows.Clear();
            grid_view.ColumnCount = 2;
            //grid_view.Columns[0].au;
            grid_view.Visible = true;
            grid_view.ColumnHeadersVisible = true;
            DataGridViewCellStyle columnHeaderStyle = new DataGridViewCellStyle();

            columnHeaderStyle.BackColor             = Color.Beige;
            columnHeaderStyle.Font                  = new Font("Verdana", 10, FontStyle.Bold);
            grid_view.ColumnHeadersDefaultCellStyle = columnHeaderStyle;
            grid_view.Columns[0].Name               = "Query Options";
            grid_view.Columns[1].Name               = "Query Time (sec)";
            float  fin    = 10000;
            string result = "";

            foreach (string str in possibleQ)
            {
                string[] add = { "", "" };
                if (queryTime.Keys.Contains(str))
                {
                    add[0] = str;
                    add[1] = queryTime[str].ToString();
                }
                else
                {
                    add[0] = str;
                    string   arg = "/C " + path + "sqlite3 " + path + database + " \"" + str + "\" > " + path + "out.txt";
                    DateTime dt1 = DateTime.Now;
                    float    t1  = dt1.Second + (float)((float)dt1.Millisecond / 1000);
                    run_command(arg);
                    dt1 = DateTime.Now;
                    float t2 = dt1.Second + (float)((float)dt1.Millisecond / 1000);
                    add[1] = (t2 - t1).ToString();
                    if ((t2 - t1) < fin)
                    {
                        fin    = (t2 - t1);
                        result = str;
                    }
                    if ((t2 - t1) == fin)
                    {
                        if (str.Length < result.Length)
                        {
                            result = str;
                        }
                    }
                }
                grid_view.Rows.Add(add);
            }
            grid_view.Sort(grid_view.Columns[1], ListSortDirection.Ascending);
            grid_view.AutoResizeColumns();
            return(result);
        }
예제 #3
0
        public IssuesView(IDataProvider provider)
            : base(provider.Master, "Issues")
        {
            Frame.Text = "Issues";

            var result = new DataGridView
            {
                RowHeadersVisible = false,
                SelectionMode = DataGridViewSelectionMode.RowHeaderSelect,
                MultiSelect = true
            };
            var data = provider.Data.ToArray();

            result.Columns.AddRange(DataGridViewColumns().ToArray());
            result.Rows.AddRange(data.Select(CreateRow).ToArray());
            result.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
            result.CellClick += (a, b) => OnSelect(data[b.RowIndex], provider);
            Client = result;
        }
예제 #4
0
        private void InitializeDataGridViewQuantitiveCharacteristic(DataGridView _dataGridView)
        {
            _dataGridView.ColumnCount = 3;
            _dataGridView.RowCount = 5;

            _dataGridView.RowHeadersWidth = 50;

            _dataGridView.Columns[0].Name = "Value";
            _dataGridView.Columns[1].Name = "Standard deviation";
            _dataGridView.Columns[2].Name = "Interval";

            _dataGridView.Rows[0].HeaderCell.Value = "Average arithmetic mean";
            _dataGridView.Rows[1].HeaderCell.Value = "Median";
            _dataGridView.Rows[2].HeaderCell.Value = "Standard deviation";
            _dataGridView.Rows[3].HeaderCell.Value = "Skewness";
            _dataGridView.Rows[4].HeaderCell.Value = "Kurtosis";

            _dataGridView.AutoResizeColumns();
            _dataGridView.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
        }
예제 #5
0
 void format_dgv(DataGridView dgv)
 {
     dgv.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
     int headerW = dgv.RowHeadersWidth;
     int columnsW = 0;
     DataGridViewColumnCollection columns = dgv.Columns;
     for (int i = 0; i < columns.Count; i++)
     {
         columnsW += columns[i].Width;
     }
     if (columnsW + headerW < dgv.Width)
     {
         int leftTotalWidht = dgv.Width - columnsW - headerW - 2;
         int eachColumnAddedWidth = leftTotalWidht / columns.Count;
         for (int i = 0; i < columns.Count; i++)
         {
             columns[i].Width += eachColumnAddedWidth;
         }
     }
 }
        public void filtrarDataGridView(DataGridView miDataGridView, String sqlQuery)
        {
            SqlDataAdapter adapter;
            DataTable tabla;

            try
            {
                adapter = new SqlDataAdapter(sqlQuery, Conexion.getConexion());
                tabla = new DataTable();

                adapter.Fill(tabla);
                miDataGridView.DataSource = tabla;
                miDataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
                adapter.Dispose();
            }
            catch (Exception e)
            {

                MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK);

            }
        }
예제 #7
0
 public static void ShowOnGridView(DataGridView dataGridView, String Query)
 {
     //Create a DataTable to hold the query results.
     DataTable dTable = new DataTable();
     //Fill the DataTable.
     FillTable(Query, dTable);
     //BindingSource to sync DataTable and DataGridView.
     BindingSource bSource = new BindingSource();
     //Set the BindingSource DataSource.
     bSource.DataSource = dTable;
     //Set the DataGridView DataSource.
     dataGridView.DataSource = bSource;
     dataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
     for (int i = 0; i < dataGridView.RowCount; i = i + 2)
     {
         dataGridView.Rows[i].DefaultCellStyle.BackColor = Color.AliceBlue;
         dataGridView.Rows[i].DefaultCellStyle.ForeColor = Color.Black;
     }
     for (int i = 1; i < dataGridView.RowCount; i = i + 2)
     {
         dataGridView.Rows[i].DefaultCellStyle.BackColor = Color.White;
         dataGridView.Rows[i].DefaultCellStyle.ForeColor = Color.Black;
     }
     dataGridView.AllowUserToAddRows = false;
     dataGridView.AllowUserToDeleteRows = false;
 }
예제 #8
0
 public static void SetupGrid(DataGridView dgv)
 {
     dgv.AutoGenerateColumns = false;
     dgv.AutoResizeColumns();
     dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
 }
예제 #9
0
파일: Form1.cs 프로젝트: Hagser/csharp
        private void GetStats(object state)
        {
            if (!CanConnect)
                return;
            try
            {
                DataSet dsViews = ExecuteSql(@"SELECT table_name FROM INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='trafikverket' and table_type='VIEW' and table_name like 'Get%' order by table_name;");
                var views = dsViews.Tables[0].Rows.Cast<DataRow>().Select(x => x.ItemArray[0]).ToArray();
                //var views = "GetMaxMinAvgPerDay;GetMaxMinDiffPerMeasurePoint;GetMaxminAvgPerMonth".Split(';');
                foreach (string view in views)
                {
                    if (!flpViews.Controls.Cast<Control>().Any(c => c.Tag != null && c.Tag.ToString().Equals(view)))
                    {
                        DataGridView dgv = new DataGridView();
                        dgv.AutoGenerateColumns = true;
                        dgv.Name = "dgv" + view;
                        dgv.Tag = view;
                        dgv.Height = flpViews.Height - 10;
                        double dc = double.Parse(views.Count().ToString());
                        double w = (flpViews.Width / dc) - (dc * 3);
                        dgv.Width = int.Parse(Math.Floor(w).ToString());
                        using (DataSet ds = ExecuteSql("select * from trafikverket." + view + ";"))
                            this.Invoke((MethodInvoker)delegate
                            {
                                dgv.DataSource = ds.Tables[0];
                                flpViews.Controls.Add(dgv);
                                dgv.Refresh();
                                flpViews.Refresh();
                                dgv.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
                            });
                    }
                    else
                    {

                        DataGridView dgv = flpViews.Controls.Cast<Control>().FirstOrDefault(c => c.Tag != null && c.Tag.ToString().Equals(view)) as DataGridView;
                        if (dgv == null)
                            continue;
                        using (DataSet ds = ExecuteSql("select * from trafikverket." + view + ";"))
                            this.Invoke((MethodInvoker)delegate
                            {
                                dgv.DataSource = ds.Tables[0];
                                dgv.Refresh();
                                flpViews.Refresh();
                                dgv.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
                            });
                    }
                }
            }
            catch { }
            System.GC.Collect();
        }
        private void examinePredictionsToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (DisplayedPrediction == null)
                MessageBox.Show("No prediction displayed. Cannot examine regions.");
            else if (!File.Exists(DisplayedPrediction.PointPredictionLogPath))
                MessageBox.Show("No point prediction information is available.");
            else if (_highlightedThreatRectangle == Rectangle.Empty || _highlightedThreatRectangleCol == -1 || _highlightedThreatRectangleRow == -1)
                MessageBox.Show("Must select a region to examine.");
            else
            {
                float pixelsPerMeter;
                float threatRectanglePixelWidth;
                GetDrawingParameters(new Rectangle(new System.Drawing.Point(0, 0), CurrentThreatSurface.Size), out pixelsPerMeter, out threatRectanglePixelWidth);

                int rowAbsoluteThreatRectangle = _highlightedThreatRectangleRow + (int)(_panOffset.Height / threatRectanglePixelWidth);
                int colAbsoluteThreatRectangle = _highlightedThreatRectangleCol + (int)(_panOffset.Width / threatRectanglePixelWidth);

                if (rowAbsoluteThreatRectangle < 0 || colAbsoluteThreatRectangle < 0)
                    MessageBox.Show("No predictions were made in that region.");
                else
                {
                    float widthMeters = threatRectanglePixelWidth / pixelsPerMeter;
                    float bottomMeters = _regionBottomLeftInMeters.Y + _regionSizeInMeters.Height - (rowAbsoluteThreatRectangle + 1) * widthMeters;
                    float leftMeters = _regionBottomLeftInMeters.X + colAbsoluteThreatRectangle * widthMeters;

                    PostGIS.Polygon threatRectangle = new PostGIS.Polygon(new PostGIS.Point[]{
                                                                          new PostGIS.Point(leftMeters, bottomMeters, DisplayedPrediction.PredictionArea.Shapefile.SRID),
                                                                          new PostGIS.Point(leftMeters, bottomMeters + widthMeters, DisplayedPrediction.PredictionArea.Shapefile.SRID),
                                                                          new PostGIS.Point(leftMeters + widthMeters, bottomMeters + widthMeters, DisplayedPrediction.PredictionArea.Shapefile.SRID),
                                                                          new PostGIS.Point(leftMeters + widthMeters, bottomMeters, DisplayedPrediction.PredictionArea.Shapefile.SRID),
                                                                          new PostGIS.Point(leftMeters, bottomMeters, DisplayedPrediction.PredictionArea.Shapefile.SRID)}, DisplayedPrediction.PredictionArea.Shapefile.SRID);

                    DiscreteChoiceModel model = DisplayedPrediction.Model;

                    PointPrediction[] pointPredictions = PointPrediction.GetWithin(threatRectangle, DisplayedPrediction).ToArray();

                    // only get point predictions in current slice if we've got a timeslice model
                    if (model is TimeSliceDCM)
                        pointPredictions = pointPredictions.Where(p => (p.Time.Ticks / (model as TimeSliceDCM).TimeSliceTicks) == timeSlice.Value).ToArray();

                    if (pointPredictions.Length > 0)
                    {
                        DataGridView dataView = new DataGridView();
                        dataView.ReadOnly = true;
                        dataView.AllowUserToAddRows = false;

                        int predictionIdCol = dataView.Columns.Add("prediction_id", "Prediction ID");

                        Dictionary<string, int> incidentProbCol = new Dictionary<string, int>();
                        Set<int> incidentCols = new Set<int>();
                        foreach (string incident in pointPredictions[0].IncidentScore.Keys)
                        {
                            string colName = "Threat:  " + incident;
                            int incidentCol = dataView.Columns.Add(colName, colName);
                            incidentProbCol.Add(incident, incidentCol);
                            incidentCols.Add(incidentCol);
                        }

                        Dictionary<string, int> featureIdCol = new Dictionary<string, int>();
                        Set<int> featureCols = new Set<int>();
                        if (model is IFeatureBasedDCM)
                        {
                            IFeatureBasedDCM featureBasedModel = DisplayedPrediction.Model as IFeatureBasedDCM;
                            foreach (Feature feature in featureBasedModel.Features.OrderBy(f => f.Id))
                            {
                                string colName = "Feature:  " + feature.ToString();
                                int featureCol = dataView.Columns.Add(colName, colName);
                                featureIdCol.Add(feature.Id, featureCol);
                                featureCols.Add(featureCol);
                            }
                        }

                        dataView.Rows.Add(pointPredictions.Length);

                        try
                        {
                            Set<string> logPointIdsToGet = new Set<string>(pointPredictions.Select(p => model.GetPointIdForLog(p.PointId, p.Time)).ToArray());
                            Dictionary<string, Tuple<List<Tuple<string, double>>, List<Tuple<string, string>>>> pointPredictionLog = model.ReadPointPredictionLog(DisplayedPrediction.PointPredictionLogPath, logPointIdsToGet);
                            for (int i = 0; i < pointPredictions.Length; ++i)
                            {
                                PointPrediction pointPrediction = pointPredictions[i];

                                dataView[predictionIdCol, i].Value = pointPrediction.PointId;

                                string logPointId = model.GetPointIdForLog(pointPrediction.PointId, pointPrediction.Time);

                                foreach (Tuple<string, double> labelConfidence in pointPredictionLog[logPointId].Item1)
                                    if (labelConfidence.Item1 != PointPrediction.NullLabel)
                                        dataView[incidentProbCol[labelConfidence.Item1], i].Value = labelConfidence.Item2;

                                foreach (Tuple<string, string> featureIdValue in pointPredictionLog[logPointId].Item2)
                                    dataView[featureIdCol[featureIdValue.Item1], i].Value = featureIdValue.Item2;
                            }
                        }
                        catch (Exception ex) { Console.Out.WriteLine("Error while reading prediction log:  " + ex.Message); }

                        dataView.SortCompare += new DataGridViewSortCompareEventHandler(delegate(object o, DataGridViewSortCompareEventArgs args)
                            {
                                int sortedColumn = args.Column.DisplayIndex;

                                if (args.CellValue1 == null && args.CellValue2 == null)
                                    args.SortResult = args.RowIndex1.CompareTo(args.RowIndex2);
                                else if (args.CellValue1 == null || args.CellValue2 == null)
                                    args.SortResult = args.CellValue1 == null ? -1 : 1;
                                else if (sortedColumn == predictionIdCol)
                                    args.SortResult = ((int)args.CellValue1).CompareTo((int)args.CellValue2);
                                else if (incidentCols.Contains(sortedColumn))
                                    args.SortResult = ((double)args.CellValue1).CompareTo((double)args.CellValue2);
                                else if (featureCols.Contains(sortedColumn))
                                {
                                    double cellValue1, cellValue2;
                                    if (double.TryParse(args.CellValue1.ToString(), out cellValue1) && double.TryParse(args.CellValue2.ToString(), out cellValue2))
                                        args.SortResult = Math.Abs(cellValue1).CompareTo(Math.Abs(cellValue2));
                                    else
                                        args.SortResult = args.CellValue1.ToString().CompareTo(args.CellValue2.ToString());
                                }
                                else
                                    throw new Exception("Unknown column type");

                                args.Handled = true;
                            });

                        PredictionDataGridViewForm form = new PredictionDataGridViewForm();
                        form.MaximumSize = Screen.FromControl(this).Bounds.Size;
                        form.Controls.Add(dataView);
                        form.Show();
                        dataView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
                        form.ClientSize = dataView.Size = dataView.PreferredSize;
                        form.Location = new System.Drawing.Point(0, 0);
                    }
                    else
                        MessageBox.Show("No predictions were made in that region.");
                }
            }
        }
예제 #11
0
파일: AntForm.cs 프로젝트: xiaoyj/Space
 private void BindingCollectionToGridView(DataGridView dgv)
 {
     dgv.AllowUserToAddRows = false;
     dgv.AllowUserToDeleteRows = false;
     dgv.AutoGenerateColumns = false;
     dgv.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.ColumnHeader);
 }
 private void DataggridMIFformating(DataGridView dg)
 {
     dg.Columns[0].FillWeight = 1;
     dg.Columns[1].FillWeight = 1;
     dg.Columns[2].FillWeight = 1;
     dg.Columns[3].FillWeight = 1;
     dg.Columns[4].FillWeight = 1;
     dg.Columns[5].FillWeight = 10;
     dg.Columns[6].FillWeight = 50;
     dg.Columns[6].FillWeight = 15;
     dg.Columns[0].Visible = false;
     dg.Columns[1].Visible = false;
     dg.Columns[2].Visible = false;
     dg.Columns[3].Visible = false;
     dg.Columns[4].Visible = false;
     dg.Columns[5].Visible = true;
     dg.Columns[6].Visible = true;
     dg.Columns[7].Visible = true;
     _setColorForDataGrid(dg);
     dg.AutoResizeColumns();
     dg.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
     dg.Refresh();
     Refrescounterdgridinfo();
 }
예제 #13
0
 void AutoResizeColumns(DataGridView gridView)
 {
     try
     {
         gridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells);
         if (gridView.Columns.Count > 1 && Preferences.setLastColumnWidth &&
             gridView.Columns[gridView.Columns.Count - 1].Width < Preferences.lastColumnWidth)
         {
             // It seems that using 'MinimumWidth' instead of 'Width' prevents the DataGridView's NullReferenceExceptions
             //gridView.Columns[gridView.Columns.Count - 1].Width = Preferences.lastColumnWidth;
             gridView.Columns[gridView.Columns.Count - 1].MinimumWidth = Preferences.lastColumnWidth;
         }
     }
     catch (NullReferenceException e)
     {
         // See https://connect.microsoft.com/VisualStudio/feedback/details/366943/autoresizecolumns-in-datagridview-throws-nullreferenceexception
         // There are some rare situations with null ref exceptions when resizing columns and on filter finished
         // So catch them here. Better than crashing.
         Logger.logError("Error while resizing columns: " + e.Message);
         Logger.logError(e.StackTrace);
     }
 }
        public void llenarDataGridViewDevolucion(DataGridView dgv,String idCl)
        {
            SqlDataAdapter adapter;
            DataTable tabla;

            try
            {
                adapter = new SqlDataAdapter("select * from [THE_CVENGERS].comprasCliente("+idCl+") order by 'Fecha compra'", Conexion.getConexion());
                tabla = new DataTable();

                adapter.Fill(tabla);
                dgv.DataSource = tabla;
                dgv.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
                adapter.Dispose();
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);

            }
        }
예제 #15
0
    private void FormatDataGrid(DataGridView grid)
    {
      var tbl = (DataTable)grid.DataSource;
      var arasProxy = _proxy as ArasEditorProxy;
      ArasMetadataProvider metadata = null;
      if (arasProxy != null)
        metadata = ArasMetadataProvider.Cached(arasProxy.Connection);

      grid.Columns.Clear();
      foreach (var dataCol in tbl.Columns.OfType<DataColumn>())
      {
        DataGridViewColumn col;
        if (dataCol.DataType == typeof(bool))
        {
          col = new DataGridViewCheckBoxColumn();
        }
        else if (dataCol.DataType == typeof(DateTime))
        {
          col = new Controls.DataGridViewCalendarColumn();
        }
        else
        {
          var prop = dataCol.PropMetadata();
          if (prop != null && metadata != null
            && string.Equals(prop.TypeName, "list", StringComparison.OrdinalIgnoreCase))
          {
            var combo = new DataGridViewListColumn();
            combo.DisplayMember = "Label";
            combo.ValueMember = "Value";
            metadata.ListValues(prop.DataSource)
              .Done(v => combo.DataSource = v.ToArray());
            col = combo;
          }
          else
          {
            col = new DataGridViewTextBoxColumn();
          }
        }

        col.DataPropertyName = dataCol.ColumnName;
        col.ValueType = dataCol.DataType;
        col.HeaderText = dataCol.Caption;
        col.Visible = dataCol.IsUiVisible();
        grid.Columns.Add(col);
      }

      grid.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCellsExceptHeader);
      var minWidths = grid.Columns.OfType<DataGridViewColumn>().Select(c => c.Width).ToArray();
      grid.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells);
      var maxWidths = grid.Columns.OfType<DataGridViewColumn>().Select(c => c.Width).ToArray();
      var maxWidth = (int)(grid.Width * 0.8);

      //DataColumn boundColumn;
      for (var i = 0; i < grid.Columns.Count; i++)
      {
        grid.Columns[i].Width = Math.Min(maxWidths[i] < 100 ? maxWidths[i] :
            (maxWidths[i] < minWidths[i] + 60 ? maxWidths[i] : minWidths[i] + 60)
          , maxWidth);
        grid.Columns[i].DefaultCellStyle.Alignment =
          (IsNumericType(grid.Columns[i].ValueType)
            ? DataGridViewContentAlignment.TopRight
            : DataGridViewContentAlignment.TopLeft);
        //boundColumn = ((DataTable)grid.DataSource).Columns[grid.Columns[i].DataPropertyName];
        //grid.Columns[i].HeaderText = boundColumn.Caption;
        //grid.Columns[i].Visible = boundColumn.IsUiVisible();
      }

      if (!grid.Columns.OfType<DataGridViewColumn>().Any(c => c.Visible))
      {
        foreach (var col in grid.Columns.OfType<DataGridViewColumn>())
        {
          col.Visible = true;
        }
      }

      var orderedColumns = grid.Columns.OfType<DataGridViewColumn>()
        .Select(c => new
        {
          Column = c,
          SortOrder = GetSortOrder(c)
        })
        .OrderBy(c => c.SortOrder)
        .ThenBy(c => c.Column.HeaderText)
        .Select((c, i) => new { Column = c.Column, Index = i })
        .ToArray();
      foreach (var col in orderedColumns)
      {
        col.Column.DisplayIndex = col.Index;
      }

      grid.AllowUserToAddRows = _outputSet != null
        && ((DataTable)grid.DataSource).Columns.Contains("id")
        && ((DataTable)grid.DataSource).Columns.Contains(Extensions.AmlTable_TypeName);
      grid.AllowUserToDeleteRows = grid.AllowUserToAddRows;
      grid.ReadOnly = !grid.AllowUserToAddRows;
    }
예제 #16
0
        void gridBind(DataGridView flexGrid, DataTable dt, string[] captionArray)
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new delegateGridBind(gridBind), new object[] { flexGrid, dt, captionArray });
                return;
            }

            flexGrid.DataSource = dt.DefaultView;
            string lastCol = string.Empty;
            for (int i = 0; i < captionArray.Length; i++)
            {
                if (string.IsNullOrEmpty(captionArray[i]))
                {
                    flexGrid.Columns[i].Visible = false;
                }
                else
                {
                    flexGrid.Columns[i].HeaderText = captionArray[i];
                    lastCol = flexGrid.Columns[i].Name;
                }

            }
            flexGrid.AutoResizeColumns();
            flexGrid.Columns[lastCol].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
        }
        public void llenarDataGridView(DataGridView dgv, String nombreTabla)
        {
            SqlDataAdapter adapter;
            DataTable tabla;

            try {
                adapter = new SqlDataAdapter("select * from [THE_CVENGERS]." + nombreTabla, Conexion.getConexion());
                tabla = new DataTable();

                adapter.Fill(tabla);
                dgv.DataSource=tabla;
                dgv.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
                adapter.Dispose();
            }
            catch (Exception ex) {

                MessageBox.Show(ex.Message);

            }
        }
예제 #18
0
        /// <summary>
        /// Sets the data in DataGridView from the DataTable object.
        /// The columns can be filtered or null to get all columns from the data table in the the data grid view.
        /// </summary>
        /// <param name="dataGridView"></param>
        /// <param name="dataTable"></param>
        /// <param name="columnFilter">The columns to filter.</param>
        /// <param name="filterType">Whether to keep the items in the filter (remove all others) or remove them (keep all others).</param>
        public static void SetDataGridViewData(DataGridView dataGridView, DataTable dataTable, IEnumerable<string> columnFilter, Util.FilterType filterType)
        {
            // Clear DGV if it's not data bound. If it is, it will be re-bound later, therefore cleaning the old data.
            if (dataGridView.DataSource == null)
            {
                dataGridView.Rows.Clear();
                dataGridView.Columns.Clear();
            }
            else
            {
                // Force data binding flush
                dataGridView.DataSource = null;
            }

            // Bind the data
            dataGridView.DataSource = dataTable;

            // Hide the columns filtered out
            if (columnFilter != null)
            {
                List<string> columnFilterList = new List<string>(columnFilter);
                List<string> columns = Db.DbUtil.GetColumnNames(dataTable);
                List<string> columnsToRemove = null;

                // Get a list of columns to remove
                if (filterType == Util.FilterType.Keep)
                {
                    columnsToRemove = CollectionUtil<string>.Filter(columns, Util.FilterType.Remove, columnFilterList);
                }
                else if (filterType == Util.FilterType.Remove)
                {
                    columnsToRemove = columnFilterList;
                }
                else
                {
                    throw new Exception("Unkonwn filter type: " + filterType.ToString());
                }

                // Hide the columns
                foreach (string col in columnsToRemove)
                {
                    dataGridView.Columns[col].Visible = false;
                }

                // Force column order as defined in column filter
                // but only if it's FilterType.Keep
                if (filterType == Util.FilterType.Keep)
                {
                    int i = 0;
                    foreach (string column in columnFilter)
                    {
                        dataGridView.Columns[column].DisplayIndex = i++;
                    }
                }
            }

            dataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
        }
예제 #19
0
 private void llenarTabla(String consulta, DataGridView dataGridView)
 {
     DataTable tabla = null;
     try
     {
         tabla = Variables.baseDatos.ejecutarConsultaTabla(consulta);
         BindingSource bindingSource = new BindingSource();
         bindingSource.DataSource = tabla;
         dataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
         dataGridView.DataSource = bindingSource;
         for (int i = 0; i < dataGridView.ColumnCount; i++)
         {
             dataGridView.Columns[i].Width = 250;
         }
     }
     catch (SqlException ex)
     {
         string mensajeError = ex.ToString();
         MessageBox.Show(mensajeError);
     }
 }
        /// <summary>
        /// void LoadGridWithResults(List<string[]> results)
        /// Load the passed grid with the resultset
        /// </summary>
        /// <param name="_results"></param>
        public static void LoadGridWithResults(DataGridView grid, List<string[]> results)
        {
            try
            {
                if (results.Count > 0)
                {
                    // first record should be the field names
                    string[] _fieldNames = results[0];

                    foreach (string _fieldName in _fieldNames)
                    {
                        if (_fieldName != "")
                        {
                            // add a column
                            grid.Columns.Add(_fieldName, _fieldName.Replace('_', ' '));
                        }
                    }

                    for (int n = 1; n < results.Count; n++)
                    {
                        string[] _fields = results[n];
                        grid.Rows.Add(_fields);
                    }

                    grid.AutoResizeColumns();

                }
                else
                {
                    grid.Columns.Add("Message", "Message");
                    grid.Columns["Message"].Width = grid.Width - 20;
                    string[] _fields = { "No rows to display" };
                    grid.Rows.Add(_fields);
                }

                grid.Refresh();

            }
            catch (Exception ex)
            {
                CommonRoutines.Log("$E:" + moduleName + ".LoadGridWithResults > " + ex.Message);
            }

            return;
        }
예제 #21
0
        public void SetupGridView(System.Windows.Forms.DataGridView dg)
        {
            dsFeeders                = cf.POPFeedersTable();
            dg.AllowUserToAddRows    = false;
            dg.AllowUserToDeleteRows = false;
            dg.EditMode              = System.Windows.Forms.DataGridViewEditMode.EditOnEnter;

            dg.AutoGenerateColumns = false;



            DataGridViewTextBoxColumn dgvc1 = new DataGridViewTextBoxColumn();

            dgvc1.DataPropertyName = "RefDes";
            dgvc1.HeaderText       = "RefDes";
            dgvc1.ReadOnly         = true;
            dg.Columns.Add(dgvc1);

            DataGridViewTextBoxColumn dgvc2 = new DataGridViewTextBoxColumn();

            dgvc2.DataPropertyName = "Type";
            dgvc2.HeaderText       = "Type";
            dgvc2.ReadOnly         = true;
            dg.Columns.Add(dgvc2);

            DataGridViewTextBoxColumn dgvc3 = new DataGridViewTextBoxColumn();

            dgvc3.DataPropertyName = "PosX";
            dgvc3.HeaderText       = "PosX";
            dgvc3.ReadOnly         = true;
            dg.Columns.Add(dgvc3);

            DataGridViewTextBoxColumn dgvc4 = new DataGridViewTextBoxColumn();

            dgvc4.DataPropertyName = "PosY";
            dgvc4.HeaderText       = "PosY";
            dgvc4.ReadOnly         = true;
            dg.Columns.Add(dgvc4);

            DataGridViewTextBoxColumn dgvc5 = new DataGridViewTextBoxColumn();

            dgvc5.DataPropertyName = "Rotate";
            dgvc5.HeaderText       = "Rotate";
            dgvc5.ReadOnly         = true;
            dg.Columns.Add(dgvc5);

            DataGridViewTextBoxColumn dgvc6 = new DataGridViewTextBoxColumn();

            dgvc6.DataPropertyName = "Value";
            dgvc6.HeaderText       = "Value";
            dgvc6.ReadOnly         = true;
            dg.Columns.Add(dgvc6);

            DataGridViewComboBoxColumn ColumnItem = new DataGridViewComboBoxColumn();


            ColumnItem.HeaderText       = "Feeder Number";
            ColumnItem.Width            = 120;
            ColumnItem.DataSource       = dsFeeders.Tables[0].DefaultView;
            ColumnItem.DataPropertyName = "feederNumber";
            ColumnItem.ValueMember      = "feederNumber";
            ColumnItem.DisplayMember    = "feederValue";

            ColumnItem.ValueType = typeof(byte);

            dg.Columns.Add(ColumnItem);

            dg.AutoResizeColumns();
            dg.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

            POPDataTable();
        }
예제 #22
0
        private string DisplayQueryData(Connexion.Connexion connexion, string SQL, DataGridView dataGridViewOracleData, BackgroundWorker worker, DoWorkEventArgs eArgs)
        {
            string result = null;
            try
            {
                //string SelectedTable = treeViewOracleSchema.SelectedNode.Text;
                using (DbCommand cmd = connexion.Cnn.CreateCommand())
                {
                    cmd.Transaction = connexion.MyTransaction;
                    int NumRec = 0;
                    try
                    {
                        string SQLCount = "SELECT count(*) " + SQL.Substring(SQL.ToUpper().IndexOf("FROM"));
                        cmd.CommandText = SQLCount; // string.Format("SELECT count(*) FROM {0}", SelectedTable);
                        cmd.Prepare();
                        NumRec = Convert.ToInt32(cmd.ExecuteScalar()) + dataGridViewOracleData.Rows.Count;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        NumRec = 0;
                    }

                    //string SQL = string.Format("SELECT * FROM {0}", SelectedTable);
                    cmd.CommandText = SQL;
                    cmd.Prepare();
                    //int colno = 0;
                    using (DbDataReader rd = cmd.ExecuteReader())
                    {
                        if (ClearData)
                        {
                            if (dataGridViewOracleData.InvokeRequired)
                            {
                                if (!worker.CancellationPending)
                                    dataGridViewOracleData.Invoke(new datagridClear(ClearDataGrid));
                            }
                            else
                            {
                                dataGridViewOracleData.Rows.Clear();
                                dataGridViewOracleData.Columns.Clear();
                            }
                            for (int i = 0; i < rd.FieldCount && !worker.CancellationPending; i++)
                            {
                                if (dataGridViewOracleData.InvokeRequired)
                                {
                                    dataGridViewOracleData.Invoke(new datagridAddCol(AddColDataGrid),
                                                                  new object[] { rd.GetName(i), rd.GetName(i) });
                                }
                                else
                                    dataGridViewOracleData.Columns.Add(rd.GetName(i), rd.GetName(i));
                            }
                        }

                        while (rd.Read() && !worker.CancellationPending)
                        {
                            DataGridViewRow dgrv = new DataGridViewRow();
                            for (int i = 0; i < dataGridViewOracleData.Columns.Count; i++)
                            {
                                dgrv.Cells.Add(new DataGridViewTextBoxCell());
                                dgrv.Cells[i].Value = rd.GetValue(i);
                            }
                            if (dataGridViewOracleData.InvokeRequired)
                            {
                                dataGridViewOracleData.Invoke(new datagridAddRow(AddRowDataGrid), new object[] { dgrv });
                            }
                            else
                                dataGridViewOracleData.Rows.Add(dgrv);

                            int CurrentNumRec = dataGridViewOracleData.Rows.Count;

                            if (worker.WorkerReportsProgress)
                            {
                                if (NumRec != 0)
                                {
                                    int percentComplete = (int)((float)CurrentNumRec / (float)NumRec * 100);
                                    worker.ReportProgress(percentComplete);
                                }
                                else
                                {
                                    worker.ReportProgress(CurrentNumRec % 100);
                                }
                            }
                        }
                        if (worker.WorkerSupportsCancellation)
                        {
                            if (worker.CancellationPending)
                            {
                                eArgs.Cancel = true;
                                result = string.Format("Aborted by user. {0} records found", dataGridViewOracleData.Rows.Count);
                            }
                            else
                            {
                                result = string.Format("{0} records found", dataGridViewOracleData.Rows.Count);
                            }
                        }
                        if (dataGridViewOracleData.InvokeRequired)
                        {
                            dataGridViewOracleData.Invoke(new datagridAutoResizeColumns(DatagridAutoResizeColumns), new object[] { dataGridViewOracleData });
                        }
                        else
                            dataGridViewOracleData.AutoResizeColumns();
                        rd.Close();
                    }
                }
                return result;
            }
            catch (Exception e)
            {
                Exception ee = e;
                string errorMessage = e.Message;
                while (e.InnerException != null)
                {
                    e = e.InnerException;
                    errorMessage += "\n" + e.Message;
                }
                MessageBox.Show(errorMessage, "Unexpected error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return errorMessage;
            }
        }
예제 #23
0
        /// <summary>
        /// Generate a Windows modeless form on the fly 
        /// and display the revision data in it in a 
        /// DataGridView.
        /// </summary>
        void DisplayRevisionData(
            List<RevisionData> revision_data,
            IWin32Window owner)
        {
            System.Windows.Forms.Form form
            = new System.Windows.Forms.Form();

              form.Size = new Size( 680, 180 );
              form.Text = "Revision Data";

              DataGridView dg = new DataGridView();
              dg.DataSource = revision_data;
              dg.AllowUserToAddRows = false;
              dg.AllowUserToDeleteRows = false;
              dg.AllowUserToOrderColumns = true;
              dg.Dock = System.Windows.Forms.DockStyle.Fill;
              dg.Location = new System.Drawing.Point( 0, 0 );
              dg.ReadOnly = true;
              dg.TabIndex = 0;
              dg.Parent = form;

              dg.AutoSize = true;
              dg.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
              dg.AutoResizeColumns( DataGridViewAutoSizeColumnsMode.AllCells );
              dg.AutoResizeColumns();

              //dg.Columns[2].AutoSizeMode
              //  = DataGridViewAutoSizeColumnMode.DisplayedCells;
              //dg.Columns[3].AutoSizeMode
              //  = DataGridViewAutoSizeColumnMode.Fill;

              form.ShowDialog( owner );
        }
 /// <summary>
 /// Interactively update the database table by DataGridView and NpgsqlDataAdapter
 /// Insert Update Delete
 /// </summary>
 private void UpdateTable(string strConn, string strSQL, NpgsqlParameter[] sqlParams, DataGridView gridView, out NpgsqlDataAdapter da, out DataSet ds)
 {
     ds = new DataSet();
     da = this.GetDataAdapter(strConn, strSQL, sqlParams, false);
     da.Fill(ds);
     gridView.DataSource = ds.Tables[0];
     gridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
 }
        public void llenarDataGridViewABMCiudad(DataGridView dgv)
        {
            SqlDataAdapter adapter;
            DataTable tabla;

            try
            {
                adapter = new SqlDataAdapter("select CIUDAD_ID as 'Id Ciudad', CIUDAD_NOMBRE as 'Nombre Ciudad' from [THE_CVENGERS].CIUDAD WHERE CIUDAD_ESTADO=1", Conexion.getConexion());
                tabla = new DataTable();

                adapter.Fill(tabla);
                dgv.DataSource = tabla;
                dgv.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
                adapter.Dispose();
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);

            }
        }
예제 #26
0
        /// <summary>The add tables.</summary>
        private void AddTables()
        {
            ClearGridsAndTabs();
            SetRowCount(null);

            if (Batch != null)
            {
                string nullText = _settings.NullText;
                int counter = 1;

                _resizingGrid = true;

                foreach (Query query in Batch.Queries)
                {
                    DataSet ds = query.Result;
                    if (ds != null)
                    {
                        foreach (DataTable dt in ds.Tables)
                        {
                            DataGridView grid = new DataGridView();
                            DataGridViewCellStyle cellStyle = new DataGridViewCellStyle();

                            grid.AllowUserToAddRows = false;
                            grid.AllowUserToDeleteRows = false;
                            grid.Dock = DockStyle.Fill;
                            grid.Name = "gridResults_" + counter;
                            grid.ReadOnly = true;
                            grid.DataSource = dt;
                            grid.DataError += GridDataError;
                            grid.DefaultCellStyle = cellStyle;
                            cellStyle.NullValue = nullText;
                            cellStyle.Font = CreateDefaultFont();
                            grid.DataBindingComplete += GridDataBindingComplete;
                            grid.Disposed += GridDisposed;
                            grid.ColumnWidthChanged += OnColumnWidthChanged;

                            TabPage tabPage = new TabPage();
                            tabPage.Controls.Add(grid);
                            tabPage.Name = "tabPageResults_" + counter;
                            tabPage.Padding = new Padding(3);
                            tabPage.Text = string.Format("{0}/Table {1}", ds.DataSetName, counter);
                            tabPage.UseVisualStyleBackColor = false;

                            _resultsTabControl.TabPages.Add(tabPage);

                            // create a reasonable default max width for columns
                            int maxColWidth = Math.Max(grid.ClientSize.Width / 2, 100);

                            // Autosize the columns then change the widths, gleaned from SO - http://stackoverflow.com/a/1031871/276563
                            grid.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells);
                            for (int i = 0; i < grid.Columns.Count; i++)
                            {
                                int columnWidth = grid.Columns[i].Width;
                                grid.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;

                                string headerText = grid.Columns[i].HeaderText;
                                if (!string.IsNullOrEmpty(headerText) && _columnSizes.ContainsKey(headerText))
                                {
                                    // use the previous column size in case its been adjusted etc
                                    grid.Columns[i].Width = _columnSizes[headerText];
                                }
                                else
                                {
                                    // reset to a the smaller of the 2 sizes, this is mainly for the bigger text columns that throw the size out
                                    grid.Columns[i].Width = Math.Min(columnWidth, maxColWidth);

                                    if (!string.IsNullOrEmpty(headerText))
                                    {
                                        _columnSizes[headerText] = grid.Columns[i].Width;
                                    }
                                }
                            }

                            // set the row count for the first tab for now.
                            if (counter == 1)
                            {
                                SetRowCount(dt.Rows.Count);
                            }

                            counter++;
                        }
                    }
                }

                if (!string.IsNullOrEmpty(Batch.Messages))
                {
                    RichTextBox rtf = new RichTextBox();
                    rtf.Font = CreateDefaultFont();
                    rtf.Dock = DockStyle.Fill;
                    rtf.ScrollBars = RichTextBoxScrollBars.ForcedBoth;
                    rtf.Text = Batch.Messages;

                    TabPage tabPage = new TabPage();
                    tabPage.Controls.Add(rtf);
                    tabPage.Name = "tabPageResults_Messages";
                    tabPage.Padding = new Padding(3);
                    tabPage.Dock = DockStyle.Fill;
                    tabPage.Text = Resources.Messages;
                    tabPage.UseVisualStyleBackColor = false;

                    _resultsTabControl.TabPages.Add(tabPage);
                }

                _resizingGrid = false;
            }
        }
        public void llenarDGV_Compra(DataGridView dgv)
        {
            SqlDataAdapter adapter;
            DataTable tabla;

            try
            {
                adapter = new SqlDataAdapter("SELECT * FROM THE_CVENGERS.viajesCompra", Conexion.getConexion());
                tabla = new DataTable();

                adapter.Fill(tabla);
                dgv.DataSource = tabla;
                dgv.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
                adapter.Dispose();
            }
            catch (Exception e)
            {

                MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK);

            }
        }
예제 #28
0
        /// <summary>
        /// Format les colonnes du datagridview via une classe où les propriétés sont habillées des attributs disponibles
        /// </summary>
        public static void FormatColumns <T>(this System.Windows.Forms.DataGridView iDgv, string iLang)
        {
            if (iDgv.DataSource != null)
            {
                iDgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;

                var dgvColumnHeaderStyle = new DataGridViewCellStyle();
                dgvColumnHeaderStyle.Alignment     = DataGridViewContentAlignment.MiddleCenter;
                iDgv.ColumnHeadersDefaultCellStyle = dgvColumnHeaderStyle;

                foreach (System.Windows.Forms.DataGridViewColumn itemColumn in iDgv.Columns)
                {
                    itemColumn.Visible = typeof(T).GetVisible(itemColumn.Name);
                    if (itemColumn.Visible == true)
                    {
                        itemColumn.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                        itemColumn.DefaultCellStyle.NullValue = null;

                        if (typeof(T).GetName(itemColumn.Name, iLang) != null)
                        {
                            itemColumn.HeaderText = typeof(T).GetName(itemColumn.Name, iLang);
                        }

                        itemColumn.ReadOnly = (bool)typeof(T).GetReadOnly(itemColumn.Name);

                        itemColumn.Frozen = (bool)typeof(T).GetFrozen(itemColumn.Name);

                        if (typeof(T).GetBackColor(itemColumn.Name) != null)
                        {
                            itemColumn.DefaultCellStyle.BackColor = (Color)typeof(T).GetBackColor(itemColumn.Name);
                        }

                        if (typeof(T).GetMultiLineText(itemColumn.Name))
                        {
                            itemColumn.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
                        }
                    }
                }

                //Autoresize avant la largeur si spécifié pour tenir compte de la largeur de l'entete
                iDgv.AutoResizeColumns();

                foreach (System.Windows.Forms.DataGridViewColumn itemColumn in iDgv.Columns)
                {
                    itemColumn.DefaultCellStyle.Alignment = typeof(T).GetContentAlignment(itemColumn.Name);
                    itemColumn.Visible = typeof(T).GetVisible(itemColumn.Name);

                    if (itemColumn.Visible == true)
                    {
                        if (typeof(T).GetWidthColumn(itemColumn.Name) != null)
                        {
                            var width = (int)typeof(T).GetWidthColumn(itemColumn.Name);
                            if (width != 0)
                            {
                                itemColumn.Width = width;
                            }
                            else
                            {
                                itemColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                            }
                        }

                        itemColumn.DefaultCellStyle.Alignment = typeof(T).GetContentAlignment(itemColumn.Name);
                    }
                }
            }
        }
예제 #29
0
 private void DatagridAutoResizeColumns(DataGridView dgv)
 {
     dgv.AutoResizeColumns();
 }
예제 #30
0
        public void SetupGridView(System.Windows.Forms.DataGridView dg)
        {
            dg.AllowUserToAddRows    = false;
            dg.AllowUserToDeleteRows = false;
            dg.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter;

            dg.AutoGenerateColumns = false;



            DataGridViewTextBoxColumn dgvc1 = new DataGridViewTextBoxColumn();

            dgvc1.DataPropertyName = "RefDes";
            dgvc1.HeaderText       = "RefDes";
            dgvc1.ReadOnly         = true;
            dg.Columns.Add(dgvc1);

            DataGridViewTextBoxColumn dgvc2 = new DataGridViewTextBoxColumn();

            dgvc2.DataPropertyName = "Type";
            dgvc2.HeaderText       = "Type";
            dgvc2.ReadOnly         = true;
            dg.Columns.Add(dgvc2);

            DataGridViewTextBoxColumn dgvc3 = new DataGridViewTextBoxColumn();

            dgvc3.DataPropertyName = "PosX";
            dgvc3.HeaderText       = "PosX";
            dgvc3.ReadOnly         = true;
            dg.Columns.Add(dgvc3);

            DataGridViewTextBoxColumn dgvc4 = new DataGridViewTextBoxColumn();

            dgvc4.DataPropertyName = "PosY";
            dgvc4.HeaderText       = "PosY";
            dgvc4.ReadOnly         = true;
            dg.Columns.Add(dgvc4);

            DataGridViewTextBoxColumn dgvc5 = new DataGridViewTextBoxColumn();

            dgvc5.DataPropertyName = "Rotate";
            dgvc5.HeaderText       = "Rotate";
            dgvc5.ReadOnly         = true;
            dg.Columns.Add(dgvc5);

            DataGridViewTextBoxColumn dgvc6 = new DataGridViewTextBoxColumn();

            dgvc6.DataPropertyName = "Value";
            dgvc6.HeaderText       = "Value";
            dgvc6.ReadOnly         = true;
            dg.Columns.Add(dgvc6);

            DataGridViewTextBoxColumn dgvc7 = new DataGridViewTextBoxColumn();

            dgvc7.DataPropertyName = "feederNumber";
            dgvc7.HeaderText       = "Feeder Number";
            dgvc7.ReadOnly         = true;
            dg.Columns.Add(dgvc7);

            DataGridViewTextBoxColumn dgvc8 = new DataGridViewTextBoxColumn();

            dgvc8.DataPropertyName = "ComponentCode";
            dgvc8.HeaderText       = "Code";
            dgvc8.ReadOnly         = true;
            dg.Columns.Add(dgvc8);

            DataGridViewCheckBoxColumn dgv9 = new DataGridViewCheckBoxColumn();

            dgv9.HeaderText = "Pick";
            dgv9.Name       = "Pick";
            dgv9.ReadOnly   = false;
            dg.Columns.Add(dgv9);

            dg.AutoResizeColumns();
            dg.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

            // POPDataTable();
        }
예제 #31
0
파일: Frm_Main.cs 프로젝트: TGHGH/C-1200
        /// <summary>
        /// 将字符串按指定的格式添加到DataGridView控件中(如果有被选中的单元格,则修改单元格中的内容).
        /// </summary>
        /// <param DGView="DataGridView">DataGridView类</param>
        /// <param s="string">要替换的单元格字符串</param>
        /// <param Blank="bool">标识,如果是空格是否替换成空格</param>
        /// <param All="bool">标识,是否全部替换</param>
        public void AddDataGridView(DataGridView DGView, string s, bool Blank, bool All)
        {
            string tem_str = s;
            int tem_n = 0;
            int RowCount = 0;//行数
            int CellCount = 0;//列数
            bool tem_bool = true;
            string tem_s = "";
            if (s.IndexOf("\r\n") != -1)//如果替换的为多行
                while (tem_bool)//获取单元格的行数和列数
                {
                    tem_s = "";
                    if (tem_str.IndexOf("\r\n") != -1)//如果获取的不是最后一行
                    {
                        tem_s = tem_str.Substring(0, tem_str.IndexOf("\r\n") + 2);//获取当前行中的数据
                        //获取当前行中能被识别的数据
                        tem_str = tem_str.Substring(tem_str.IndexOf("\r\n") + 2, tem_str.Length - tem_str.IndexOf("\r\n") - 2);
                        tem_n = 1;
                        while (tem_s.IndexOf("\t") > -1)//遍历当前行中的空格
                        {
                            //去除已读取的空格
                            tem_s = tem_s.Substring(tem_s.IndexOf("\t") + 1, tem_s.Length - tem_s.IndexOf("\t") - 1);
                            tem_n += 1;//获取列数
                        }
                        if (tem_n > CellCount)//判断当前列数是否为最大列数
                            CellCount = tem_n;//获取最大的列数
                    }
                    else//如果读取的是最后一行
                    {
                        tem_n = 1;
                        while (tem_s.IndexOf("\t") > -1)
                        {
                            tem_s = tem_s.Substring(tem_s.IndexOf("\t") + 1, tem_s.Length - tem_s.IndexOf("\t") - 1);
                            tem_n += 1;
                        }
                        if (tem_n > CellCount)
                            CellCount = tem_n;
                        tem_bool = false;//遍历结束
                    }
                    ++RowCount;//读取行数
                }
            else//如果读取的为单行数据
            {
                tem_n = 1;
                tem_s = s;
                while (tem_s.IndexOf("\t") > -1)
                {
                    tem_s = tem_s.Substring(tem_s.IndexOf("\t") + 1, tem_s.Length - tem_s.IndexOf("\t") - 1);
                    tem_n += 1;
                }
                if (tem_n > CellCount)
                    CellCount = tem_n;
                ++RowCount;//读取行数
            }
            string[,] Strarr = new string[RowCount, CellCount];//定义一个数组,用于记录复制的单元格信息

            tem_str = s;
            tem_n = 0;
            //将单元格信息添加到数组中
            for (int i = 0; i < RowCount; i++)//遍历单元格的行
            {
                for (int j = 0; j < CellCount; j++)//遍历单元格的列
                {
                    tem_s = "";
                    if (tem_str.IndexOf("\r\n") != -1)//如果不是最后一行
                    {
                        if (tem_str.IndexOf("\t") <= -1)//设置读取数据的位置
                            tem_n = tem_str.IndexOf("\r");//最后一个数据的位置
                        else
                            tem_n = tem_str.IndexOf("\t");//不是最后一个数据的位置
                        tem_s = tem_str.Substring(0, tem_str.IndexOf("\r\n") + 2);//读取单元格数据
                    }
                    else//如果是最后一行
                    {
                        if (tem_str.IndexOf("\t") <= -1)//设置读取数据的位置
                            tem_n = tem_str.Length;//最后一个数据的位置
                        else
                            tem_n = tem_str.IndexOf("\t");//不是最后一个数据的位置
                        tem_s = tem_str;//读取单元格数据
                    }
                    if (tem_s.Length > 0)//如果当前行有数据
                    {
                        if (tem_s.Substring(0, 1) == "\t")//如果第一个字符为空
                            Strarr[i, j] = "";//向数组中添加一个空记录
                        else
                        {
                            Strarr[i, j] = tem_s.Substring(0, tem_n);//向数组中添加数据
                        }
                    }
                    else
                        Strarr[i, j] = "";//向数组中添加空记录
                    if (tem_s.Length > tem_n)//如果记录没有读取完
                        tem_str = tem_s.Substring(tem_n + 1, tem_s.Length - tem_n - 1);//获取没有读取的记录
                }
                if (s.IndexOf("\r\n") > -1)//如果不是最后一行数据
                {
                    s = s.Substring(s.IndexOf("\r\n") + 2, s.Length - s.IndexOf("\r\n") - 2);//读取下一行数据
                    tem_str = s;
                }
            }
            if (All)//如果要全部替换
                DGView.Rows.Clear();//清空DataGridView控件
            if (DGView.SelectedRows.Count == 0 && DGView.SelectedCells.Count == 0)//如果DataGridView中没有数据
            {
                DGView.ColumnCount = CellCount;//设置列数
                string[] stra = new string[CellCount];//定义一个一维数组
                //向DataGridView中添加行数据
                for (int i = 0; i < RowCount; i++)//读取行
                {
                    for (int j = 0; j < CellCount; j++)//读取列
                    {
                        if (Strarr[i, j] == "")//如果当前单元格为空
                        {
                            if (Blank)//如果用*号替换
                                stra[j] = "*";//在空单元格中添加*号
                            else
                                stra[j] = "";//以空格显示空单元格
                        }
                        else
                        {
                            stra[j] = Strarr[i, j];//记录当前行中的信息
                        }
                    }
                    DGView.Rows.Add(stra);//将行中的信息添加到DataGridView控件

                }
                DGView.AutoResizeColumns();//向DataGridView控件添加所有的单元格信息
                DGView.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText;//将所选择的单元格复制到剪贴板中
            }
            else//如果DataGridView中有数据
            {
                int maxrow = 0;//记录DataGridView控件中最小单元格的行数
                int maxcell = 0;//记录DataGridView控件中最小单元格的列数
                for (int i = 0; i < DGView.SelectedCells.Count; i++)//获取选中单元格中最大单元格的行数和列数
                {
                    if (DGView.SelectedCells[i].RowIndex > maxrow)//如果单元格的行数大于当前指定的行数
                        maxrow = DGView.SelectedCells[i].RowIndex;//记录当前单元格的行数
                    if (DGView.SelectedCells[i].ColumnIndex > maxcell)//如果单元格的列数大于当前指定的列数
                        maxcell = DGView.SelectedCells[i].ColumnIndex;//记录当前单元格的列数
                }
                int minrow = maxrow;//记录DataGridView控件中最大单元格的行数
                int mincell = maxcell;//记录DataGridView控件中最大单元格的列数
                for (int i = 0; i < DGView.SelectedCells.Count; i++)//获取选中单元格中最小单元格的行数和列数
                {
                    if (DGView.SelectedCells[i].RowIndex < minrow)//如果单元格的行数小于当前指定的行数
                        minrow = DGView.SelectedCells[i].RowIndex;//记录当前单元格的行数
                    if (DGView.SelectedCells[i].ColumnIndex < mincell)//如果单元格的列数小于当前指定的列数
                        mincell = DGView.SelectedCells[i].ColumnIndex;//记录当前单元格的列数
                }
                //向DataGridView控件中添加选中单元格中最小单元格与最大单元格中的所有单元格
                for (int i = 0; i < maxrow - (minrow - 1); i++)//遍历行数
                {
                    if (i >= RowCount)//如果超出要添加的行数
                        break;//退出循环
                    for (int j = 0; j < maxcell - (mincell - 1); j++)//遍历列数
                    {
                        if (j >= CellCount)//如果超出要添加的列数
                            break;//退出循环
                        if (Strarr[i, j]=="")//如果添加的单元格为空
                        {
                            if (Blank)//如果用*号替换空格
                                DGView.Rows[i + minrow].Cells[j + mincell].Value = "*";//用*号替换空单元格
                        }
                        else
                            DGView.Rows[i + minrow].Cells[j + mincell].Value = Strarr[i, j];//设置当前单元格的值
                    }
                }
            }
        }
예제 #32
0
 internal DataGridView CreateView()
 {
     var result = new DataGridView
     {
         RowHeadersVisible = false,
         SelectionMode = DataGridViewSelectionMode.RowHeaderSelect,
         MultiSelect = true
     };
     result.Columns.AddRange(Step.DataGridViewColumns().ToArray());
     result.Rows.AddRange(Steps.Select(item => item.CreateRowForStep()).ToArray());
     result.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
     result.CellClick += (a, b) => Steps[b.RowIndex].OnSelect(b.ColumnIndex, SourceView);
     return result;
 }
예제 #33
0
 public static void cargarGrilla(DataGridView grid, System.Data.DataTable dataTable)
 {
     grid.DataSource = dataTable;
     grid.AutoResizeColumns(); //ajusta el tamaño de las columnas y filas a su contenido
     grid.AutoResizeRows();
 }
예제 #34
0
        private void FillForm()
        {
            EnableDisableAllControls(true);
            // update title again
            UpdateTitle(issue);
            if (RedmineClientForm.RedmineVersion >= ApiVersion.V13x)
            {
                if (RedmineClientForm.RedmineVersion >= ApiVersion.V14x)
                {
                    ComboBoxAssignedTo.DataSource = DataCache.ProjectMembers;
                    ComboBoxAssignedTo.DisplayMember = "Name";
                    ComboBoxAssignedTo.ValueMember = "Id";
                }
                else
                    ComboBoxAssignedTo.Enabled = false;
                ComboBoxStatus.DataSource = DataCache.Statuses;
                ComboBoxStatus.DisplayMember = "Name";
                ComboBoxStatus.ValueMember = "Id";

                ComboBoxTargetVersion.DataSource = DataCache.Versions;
                ComboBoxTargetVersion.DisplayMember = "Name";
                ComboBoxTargetVersion.ValueMember = "Id";

                ComboBoxTracker.DataSource = DataCache.Trackers;
                ComboBoxTracker.DisplayMember = "Name";
                ComboBoxTracker.ValueMember = "Id";

                ComboBoxCategory.DataSource = DataCache.Categories;
                ComboBoxCategory.DisplayMember = "Name";
                ComboBoxCategory.ValueMember = "Id";

                //this.ListBoxWatchers.DataSource = RedmineClientForm.DataCache.Watchers;
                //this.ListBoxWatchers.DisplayMember = "Name";
                //this.ListBoxWatchers.ClearSelected();
            }
            else
            {
                ComboBoxAssignedTo.Enabled = false;
                ComboBoxStatus.Enabled = false;
                ComboBoxTargetVersion.Enabled = false;
                ComboBoxTracker.Enabled = false;
                ComboBoxCategory.Enabled = false;
                BtnCloseButton.Visible = false;
            }
            ComboBoxPriority.DataSource = Enumerations.IssuePriorities;
            ComboBoxPriority.DisplayMember = "Name";
            ComboBoxPriority.ValueMember = "Id";
            foreach (Enumerations.EnumerationItem i in Enumerations.IssuePriorities)
            {
                if (i.IsDefault)
                {
                    ComboBoxPriority.SelectedValue = i.Id;
                    break;
                }
            }

            if (this.type == DialogType.Edit)
            {
                if (issue.AssignedTo != null)
                {
                    if (RedmineClientForm.RedmineVersion >= ApiVersion.V14x)
                    {
                        ComboBoxAssignedTo.SelectedValue = issue.AssignedTo.Id;
                    }
                    else
                    {
                        ComboBoxAssignedTo.Items.Add(issue.AssignedTo);
                        ComboBoxAssignedTo.DisplayMember = "Name";
                        ComboBoxAssignedTo.ValueMember = "Id";
                        ComboBoxAssignedTo.SelectedItem = issue.AssignedTo;
                    }
                }

                if (issue.Description != null)
                {
                    issue.Description = Regex.Replace(issue.Description, "(?<!\r)\n", "\r\n");
                    TextBoxDescription.Text = issue.Description;
                }
                TextBoxEstimatedTime.Text = issue.EstimatedHours.ToString();
                numericUpDown1.Value = Convert.ToDecimal(issue.DoneRatio);
                ComboBoxPriority.SelectedValue = issue.Priority.Id;

                cbStartDate.Checked = issue.StartDate.HasValue;
                DateStart.Enabled = cbStartDate.Checked;
                if (issue.StartDate.HasValue)
                    DateStart.Value = issue.StartDate.Value;

                cbDueDate.Checked = issue.DueDate.HasValue;
                DateDue.Enabled = cbDueDate.Checked;
                if (issue.DueDate.HasValue)
                    DateDue.Value = issue.DueDate.Value;

                if (RedmineClientForm.RedmineVersion >= ApiVersion.V13x)
                {
                    ComboBoxStatus.SelectedValue = issue.Status.Id;
                    ComboBoxTracker.SelectedValue = issue.Tracker.Id;
                    if (issue.Category != null)
                        ComboBoxCategory.SelectedValue = issue.Category.Id;
                }
                else
                {
                    ComboBoxStatus.Items.Add(issue.Status);
                    ComboBoxStatus.DisplayMember = "Name";
                    ComboBoxStatus.ValueMember = "Id";
                    ComboBoxStatus.SelectedItem = issue.Status;
                    ComboBoxTracker.Items.Add(issue.Tracker);
                    ComboBoxTracker.DisplayMember = "Name";
                    ComboBoxTracker.ValueMember = "Id";
                    ComboBoxTracker.SelectedItem = issue.Tracker;
                    if (issue.Category != null)
                    {
                        ComboBoxCategory.Items.Add(issue.Category);
                        ComboBoxCategory.DisplayMember = "Name";
                        ComboBoxCategory.ValueMember = "Id";
                        ComboBoxCategory.SelectedItem = issue.Category;
                    }
                }
                TextBoxSubject.Text = issue.Subject;
                if (issue.FixedVersion != null)
                {
                    if (RedmineClientForm.RedmineVersion >= ApiVersion.V13x)
                    {
                        ComboBoxTargetVersion.SelectedValue = issue.FixedVersion.Id;
                    }
                    else
                    {
                        ComboBoxTargetVersion.Items.Add(issue.FixedVersion);
                        ComboBoxTargetVersion.DisplayMember = "Name";
                        ComboBoxTargetVersion.ValueMember = "Id";
                        ComboBoxTargetVersion.SelectedItem = issue.FixedVersion;
                    }
                }

                if (issue.CustomFields != null && issue.CustomFields.Count != 0)
                {
                    List<ClientCustomField> customFields = new List<ClientCustomField>();
                    foreach (IssueCustomField cf in issue.CustomFields)
                    {
                        ClientCustomField field = new ClientCustomField();
                        field.Name = cf.Name;
                        if (cf.Values != null && cf.Values.Count != 0)
                        {
                            foreach (CustomFieldValue cfv in cf.Values)
                            {
                                if (field.Value == null)
                                    field.Value = cfv.Info;
                                else
                                    field.Value += ", " + cfv.Info;
                            }
                        }
                        customFields.Add(field);
                    }
                    DataGridViewCustomFields.DataSource = customFields;
                    DataGridViewCustomFields.RowHeadersVisible = false;
                    DataGridViewCustomFields.ColumnHeadersVisible = false;
                    try // Very ugly trick to fix the mono crash reported in the SF.net forum
                    {
                        DataGridViewCustomFields.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
                    }
                    catch (Exception) { }
                    DataGridViewCustomFields.Columns["Value"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                }
                else
                    DataGridViewCustomFields.Visible = false;

                if (issue.Attachments != null)
                {
                    dataGridViewAttachments.RowHeadersVisible = false;
                    dataGridViewAttachments.ColumnHeadersVisible = false;
                    AttachAttachements(issue.Attachments);
                }

                // if the issue has children, show them.
                if (issue.Children != null && issue.Children.Count > 0)
                {
                    LabelChildren = new Label();
                    LabelChildren.AutoSize = true;
                    LabelChildren.Location = new System.Drawing.Point(TextBoxDescription.Location.X, linkEditInRedmine.Location.Y);
                    LabelChildren.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
                    LabelChildren.Name = "LabelChildren";
                    LabelChildren.Size = new System.Drawing.Size(44, 13);
                    LabelChildren.TabIndex = 4;
                    LabelChildren.Text = Lang.LabelChildren;
                    LabelChildren.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
                    Controls.Add(LabelChildren);

                    DataGridViewChildren = new DataGridView();
                    DataGridViewChildren.AllowUserToAddRows = false;
                    DataGridViewChildren.AllowUserToDeleteRows = false;
                    DataGridViewChildren.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
                    DataGridViewChildren.Location = new System.Drawing.Point(TextBoxDescription.Location.X, linkEditInRedmine.Location.Y + 19);
                    DataGridViewChildren.MultiSelect = false;
                    DataGridViewChildren.Name = "DataGridViewChildren";
                    DataGridViewChildren.ReadOnly = true;
                    DataGridViewChildren.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
                    DataGridViewChildren.Size = new System.Drawing.Size(TextBoxDescription.Width, 69);
                    DataGridViewChildren.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.DataGridViewChildren_CellFormatting);
                    DataGridViewChildren.TabIndex = 26;
                    DataGridViewChildren.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
                    DataGridViewChildren.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
                    DataGridViewChildren.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DataGridViewChildren_CellDoubleClick);
                    Controls.Add(DataGridViewChildren);
                    DataGridViewChildren.DataSource = issue.Children;
                    try // Very ugly trick to fix the mono crash reported in the SF.net forum
                    {
                        DataGridViewChildren.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
                    }
                    catch (Exception) { }

                    DataGridViewChildren.RowHeadersWidth = 20;
                    foreach (DataGridViewColumn column in DataGridViewChildren.Columns)
                    {
                        if (column.Name != "Id" && column.Name != "Subject")
                        {
                            column.Visible = false;
                        }
                    }
                    DataGridViewChildren.Columns["Id"].DisplayIndex = 0;
                    DataGridViewChildren.Columns["Subject"].DisplayIndex = 1;
                    DataGridViewChildren.Columns["Subject"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    SuspendLayout();
                    // first set size, then alter minimum size; otherwise dialog is expanded twice.
                    Size = new System.Drawing.Size(Size.Width, Size.Height + ChildrenHeight);
                    MinimumSize = new System.Drawing.Size(MinimumSize.Width, MinimumSize.Height + ChildrenHeight);
                    linkEditInRedmine.MoveControl(0, ChildrenHeight);
                    BtnCancelButton.MoveControl(0, ChildrenHeight);
                    BtnCloseButton.MoveControl(0, ChildrenHeight);
                    BtnSaveButton.MoveControl(0, ChildrenHeight);
                    ResumeLayout(false);
                }

                if (issue.ParentIssue != null && issue.ParentIssue.Id != 0)
                {
                    LabelParent = new Label();
                    LabelParent.AutoSize = true;
                    System.Drawing.Font defaultFont = (System.Drawing.Font)labelDescription.Font.Clone();
                    LabelParent.Font = new System.Drawing.Font(defaultFont.FontFamily, defaultFont.Size, System.Drawing.FontStyle.Italic, defaultFont.Unit, defaultFont.GdiCharSet);
                    LabelParent.Location = new System.Drawing.Point(TextBoxDescription.Location.X, linkEditInRedmine.Location.Y);
                    LabelParent.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
                    LabelParent.Name = "LabelParent";
                    LabelParent.Size = new System.Drawing.Size(44, 13);
                    LabelParent.TabIndex = 4;
                    LabelParent.Text = String.Format(Lang.LabelParent, issue.ParentIssue.Id, issue.ParentIssue.Name);
                    LabelParent.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
                    Controls.Add(LabelParent);
                    SuspendLayout();
                    // first set size, then alter minimum size; otherwise dialog is expanded twice.
                    Size = new System.Drawing.Size(Size.Width, Size.Height + ParentHeight);
                    MinimumSize = new System.Drawing.Size(MinimumSize.Width, MinimumSize.Height + ParentHeight);
                    linkEditInRedmine.MoveControl(0, ParentHeight);
                    BtnCancelButton.MoveControl(0, ParentHeight);
                    BtnCloseButton.MoveControl(0, ParentHeight);
                    BtnSaveButton.MoveControl(0, ParentHeight);
                    ResumeLayout(false);
                    if (Size.Width < LabelParent.Width + 30)
                        Size = new System.Drawing.Size(LabelParent.Width + 30, Size.Height);
                    if (MinimumSize.Width < LabelParent.Width + 30)
                        MinimumSize = new System.Drawing.Size(LabelParent.Width + 30, MinimumSize.Height);
                }

                // if the issue has relations, show them.
                if (issue.Relations != null && issue.Relations.Count > 0)
                {
                    LabelRelations = new Label();
                    LabelRelations.AutoSize = true;
                    LabelRelations.Location = new System.Drawing.Point(TextBoxDescription.Location.X, linkEditInRedmine.Location.Y);
                    LabelRelations.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
                    LabelRelations.Name = "LabelRelations";
                    LabelRelations.Size = new System.Drawing.Size(44, 13);
                    LabelRelations.TabIndex = 4;
                    LabelRelations.Text = Lang.LabelRelations;
                    LabelRelations.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
                    Controls.Add(LabelRelations);

                    DataGridViewRelations = new DataGridView();
                    DataGridViewRelations.AllowUserToAddRows = false;
                    DataGridViewRelations.AllowUserToDeleteRows = false;
                    DataGridViewRelations.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
                    DataGridViewRelations.Location = new System.Drawing.Point(TextBoxDescription.Location.X, linkEditInRedmine.Location.Y + 19);
                    DataGridViewRelations.MultiSelect = false;
                    DataGridViewRelations.Name = "DataGridViewRelations";
                    DataGridViewRelations.ReadOnly = true;
                    DataGridViewRelations.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
                    DataGridViewRelations.Size = new System.Drawing.Size(TextBoxDescription.Width, 69);
                    DataGridViewRelations.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.DataGridViewRelations_CellFormatting);
                    DataGridViewRelations.TabIndex = 26;
                    DataGridViewRelations.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
                    DataGridViewRelations.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
                    DataGridViewRelations.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DataGridViewRelations_CellDoubleClick);

                    Controls.Add(DataGridViewRelations);
                    DataGridViewRelations.DataSource = issueRelations;
                    try // Very ugly trick to fix the mono crash reported in the SF.net forum
                    {
                        DataGridViewRelations.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
                    }
                    catch (Exception) { }
                    DataGridViewRelations.RowHeadersWidth = 20;
                    foreach (DataGridViewColumn column in DataGridViewRelations.Columns)
                    {
                        if (column.Name != "Id"
                            && column.Name != "IssueToSubject"
                            && column.Name != "Type"
                            && column.Name != "IssueToStatus")
                        {
                            column.Visible = false;
                        }
                    }
                    DataGridViewRelations.Columns["Type"].DisplayIndex = 0;
                    DataGridViewRelations.Columns["Type"].HeaderText = "Relation";
                    DataGridViewRelations.Columns["Id"].DisplayIndex = 1;
                    DataGridViewRelations.Columns["IssueToSubject"].DisplayIndex = 2;
                    DataGridViewRelations.Columns["IssueToSubject"].HeaderText = "Subject";
                    DataGridViewRelations.Columns["IssueToSubject"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    DataGridViewRelations.Columns["IssueToStatus"].DisplayIndex = 3;
                    DataGridViewRelations.Columns["IssueToStatus"].HeaderText = "Status";

                    SuspendLayout();
                    // first set size, then alter minimum size; otherwise dialog is expanded twice.
                    Size = new System.Drawing.Size(Size.Width, Size.Height + RelationsHeight);
                    MinimumSize = new System.Drawing.Size(MinimumSize.Width, MinimumSize.Height + RelationsHeight);
                    linkEditInRedmine.MoveControl(0, RelationsHeight);
                    BtnCancelButton.MoveControl(0, RelationsHeight);
                    BtnCloseButton.MoveControl(0, RelationsHeight);
                    BtnSaveButton.MoveControl(0, RelationsHeight);
                    ResumeLayout(false);
                }
            }
            else // type new
            {
                cbStartDate.Checked = true;
                DateStart.Enabled = cbStartDate.Checked;
                DateDue.Enabled = cbDueDate.Checked;
            }
        }