1

各DatagridviewImageCellを見つけて、そのセルの画像がズームされるようにそのプロパティImageLayoutをに設定しようとしています。DataGridViewImageCellLayout.Zoomこのコードを使用していますが、エラーが発生します:Unable to cast object of type 'System.Windows.Forms.DataGridViewRow' to type 'System.Windows.Forms.DataGridViewImageCell'.ここ:(DataGridViewImageCell Imgrow in dataGridView1.Rows。これは私が使用しているコードです。

                    foreach (DataGridViewImageCell Imgrow in dataGridView1.Rows)
                {                       
                    if (dataGridView1.Rows[a].Cells[1].Value == "Image")
                    {
                        Imgrow.ImageLayout = DataGridViewImageCellLayout.Zoom;
                    }
                }

どうすれば修正できますか?また、列はtexbox列ですが、これを使用してセルを置き換えています。

int a = 0;
dataGridView1.Rows.Insert(0, 1);
dataGridView1.Rows[a].Cells["Column1"] = new DataGridViewImageCell();
dataGridView1.Rows[a].Cells["Column1"].Value = picturebox1.Image; 
4

1 に答える 1

3

行オブジェクトを使用して行をループしてから、セルオブジェクトを使用してセルをループする必要があります。

このようなもの:

foreach (DataGridViewRow dr in dataGridView1.Rows) {
  foreach (DataGridViewCell dc in dr.Cells) {
    if (dc.GetType() == typeof(DataGridViewImageCell)) {
      ((DataGridViewImageCell)dc).ImageLayout = DataGridViewImageCellLayout.Zoom;
    }
  }
}
于 2012-07-19T22:53:30.280 に答える