使用2个变量从文本文件创建ListBox项

时间:2016-10-26 00:44:22

标签: c# visual-studio uwp

所以,我希望有任何帮助来填充一个显示网站名称的ListBox,如果点击它就转到特定网址。

这就是文本文件中的内容:

#first website
http://firstwebsite.com

#second website
http://secondwebsite.com

#third website
http://thirdwebsite.com

我可以读取文件并使用名称填充列表框,但不能使网址正常工作。

FileOpenPicker picker = new FileOpenPicker();
picker.ViewMode = PickerViewMode.Thumbnail;
picker.SuggestedStartLocation = PickerLocationId.ComputerFolder;
picker.FileTypeFilter.Add(".txt");

StorageFile file = await picker.PickSingleFileAsync();

if (file != null)    {
    var stream = await file.OpenAsync(FileAccessMode.Read);
    using (StreamReader reader = new StreamReader(stream.AsStream()))
            {
                while (!reader.EndOfStream)
                {
                    string line = reader.ReadLine();

                    if (line.StartsWith("#") {
                        listbox.items.Add(line);
                    }

任何帮助都很棒。

由于

2 个答案:

答案 0 :(得分:1)

如果你想在“点击”事件中使用它,我的意思是当你点击项目时,下面的代码可以工作。

  private void listBox1_Click(object sender, EventArgs e)
    {
        string str = ((ListBox)(sender)).Text;
        Process.Start(str);
    }

处理NULL条件和异常。

为“Process”添加System.Diagnostics名称空间。

答案 1 :(得分:0)

我已经创建了一个非常简单的控制台来测试它。 这就是我想出来的

    var _listBox1 = new ListBox();

    //just adding a url for example
    _listBox1.Items.Add("http://www.google.com");

    //here I am just setting the selected value
    _listBox1.SetSelected(0, true);

    var selectedUrl = _listBox1.SelectedItem.ToString();

    //this will start off the default web browser
    Process.Start(selectedUrl);

因此Process.Start()可以放在该列表框的任何事件处理程序中。 I.E SelectedIndexChanged 事件

    private void _listBox1_SelectedIndexChanged(object pSender, EventArgs pArgs)
    {
        var selectedUrl = _listBox1.SelectedItem.ToString();
        Process.Start(selectedUrl);
    }
相关问题