前提・実現したいこと
C#(フォームアプリ)にて、SQLServerに保存した画像を他のカラムと同時にSelect文で読み出しDataTableに保存、それをdataGridViewのDataSourceにセットし画像を表示することはできましたが、
表示された画像をZoomにできません。
画像をセットした後、Zoomにする方法はあるのでしょうか?
宜しくお願いします。
発生している問題・エラーメッセージ
ネット検索したのですが、ZoomにしたColumnをdataGridViewにAddする方法はあるのですが…
該当のソースコード
[C#]
//DataTbleの準備
System.Data.DataTable dt = new System.Data.DataTable();
DataRow dr;
//DataTableカラム追加
dt.Columns.Add("品目コード", typeof(String));
dt.Columns.Add("品目名", typeof(String));
dt.Columns.Add("画像", typeof(Image));
using (SqlConnection connection = new SqlConnection(((Form01メイン)this.Owner).DB接続文字列))
using (SqlCommand command = new SqlCommand())
{
connection.Open();
command.Connection = connection;
command.CommandText = "SQL(略)"; SqlDataReader reader = command.ExecuteReader(); //SQLを実行。 if (reader.HasRows == true) { //レコード有り! while (reader.Read()) { dr = dt.NewRow(); dr["品目コード"] = reader["品目コード"].ToString(); dr["品目名"] = reader["品目名"].ToString(); //画像を格納!!! Byte[] byteBLOBData = new Byte[0]; if ((reader["画像"]) == DBNull.Value) { } else { byteBLOBData = (Byte[])(reader["画像"]); Image img = ByteArrayToImage(byteBLOBData); dr["画像"] = img; } dt.Rows.Add(dr); } } else { //レコード無し } reader.Close();
}
dataGridView品目リスト.DataSource = dt;
dataGridView品目リスト.Columns[2].???
???= DataGridViewImageCellLayout.Zoom; //←←←ここでZoomにしたいが、うまくいきません(TT)
…続く
//[参考にさせて頂いたサイト] https://www.atmarkit.co.jp/ait/articles/0706/07/news139.html // Imageオブジェクトをバイト配列に変換 public static byte[] ImageToByteArray(Image img) { ImageConverter imgconv = new ImageConverter(); byte[] b = (byte[])imgconv.ConvertTo(img, typeof(byte[])); return b; } // バイト配列をImageオブジェクトに変換 public static Image ByteArrayToImage(byte[] b) { ImageConverter imgconv = new ImageConverter(); Image img = (Image)imgconv.ConvertFrom(b); return img; }
試したこと
いろいろと
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー