ประกาศตัวแปรบนสุดให้อยู่นอก function ครับ ก็จะสามารถเรียกได้ครับ
Date :
2010-03-29 06:54:22
By :
webmaster
No. 2
Guest
ไม่ควรสร้าง control แบบ array นะครับ
ให้ใช้ List ช่วย ถ้าจะให้ method อื่นเห็นก็ประกาศเป็น global
Code (C#)
using System.Collections.Generic;
Code (C#)
private List<LinkLabel> LinkLabelArray; //ประกาศเป็น global
Code (C#)
private void Form1_Load(object sender, EventArgs e)
{
//กำหนด initial (จริงๆ ทำตอนประกาศก็ได้ แต่อยากให้เขียนในที่ที่ถูกต้อง เลยมาเขียนใน load)
LinkLabelArray = new List<LinkLabel>();
int j = 29;
for (int i = 0; i < ds.Tables[2].Rows.Count & i < 10; i++)
{
LinkLabel aLinkLabel = new LinkLabel();
aLinkLabel.Text = ds.Tables[2].Rows[i][1].ToString();
aLinkLabel.Location = new System.Drawing.Point(33, j);
aLinkLabel.LinkClicked += new LinkLabelLinkClickedEventHandler(aLinkLabel._LinkClicked);
this.Controls.Add(aLinkLabel);
LinkLabelArray.Add(aLinkLabel);
j += 20;
}
}
Code (C#)
private void aLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
LinkLabel aLinkLabel = (LinkLabel)sender;
int Index = FindIndex(aLinkLabel.Text);
}
Code (C#)
protected int FindIndex(string LinkLabelName)
{
int Result = 0;
foreach (LinkLabel aLinkLabel in LinkLabelArray)
{
if (LinkLabel.Text == LinkLabelName)
{
break;
}
Result += 1;
}
return Result;
}