簡體   English   中英

MessageBox不顯示變量

[英]MessageBox doesn't show the variable

我有一個列表變量,並為其創建了一個迭代器以打印出其內容。 它在控制台應用程序中正常工作,但是當我嘗試使用Windows Form(gui)進行操作時,它不起作用

程序CS

namespace gui
{
    static class Program
    {
        public class studentdata
        {
        public string id, name, password, academicyear, finishedcourseslist, ipcourseslist;
        public int noCoursesF, noCoursesIP;
        public List<string> coursesF;
        public List<string> coursesIP;
        public studentdata()
        {
            id = "2015123";
            password = "Student";
            coursesF = new List<string>();
            coursesIP = new List<string>();
        }

        public studentdata(string ID, string NAME, string PASSWORD)
        {
            id = ID;
        }

        **public void view_finished_courses()
        {
            List<string> finished = coursesF;
            foreach (string n in finished)
            {
                finishedcourseslist += n;
            }
            MessageBox.Show(finishedcourseslist, "Finished courses");
        }

        public void view_ip_courses()
        {
            List<string> progress = coursesIP;
            foreach (string m in progress)
            {
                ipcourseslist += m;
            }
            MessageBox.Show(ipcourseslist, "Finished courses");
        }**
    }

    public class Admin
    {
        public string name, password;

        public Admin()
        {
            name = "Admin";
            password = "Admin";
        }
    }

    //functionssssss
    internal static studentdata studentSearch(string IDsearch)
    {
        FileStream FS = new FileStream("Students.txt", FileMode.Open);
        StreamReader SR = new StreamReader(FS);

        studentdata std = new studentdata();

        while (SR.Peek() != -1)
        {
            string z = SR.ReadLine();

            String[] Fields;
            Fields = z.Split(',');

            if (IDsearch.CompareTo(Fields[0]) == 0)
            {
                std.id = Fields[0];
                std.password = Fields[1];
                std.name = Fields[2];
                std.noCoursesF = int.Parse(Fields[3]);
                int currentField = 4;
                for (int course = 0; course < std.noCoursesF; course++)
                {
                    std.coursesF.Add(Fields[currentField]);

                    currentField++;
                }

                std.noCoursesIP = int.Parse(Fields[currentField]);
                currentField++;
                for (int course = 0; course < std.noCoursesIP; course++)
                {
                    std.coursesIP.Add(Fields[currentField]);
                    currentField++;
                }
                std.academicyear = Fields[currentField];

                SR.Close();
                return std;
            }
            else continue;
        }
        SR.Close();
        studentdata araf = new studentdata();
        return araf;
    }
}

表格

namespace gui
{
    public partial class Form3 : Form
    {
        Program.studentdata student = new Program.studentdata();

        public Form3()
        {
            InitializeComponent();
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void button5_Click(object sender, EventArgs e)
        {

        }

        private void button4_Click(object sender, EventArgs e)
        {
            student.view_finished_courses();
        }

        private void button6_Click(object sender, EventArgs e)
        {
            student.view_ip_courses();
        }
    }
}

輸出是一個空的消息框,我不知道為什么不添加變量。

用以下內容替換消息框行

MessageBox.Show(string.Join(",", coursesF.ToArray()), "Finished courses");

您的代碼似乎不完整。 單擊button4后在執行的代碼中無處添加項目到CourseF。 似乎您要在此行中添加項目: std.coursesF.Add(Fields[currentField]); 該行位於您的函數studentSearch(IDsearch) ,該函數永遠不會調用。
在此函數中,您獲得了一個字符串z,其中保存了學生的所有數據( string z = SR.ReadLine() )。 您必須以某種方式填充此字符串z。 您可以在表單中使用TextBox並將值傳遞到字符串中,使用文本文件中的字符串或使用控制台輸入(請參見此處: 從控制台獲取輸入到表單中 )。
如您所見,問題不是單一解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM