1

SQL Server 2008データベースからpictureBoxに画像を表示するこのコードがあります

using (SqlCommand SqlCommand = new SqlCommand("Select * From Student Where StudentID = @a", myDatabaseConnection))
{
   SqlCommand.Parameters.AddWithValue("@a", SearchtextBox.Text);

   DataSet DS = new DataSet();

   SqlDataAdapter da = new SqlDataAdapter(SqlCommand);
   da.Fill(DS, "Images");

   dataGridView1.DataSource = DS.Tables[0];
   var imagesTable = DS.Tables["Images"];
   var imagesRows = imagesTable.Rows;
   var count = imagesRows.Count;

   if (count <= 0)
      return;

   var imageColumnValue = imagesRows[count - 1]["Image"];

   if (imageColumnValue == DBNull.Value)
      return;

   var data = (Byte[])imageColumnValue;

   using (var stream = new MemoryStream(data))
   {
       pictureBox1.Image = Image.FromStream(stream);
   }

しかし、表示される画像は、ストレッチに設定してもBackgroundImageLayoutストレッチされません

私もこれを試しました:

using (var stream = new MemoryStream(data))
{
    pictureBox1.Image = Image.FromStream(stream);
    pictureBox1.BackgroundImageLayout = ImageLayout.Stretch; 
}
4

1 に答える 1

1

あなたの問題は、 と の間PictureBox.Imageで混同されてPictureBox.BackgroundImageいるため、コードは次のいずれかである必要があります。

using (var stream = new MemoryStream(data))
{
  pictureBox1.BackgroundImage = Image.FromStream(stream);
  pictureBox1.BackgroundImageLayout = ImageLayout.Stretch; 
}

//or

using (var stream = new MemoryStream(data))
{
  pictureBox1.Image = Image.FromStream(stream);
  pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; 
}
于 2013-08-04T03:41:51.610 に答える