找回密码
 立即注册

QQ登录

只需一步,快速开始

ballaflying
论坛元老   /  发表于:2011-1-18 08:58  /   查看:7117  /  回复:9
例如第2列是Button,每次我点击Button 后触发事件计算值赋给第三列的Label。然后Tab直接跳到第四列。我非常想知道怎么制定Tab,让他显示在第四列。谢谢

9 个回复

倒序浏览
barrylei
中级会员   /  发表于:2011-1-18 09:51:00
沙发
按理说把Label的TabStop设置成False就可以了,但是我记的你在另一个帖子里说乱了,是吗?
我正在考虑编程实现,稍等。
回复 使用道具 举报
ballaflying
论坛元老   /  发表于:2011-1-18 10:11:00
板凳
好,您先忙。我怕你看不见,所以重新开了一个帖子
回复 使用道具 举报
ballaflying
论坛元老   /  发表于:2011-1-18 10:20:00
地板
1.Button     2.Code(Number型)       3.code对应的code名称(Label型)   4.金额   (Numbe型 )
四列  现在点击第一列,实现动作:code值赋予第二列,code名称赋予第三列,然后Tab光标应该在金额那里,但是由于第二列Code(Number型)也可以输入,有Tab点,现在是点击Button后光标在 第二列的 Code(Number型) ,我需要光标在第四列的 金额   (Numbe型 )
。所以想通过指定Active实现。
回复 使用道具 举报
barrylei
中级会员   /  发表于:2011-1-18 10:33:00
5#
没关系,我没有回的帖子我都记着呢。参考下面的代码,看是否解决了你的问题?

  1.         private void multiRowSheet1_LeaveCell(object sender, GrapeCity.Win.ElTabelle.MLeaveCellEventArgs e)
  2.         {
  3.             int columnIndex = -1;
  4.             int rowIndex = -1 ;

  5.             if (this.multiRowSheet1.ActiveCell.Key == "ButtonEditor") //假定你的ButtonEditor所在的Cell的Key是"ButtonEditor"
  6.             {
  7.                 //获得第四列Cell的RowIndex和ColumnIndex
  8.                 GetColumnRowIndexFromKey("lblKingaguNameHarai", ref columnIndex, ref rowIndex);
  9.                 //下面的代码指定跳到当前行的第四列
  10.                 e.NewPosition = new MPosition(this.multiRowSheet1.ActiveMRowIndex, columnIndex, rowIndex);
  11.             }
  12.         }
  13.         //这个方法的意思是知道一个Cell的Key,来找出它的RowIndex和ColumnIndex
  14.         private void GetColumnRowIndexFromKey(string key, ref int columnIndex, ref int rowIndex)
  15.         {
  16.             Template t = this.multiRowSheet1.Template;
  17.             for (int i = 0; i < t.Cells.MaxColumns; i++)
  18.             {
  19.                 for (int j = 0; j < t.Cells.MaxRows; j++)
  20.                 {
  21.                     if (t.Cells[i, j].Key == key)
  22.                     {
  23.                         columnIndex = i;
  24.                         rowIndex = j;
  25.                         return;
  26.                     }
  27.                 }
  28.             }
  29.         }
复制代码
回复 使用道具 举报
ballaflying
论坛元老   /  发表于:2011-1-18 11:00:00
6#
_LeaveCell 事件,我的窗口弹出事件是在mltTekiyo_CellNotify事件中的。没有e.NewPosition 。CellNotify事件中可以实现以上的要求吗
回复 使用道具 举报
ballaflying
论坛元老   /  发表于:2011-1-18 11:01:00
7#
明白了
回复 使用道具 举报
ballaflying
论坛元老   /  发表于:2011-1-18 11:10:00
8#
我还是想在_LeaveCell 事件中更改位置,怎么办啊!!!
回复 使用道具 举报
barrylei
中级会员   /  发表于:2011-1-18 11:18:00
9#

回复 6# ballaflying 的帖子

可以,在你的CellNotify事件处理程序的最后,写下面的代码

  1.                 GetColumnRowIndexFromKey("lblKingaguNameHarai", ref columnIndex, ref rowIndex);
  2.            this.multiRowSheet1.ActivePosition = new MPosition(this.multiRowSheet1.ActiveMRowIndex, columnIndex, rowIndex);
复制代码
回复 使用道具 举报
barrylei
中级会员   /  发表于:2011-1-18 11:26:00
10#

回复 8# ballaflying 的帖子

》我还是想在_LeaveCell 事件中更改位置,怎么办啊!!!

能描述的更清楚一点吗?我给的代码就是在LeaveCell中改的啊!:-)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部