【Spread Sheet 应用(四)】字节数入力限制

     Imports  FarPoint.Win.Spread

    
Dim  enc  As  System.Text.Encoding
    
Dim   WithEvents  datamodel  As  Model.DefaultSheetDataModel

    
Private   Sub  Form1_Load( ByVal  sender  As   Object ByVal  e  As  System.EventArgs)  Handles   MyBase .Load
      enc 
=  System.Text.Encoding.GetEncoding( " shift-jis " )
      datamodel 
=  FpSpread1.Sheets( 0 ).Models.Data
      
Dim  tCell  As   New  CellType.TextCellType
      tCell.MaxLength 
=   10
      FpSpread1.Sheets(
0 ).Cells( 0 0 ).CellType  =  tCell
    
End Sub

    
Private   Sub  FpSpread1_EditChange( ByVal  sender  As   Object ByVal  e  As  EditorNotifyEventArgs)  Handles  FpSpread1.EditChange
      
' '編集中の入力制御
       Try
        
If   TypeOf  (e.View.GetSheetView.ActiveCell.CellType)  Is  CellType.TextCellType  Then
          
Dim  tCell  As  CellType.TextCellType  =  e.View.GetSheetView.ActiveCell.CellType
          
Dim  s  As   String   =  e.EditingControl.Text
          
If  enc.GetByteCount(s)  >  tCell.MaxLength  Then
            e.EditingControl.Text 
=  enc.GetString(enc.GetBytes(s),  0 , tCell.MaxLength)
            
CType (e.EditingControl, CellType.GeneralEditor).SelectionStart  =  e.EditingControl.Text.Length
          
End   If
        
End   If
      
Catch
      
End   Try
    
End Sub

    
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 ).ActiveCell.CellType)  Is  CellType.TextCellType  Then
            
Dim  tCell  As  CellType.TextCellType  =  FpSpread1.Sheets( 0 ).ActiveCell.CellType
            
Dim  s  As   String   =  datamodel.GetValue(e.Row, e.Column)
            
If  enc.GetByteCount(s)  >  tCell.MaxLength  Then
              s 
=  enc.GetString(enc.GetBytes(s),  0 , tCell.MaxLength)
              datamodel.SetValue(e.Row, e.Column, s)
            
End   If
          
End   If
        
Catch
        
End   Try
      
End   If
    
End Sub

你可能感兴趣的:(Spread)