FarPoint Spread 基础知识

FarPoint Spread 基础知识1.获得当前行的行号,列号,总列数,总行数introwCount=fpSpread1.ActiveSheet.RowCount;intcolCount=fpSpread1.ActiveSheet.Columns.Count;intactiveRow=fpSpread1.Activ…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

1.获得当前行的行号,列号,总列数,总行数

                int rowCount = fpSpread1.ActiveSheet.RowCount;
                int colCount = fpSpread1.ActiveSheet.Columns.Count;
                int activeRow = fpSpread1.ActiveSheet.ActiveRowIndex;
                int activeCol = fpSpread1.ActiveSheet.ActiveColumnIndex;

2.设置单元格格式时候用 MultiColumnComboBoxCellType 是注意:只能用字符类型字段的选择。要想用数字字段选择的话须将数字类型转换为字符型即可。

ContractedBlock.gif
ExpandedBlockStart.gif
Code

  FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType mCombox = new FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType();
            mCombox.ColumnEditName 
= customerCode;
            mCombox.DataColumnName 
= customerCode;
            mCombox.ListWidth 
= 556;
            mCombox.MaxDrop 
= 8;
            mCombox.DataSourceList 
= dataset;

            fpSpread1.ActiveSheet.Columns[0].Label = customerCode;
            fpSpread1.ActiveSheet.Columns[
0].CellType = mCombox;

3.问题:当下拉mCombox 中的数据少时会出现空白单元格,目前还不知道咋回事!

4.增加和刪除行

      fpSpread1.ActiveSheet.Rows.Add(rowCount, rows);rowCount是添加行的起始位置,rows是添加的行數。

      fpSpread1.ActiveSheet.Rows.Remove(rowCount, rows);rowCount是刪除行的起始位置,rows刪除的行數。

5.

 if (fpSpread1.ActiveSheet.ActiveRow.Index == fpSpread1.ActiveSheet.RowCount – 1) //如果是到最后一行則增加一行
            {

                if (e.KeyCode == Keys.Down)
                {

                    DetailAdd();
                }
            }
            if (e.KeyCode == Keys.Delete)  //按delete鍵可刪除當前活動單元格內容
            {

                fpSpread1.ActiveSheet.ActiveCell.ResetValue();
            }
            if (e.KeyCode == Keys.Enter)  //按Enter鍵跳到下一單元格
            {

                int rowCount = fpSpread1.ActiveSheet.RowCount;
                int colCount = fpSpread1.ActiveSheet.Columns.Count;
                int activeRow = fpSpread1.ActiveSheet.ActiveRowIndex;
                int activeCol = fpSpread1.ActiveSheet.ActiveColumnIndex;
                if (activeCol != (colCount-1))
                {

                    fpSpread1.ActiveSheet.SetActiveCell(activeRow, activeCol + 1);
                }
                else if( activeRow != (rowCount – 1))
                {

                    fpSpread1.ActiveSheet.SetActiveCell(activeRow+1,0);
                }
            }

6.移除选择的多行

               int rowCount = fpSpread1.ActiveSheet.RowCount;
                for (int row = 0; row < rowCount; row++)   //移除選擇行
                {

                    if (fpSpread1.ActiveSheet.IsSelected(row, 1) == true)
                    { fpSpread1.ActiveSheet.Rows.Remove(row, 1); }
                }

7.剪切,复制,粘贴

            //剪切:
            FarPoint.Win.Spread.UndoRedo.ClipboardCutUndoAction cutAction = new        FarPoint.Win.Spread.UndoRedo.ClipboardCutUndoAction();
        fpSpread1.UndoManager.PerformUndoAction(cutAction);      
            //复制      
detail.ActiveSheet.ClipboardCopy();

            //粘贴
            FarPoint.Win.Spread.UndoRedo.ClipboardPasteUndoAction pasteAction = new FarPoint.Win.Spread.UndoRedo.ClipboardPasteUndoAction(ClipboardPasteOptions.All);
            detail.UndoManager.PerformUndoAction(pasteAction);

 

ContractedBlock.gif
ExpandedBlockStart.gif
Code

SheetView sv = fpSpread1.ActiveSheet;
      
if (sv == null)
        
return;
      
int activeRow = sv.ActiveRowIndex;
      
int activeColumn = sv.ActiveColumnIndex;
      
if (sender == menuCut) //剪切
      {

        FarPoint.Win.Spread.UndoRedo.ClipboardCutUndoAction cutAction 
= new FarPoint.Win.Spread.UndoRedo.ClipboardCutUndoAction();
        fpSpread1.UndoManager.PerformUndoAction(cutAction);
      }
      
else if (sender == menuCopy) //复制
      {

        sv.ClipboardCopy();
      }
      
else if (sender == menuPaste) //粘贴
      {

        FarPoint.Win.Spread.UndoRedo.ClipboardPasteUndoAction pasteAction 
= new FarPoint.Win.Spread.UndoRedo.ClipboardPasteUndoAction(ClipboardPasteOptions.All);
        fpSpread1.UndoManager.PerformUndoAction(pasteAction);
      }
      
