首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

每隔五秒钟刷新listview

2013-09-28 
每隔5秒钟刷新listview刚学习编程,学校还没相应课程,现在感觉c#练得还行,但是还没接触过winform,一个朋友

每隔5秒钟刷新listview
刚学习编程,学校还没相应课程,现在感觉c#练得还行,但是还没接触过winform,一个朋友让我给写个exe的小程序,遇到一些问题,没找到办法,网上查到csdn高手很多,来这里向大哥们求助。
每隔五秒钟刷新listview

要求是这样的
1.打开exe的时候看到listview的数据,但是数据不会更新。
2.点击start后,listview就会每隔5秒钟更新一次数据。(网上查到定时器的东西,但不知道怎么用呢)
3.点击stop后,就停止更新数据了。

我现在只做到了listview中看到数据,但是其他地方没有思路,请大哥们帮帮忙,小弟感激涕零啊!
我附上自己写的listview部分内容(Form1.cs)


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace ReadData
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            InitListView(this.listView1);
        }

        private void button1_Click(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {

        }

        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void InitListView(ListView ListView)
        {
            //?针对数据库的字段名称,建立与之适应显示表头?
            listView1.Columns.Add("测点编号", 60, HorizontalAlignment.Right);
            listView1.Columns.Add("数据", 100, HorizontalAlignment.Left);
            listView1.Columns.Add("状态", 100, HorizontalAlignment.Left);
            //listView1.Columns.Add("类型名称", 100, HorizontalAlignment.Left);?

            listView1.View = View.Details;
            listView1.GridLines = true;
            listView1.FullRowSelect = true;


            string[] rdContent = File.ReadAllLines(@"d:\test\test.txt", Encoding.Default);
            string[] buf;
            DataSet ds = new DataSet("DataSet");
            DataTable dt = ds.Tables.Add("ItemConfig");
            dt.Columns.Add("ItemCode", typeof(string));
            dt.Columns.Add("ItemValue", typeof(string));
            dt.Columns.Add("ItemStatus", typeof(string));
            //dt.Columns.Add("TypeName", typeof(string));
            DataRow row;
            for (int i = 1; i < rdContent.Length; i++)
            {
                buf = rdContent[i].Split(',');
                row = dt.NewRow();
                row["ItemCode"] = buf[0];
                row["ItemValue"] = buf[1];
                row["ItemStatus"] = buf[2];
                //row["TypeName"] = buf[3];
                dt.Rows.Add(row);
            }

            foreach (DataRow dw in dt.Rows)
            {
                ListViewItem li = new ListViewItem(dw["ItemCode"].ToString());


                li.SubItems.Add(dw["ItemCode"].ToString());
                li.SubItems.Add(dw["ItemValue"].ToString());
                li.SubItems.Add(dw["ItemStatus"].ToString());
                listView1.Items.AddRange(new ListViewItem[] { li });
            }
        }
    }
}


用这个控件。在它事件里面写入填充listview的代码
[解决办法]
使用定时器,这个思路是正确的.设置定时每5自动触发事件一次
[解决办法]
你是用上面的代码试的吗?
打开定时器后,你在文本文件中随便写些乱码,看会不会报错?

热点排行