找回密码
 立即注册

QQ登录

只需一步,快速开始

sxyweiren

中级会员

73

主题

366

帖子

755

积分

中级会员

积分
755

活字格认证微信认证勋章

sxyweiren
中级会员   /  发表于:2013-7-24 10:31  /   查看:10898  /  回复:13
现在使用的TrueDBGrid,如果可以追加行(AllowAddnew=True)的话,双击最后一行的单元格,控件会自动追加一个新行。但是如果没有任何编辑,就把光标移动到TrueDBGrid控件外面的话。这个时候光标会自动定位到最后一个数据行而不是带*的那一行。

问如何才能控制,光标离开后会自动定位到可以追加的那个新行(*)??

13 个回复

倒序浏览
gw0506
超级版主   /  发表于:2013-7-24 13:44:00
沙发
你用的是哪个平台的产品?WinForms?
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2013-7-24 15:03:00
板凳
回复 2楼gw0506的帖子

嗯。WinForms
回复 使用道具 举报
gw0506
超级版主   /  发表于:2013-7-24 15:14:00
地板
  1. this.c1TrueDBGrid1.SetActiveCell(this.c1TrueDBGrid1.RowCount, 0);
复制代码
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2013-7-26 09:54:00
5#
回复 4楼gw0506的帖子

关键是现在在什么时机下设置这个单元格?

因为TrueDBGrid好像没有一个取消AddNew的事件。
BeforeRowColChange和RowColChange事件也不好监听啊
回复 使用道具 举报
gw0506
超级版主   /  发表于:2013-7-26 11:44:00
6#
RowColChange事件是可以监听到的,只是你需要判断一下this.c1TrueDBGrid1.Focused。按照你描述的case,光标离开后会触发RowColChange事件,此时this.c1TrueDBGrid1.Focused为false。

不过这样带来的问题是,任何时候光标离开都会将ActiveCell置于最后一行。所以还需要挂OnAddNew事件,在实践中置flag为true。RowColChange时候,判断Focused&&flag,满足条件的话SetActiveCell然后置flag为false。
  1.         private bool flag;
  2.         private void c1TrueDBGrid1_OnAddNew(object sender, EventArgs e)
  3.         {
  4.             flag = true;
  5.         }
  6.         private void c1TrueDBGrid1_RowColChange(object sender, C1.Win.C1TrueDBGrid.RowColChangeEventArgs e)
  7.         {
  8.             if (!this.c1TrueDBGrid1.Focused && flag)
  9.             {
  10.                 this.c1TrueDBGrid1.SetActiveCell(this.c1TrueDBGrid1.RowCount, 0);
  11.                 flag = false;
  12.             }
  13.         }
复制代码
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2013-7-26 15:54:00
7#
回复 6楼gw0506的帖子

那再请教一个问题

在对TrueDBGrid的单元格设值的时候会触发什么事件呢?
比如说 c1TrueDBGrid1.Columns(0).Text = "Test"
或者c1TrueDBGrid1.splits(0).DisplayColumns(0).Value = "Test"
回复 使用道具 举报
gw0506
超级版主   /  发表于:2013-7-26 16:08:00
8#
  1. this.c1TrueDBGrid1.Change += new System.EventHandler(this.c1TrueDBGrid1_Change);
复制代码
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2013-7-26 16:32:00
9#
回复 8楼gw0506的帖子

但是这个控件不能监控是哪一个单元格啊?

有没有能监控单元格的,并且只是Source里面的代码让值改变的时候触发?加Source屏蔽也可以。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2013-7-26 18:09:00
10#
这一点无法满足了,非常抱歉~
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部