else if (sender == menuInsertRow) //插入一行
      {

        sv.Rows.Add(activeRow, 
1);
      }
      
else if (sender == menuInsertColumn)//插入一列
      {

        sv.Columns.Add(activeColumn, 
1);
      }
      
else if (sender == menuRemoveRow)//删除一行
      {

        sv.Rows.Remove(activeRow, 
1);
      }
      
else if (sender == menuRemoveColumn)//删除一列
      {

        sv.Columns.Remove(activeColumn, 
1);
      }
      
else if (sender == menuClearContents) //清除内容
      {

        FarPoint.Win.Spread.UndoRedo.ClipboardCutUndoAction cutAction 
= new FarPoint.Win.Spread.UndoRedo.ClipboardCutUndoAction();
        fpSpread1.UndoManager.PerformUndoAction(cutAction);
      }

 8.撤销,恢复

ContractedBlock.gif
ExpandedBlockStart.gif
Code

//撤销
FarPoint.Win.Spread.InputMap im;
im 
= fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused);
im.Put(
new FarPoint.Win.Spread.Keystroke(Keys.U, Keys.None), FarPoint.Win.Spread.SpreadActions.Undo);
//恢复
FarPoint.Win.Spread.InputMap im;
im 
= fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused);
im.Put(
new FarPoint.Win.Spread.Keystroke(Keys.E, Keys.None), FarPoint.Win.Spread.SpreadActions.Redo);

 9.Find,Filter,Sort

ContractedBlock.gif
ExpandedBlockStart.gif
Code

//允许列排序
this.fpSpread1_Sheet1.Columns.Get(0).AllowAutoSort = true;
//允许列过滤
fpSpread1.ActiveSheet.Columns.Get(1).AllowAutoFilter = true;
//查找
fpSpread1.SearchWithDialogAdvanced(04Thistruetruefalsefalse00);

 

转载于:https://www.cnblogs.com/Tonyyang/archive/2008/09/04/1284102.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230836.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 第二代身份证 验证

    第二代身份证 验证
    今天,在盛大某网站注册的时候,身份证必填,但我又不想填真实身份证号码,于是随便编了串自认为合法的身份证号码,但是却马上被提示号码错误,由于响应速度极快,可以肯定不是联机校验正确性的,那也就是说第二代身份证除了大家都知道的几位表示生日和性别的规则以外,还有另外的自我校验规则。于是翻开页面源码查看,发现这段js没有被压缩,所以规则也很好懂。
    就在这里给大家科普下,不知道是不是火星了,呵呵。
    以下代码来自这里,版权归盛大。当然,你也可以在维基百科找到更详细的介绍和算法。

    2022年6月27日
    29
  • Python图像处理之小波去噪

    Python图像处理之小波去噪在此前的文章中,我们讨论了在Python中利用pywt包提供的API对图像做小波分解的基本方法。小波变换在图像处理中的一个具体应用就是平滑去噪。后续我们还会从原理上讨论如何利用小波变换来设计图像去噪算法。但在此之前,本文将主要演示,利用Python中已有的API进行图像小波去噪的方法及效果

    2022年6月26日
    121
  • lombok插件失效原因_lombok插件下载

    lombok插件失效原因_lombok插件下载昨晚项目出了个小问题,lombok插件失效了。由于使用了lombok的@Data注解生成实体类的getter和setter,项目运行时所有的使用getter和setter方法的地方全都报错。看了网上的解决方案,一个一个试,发现没有一个能解决我的问题最后,我发现在pom.xml文件里面的<build></build>里面缺少了lombok的部分,把他加上即可<build><plugins><plugin

    2025年8月30日
    9
  • C# 解析 sln 文件

    C# 解析 sln 文件我的项目,编码工具需要检测打开一个工程,获取所有项目。但是发现原来的方法,如果存在文件夹,把项目放在文件夹中,那么是无法获得项目,于是我就找了一个方法去获得sln文件的所有项目。

    2022年4月28日
    41
  • 互斥量Mutex的简单应用

    互斥量Mutex的简单应用一、互斥量的简单介绍互斥量是一个内核对象,它用来确保一个线程独占一个资源的访问。互斥量与关键段的行为非常相似,并且互斥量可以用于不同进程中的线程互斥访问资源。使用互斥量Mutex主要将用到四个函数。下面是这些函数的原型和使用说明。1) CreateMutex函数功能:创建互斥量函数原型:HANDLECreateMutex(LPSECURITY_ATTRIBUTES…

    2022年6月26日
    32
  • Linux IP Masquerade[通俗易懂]

    Linux IP Masquerade[通俗易懂]PMasquerade是Linux发展中的一种网路功能.如果一台Linux主机使用IPMasquerade功能连线到网际网路上,那麽接上它的电脑(不论是在同一个区域网路上或藉由数据机连线)也可以接触网际网路,即使它们没有获得正式指定的IP位址.这使得一些电脑可以隐藏在闸道(gateway)系统後面存取网际网路而不被发现,看起来就像只有这个系统在使用网际网络

    2022年6月16日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号