windows - Datagridsvisning i vindform er ikke større end indholdet

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at ændre størrelsen på datagridsvisningen i Windows-formularen. Der er to datagridsvisninger på min formular, og begge er fodret fra databasen. Er der noget, jeg kan ændre størrelsen på datagridsvisningen til venstre, så den vokser med indholdets længde og bredde, og datagridsvisningen krymper med indholdet.


Herunder er min kode


private void show\_Click(object sender, EventArgs e)
    {

        int rowIndex = Convert.ToInt32(productGridView.SelectedRows[0].Cells[2].Value);
        //IEnumerable<Supplier> supplierQuery = from supplier in newNorthWindContext.Suppliers
        //                                      where supplier.SupplierID == rowIndex
        //                                      select new {} supplier;
        IEnumerable<Supplier> supplierQuery = newNorthWindContext.Suppliers.Where(supliers => supliers.SupplierID == rowIndex);

        supplierDataGridView.DataSource = ((ObjectQuery)supplierQuery).Execute(MergeOption.AppendOnly);
        supplierDataGridView.Columns["SupplierID"].Visible = false;
        supplierDataGridView.Columns["ContactTitle"].Visible = false;
        supplierDataGridView.Columns["Address"].Visible = false;
        supplierDataGridView.Columns["City"].Visible = false;
        supplierDataGridView.Columns["Region"].Visible = false;
        supplierDataGridView.Columns["PostalCode"].Visible = false;
        supplierDataGridView.Columns["ContactTitle"].Visible = false;
        supplierDataGridView.Columns["Address"].Visible = false;

        //supplierDataGridView.AutoResizeColumns();
        supplierDataGridView.AutoSizeColumnsMode =
   DataGridViewAutoSizeColumnsMode.AllCells;

    }
    private void categoryDropDown\_SelectedIndexChanged(object sender, EventArgs e)
    {
        Category category = (Category)this.categoryDropDown.SelectedItem;

        try
        {
            productGridView.DataSource = category.Products;
            productGridView.Columns["SupplierID"].Visible = false;
            productGridView.Columns["CategoryID"].Visible = false;
            productGridView.Columns["Category"].Visible = false;
            productGridView.Columns["Order\_Details"].Visible = false;
            productGridView.Columns["Supplier"].Visible = false;
            productGridView.AllowUserToDeleteRows = true;
            productGridView.AutoResizeColumns();
            productGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }



    private void ProductDetail\_Load(object sender, EventArgs e)
    {

        newNorthWindContext = new NorthwindEntities();
        productGridView.AutoSizeColumnsMode =
    DataGridViewAutoSizeColumnsMode.AllCells;
        IEnumerable<Category> categoryQuery = from category in newNorthWindContext.Categories.Include("Products")
                                              orderby category.CategoryName
                                              select category;


        try
        {

            this.categoryDropDown.DataSource = ((ObjectQuery)categoryQuery).Execute(MergeOption.AppendOnly);
            this.categoryDropDown.DisplayMember = "categoryName";
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }


Indtast billedbeskrivelse her

Bedste reference


Dette løser problemet.


supplierDataGridView.Width = supplierDataGridView.Columns.GetColumnsWidth(DataGridViewElementStates.Visible)+4;

Andre referencer 1


i slutningen af ​​show\_Click skal du have noget lignende


supplierDataGridView.Width = supplierDataGridView.Columns.Sum(x => x.Width) + supplierDataGridView.RowHeadersWidth + 2;

supplierDataGridView.Height = supplierDataGridView.GetRowDisplayRectangle(supplierDataGridView.NewRowIndex, true).Bottom + supplierDataGridView.GetRowDisplayRectangle(supplierDataGridView.NewRowIndex, false).Height;


Jeg håber det hjælper!