2010-04-28 4 views
-1

내 프로그램은 다음과 같이 작동합니다 : winforms를 사용하여, 사용자는 ID 번호를 입력하고 배열을 사용하여 올바른 ID 번호를 기반으로 학생 정보와 클래스 스케줄 출력을 메시지 상자에 표시합니다!Winform/Program 및 클래스 1, 클래스 2, 클래스 3, 클래스 4를 링크 레이블에 배열로 쓰는 방법은 무엇입니까?

제 질문은 메시지 상자/배열에서 4 개의 클래스를 가져 와서 형식 2의 linklabel 텍스트에 쓰는 방법입니다.

내 Getschedule 클래스는 배열을 포함하고 아래와 같이 표시됩니다

네임 스페이스 Eagle_Eye_Class_Finder {

public class GetSchedule 
{ 
    IDnumber[] IDnumbers = new IDnumber[3]; 

    public string GetDataFromNumber(string ID) 
    { 
     foreach (IDnumber IDCandidateMatch in IDnumbers) 
     { 

      if (IDCandidateMatch.ID == ID) 
      { 
       StringBuilder myData = new StringBuilder(); 
       myData.AppendLine(IDCandidateMatch.Name); 
       myData.AppendLine(": "); 
       myData.AppendLine(IDCandidateMatch.ID); 
       myData.AppendLine(IDCandidateMatch.year); 
       myData.AppendLine(IDCandidateMatch.class1); 
       myData.AppendLine(IDCandidateMatch.class2); 
       myData.AppendLine(IDCandidateMatch.class3); 
       myData.AppendLine(IDCandidateMatch.class4); 
       //return myData; 
       return myData.ToString(); 
      } 
     } 
     return ""; 
    } 

    public GetSchedule() 
    { 
     IDnumbers[0] = new IDnumber() { Name = "Joshua Banks", ID = "900456317", year = "Senior", class1 = "TEET 4090", class2 = "TEET 3020", class3 = "TEET 3090", class4 = "TEET 4290" }; 
     IDnumbers[1] = new IDnumber() { Name = "Sean Ward", ID = "900456318", year = "Junior", class1 = "ENGNR 4090", class2 = "ENGNR 3020", class3 = "ENGNR 3090", class4 = "ENGNR 4290" }; 
     IDnumbers[2] = new IDnumber() { Name = "Terrell Johnson", ID = "900456319", year = "Sophomore", class1 = "BUS 4090", class2 = "BUS 3020", class3 = "BUS 3090", class4 = "BUS 4290" }; 

    } 
    public class IDnumber 
    { 
     public string Name { get; set; } 
     public string ID { get; set; } 
     public string year { get; set; } 
     public string class1 { get; set; } 
     public string class2 { get; set; } 
     public string class3 { get; set; } 
     public string class4 { get; set; } 


     public static void ProcessNumber(IDnumber myNum) 
      { 
       StringBuilder myData = new StringBuilder(); 
       myData.AppendLine(myNum.Name); 
       myData.AppendLine(": "); 
       myData.AppendLine(myNum.ID); 
       myData.AppendLine(myNum.year); 
       myData.AppendLine(myNum.class1); 
       myData.AppendLine(myNum.class2); 
       myData.AppendLine(myNum.class3); 
       myData.AppendLine(myNum.class4); 
       MessageBox.Show(myData.ToString()); 
      } 




    } 

} 

}

linklabels 포함됩니다 내 양식이 아래에 나열되어 있습니다 :

