Hejsan!
Har ett problem som är frustrerande, jag skickar in bilder från en databas in i en tablelayout och när jag klickar på nästa sida så fryser sig programmet tills bilderna är laddade.
Här är kod som är relevant till vad jag håller på med.
[PHP]
private void listEx()
{
int p = (page * 20);
MySqlCommand mc = new MySqlCommand("SELECT", myConn);
MySqlDataReader reader;
myConn.Open();
reader = mc.ExecuteReader();
int column = 0;
int row = 0;
string id = "";
if (!init_layout)
init_layout(5, 4);
SendMessage(Layout.Handle, WM_SETREDRAW, false, 0);
while (reader.Read())
{
id = reader.GetString(0);
image = new PictureBox();
image.Name = id;
image.Image = LoadImage(reader.GetString(1));
image.Dock = DockStyle.Fill;
image.SizeMode = PictureBoxSizeMode.StretchImage;
image.BringToFront();
Layout.Controls.Add(image, column, row);
column++;
if (column == 5)
{
column = 0;
row++;
}
}
SendMessage(Layout.Handle, WM_SETREDRAW, true, 0);
Layout.Refresh();
foreach(Control pic in Layout.Controls)
{
pic.Click += delegate(object sender, EventArgs e)
{ view(this, null, pic.Name); };
}
myConn.Close();
}
private Image LoadImage(string url)
{
System.Net.WebRequest request =
System.Net.WebRequest.Create(url);
System.Net.WebResponse response = request.GetResponse();
System.IO.Stream responseStream =
response.GetResponseStream();
Bitmap bmp = new Bitmap(responseStream);
responseStream.Dispose();
return bmp;
}
[/PHP]
Saken är den att jag vill ha en gif som visar att den laddar, men den fryser ju också så att den står stilla tills programmet är responsivt igen.
Har ett problem som är frustrerande, jag skickar in bilder från en databas in i en tablelayout och när jag klickar på nästa sida så fryser sig programmet tills bilderna är laddade.
Här är kod som är relevant till vad jag håller på med.
[PHP]
private void listEx()
{
int p = (page * 20);
MySqlCommand mc = new MySqlCommand("SELECT", myConn);
MySqlDataReader reader;
myConn.Open();
reader = mc.ExecuteReader();
int column = 0;
int row = 0;
string id = "";
if (!init_layout)
init_layout(5, 4);
SendMessage(Layout.Handle, WM_SETREDRAW, false, 0);
while (reader.Read())
{
id = reader.GetString(0);
image = new PictureBox();
image.Name = id;
image.Image = LoadImage(reader.GetString(1));
image.Dock = DockStyle.Fill;
image.SizeMode = PictureBoxSizeMode.StretchImage;
image.BringToFront();
Layout.Controls.Add(image, column, row);
column++;
if (column == 5)
{
column = 0;
row++;
}
}
SendMessage(Layout.Handle, WM_SETREDRAW, true, 0);
Layout.Refresh();
foreach(Control pic in Layout.Controls)
{
pic.Click += delegate(object sender, EventArgs e)
{ view(this, null, pic.Name); };
}
myConn.Close();
}
private Image LoadImage(string url)
{
System.Net.WebRequest request =
System.Net.WebRequest.Create(url);
System.Net.WebResponse response = request.GetResponse();
System.IO.Stream responseStream =
response.GetResponseStream();
Bitmap bmp = new Bitmap(responseStream);
responseStream.Dispose();
return bmp;
}
[/PHP]
Saken är den att jag vill ha en gif som visar att den laddar, men den fryser ju också så att den står stilla tills programmet är responsivt igen.