当前位置:编程学习 > C#/ASP.NET >>

程序响应事件,但是控件不更新该怎么办。。

一个程序A给我发事件我来响应,然后收到的字节数组解析显示在DataGridView或者ListView中,现在能收到数据响应事件,但是每次在控件里增加行的时候都不更新,但是count却是一直在变的每次都增加,求解答啊!!!!!


--------------------编程问答-------------------- 你的 DataGridView.datasource = 什么? --------------------编程问答-------------------- 如果是dataview 可以的,每次改变dataview, DataGridView会自动改变
如果是datatable 的话,每次datatable变化之后要加 DataGridView.datasource = datatable --------------------编程问答--------------------
引用 1 楼 dengixnyu 的回复:
你的 DataGridView.datasource = 什么?


没设置datasource,每次收到一条数据就增加一行 --------------------编程问答--------------------
引用 2 楼 dengixnyu 的回复:
如果是dataview 可以的,每次改变dataview, DataGridView会自动改变
如果是datatable 的话,每次datatable变化之后要加 DataGridView.datasource = datatable


现在是listview也不行,什么控件都不好使,都没法更新。。。 --------------------编程问答--------------------




        private Thread demoThread = null;
        private void ThreadProcUnsafe()
        {
            this.dgvDataBackControl.Rows.Add(2);
            this.listView1.Items.Add("123");
        }

        delegate void DataReceivedCallback(object sender, AGIInte易做图ce.CellScanEvtArg e);
        /// <summary>
        /// 收到数据的处理方法
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void DataReceived(object sender, AGIInte易做图ce.CellScanEvtArg e)
        {
            this.demoThread = new Thread(new ThreadStart(this.ThreadProcUnsafe));
            this.demoThread.Start();

            return;


            if (this.dgvDataBackControl.InvokeRequired)
            {
                DataReceivedCallback d = new DataReceivedCallback(DataReceived);
                this.dgvDataBackControl.Invoke(d, new object[] { sender, e });
            }
            else
            {
                this.dgvDataBackControl.Rows.Add(2);
                this.listView1.Items.Add("123");
            }
            return;

            int index = dgvDataBackControl.Rows.Add();
            DataGridViewRow dgvr = dgvDataBackControl.Rows[index];

            return;




各种方法都不行啊。。。哎。。。 --------------------编程问答--------------------
引用 4 楼 caterpillar54321 的回复:
引用 2 楼 dengixnyu 的回复:如果是dataview 可以的,每次改变dataview, DataGridView会自动改变
如果是datatable 的话,每次datatable变化之后要加 DataGridView.datasource = datatable

现在是listview也不行,什么控件都不好使,都没法更新。。。


 晕死,。listview是控件。我问你的数据库源是什么。 --------------------编程问答-------------------- 怎么增加行的?问题出在你怎么增加行的地方吧

--------------------编程问答--------------------
引用 6 楼 dengixnyu 的回复:
引用 4 楼 caterpillar54321 的回复:引用 2 楼 dengixnyu 的回复:如果是dataview 可以的,每次改变dataview, DataGridView会自动改变
如果是datatable 的话,每次datatable变化之后要加 DataGridView.datasource = datatable

现在是listview也不行,什……


他这个没有数据库源,你没看到他是自动在最后增加一行嘛
又不是绑定数据库的。
这样,你接收的数据后,让它显示到一个textbox框里,肯定可以看到数据的
应该是datagridview上没更新吧

--------------------编程问答--------------------
引用 6 楼 dengixnyu 的回复:
引用 4 楼 caterpillar54321 的回复:引用 2 楼 dengixnyu 的回复:如果是dataview 可以的,每次改变dataview, DataGridView会自动改变
如果是datatable 的话,每次datatable变化之后要加 DataGridView.datasource = datatable

现在是listview也不行,什……


我知道。。。
我没设数据源啊。。。。。 --------------------编程问答--------------------
引用 8 楼 TSY20121101 的回复:
引用 6 楼 dengixnyu 的回复:引用 4 楼 caterpillar54321 的回复:引用 2 楼 dengixnyu 的回复:如果是dataview 可以的,每次改变dataview, DataGridView会自动改变
如果是datatable 的话,每次datatable变化之后要加 DataGridView.datasource = datatabl……


int index = dgvDataBackControl.Rows.Add();       
DataGridViewRow dgvr = dgvDataBackControl.Rows[index];

就是这样加的
自己加个按钮同样的代码就可以,放在那个事件响应函数中就不行。。 --------------------编程问答--------------------
引用 8 楼 TSY20121101 的回复:
引用 6 楼 dengixnyu 的回复:引用 4 楼 caterpillar54321 的回复:引用 2 楼 dengixnyu 的回复:如果是dataview 可以的,每次改变dataview, DataGridView会自动改变
如果是datatable 的话,每次datatable变化之后要加 DataGridView.datasource = datatabl……


这个我也试过了,也不行。。。。
上网查了一下这个现象说是进程调用的问题,但是照着几种方法改了也无解。。。。 --------------------编程问答--------------------
引用 11 楼 caterpillar54321 的回复:
引用 8 楼 TSY20121101 的回复:引用 6 楼 dengixnyu 的回复:引用 4 楼 caterpillar54321 的回复:引用 2 楼 dengixnyu 的回复:如果是dataview 可以的,每次改变dataview, DataGridView会自动改变
如果是datatable 的话,每次datatable变化之后要加 DataGridVie……

int index = dgvDataBackControl.Rows.Add();       
DataGridViewRow dgvr = dgvDataBackControl.Rows[index];
Application.DoEvent()    ---加这个行看看 --------------------编程问答--------------------
引用 12 楼 dengixnyu 的回复:
引用 11 楼 caterpillar54321 的回复:引用 8 楼 TSY20121101 的回复:引用 6 楼 dengixnyu 的回复:引用 4 楼 caterpillar54321 的回复:引用 2 楼 dengixnyu 的回复:如果是dataview 可以的,每次改变dataview, DataGridView会自动改变
如果是datatable 的话,……


加过,没用。。。。。。。。。。。。。 --------------------编程问答-------------------- 下班前顶一下。。。。 --------------------编程问答-------------------- 哎。这大周末的估计大家都放假休息了。。。 --------------------编程问答-------------------- 收到数据了就重新绑定下数据了。。。 --------------------编程问答--------------------
引用 16 楼 qq875778812 的回复:
收到数据了就重新绑定下数据了。。。


我现在不是绑定的问题。。。。。是这个控件它就不更新了。

它的Rows.Count属性在增加,但就是显示不出来,界面上不更新,换了别的控件也一样,真不知道怎么办才好了。。。。。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,