博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SPREAD for Windows Forms 控制输入法
阅读量:7081 次
发布时间:2019-06-28

本文共 3117 字,大约阅读时间需要 10 分钟。

enc = System.Text.Encoding.GetEncoding("shift-jis")    datamodel = CType(FpSpread1.ActiveSheet.Models.Data, Model.DefaultSheetDataModel)    Dim enc As System.Text.Encoding    Dim WithEvents datamodel As Model.DefaultSheetDataModel    Private Sub datamodel_Changed(ByVal sender As Object, ByVal e As Model.SheetDataModelEventArgs) Handles datamodel.Changed        ''非編集状態でクリップボードから貼り付けした場合        If e.Type = Model.SheetDataModelEventType.CellsUpdated Then            Try                If TypeOf (FpSpread1.Sheets(0).GetCellType(e.Row, e.Column)) Is CellType.TextCellType Then                    Dim tCell As CellType.TextCellType = CType(FpSpread1.Sheets(0).GetCellType(e.Row, e.Column), CellType.TextCellType)                    Dim s As String = CStr(datamodel.GetValue(e.Row, e.Column))                    If enc.GetByteCount(s) > tCell.MaxLength Then                        s = enc.GetString(enc.GetBytes(s), 0, tCell.MaxLength)                        If enc.GetByteCount(s) > tCell.MaxLength Then                            s = enc.GetString(enc.GetBytes(s), 0, tCell.MaxLength - 1)                        Else                            s = enc.GetString(enc.GetBytes(s), 0, tCell.MaxLength)                        End If                        datamodel.SetValue(e.Row, e.Column, s)                    End If                End If            Catch            End Try            SwData = 1        End If    End Sub    Private Sub FpSpread1_EditModeOn(ByVal sender As Object, ByVal e As System.EventArgs) Handles FpSpread1.EditModeOn        If TypeOf (FpSpread1.ActiveSheet.GetCellType(iRow, iCol)) Is FarPoint.Win.Spread.CellType.CurrencyCellType _            Or TypeOf (FpSpread1.ActiveSheet.GetCellType(iRow, iCol)) Is FarPoint.Win.Spread.CellType.NumberCellType Then            FpSpread1.EditingControl.ImeMode = Windows.Forms.ImeMode.Off        ElseIf TypeOf (FpSpread1.ActiveSheet.GetCellType(iRow, iCol)) Is FarPoint.Win.Spread.CellType.TextCellType Then            FpSpread1.EditingControl.ImeMode = Windows.Forms.ImeMode.Hiragana        End If    End Sub    Private Sub FpSpread1_EditChange(ByVal sender As System.Object, ByVal e As FarPoint.Win.Spread.EditorNotifyEventArgs) Handles FpSpread1.EditChange        ' 編集中の入力制御        Try            ' テキスト型セルの場合            If TypeOf e.View.GetSheetView.GetCellType(e.Row, e.Column) Is CellType.TextCellType Then                Dim tCell As CellType.TextCellType = CType(e.View.GetSheetView.GetCellType(e.Row, e.Column), CellType.TextCellType)                Dim s As String = e.EditingControl.Text                If enc.GetByteCount(s) > tCell.MaxLength Then                    Dim chrs As Char() = enc.GetChars(enc.GetBytes(s), 0, tCell.MaxLength)                    If Not Char.IsLetter(chrs(chrs.Length - 1)) Then                        Array.Resize(chrs, chrs.Length - 1)                    End If                    e.EditingControl.Text = String.Concat(chrs)                    CType(e.EditingControl, CellType.GeneralEditor).SelectionStart = e.EditingControl.Text.Length                End If            End If        Catch        End Try    End Sub

 

转载地址:http://orlml.baihongyu.com/

你可能感兴趣的文章
SQLServer2005中的CTE递归查询得到一棵树
查看>>
关于营销管理的认知
查看>>
ADO.NET:连接数据字符串
查看>>
全球酷站秀:15个顶尖的 CSS3 网站作品
查看>>
c语言关键字总结
查看>>
DB2中OLAP函数使用示例
查看>>
sql经典语句收集
查看>>
Java代码通过API操作HBase的最佳实践
查看>>
C#调用C++编写的DLL函数, 以及各种类型的参数传递 z
查看>>
[GeoServer]Openlayers简单调用
查看>>
关于LINUX在中断(硬软)中不能睡眠的真正原因
查看>>
两种方法连接MySql数据库
查看>>
20款响应式的 HTML5 网页模板【免费下载】
查看>>
程序员:伤不起的三十岁【转载】
查看>>
修改客户端连接的服务器IP地址(内部使用)
查看>>
android点滴之ContentObserver的使用
查看>>
Android文本输入框(EditText)切换密码的显示与隐藏
查看>>
Metasploit数据库问题汇总
查看>>
64位Linux下编译搭建Nginx1.5与PHP5.5(CentOS6.4)
查看>>
ExtJS获取Grid的行数
查看>>