找回密码
 立即注册

QQ登录

只需一步,快速开始

ballaflying
论坛元老   /  发表于:2011-1-14 13:57  /   查看:11779  /  回复:14
MultiRow4.0,在Cell中 Tab键到但没有输入值或者更改值,再按下一Tab想移动到下一个Cell,会检查报错 我用的Enterted 事件,只要不输入值 ,为空就可以跳到下一个Cell 。不符合我的要求啊。

14 个回复

倒序浏览
barrylei
中级会员   /  发表于:2011-1-14 14:19:00
沙发

回复 1# ballaflying 的帖子

在MultiRow4.0里,按Tab键切换Cell的时候,会触发下面的事件:
LeaveCell:离开原来的Cell
EnteringCell:即将进入新的Cell
EnteredCell:已经进入新的Cell
你所描述的“Entered"指的是"EnteredCell"事件吗?
想确认一下,你的问题是说,当安当前Tab键的时候,如果当前Cell为空,就不动,如果不为空,就跳到下一个Cell,是这样吗?或者你能详细描述你的问题吗,然后我可以给你提供Workaround。
回复 使用道具 举报
ballaflying
论坛元老   /  发表于:2011-1-14 14:35:00
板凳
非常感谢,你给我的答案就是我想要的。是EnteredCell.问题解决,非常感谢!!!!
回复 使用道具 举报
ballaflying
论坛元老   /  发表于:2011-1-14 14:36:00
地板
如果当前Cell为空,显示Messagebox,然后怎么设置焦点仍在这个Cell里,而不是跳到下一个Tab位置?
回复 使用道具 举报
barrylei
中级会员   /  发表于:2011-1-14 14:44:00
5#

回复 4# ballaflying 的帖子

Code如下,如果是校验的话,建议你在LeaveCell里做,判断当前Cell是否为空,然后置e.Cancel属性来决定是否跳转到下一个Cell。

  1.         private void multiRowSheet2_LeaveCell(object sender, GrapeCity.Win.ElTabelle.MLeaveCellEventArgs e)
  2.         {
  3.             if (this.multiRowSheet2[this.multiRowSheet2.ActivePosition].Value == null)
  4.             {
  5.                 MessageBox.Show("Please input a valid value");
  6.                 e.Cancel = true;
  7.             }
  8.             
  9.         }
复制代码
回复 使用道具 举报
ballaflying
论坛元老   /  发表于:2011-1-14 14:48:00
6#
啊 谢谢。我刚才在 mltTekiyo_CellValueChanged 中不让用 e.cancle()  谢谢!
回复 使用道具 举报
mytiny
初级会员   /  发表于:2011-1-14 14:48:00
7#
斑竹真是好人那!
回复 使用道具 举报
ballaflying
论坛元老   /  发表于:2011-1-16 14:03:00
8#
MultiRow中Lable被赋值后没有显示出来。有什么可能的原因吗?
回复 使用道具 举报
ballaflying
论坛元老   /  发表于:2011-1-16 14:10:00
9#
mltTekiyo(mltTekiyo.ActiveMRowIndex, "列名").Text = 值变量.ToString("#,##0")   值变量明明有值,列名也没有错 ,但就是这个Label不显示
回复 使用道具 举报
barrylei
中级会员   /  发表于:2011-1-17 09:26:00
10#
你试一下下面的代码,LabelEditor也有一个Text属性,这个Text属性的优先级要比Cell上的Text的优先级高。
1. 如果LabelEditor.Text为null, Cell的Text属性才能显示出来。
2. 如果LabelEditor.Text不为null, Cell的Text不会被显示出来,我们只使用labelEditor的Text,即便它是string.Empty.
你可以按照我的注释修改第二句代码来试,所以你的问题应该是,LabelEditor.Text被设置为String.Empty了,所以显示不出来,把它设置为Null就可以了。

  1.         private void button1_Click_1(object sender, EventArgs e)
  2.         {
  3.             LabelEditor lableEditor = (LabelEditor)this.multiRowSheet2[0, 0, 0].Editor;
  4.             lableEditor.Text = "bbb"; //或者改为Null,或者改为String.Empty
  5.             this.multiRowSheet2[0, 0, 0].Editor = lableEditor;

  6.             this.multiRowSheet2[0, 0, 0].Text = "aaa";
  7.         }
复制代码
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部