공용 클래스 YOURCLASSSCHEDULE : System.Windows.Forms.Form { public System.Windows.Forms.LinkLabel linkLabel1; public System.Windows.Forms.LinkLabel linkLabel2; public System.Windows.Forms.LinkLabel linkLabel3; public System.Windows.Forms.LinkLabel linkLabel4; 개인 버튼 button1;

/// Required designer variable. 

    public System.ComponentModel.Container components = null; 

    public YOURCLASSSCHEDULE() 
    { 

     // 
     InitializeComponent(); 

     // TODO: Add any constructor code after InitializeComponent call 

    } 

    /// Clean up any resources being used. 
    protected override void Dispose(bool disposing) 
    { 
     if (disposing) 
     { 
      if (components != null) 
      { 
       components.Dispose(); 
      } 
     } 
     base.Dispose(disposing); 
    } 

    #region Windows Form Designer generated code 
    /// <summary> 
    /// Required method for Designer support - do not modify 
    /// the contents of this method with the code editor. 
    /// </summary> 
    private void InitializeComponent() 
    { 
     System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(YOURCLASSSCHEDULE)); 
     this.linkLabel1 = new System.Windows.Forms.LinkLabel(); 
     this.linkLabel2 = new System.Windows.Forms.LinkLabel(); 
     this.linkLabel3 = new System.Windows.Forms.LinkLabel(); 
     this.linkLabel4 = new System.Windows.Forms.LinkLabel(); 
     this.button1 = new System.Windows.Forms.Button(); 
     this.SuspendLayout(); 
     // 
     // linkLabel1 
     // 
     this.linkLabel1.BackColor = System.Drawing.SystemColors.ActiveCaption; 
     this.linkLabel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; 
     this.linkLabel1.Font = new System.Drawing.Font("Times New Roman", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 
     this.linkLabel1.LinkArea = new System.Windows.Forms.LinkArea(0, 7); 
     this.linkLabel1.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; 
     this.linkLabel1.Location = new System.Drawing.Point(41, 123); 
     this.linkLabel1.Name = "linkLabel1"; 
     this.linkLabel1.Size = new System.Drawing.Size(288, 32); 
     this.linkLabel1.TabIndex = 1; 
     this.linkLabel1.TabStop = true; 
     this.linkLabel1.Text = "Class 1"; 
     this.linkLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; 
     this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); 
     // 
     // linkLabel2 
     // 
     this.linkLabel2.BackColor = System.Drawing.SystemColors.ActiveCaption; 
     this.linkLabel2.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; 
     this.linkLabel2.Font = new System.Drawing.Font("Times New Roman", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 
     this.linkLabel2.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; 
     this.linkLabel2.Location = new System.Drawing.Point(467, 123); 
     this.linkLabel2.Name = "linkLabel2"; 
     this.linkLabel2.Size = new System.Drawing.Size(288, 32); 
     this.linkLabel2.TabIndex = 2; 
     this.linkLabel2.TabStop = true; 
     this.linkLabel2.Text = "Class 2"; 
     this.linkLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; 
     this.linkLabel2.VisitedLinkColor = System.Drawing.Color.Navy; 
     this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel2_LinkClicked); 
     // 
     // linkLabel3 
     // 
     this.linkLabel3.BackColor = System.Drawing.SystemColors.ActiveCaption; 
     this.linkLabel3.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; 
     this.linkLabel3.Font = new System.Drawing.Font("Times New Roman", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 
     this.linkLabel3.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; 
     this.linkLabel3.Location = new System.Drawing.Point(41, 311); 
     this.linkLabel3.Name = "linkLabel3"; 
     this.linkLabel3.Size = new System.Drawing.Size(288, 32); 
     this.linkLabel3.TabIndex = 3; 
     this.linkLabel3.TabStop = true; 
     this.linkLabel3.Text = "Class 3"; 
     this.linkLabel3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; 
     this.linkLabel3.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel3_LinkClicked); 
     // 
     // linkLabel4 
     // 
     this.linkLabel4.BackColor = System.Drawing.SystemColors.ActiveCaption; 
     this.linkLabel4.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; 
     this.linkLabel4.Font = new System.Drawing.Font("Times New Roman", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 
     this.linkLabel4.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; 
     this.linkLabel4.Location = new System.Drawing.Point(467, 311); 
     this.linkLabel4.Name = "linkLabel4"; 
     this.linkLabel4.Size = new System.Drawing.Size(288, 32); 
     this.linkLabel4.TabIndex = 4; 
     this.linkLabel4.TabStop = true; 
     this.linkLabel4.Text = "Class 4"; 
     this.linkLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; 
     this.linkLabel4.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel4_LinkClicked); 
     // 

     // 
     this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); 
     this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage"))); 
     this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; 
     this.ClientSize = new System.Drawing.Size(790, 482); 
     this.Controls.Add(this.button1); 
     this.Controls.Add(this.linkLabel4); 
     this.Controls.Add(this.linkLabel3); 
     this.Controls.Add(this.linkLabel2); 
     this.Controls.Add(this.linkLabel1); 
     this.Font = new System.Drawing.Font("OldDreadfulNo7 BT", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 
     this.Name = "YOURCLASSSCHEDULE"; 
     this.Text = "Your Classes"; 
     this.Load += new System.EventHandler(this.Form2_Load); 
     this.ResumeLayout(false); 

    } 
    #endregion 

    public void Form2_Load(object sender, System.EventArgs e) 
    { 
     // if (text == "900456317") 
     // { 

     //} 

    } 

    public void linkLabel1_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) 
    { 

     System.Diagnostics.Process.Start("http://www.georgiasouthern.edu/map/"); 
    } 

    private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
    { 

    } 

    private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
    { 

    } 

    private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
    { 

    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Form1 form1 = new Form1(); 
     form1.Show(); 
     this.Hide(); 
    } 
} 

}

답변

0
정적 개체 또는 비즈니스 계층에 4 개 클래스를 이동

. 비즈니스 계층을 사용하여 양식간에 데이터에 액세스하십시오.

는 예를 들어, 같은를 사용

다음
YourBusinessLayer.ScheduleManager manager = new ScheduleManager(); 

ScheduleManager.Add(new Schedule("Name", "ID", "Class", "Timings"); //Add schedules 
List<Schedule> listOfAllSchedules= manager.GetSchedules(); //Get Schedules 

manager.Schedule[0].ID 
manager.Schedule[0].Name 
manager.Schedule[0].Class 
//.... 

액세스 (편집/업데이트)를 일정 관리자를 양식의 당신의 어떤에서.

사이트 메모와 마찬가지로, 클래스는 반드시 GetSchedule이어야합니다 (읽기 : 불가). 오히려 클래스는 GetSchedule()이라는 메서드 (read : action)를 포함 할 수 있습니다.

+0

괜찮아요. 나는 단지 그것을 linklabels에 작성하고 싶습니다. –

+0

내 양식 2에는 4 개의 링크 레이블이 포함되어 있습니다. 레이블 텍스트 링크에있는 lable을 업데이트하여 배열을 참조한 클래스에 링크해야합니다. –

+0

@JB : 나는 그들을 업데이트하길 원한다. 이 경우 누가 '그들'인가? –