dgv中有一列为textbox,单击textbox列会弹出一个窗口,然后dgv显示数据,单击数据传回值到textbox,目前都可以实现,可是有个bug,第一次,第二次都可以成功传回去,然后第三次值回去了,但是显示不了,需要鼠标单击别的地方才会显示正确值
设置Text之类的属性 是会使 控件发生(特定区域)绘制。你只说值,那么值跟你所谓显示是何种关系无法甄别。
根据以上现象判断,在绘制前卡壳了。
可能可以解决的方法:重新赋值Text属性;如果设置无效那么使TextBox重绘。
通常只需第一步。
可能我没有描述清楚,textbox其实是指datagridview里面的DataGridViewTextBoxColumn列,是否我要重绘DataGridViewTextBoxColumn列呢,目前我是将值传回来一次显示后我强制程序按下enter键到下一行,就是可能用户体验没那么好
@流静水深: 我管你哪里来的,你能点击就不会没有sender发射器参数。弹窗直接通过sender设置都就搞定了。
@花飘水流兮: 父窗体为datagridview的CellClick事件设置的固定列点击弹出子窗体,值为子窗体当中点击datagridview中行传回父窗体的(2个窗体都有datagridview),sender怎么操作还是不太明白,用sender也只可以在子窗体获取到我要传回去的值啊,问题是值我本来就取到了,只是赋值父窗体datagridview中DataGridViewTextBoxColumn列值时多次就不改变了(经验不足,请见谅)
@流静水深:
以上截图为猜测你写的方式,做个简单测试。
方法1直接改数据;
方法2没写完,直接F1 Cell类Value;派生类可能对应不同属性。
@花飘水流兮: 第一个为父窗体,传值是用的委托
textbox.fresh()一下,或者paint什么的
可能我没有描述清楚,textbox其实是指datagridview里面的DataGridViewTextBoxColumn列