C#.NET,如果加载了图像
我需要知道我的图片库是否加载了图片。 我创建它们并给它们一个图像位置。图片确实在一段时间后加载,但我需要检查它是否已加载。我试着用C#.NET,如果加载了图像,c#,.net,loading,splash-screen,C#,.net,Loading,Splash Screen,我需要知道我的图片库是否加载了图片。 我创建它们并给它们一个图像位置。图片确实在一段时间后加载,但我需要检查它是否已加载。我试着用 if(pb.ImageLocation != null){ Console.WriteLine("Loaded!"); } 但这表明它已加载,即使它实际上没有加载。我还有一堆动态创建的图片盒: void CreateBrick(int x,int y) { bricks[i] = new PictureBox(); bric
if(pb.ImageLocation != null){
Console.WriteLine("Loaded!");
}
但这表明它已加载,即使它实际上没有加载。我还有一堆动态创建的图片盒:
void CreateBrick(int x,int y)
{
bricks[i] = new PictureBox();
bricks[i].Name = "pb_b" + i.ToString();
bricks[i].Location = new Point(y, x);
bricks[i].Size = new Size(60, 60);
bricks[i].ImageLocation = @"Images/brick_wall.jpg";
pb_bg.Controls.Add(bricks[i]);
brick.Add(bricks[i]);
i++;
}
我不知道如何检查这些…在按照描述的方式指定图像位置后,是否可以尝试使用PictureBox的
LoadCompleted
事件
当然,您可以确保异步加载图像
pb.WaitOnLoad = false;
然后异步加载映像:
pb.LoadAsync("some.gif");
有关stackoverflow的更多信息,请查看
按如下方式分配事件处理程序:
pb.LoadCompleted += PictureBox1_LoadCompleted;
示例事件处理程序的右起位置:
在按照描述的方式指定ImageLocation后,是否可以尝试使用PictureBox的
LoadCompleted
事件
当然,您可以确保异步加载图像
pb.WaitOnLoad = false;
然后异步加载映像:
pb.LoadAsync("some.gif");
有关stackoverflow的更多信息,请查看
按如下方式分配事件处理程序:
pb.LoadCompleted += PictureBox1_LoadCompleted;
示例事件处理程序的右起位置:
代码中的问题是没有调用or方法 如果使用Load方法,则在调用后加载映像;如果使用LoadAsync,则可以为LoadComplete事件添加事件处理程序
bricks[i].LoadCompleted += onLoadComplete;
bricks[i].LoadAsync(@"Images/brick_wall.jpg");
....
private void onLoadComplete(Object sender, AsyncCompletedEventArgs e)
{
// Don't forget to check if the image has been really loaded,
// this event fires also in case of errors.
if (e.Error == null && !e.Cancelled)
Console.WriteLine("Image loaded");
else if (e.Cancelled)
Console.WriteLine("Load cancelled");
else
Console.WriteLine("Error:" + e.Error.Message);
}
如果您想使用LoadAsync方法,您仍然必须解决如何将特定图像的完整加载匹配到相关图片框的问题。这可以使用LoadAsync的sender参数来解决。此发件人参数是已完成图像加载的PictureBox。您可以使用Tag属性并将其设置为“1”,以将picturebox标记为已加载,并在出现问题时显示错误消息
private void onLoadComplete(Object sender, AsyncCompletedEventArgs e)
{
PictureBox pic = sender as PictureBox;
// Don't forget to check if the image has been really loaded,
// this event fires also in case of errors.
if (e.Error == null && !e.Cancelled)
{
pic.Tag = "1";
Console.WriteLine("Image loaded");
}
else
{
pic.Tag = e.Error.Message;
Console.WriteLine("Cancelled:" + e.Error.Message);
}
}
在此之后,bricks数组中的PictureBox将其标记属性标记为“1”,对于加载的PictureBox,将其标记为“1”,对于出现错误的PictureBox,将显示一条错误消息。代码中的问题是,您没有调用or方法
private stattic bool CheckUplodedImage()
{
bool return = false;
try
{
PictureBox imageControl = new PictureBox();
imageControl.Width = 60;
imageControl.Height = 60;
Bitmap image = new Bitmap("Images/brick_wall.jpg");
imageControl.Image = (Image)image;
Controls.Add(imageControl);
return true;
}
catch(Exception ex)
{
return false;
}
}
如果使用Load方法,则在调用后加载映像;如果使用LoadAsync,则可以为LoadComplete事件添加事件处理程序
bricks[i].LoadCompleted += onLoadComplete;
bricks[i].LoadAsync(@"Images/brick_wall.jpg");
....
private void onLoadComplete(Object sender, AsyncCompletedEventArgs e)
{
// Don't forget to check if the image has been really loaded,
// this event fires also in case of errors.
if (e.Error == null && !e.Cancelled)
Console.WriteLine("Image loaded");
else if (e.Cancelled)
Console.WriteLine("Load cancelled");
else
Console.WriteLine("Error:" + e.Error.Message);
}
如果您想使用LoadAsync方法,您仍然必须解决如何将特定图像的完整加载匹配到相关图片框的问题。这可以使用LoadAsync的sender参数来解决。此发件人参数是已完成图像加载的PictureBox。您可以使用Tag属性并将其设置为“1”,以将picturebox标记为已加载,并在出现问题时显示错误消息
private void onLoadComplete(Object sender, AsyncCompletedEventArgs e)
{
PictureBox pic = sender as PictureBox;
// Don't forget to check if the image has been really loaded,
// this event fires also in case of errors.
if (e.Error == null && !e.Cancelled)
{
pic.Tag = "1";
Console.WriteLine("Image loaded");
}
else
{
pic.Tag = e.Error.Message;
Console.WriteLine("Cancelled:" + e.Error.Message);
}
}
在此之后,砖块数组中的PictureBox将其标记属性标记为“1”,用于加载的砖块,并为出现错误的砖块显示错误消息
private stattic bool CheckUplodedImage()
{
bool return = false;
try
{
PictureBox imageControl = new PictureBox();
imageControl.Width = 60;
imageControl.Height = 60;
Bitmap image = new Bitmap("Images/brick_wall.jpg");
imageControl.Image = (Image)image;
Controls.Add(imageControl);
return true;
}
catch(Exception ex)
{
return false;
}
}
你能检查一下它的归还情况吗
bool isUploded = CheckUplodedImage();
if(isUploded)
{
\\ ...uploaded
\\ Perform Operation
}
else
\\ not uploaded
你能检查一下它的归还情况吗
bool isUploded = CheckUplodedImage();
if(isUploded)
{
\\ ...uploaded
\\ Perform Operation
}
else
\\ not uploaded
在哪里检查这些图像是否已加载?在这里,您可以动态创建pictureboxes,当然它们没有加载图像。您可以在图像定位时使用StringObject of stringI在单独的线程中进行检查。您在哪里检查这些图像是否加载?在这里,您可以动态创建pictureboxes,当然,它们没有加载图像。您可以在图像定位时使用StringObject of stringI进行检查。我在单独的线程中进行检查。这如何判断图像何时加载?如果没有图像,它将无法加载。但是,它仍然无法回答问题,因此,如果调用Load,则它不是应答。如果调用是同步的,则在调用之后加载映像。如果调用LoadAsync,则使用事件处理程序。我已经在答案的初稿中写下了这一点。这如何告诉图像何时加载?它不能,但如果没有它,它将根本不会加载。但是,它不能回答问题,因此它不是答案如果调用load,则调用是同步的,因此在调用之后加载图像,如果调用LoadAsync,则使用事件处理程序。我已经把这个写在了答案的初稿中。这是正确的答案+1可能添加LoadComplete事件的示例这是正确的答案+1可能会添加LoadComplete事件的示例