MyWebClient.Credentials = CredentialCache.DefaultCredentials//获取或设置用于向Internet资源的请求进行身份验证的网络凭据
Byte[] pageData = MyWebClient.DownloadData(tbUrl.Text) //从指定网站下载数据
string pageHtml = Encoding.Default.GetString(pageData) //把字节转化为字符串,注意编码方式
2、使用WebBrowser控件
//通过WebBrowser空间访问网页,然后获取网页数据
WebBrowser web = new WebBrowser()
web.Navigate(tbUrl.Text)
web.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(web_DocumentCompleted) //当网页加载完成时触发该事件,获取网页数据
void web_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//获取该html页面内的Table标签的内容
WebBrowser web = (WebBrowser)sender
HtmlElementCollection ElementCollection = web.Document.getElementsByTagName_r("Table")
foreach (HtmlElement item in ElementCollection)
{
textBox1.AppendText(item.InnerText + "\n")
}
}
3、使用HttpWebRequest/HttpWebResponse
HttpWebRequest httpReq
HttpWebResponse httpResp
Uri httpURL = new Uri(this.tbUrl.Text)
httpReq = (HttpWebRequest)WebRequest.Create(httpURL)
httpResp = (HttpWebResponse)httpReq.GetResponse()
Stream respStream = httpResp.GetResponseStream() //得到数据流,再把数据流转化为特定的数据(图片,文本。。。)
//如果是图片流
pictureBox1.Image = Image.FromStream(respStream)
//如果是文本流
byte[] cbuffer = new byte[256]
StreamReader respStreamReader = new StreamReader(respStream,Encoding.UTF8) //编码为utf8
byteRead = respStreamReader.Read(cbuffer,0,256) //读取256个字节
string strResp = new string(cbuffer,0,byteRead)
想在webbrowser上写字是不可能的,以上三种方法我都看了,完全解决不了问题qw开头的那位,想法很好,但是我可以告诉你,不可行,你试试就知道了,这样做后文字会粗细不均,因为屏幕上显示的文字其实有一部份是圆滑处理的,那部分在图像中将就叫半透明,话说直接的窗体透明代码能做到半透明么?至于xiao的回答,这是vb.net的代码,不是vb6的,没法用,所以也不行。至于究竟怎么办,我可以告诉您一种思路,去百度搜索:“vb6 控件背景透明”的代码,下载,打开后有一个控件,你将自己的label放进去,写上文字,然后将这个控件放在窗体的webbrowser之上,执行透明指令即可(透明指令在该代码中有说明),简单而有效的方法只能这么做。至于为什么label放不在webbrowser上,原因就是,vb6将控件分为重控件和轻控件,轻控件永远放不到重控件上边来,因为所谓轻控件其实是系统在屏幕上绘制出来的,并不是真正的控件,而重控件是真的控件,常见轻控件有label、image、line这些控件,常见重控件有picturebox、command按钮等。希望对您有所帮助!你的网页编码是啥?试试设置Document编码呢?
dynamic document = webBrowser.Document
document.Encoding = "utf-8"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)