我用在winform上,从数据库里取出数据,然后显示在多个linklabel上,以下是代码
  int i = 0;
Conn = new SqlConnection("server=10.10.10.10;uid=sa;pwd=123;database=db");
string strsql="select top 10 * from send_mt_backup order by send_time desc";
SqlCommand mycomm=new SqlCommand(strsql,Conn);
SqlDataReader dr;
dr=mycomm.ExecuteReader();
while(dr.Read())
{
         LinkLabel[] lb = new LinkLabel[10];
lb[i] = new LinkLabel();
lb[i].Location = new Point(33+i*0,22+i*26);
         this.Controls.Add(lb[i]);
         lb[i].Size=new System.Drawing.Size(357,20);
         lb[i].BackColor = System.Drawing.Color.White;
lb[i].Text = dr["send_desc"].ToString();
i=i+1;
}
Conn.Close();
dr.Close();
 以上代码运行正常,能够显示多个linklabel,我的问题是:  显示了的linklabel如何操作啊,我需要对linklabel点击打开另外的窗口...

解决方案 »

  1.   

    你应该修改linklabel.links属性,参看msdn说明。
      

  2.   

    C#  复制代码 
    using System;
    using System.Drawing;
    using System.Windows.Forms;public class Form1 : System.Windows.Forms.Form
    {
        private System.Windows.Forms.LinkLabel linkLabel1;
        
        [STAThread]
        static void Main() 
        {
            Application.Run(new Form1());
        }    public Form1()
        {
            // Create the LinkLabel.
            this.linkLabel1 = new System.Windows.Forms.LinkLabel();        // Configure the LinkLabel's size and location. Specify that the
            // size should be automatically determined by the content.
            this.linkLabel1.Location = new System.Drawing.Point(34, 56);
            this.linkLabel1.Size = new System.Drawing.Size(224, 16);
            this.linkLabel1.AutoSize = true;        // Configure the appearance. 
            // Set the DisabledLinkColor so that a disabled link will show up against the form's background.
            this.linkLabel1.DisabledLinkColor = System.Drawing.Color.Red;
            this.linkLabel1.VisitedLinkColor = System.Drawing.Color.Blue;
            this.linkLabel1.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
            this.linkLabel1.LinkColor = System.Drawing.Color.Navy;
            
            this.linkLabel1.TabIndex = 0;
            this.linkLabel1.TabStop = true;
                    // Add an event handler to do something when the links are clicked.
            this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);        // Identify what the first Link is.
            this.linkLabel1.LinkArea = new System.Windows.Forms.LinkArea(0, 8);        // Identify that the first link is visited already.
            this.linkLabel1.Links[0].Visited = true;
            
            // Set the Text property to a string.
            this.linkLabel1.Text = "Register Online.  Visit Microsoft.  Visit MSN.";        // Create new links using the Add method of the LinkCollection class.
            // Underline the appropriate words in the LinkLabel's Text property.
            // The words 'Register', 'Microsoft', and 'MSN' will 
            // all be underlined and behave as hyperlinks.        // First check that the Text property is long enough to accommodate
            // the desired hyperlinked areas.  If it's not, don't add hyperlinks.
            if(this.linkLabel1.Text.Length >= 45)
            {
                this.linkLabel1.Links[0].LinkData = "Register";
                this.linkLabel1.Links.Add(24, 9, "www.microsoft.com");
                this.linkLabel1.Links.Add(42, 3, "www.msn.com");
            //  The second link is disabled and will appear as red.
                this.linkLabel1.Links[1].Enabled = false;
            }
            
            // Set up how the form should be displayed and add the controls to the form.
            this.ClientSize = new System.Drawing.Size(292, 266);
            this.Controls.AddRange(new System.Windows.Forms.Control[] {this.linkLabel1});
            this.Text = "Link Label Example";
        }    private void linkLabel1_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
        {
            // Determine which link was clicked within the LinkLabel.
            this.linkLabel1.Links[linkLabel1.Links.IndexOf(e.Link)].Visited = true;        // Display the appropriate link based on the value of the 
            // LinkData property of the Link object.
            string target = e.Link.LinkData as string;        // If the value looks like a URL, navigate to it.
            // Otherwise, display it in a message box.
            if(null != target && target.StartsWith("www"))
            {
                System.Diagnostics.Process.Start(target);
            }
            else
            {    
                MessageBox.Show("Item clicked: " + target);
            }
        }