我正在使用Web客户端类从Internet下载文件(实际上是Flickr).只要我使用这个就可以正常工作:WebClient().DownloadData(string) 但是这会锁定UI,因为它不是异步的.
但是,当我尝试时WebClient().DownloadDatAsync(string),我得到一个编译错误:"无法将System.String转换为System.Uri".
字符串MediumUrl返回 "http://farm4.static.flickr.com/2232/2232/someimage.jpg"
所以问题是如何将字符串转换"http://farm4.static.flickr.com/2232/2232/someimage.jpg"为Uri.
我尝试过的事情 -
我试过了Uri myuri = new uri(string)- 如上所述的错误.
foreach (Photo photo in allphotos)
{
//Console.WriteLine(String.Format("photo title is :{0}", photo.Title));
objimage = new MemoryStream(wc.DownloadData(photo.MediumUrl));
images.Add(new Pictures(new Bitmap(objimage), photo.MediumUrl, photo.Title));
}
Run Code Online (Sandbox Code Playgroud)Visual Studio 2008,C#3.0.
我有一个调用事件处理程序的方法.我想将方法接收的两个参数传递给事件处理程序.
我想做这样的事情:
wc.DownloadDataCompleted += wc.DownloadedDataCompleted(strtitle, placeid);
Run Code Online (Sandbox Code Playgroud)
这是否可能,如果是的话,我该怎么做呢?
代码片段:
public void downloadphoto(string struri,string strtitle,string placeid)
{
using (WebClient wc = new WebClient())
{
wc.DownloadDataCompleted += wc_DownloadDataCompleted;
wc.DownloadDataAsync(new Uri(struri));
}
}
Run Code Online (Sandbox Code Playgroud) C#3.0,.net framework 3.5我正在绘制(使用图形类中的draw方法)窗口上的许多实心矩形垂直构造.表格从500 x 500像素开始,矩形只在运行时从网络下载数据后绘制 - 矩形的数量取决于下载,所以我不知道它是在前面.
因此,只有几个矩形被绘制,因为窗体的大小是固定的.所以我用google搜索/ Binged(以免有人建议我这样做)并找到一些提示,但它们在这种情况下不起作用 - 比如将表单AutoScroll属性设置为true或尝试双缓冲.我也试图在列表框控件上绘图并设置它的滚动属性等...但没有骰子.
我猜测没有办法显示,在窗体上使用绘图垂直地说200个矩形.我需要一些其他的解决方案......请任何想法.
也许是一个图片盒列表,然后用纯色填充每个图片框?
谢谢