找回密码
 立即注册

QQ登录

只需一步,快速开始

laonawuli

银牌会员

39

主题

146

帖子

3383

积分

银牌会员

积分
3383

活字格认证

laonawuli
银牌会员   /  发表于:2011-12-21 12:54  /   查看:14699  /  回复:25
Hello~

可能从标题中很难理解我的Case,我仔细解释一下哈:

TextBox不是有     SelectionStart 与 SelectionLength 属性 和 Select方法吗?
于是,我用下面的代码,就能实现往某个TextBox的光标闪烁位置插入字符,并将光标置于被插入字符的末尾的功能。
               string s="需要插入的字符";
                int start = textBox1.SelectionStart;
                int length = textBox1.SelectionLength;
                textBox1.Text = textBox1.Text.Remove(start, length);
                textBox1.Text = textBox1.Text.Insert(start, s);
                textBox1.Select(start + s.Length, 0);

我现在需要在编辑某一个Cell的Text时,按下某个快捷键,就往Cell光标所在位置插入字符。快捷键啥的不是问题,问题就是Cell有没有类似于SelectionStart、SelectionLength、Select等可以用于控制的属性或者方法呢?

多谢iceman指教~

25 个回复

正序浏览
iceman
社区贡献组   /  发表于:2011-12-22 13:04:00
26#

回复 25# laonawuli 的帖子

laonawuli  人品真是忒好了~十分感谢你的支持~:share:
回复 使用道具 举报
laonawuli
银牌会员   /  发表于:2011-12-22 12:54:00
25#
原帖由 iceman 于 2011-12-22 12:36:00 发表
:~laonawuli  大侠,鉴于自定义 CellType 有很多的缺陷,我们可以使用以下方法,

参见 Demo:

给你带来不便,很抱歉~


iceman大侠,你哪里给我带来不便了,你太棒了,真的太感谢你了,你的一行代码直接解决了所有问题!!!

根本不需要动win32 api了!

GeneralEditor万岁!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-12-22 12:36:00
24#
:~laonawuli  大侠,鉴于自定义 CellType 有很多的缺陷,我们可以使用以下方法,

参见 Demo: TextBoxCellTypeDemo.zip (1.94 MB, 下载次数: 223)
回复 使用道具 举报
laonawuli
银牌会员   /  发表于:2011-12-22 11:11:00
23#
原帖由 iceman 于 2011-12-22 11:04:00 发表
Morning laonawuli  ~
我查看了你的 Demo ,确实如你所说,有上述问题出现,正在调查中~

第一个问题是Column设置CellType后,Cell的CellType还为Null。
建议使用: TextBox textBox = fpSpread1.EditingControl as TextBox;取 Editor ,通过这种方法可以拿到。


哈喽 iceman     第一个问题如你所说 解决了,太棒了,离成功又近了一步~
但是其他问题还是存在。。这些问题就在我上面的跟帖中。。若能解决,真是太感谢了!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-12-22 11:04:00
22#

回复 19# laonawuli 的帖子

Morning laonawuli  ~
我查看了你的 Demo ,确实如你所说,有上述问题出现,正在调查中~

第一个问题是Column设置CellType后,Cell的CellType还为Null。
建议使用: TextBox textBox = fpSpread1.EditingControl as TextBox;取 Editor ,通过这种方法可以拿到。
回复 使用道具 举报
laonawuli
银牌会员   /  发表于:2011-12-21 18:35:00
21#
在上面的Demo中我又测试了颜色的问题,设置TextBox.BackColor是没用的,进入编辑状态后,总是有一条颜色为Control的线。如果iceman看不清,可以尝试把Cell所在行的高度设置高一些,再进入编辑状态就能看到了。
其次,当Cell的CellType确实被成功设置为自定义的CellType后,确实可以实现用我一楼的代码编辑Cell的操作,但是一旦离开Cell的编辑状态,Cell的值就又变回原来的值了,这个问题倒是好解决,我可以手动设置Value=改变后的Text。(2011年12月21日18:46:24补充:Value=改变后的Text无效。。。会导致Cell的Text直接为空。。。)
最后,使用自定义的CellType,multiLine设置为true无效。回车后会使Cell失去焦点。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-12-21 18:33:00
20#

回复 19# laonawuli 的帖子

laonawuli  ,问题我已经接收,稍后答复~
回复 使用道具 举报
laonawuli
银牌会员   /  发表于:2011-12-21 18:19:00
19#
该Demo展示了2个问题:
     //一共2个问题
        //第一个问题是Column设置CellType后,Cell的CellType还为Null。
        //第二个问题是给一个Cell设置Span后,在设置H、VAlignment居中,再进行编辑时的怪异问题。

TextBoxCellTypeDemo.rar

43.8 KB, 下载次数: 239

rar

回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-12-21 17:25:00
18#

回复 16# laonawuli 的帖子

1. Control 色问题可以在自定义单元格类型中的 TextBox.BackColor 设置成和单元格相同色。
2. Cell中显示2个内容 没能重现,帅锅,以上没有重现的问题,麻烦写个 Demo 吧?
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部