找回密码
 立即注册

QQ登录

只需一步,快速开始

gengwh
论坛元老   /  发表于:2013-6-19 10:49  /   查看:12762  /  回复:14
我用的 Spread for WinForm 7.0,其中有一列是邮政编码,里面有的是iputman gctextbox,当输入超过三位的时候,会在三位后边加一个“-”,例如:123-。
当我输入完第四位的时候,如123-4 ,光标会跑到第一个数字1的前面,我要是再继续输入的时候,需要重新用鼠标点击到数字4的后边.请问怎么让光标始终定位在最后一个数字的后边?

14 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-6-19 16:13:00
沙发
回复 1楼gengwh的帖子

gengwh 你好,
可以通过 maskcelltype 实现该功能:


  1.             FarPoint.Win.Spread.CellType.MaskCellType maskcell = new FarPoint.Win.Spread.CellType.MaskCellType();
  2.             maskcell.Mask = "###-###-####";

  3.             fpSpread1.ActiveSheet.Cells[0, 0].CellType = maskcell;
复制代码


没能重现你的问题,能否发代码上来测试?
回复 使用道具 举报
gengwh
论坛元老   /  发表于:2013-6-19 17:13:00
板凳
我是通过前台设置的类型为gctextbox.
  1. Private Sub fpSpread_EditChange(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.EditorNotifyEventArgs) Handles fpSpread.EditChange
  2. If spdGaihan.ActiveColumnIndex = 3 Then
  3.             fpSpread.EditModeReplace = False
  4.             spdGaihan.Cells(spdGaihan.ActiveRowIndex, spdGaihan.ActiveColumnIndex).Text = Post_No_Edit(spdGaihan.Cells(spdGaihan.ActiveRowIndex, spdGaihan.ActiveColumnIndex).Text)
  5.         End If
  6. End Sub
复制代码
  1. Public Function Post_No_Edit(ByVal strPostNo As String) As String
  2.         Dim strLen As Integer
  3.         Dim intPos As Integer
  4.         Dim strWork As String
  5.         strLen = Len(strPostNo)
  6.         strWork = strPostNo
  7.         Do
  8.             intPos = InStr(1, strWork, "-")
  9.             If intPos = 0 Then
  10.                 Exit Do
  11.             ElseIf intPos = 1 Then
  12.                 strWork = Mid(strWork, 2, strLen - 1)
  13.             Else
  14.                 strWork = Mid(strWork, 1, intPos - 1) & Mid(strWork, intPos + 1, strLen)
  15.             End If
  16.         Loop Until intPos = 0
  17.         strLen = Len(strWork)
  18.         If strLen <= 3 Then
  19.         ElseIf strLen >= 4 Then
  20.             strWork = Mid(strWork, 1, 3) &amp; "-" &amp; Mid(strWork, 4, strLen - 3)
  21.         End If
  22.         Post_No_Edit = strWork
  23.    End Function
复制代码
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-6-19 17:17:00
地板
回复 3楼gengwh的帖子

请问 2# 中的代码能否满足需求?
回复 使用道具 举报
gengwh
论坛元老   /  发表于:2013-6-19 17:35:00
5#
回复 4楼iceman的帖子

还差一点,就是点击textbox的时候,会出现___-____请问这个有办法去掉么?
回复 使用道具 举报
gengwh
论坛元老   /  发表于:2013-6-20 13:07:00
6#
___-____请问输入的时候这个下划线有办法去掉么?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-6-20 16:03:00
7#
回复 6楼gengwh的帖子

gengwh 你好,

不好意思,下划线无法去除。
回复 使用道具 举报
gengwh
论坛元老   /  发表于:2013-6-20 17:55:00
8#
那按照我上边提供的源码,类型为gctextbox。能重现我的那个错误吗?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-6-20 18:01:00
9#
回复 8楼gengwh的帖子

不好意思,没能重现问题,能否提供可运行工程?
回复 使用道具 举报
gengwh
论坛元老   /  发表于:2013-6-21 09:25:00
10#
回复 9楼iceman的帖子

test.zip是简单地一个源码。text.exe.zip是编译后的程序。
麻烦您帮我看一下。当输入第四个数字的时候,光标怎么会
跑到第一个的位置。

test.zip

122.63 KB, 下载次数: 1611

源码

test.exe.zip

8.07 KB, 下载次数: 1587

编译后的运行程序

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部