2011-08-18 3 views
5

У меня есть представление данных сетки с именем колонки продукта и изображения продукта и я заселять эти значения исходя из базы данных ...Невозможно отобразить полное изображение в DataGridView клетки

я использую WinForms настольное приложение .... .

моя проблема в том, что я не в состоянии показывать изображение в DataGridView ячейки правильно ..see диаграмму ниже total grid view image

я хочу, чтобы отобразить это изображение в фактической колонке изображения продукта для каждой ячейки в этом столбце actual image need to show in every row

эта задача очень проста в WebForms с помощью DataList управления, но я не знаю, как отобразить полное изображение в виде сетки ячейки

может любой помощи по этому вопросу ....

большое спасибо .... ...

и это, где я связыванию DataGridView с помощью Linq запрос ..

 private void EquipmentFinder_Load(object sender, EventArgs e) 
    { 

     var products = from prods in abc.products 
         select new 
         { 
          productid = prods.product_Id, //0        
          productname = prods.product_Name, //1 
          productimage = prods.product_Image, //2 
          productprice = prods.product_Price,//3 
          productdescr = prods.product_Description, //4 

         }; 
     productbindingsource.DataSource = products; 
     productgridview.DataSource = productbindingsource; 
     productgridview.Columns[0].Visible = false; 
     productgridview.Columns[3].Visible = false; 
     productgridview.Columns[4].Visible = false; 
    } 

ответ

9

Установите ImageLayout столбца на значение Stretch, чтобы решить эту проблему.

UPDATE: использовать следующий код, чтобы изменить свойство ImageLayout:

for(int i = 0; i < dataGridView1.Columns.Count; i ++) 
       if(dataGridView1.Columns[i] is DataGridViewImageColumn) { 
        ((DataGridViewImageColumn)dataGridView1.Columns[i]).ImageLayout = DataGridViewImageCellLayout.Stretch; 
        break; 
       } 
+0

Я не определяю столбцы от дизайнера. Я просто привязываю детали из базы данных, используя запрос linq. –

+0

Я обновил свой ответ ... – platon

+0

как найти gridviewimagecolumn .. i dint touch designer.cs см. Мой обновленный код. . –

0

Set DataGridViewImageColumn.ImageLayout свойство DataGridViewImageCellLayout.Zoom

Если установлено значение "Растянуть" ваше изображение будет inproportionally масштабируется, чтобы соответствовать целой ячейке. И это, вероятно, не то, что вы хотите.

Установить для увеличения, чтобы иметь Графика равномерно увеличена до тех пор, пока она не заполнит ширину или высоту ячейки.

По умолчанию значение установлено в «Normal»: Графика будет отображаться в центре с использованием собственного разрешения.

0

первый щелчок правой кнопкой мыши по сетке перейти к свойствам сетки, в результате чего вы получите свойства столбца (коллекции), щелкните по нему. нажмите на столбец изображения, в котором будет отображаться макет внешнего вида - и выберите свойство растяжения, вы также можете увеличить размер столбца изображения. его действительно полезно в этом случае. Вам не нужен такой код.

Смежные вопросы