Click here to Skip to main content
15,889,877 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
OUR DEARS,
I am try to strech un image to datagridviewimagecolumn cell in c# instead of that the selected row heigh increased according to un image hegh.

ing System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace نظام_العلاوة_السنوية
{
    public partial class Form4 : Form
    {
        public Form4()
        {
            InitializeComponent();
        }
        public Form refToForm2 { get; set; }

        private void Form4_Load(object sender, EventArgs e)
        {
            
            WindowState = FormWindowState.Maximized;
            this.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
            this.BackColor = Color.Beige;
            this.ForeColor = Color.Brown;
            this.Text = "أستمارة اضافة منتسب جديد";
            //
           // public DataGridViewImageCellLayout ImageLayout {get; set;}
          //  public System.Windows.Forms.DataGridViewImageCellLayout
            dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.Beige;
            dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = Color.Brown;
            dataGridView1.ColumnHeadersDefaultCellStyle.Font = new Font(dataGridView1.Font, FontStyle.Bold);
            dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
            dataGridView1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
            // Resize all the row height to fit the contents of all non - header cells .
            dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
            // Full row selection
            dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            dataGridView1.MultiSelect = true;
            //
            dataGridView1.ColumnCount = 11;
            dataGridView1.Columns[0].Name = "الرقم الرمزي";
            dataGridView1.Columns[1].Name = "الأسم";
            dataGridView1.Columns[2].Name = "تاريخ التعيين";
            dataGridView1.Columns[3].Name = "تاريخ آخر ترقية أو علاوة";
            dataGridView1.Columns[4].Name = "تاريخ الحصول على الشهادة";
            dataGridView1.Columns[5].Name = "الأجازات الأعتيادية";
            dataGridView1.Columns[6].Name = "الأجازات المرضية";
            dataGridView1.Columns[7].Name = "الأجازات بدون راتب";
            dataGridView1.Columns[8].Name = "الأجازات الدراسية";
            dataGridView1.Columns[9].Name = "التقييم";
            dataGridView1.Columns[10].Name = "درجة التقييم";
            // populate the rows
            string[] row1 = new string[] {"59308","أحسان محمود عباس", "29/10/1987", "18/10/2017", "13/07/1987", "10", "07", "", "", "جيد جدا", "85" };
            string[] row2 = new string[] { "12345", "غالب أحمد سلمان", "01/01/1993", "18/10/2017", "01/01/1993", "10", "07", "05", "", "", "جيد جدا" };
            object[] rows = new object[] { row1, row2 };
            foreach (string[] rowArray in rows)
            {
                dataGridView1.Rows.Add(rowArray);
            }
            // populate combobox column
            DataGridViewComboBoxColumn cmb = new DataGridViewComboBoxColumn();
            cmb.HeaderText = "الأستحقاق";
            cmb.Name = "Name";
            cmb.MaxDropDownItems = 2;
            cmb.Items.Add("يستحق");
            cmb.Items.Add("لا يستحق");
            dataGridView1.Columns.Add(cmb);
           // Adding image column
            DataGridViewImageColumn imgCol = new DataGridViewImageColumn();
            imgCol.HeaderText = "الصورة";
            imgCol.Name = "img";
            dataGridView1.Columns.Add(imgCol);
            Image img = Image.FromFile("C:\\Users\\user\\Desktop\\fsc3.jpg");
            for (int i = 0; i < dataGridView1.Columns.Count; i++ )
            {
                if (dataGridView1.Columns[i] is DataGridViewImageColumn)
                {
                    dataGridView1.Rows[0].Cells[12].Value = img;
                    ((DataGridViewImageColumn)dataGridView1.Columns[12]).ImageLayout = DataGridViewImageCellLayout.Stretch;
                }
            }
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.dataGridView1.Rows.Add();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if(this.dataGridView1.SelectedRows.Count > 0 && this.dataGridView1.SelectedRows[0].Index != this.dataGridView1.Rows.Count -1)
            {
                this.dataGridView1.Rows.RemoveAt(this.dataGridView1.SelectedRows[0].Index);
            }
        }

             
        
    }
}


What I have tried:

Image img = Image.FromFile("C:\\Users\\user\\Desktop\\fsc3.jpg");
           for (int i = 0; i < dataGridView1.Columns.Count; i++ )
           {
               if (dataGridView1.Columns[i] is DataGridViewImageColumn)
               {
                   dataGridView1.Rows[0].Cells[12].Value = img;
                   ((DataGridViewImageColumn)dataGridView1.Columns[12]).ImageLayout = DataGridViewImageCellLayout.Stretch;
               }
           }


and try :
row.heght = 30;
Posted
Updated 29-Nov-17 1:08am

1 solution

Hello, problem is in :

// Resize all the row height to fit the contents of all non - header cells .
            dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;


I think that You should set 'AutoSizeRowsMode' property of 'DataGridView1' to 'None'.


All the best,
Željko Perić
 
Share this answer
 
Comments
Member 10383159 3-Dec-17 1:43am    
Thank you in advanced for your interest ,but our problem did not solved .

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900