Ejemplo n.º 1
0
        private void ShowTimeTable(string timetable)
        {
            //lvkb.Clear();
            Task.Factory.StartNew(() =>
            {
                Thread.Sleep(1000);
                lvkb.BeginInvoke(new Action(() =>
                {
                    GUI_tips.Hide();
                    lvkb.Clear();
                    barLoad.Show();
                    loadText.Show();
                    barLoad.Value = 0;
                    loadText.Text = "正在准备数据";
                }));
                //timetable = HttpHelp.HttpGet("http://jw.jltc.edu.cn/JWXS/pkgl/XsKB_List.aspx", Global.LoginCookie);
                List <List <string> > data = HtmlHelp.GetTable(timetable);
                if (data == null)
                {
                    lvkb.BeginInvoke(new Action(() => { loadText.Text = "数据准备完毕"; }));
                    Thread.Sleep(1000);
                    for (int i = 0; i < barLoad.Maximum; i++)
                    {
                        lvkb.BeginInvoke(new Action(() => { barLoad.Value = i; }));
                        Thread.Sleep(10);
                    }

                    lvkb.BeginInvoke(new Action(() =>
                    {
                        GUI_tips.Text = "检测到当前课表为空";
                        barLoad.Hide();
                        loadText.Hide();
                        GUI_tips.Show();
                    }));
                    return;
                }

                itemCount = data[0].Count;
                lvkb.BeginInvoke(new Action(() => { loadText.Text = "数据准备完毕"; }));
                Thread.Sleep(1000);
                for (int i = 0; i < barLoad.Maximum; i++)
                {
                    lvkb.BeginInvoke(new Action(() => { barLoad.Value = i; }));
                    Thread.Sleep(10);
                }

                lvkb.BeginInvoke(new Action(() =>
                {
                    barLoad.Hide();
                    loadText.Hide();
                    ImageList imgList = new ImageList
                    {
                        ImageSize = new Size(1, 100)
                    };
                    lvkb.SmallImageList            = imgList;
                    int itemwidth                  = Width / data[0].Count;
                    List <ListViewItem> table_data = new List <ListViewItem> {
                    };
                    data[0][0] = "";
                    foreach (string s1 in data[0])
                    {
                        lvkb.Columns.Add(s1, itemwidth, HorizontalAlignment.Left);
                    }

                    for (int i = 1; i < data.Count; i++)
                    {
                        ListViewItem item = new ListViewItem(data[i][0], 0);
                        for (int j = 1; j < data[i].Count; j++)
                        {
                            item.SubItems.Add(data[i][j]);
                        }

                        table_data.Add(item);
                    }

                    lvkb.Items.AddRange(table_data.ToArray());
                }));
            });
        }