2016-08-24 72 views
1

让我先清除空气:是的,这是课堂作业。不,我不只是想要答案。我只是很困难并​​寻求一些帮助。“最近访问的网站”在C中的应用程序#

我会尽我所能。我想我能做到这一点的最好办法是张贴提示书中给出:

创建一个项目名为RecentlyVisitedSites包含有三个LinkLabels链接到您选择的任何三个Web站点列表的形式。当用户点击LinkLabel时,链接到该网站。当用户的鼠标悬停在LinkLabel上时,显示解释该网站用途的简短消息。用户单击链接后,将最近选择的链接移动到列表顶部,并将其他两个链接向下移动,确保每个链接都保留正确的解释。

我这个主要问题是,我不能找到一个很好的方法,使该LinkLabels既让我使用 LinkLabels摆在首位的“清单”和让我重新安排项目以列表形式。这里是我最好去:

using System; 
 
using System.Collections.Generic; 
 
using System.ComponentModel; 
 
using System.Data; 
 
using System.Drawing; 
 
using System.Linq; 
 
using System.Text; 
 
using System.Threading.Tasks; 
 
using System.Windows.Forms; 
 

 
namespace RecentlyVisitedSites 
 
{ 
 
    public partial class Form1 : Form 
 
    { 
 

 
     LinkLabel[] links = new LinkLabel[3]; 
 
     
 
     public Form1() 
 
     { 
 
      InitializeComponent(); 
 
      /*LinkLabel[] links = new LinkLabel[3]; 
 
      links[0] = new LinkLabel(); 
 
      links[0].Text = "google.com"; 
 
      links[0].Location = new System.Drawing.Point(100, 25); 
 
      links[0].Links.Add(0, 0, "www.google.com"); 
 
      this.Controls.Add(links[0]);*/ 
 

 
      LinkLabel[] links = new LinkLabel[3]; 
 
      links[0] = googleLabel; 
 
      links[1] = facebookLabel; 
 
      linksPanel.Controls.Add(links[0]); 
 
      linksPanel.Controls.Add(links[1]); 
 
     } 
 

 
     private void googleLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
 
     { 
 
      System.Diagnostics.Process.Start("IExplore", "http://www.google.com"); 
 
      links[0] = googleLabel; 
 
      linksPanel.Controls.Remove(links[0]); 
 
      linksPanel.Controls.Add(links[0]); 
 
     } 
 

 
     private void facebookLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
 
     { 
 
      System.Diagnostics.Process.Start("IExplore", "http://www.facebook.com"); 
 
      links[0] = facebookLabel; 
 
      linksPanel.Controls.Remove(links[0]); 
 
      linksPanel.Controls.Add(links[0]); 
 
     } 
 
    } 
 
}

我总是会被卡住或者是因为链接会显示不出来,或者我可以不使用它们的提示似乎想要的方式或其他一些东西。注释掉的代码是我询问我的老师之后尝试使用的其他东西,但是我没有从我们的对话中得到很多,但它也没有工作。

我应该怎么做才能让这些链接显示在页面上,列表中,我可以让它们点击,在浏览器中打开指定的网页,并且能够按照提示询问的方式重新排列它们?

同样,我不只是要求给出一个答案,我刚刚碰壁,我很沮丧,因为我似乎找不到一个体面的解释来帮助我理解我实际上需要的东西这样做。任何帮助,将不胜感激。

+0

我没有做过Windows窗体在一段时间,但我认为你需要像FlowLayoutPanel的控制 - 自动排列其子(如果您将FlowDirection设置为TopDown,它会像你需要的那样垂直)。然后,您可以使用FlowLayoutPanel.Controls.SetChildIndex重新排列项目。你可以使用WPF吗?这种事情在那里很容易。 – vesan

+0

@vesan看起来像是我需要的推动......非常感谢! – JetlagMadman

回答

-1

使用此格式为每个LinkLabelForm1

LinkLabel.LinkVisited = true; 
System.Diagnostics.Process.Start("IExplore, http://www.Facebook.com"); 
+0

对不起,我没有看到这个解决方案如何帮助回答这个问题。 – axlj

相关问题