Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html vb.net从字符串逐行到列表框_Html_Vb.net_String_Listbox_Html Agility Pack - Fatal编程技术网

Html vb.net从字符串逐行到列表框

Html vb.net从字符串逐行到列表框,html,vb.net,string,listbox,html-agility-pack,Html,Vb.net,String,Listbox,Html Agility Pack,我做了一个webrequest来获取一个网站的htmlcode,然后提取 与htmlagilitypack 像这样: 'webrequest' Dim rt As String = TextBox1.Text Dim wRequest As WebRequest Dim WResponse As WebResponse Dim SR As StreamReader wRequest = FtpWebRequest.Create(rt) WR

我做了一个
webrequest
来获取一个网站的htmlcode,然后提取 与
htmlagilitypack
像这样:

    'webrequest'
    Dim rt As String = TextBox1.Text
    Dim wRequest As WebRequest
    Dim WResponse As WebResponse
    Dim SR As StreamReader
    wRequest = FtpWebRequest.Create(rt)
    WResponse = wRequest.GetResponse
    SR = New StreamReader(WResponse.GetResponseStream)
    rt = SR.ReadToEnd
    TextBox2.Text = rt

    'htmlagility to extract the links'
    Dim htmlDoc1 As New HtmlDocument()
    htmlDoc1.LoadHtml(rt)
    Dim links = htmlDoc1.DocumentNode.SelectNodes("//*[@id='catlist-listview']/ul/li/a")
    Dim hrefs = links.Cast(Of HtmlNode).Select(Function(x) x.GetAttributeValue("href", ""))
    'join the `hrefs`, separated by newline, into one string'
    textbox3.text = String.Join(Environment.NewLine, hrefs)
http://wantedlink1 
http://wantedlink2 
http://wantedlink3 
http://wantedlink4
http://wantedlink5
http://wantedlink6
http://wantedlink7
链接如下所示:

    'webrequest'
    Dim rt As String = TextBox1.Text
    Dim wRequest As WebRequest
    Dim WResponse As WebResponse
    Dim SR As StreamReader
    wRequest = FtpWebRequest.Create(rt)
    WResponse = wRequest.GetResponse
    SR = New StreamReader(WResponse.GetResponseStream)
    rt = SR.ReadToEnd
    TextBox2.Text = rt

    'htmlagility to extract the links'
    Dim htmlDoc1 As New HtmlDocument()
    htmlDoc1.LoadHtml(rt)
    Dim links = htmlDoc1.DocumentNode.SelectNodes("//*[@id='catlist-listview']/ul/li/a")
    Dim hrefs = links.Cast(Of HtmlNode).Select(Function(x) x.GetAttributeValue("href", ""))
    'join the `hrefs`, separated by newline, into one string'
    textbox3.text = String.Join(Environment.NewLine, hrefs)
http://wantedlink1 
http://wantedlink2 
http://wantedlink3 
http://wantedlink4
http://wantedlink5
http://wantedlink6
http://wantedlink7
现在我想将字符串中的每一行添加到listbox,而不是textbox
每行一项


大约有400个
http://wantedlink

使用列表框的items集合的AddRange方法,并将文本框的lines数组传递给它


提示:这是一行代码。

没关系,我找到了答案

  Dim linklist = String.Join(Environment.NewLine, hrefs)
  Dim parts As String() = linklist.Split(New String() {Environment.NewLine},
                                   StringSplitOptions.None)
    ListBox1.Items.AddRange(parts)

这会将所有400个链接添加到列表框

hrefs
,您的案例中已经包含了
IEnumerable(字符串)
。将它们连接成一条线,然后再次拆分以使其正常工作是很奇怪的。由于
String.Split()
返回数组,可能您只需将
hrefs
投影到数组中即可使
.AddRange()
正常工作:

ListBox1.Items.AddRange(hrefs.ToArray())

这些信息是以这种格式出现在文本框中的吗?您尝试过什么?将集合绑定到列表框通常非常简单…@CharlesMay是的,它在textbox中采用这种格式我想删除我已经尝试过的textbox1.items.addrange(textbox3.lines)它可以工作,但我想去掉textbox删除整个textbox我只想要listbox将其从其父容器的控件集合中删除
me.Controls.Remove(YourTextBox)
然后我想做一个
YourTextBox=Nothing
me,在这种情况下是表单。根据您的文本框所在的位置,您可能必须点入其他容器。我很好奇,为什么您不在开始时填充列表框,而不是在稍后删除另一个控件。如果此答案无法解决您试图执行的操作,请返回并根据您更改的内容编辑您的问题来结束本主题的整个过程。您最初询问如何将多行文本框的内容添加到列表框中,后来您表示知道如何添加,但希望删除该文本框。现在,在最后一条评论中,您使用的是一个术语
一个接一个
,因此我不知道这是否对您的需求有任何帮助。