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().GetCellType(e.Row, e.Column)) Is CellType.TextCellType Then
Dim tCell As CellType.TextCellType = CType(FpSpread1.Sheets().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), , tCell.MaxLength)
If enc.GetByteCount(s) > tCell.MaxLength Then
s = enc.GetString(enc.GetBytes(s), , tCell.MaxLength - )
Else
s = enc.GetString(enc.GetBytes(s), , tCell.MaxLength)
End If
datamodel.SetValue(e.Row, e.Column, s)
End If
End If
Catch
End Try
SwData =
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), , tCell.MaxLength)
If Not Char.IsLetter(chrs(chrs.Length - )) Then
Array.Resize(chrs, chrs.Length - )
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

SPREAD for Windows Forms 控制输入法的更多相关文章

  1. SPREAD for Windows Forms 代码片段

    'スクロールバーの移動 FpSpread1.ShowColumn(, , HorizontalPosition.Left) 'SetActiveCellの後.LeaveCellを呼び出す Dim ss ...

  2. SPREAD for Windows Forms 下箭头追加行

    ''' <summary> ''' 下矢印の動作クラス ''' </summary> ''' <remarks></remarks> Public Cl ...

  3. Wizard Framework:一个自己开发的基于Windows Forms的向导开发框架

    最近因项目需要,我自己设计开发了一个基于Windows Forms的向导开发框架,目前我已经将其开源,并发布了一个NuGet安装包.比较囧的一件事是,当我发布了NuGet安装包以后,发现原来已经有一个 ...

  4. Margin and Padding in Windows Forms Controls

    https://msdn.microsoft.com/en-us/library/ms229627.aspx Margin and Padding Precise placement of contr ...

  5. Windows Forms框架编程

    <Windows Forms框架编程>节选   第九章 设计模式与原则 软件设计模式(Design pattern)是一套被反复使用的代码设计经验总结.使用设计模式是为了可重用代码.让代码 ...

  6. System.Windows.Forms.Control : Component, IOleControl, IOleObject, IOleInPlaceObject, IOleInPlaceActiveObject....

    #region 程序集 System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ...

  7. DotNetBar For Windows Forms 12.5.0.2 官方原版及注册

    转自原文DotNetBar For Windows Forms 12.5.0.2 官方原版及注册 DotNetBar是一款带有56个 Windows Form 控件的工具箱,使开发人员可以轻而易举地创 ...

  8. System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false

    多线程程序中,新创建的线程不能访问UI线程创建的窗口控件,这时如果想要访问窗口的控件,发现无法对其控制. 这时可将窗口构造函数中的CheckForIllegalCrossThreadCalls设置为f ...

  9. windows forms 上一个类似于wpf snoop 的工具: Hawkeye

    windows forms 上一个类似于wpf snoop 的工具: Hawkeye 周银辉 WPF上有snoop这样的run time object editor让人用着很爽, 今天搜到了一个for ...

随机推荐

  1. hbase源码系列(二)HTable 探秘

    hbase的源码终于搞一个段落了,在接下来的一个月,着重于把看过的源码提炼一下,对一些有意思的主题进行分享一下.继上一篇讲了负载均衡之后,这一篇我们从client开始讲吧,从client到master ...

  2. android开发(36) Android WebView背景设置为透明

    xml布局 <WebView android:id="@+id/wv_content" android:layout_width="match_parent&quo ...

  3. es 加磁盘扩容

    elasticsearch多磁盘扩容   1.问题 由于早前elasticsearch集群数据存储路径只配置了一个,所以某天磁盘突然爆满,集群差点当机.需重新配置多路径存储路径,因为在生产环境,得保证 ...

  4. R语言 ggplot2 画平滑图

    library(splines) library(ggplot2) dt1 <- structure(list(Age = structure(c(1L, 1L, 1L, 1L, 1L, 1L, ...

  5. SQL Server默认1433端口修改方法

    SQL Server默认端口1433端口并不是十分的安全,需要将SQL Server默认端口进行更改,在更改之前,让我们先了解一下什么是1433端口. 什么是1433端口 1433端口,是SQL Se ...

  6. missing gradle project information

    需要在android studio 中配置gradle的代理,当然是用goagent了.打开setting->gradle->Gradle VM Options:-Dhttp.proxyH ...

  7. Mysql 配置文件和目录的合理分配

    记得给权限呀, 权限呀, 都是泪 多实例 单实例 配置文件 [client] port = 3301 socket = /data/mysql3301/data/mysqld3301.sock [my ...

  8. e742. 加入标签的可拖动能力

    This example demonstrates how to modify a label component so that its text can be dragged and droppe ...

  9. 使用iftop监控网卡实时流量

    Iftop工具主要用来显示本机网络流量情况及各相互通信的流量集合,如单独同哪台机器间的流量大小,非常适合于代理服务器和iptables服务器使用,这样可以方便的查看各客户端流量情况.iftop可以在类 ...

  10. js 正则去重

    split():字符串中的方法,把字符串转成数组. sort():数组中的排序方法,按照ACALL码进行排序. join():数组中的方法,把数组转换为字符串 var demo="ababb ...