博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Farpoint Spread 常用属性
阅读量:6433 次
发布时间:2019-06-23

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

1 取得当前行号、列号。
 

int row=e.Row; 

int count=e.Count;
或者:
int rowindex = fpSpread1.ActiveSheet.ActiveRowIndex;
int columnindex = fpSpread1.ActiveSheet.ActiveColumnIndex;

2 单击一行变颜色。 

private void spdResult_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)

  {
   //单击Spread列头时,什么也不处理

   if(!e.ColumnHeader)

   {
    if(spdResult.Sheets[0].Rows.Count!=0)
    {
     for(int i=0;i<spdResult.Sheets[0].Rows.Count;i++)
     {
      spdResult.Sheets[0].Rows[i].BackColor=System.Drawing.Color.White;
     }
     int row=e.Row;
     spdResult.Sheets[0].Rows[row].BackColor=System.Drawing.Color.FromArgb(((System.Byte)(192)),((System.Byte)(255)), ((System.Byte)(255)));
    }
   }
  }

3 将Spread的单元格内容付值给一控件的Text

txtItemCD.Text = spdResult.Sheets[0].Cells[row,count].Text;

4 给Spread的指定单元格付值。

spdResult.Sheets[0].Cells[row,count].Text = txtItemCD.Text;

5 通过上下光标键改变选中行颜色

private void spdResult_LeaveCell(object sender, FarPoint.Win.Spread.LeaveCellEventArgs e)

  {
   //首先检查spread行数是否为0
   if(spdResult.Sheets[0].Rows.Count==0)
   {
    return;
   }
   else
   {
    for(int i=0;i<spdResult.Sheets[0].Rows.Count;i++)
    {
     spdResult.Sheets[0].Rows[i].BackColor=System.Drawing.Color.White;
    } 
    int row=e.NewRow;
    spdResult.Sheets[0].Rows[row].BackColor=System.Drawing.Color.FromArgb(((System.Byte)(192)),((System.Byte)(255)), ((System.Byte)(255))); 
   }
  }

6 下拉列表加载数据(ComBobox) 

・ 列表追加(适合于数据量少的情况)

FarPoint.Win.Spread.CellType.ComboBoxCellType cb4 = newFarPoint.Win.Spread.CellType.ComboBoxCellType();

   cb4.ListWidth = 96;
   cb4.Editable = true;
   cb4.MaxDrop = 10;
   cb4.MaxLength = 1;
   string[] priceTagList = new string[]{
" 0 无"," 1 有"};
   cb4.Items = priceTagList;
   this.spdSetList.ActiveSheet.Columns[4].CellType = cb4;

・ 从数据库追加

FarPoint.Win.Spread.CellType.ComboBoxCellType cb12 = newFarPoint.Win.Spread.CellType.ComboBoxCellType();

   cb12.ListWidth = 150;
   cb12.Editable = true;
   cb12.MaxDrop = 10;
   cb12.MaxLength = 8;

//dsEmployee:数据集Dataset,已经加载好数据的Dataset

   string[] employeeList = DataSetToArray(dsEmployee, 8);
   cb12.Items = employeeList;
   this.spdSetList.ActiveSheet.Columns[12].CellType = cb12;
private string[] DataSetToArray(DataSet ds, int BlankNum)
  {
   int i = 0;
   int NumLength = 0;
   string[] returnArray = new string[ds.Tables[0].Rows.Count];
   DataRow foundRows = ds.Tables[0].Rows[ds.Tables[0].Rows.Count -1];
   NumLength = foundRows[0].ToString().Length;
   foreach(DataRow dr in ds.Tables[0].Rows)
   {
    returnArray[i] = dr[0].ToString().PadLeft(BlankNum, ' ') + " " + dr[1].ToString();
    i++;
   }
   return returnArray;
  }

7 Focus移动(跨列)

public frmProdSetDetail()

  {
   InitializeComponent();
   IsMod = flag;
   FarPoint.Win.Spread.InputMap im;
   im = spdResult.GetInputMap(InputMapMode.WhenFocused);
   im.Put(new Keystroke(Keys.Enter,Keys.None),SpreadActions.MoveToNextColumnWrap);
   im.Put(new Keystroke(Keys.Tab,Keys.None),SpreadActions.MoveToNextColumnWrap);
   im = spdResult.GetInputMap(InputMapMode.WhenAncestorOfFocused);
   im.Put(new Keystroke(Keys.Enter,Keys.None),SpreadActions.MoveToNextColumnWrap);
   im.Put(new Keystroke(Keys.Tab,Keys.None),SpreadActions.MoveToNextColumnWrap);
  }

指定单元格获得焦点      

this.fpSpread1.ActiveSheet.SetActiveCell(row,column);

8 事件触发顺序                            

 _Enter    _EnterCell      _EditModeOn      _EditChange      _EditModeOff      _LeaveCell

9 用隐藏列保存原始数据  

10 设定列类型

private void SpreadSetting()

  {
   string[] ProductHandleTypeList = new string[]{
" ","1 販売/仕入","2 販売","3 仕入"};
  
   FarPoint.Win.Spread.CellType.ComboBoxCellType cb3 = newFarPoint.Win.Spread.CellType.ComboBoxCellType();
   cb3.ListWidth = 100;
   cb3.Editable = true;
   cb3.MaxDrop = 5;
   cb3.MaxLength = 1;
   cb3.Items = ProductHandleTypeList;
   this.spdResult.ActiveSheet.Columns[5].CellType = cb3;
 
   //设置一般数据型 
   FarPoint.Win.Spread.CellType.NumberCellType nmbrcell = newFarPoint.Win.Spread.CellType.NumberCellType();
   nmbrcell.ShowSeparator = false;
   nmbrcell.DecimalPlaces = 0;
   nmbrcell.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.UseRegional;
   nmbrcell.MaximumValue = 9999;
   nmbrcell.MinimumValue = 1;
   this.spdResult.ActiveSheet.Columns[13].CellType = nmbrcell;
   //设置JAN
   FarPoint.Win.Spread.CellType.NumberCellType nmbrcellJan = newFarPoint.Win.Spread.CellType.NumberCellType();
   nmbrcellJan.ShowSeparator = false;
   nmbrcellJan.DecimalPlaces = 0;
   nmbrcellJan.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.UseRegional;
   nmbrcellJan.MaximumValue = 9999999999999;
   nmbrcellJan.MinimumValue = 0;
   this.fpSpread1.ActiveSheet.Columns[0].CellType = nmbrcellJan;
   this.fpSpread1.ActiveSheet.Columns[0].HorizontalAlignment =FarPoint.Win.Spread.CellHorizontalAlignment.Left;
   //
   FarPoint.Win.Spread.CellType.NumberCellType numberCellType1 = newFarPoint.Win.Spread.CellType.NumberCellType();
   numberCellType1.ShowSeparator = true;
   numberCellType1.DecimalPlaces = 0;
   numberCellType1.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.UseRegional;
   numberCellType1.MaximumValue = 99999999;
   numberCellType1.MinimumValue = 0;
   this.spdResult.ActiveSheet.Columns[20].CellType = numberCellType1;
   //%数的设定
   FarPoint.Win.Spread.CellType.PercentCellType prctcell = newFarPoint.Win.Spread.CellType.PercentCellType(); 
   prctcell.PercentSign = "%";
   this.spdResult.ActiveSheet.Columns[33].CellType = prctcell;
   
   //日期的设定
   FarPoint.Win.Spread.CellType.DateTimeCellType datecell = newFarPoint.Win.Spread.CellType.DateTimeCellType(); 
   datecell.MaximumDate = new System.DateTime(2050, 12, 31, 0, 0, 0, 0);
   datecell.MinimumDate = new System.DateTime(2001, 1, 1, 0, 0, 0, 0);
   this.spdResult.ActiveSheet.Columns[27,30].CellType = datecell;
 }

11 列、单元格锁定

//锁定

this.fpSpread1.ActiveSheet.Columns[0,4].Locked = true;//锁定列范围
this.fpSpread1.ActiveSheet.Columns[0].Locked = true;//锁定单列
//解锁
this.fpSpread1.ActiveSheet.Columns[0,4].Locked = false;//解锁列范围
this.fpSpread1.ActiveSheet.Columns[0].Locked = false;

12 Spread追加行、列

//追加行

int rowindex = this.fpSpread1.ActiveSheet.Rows.Count;
   this.fpSpread1.ActiveSheet.Rows.Add(rowindex,1);
//追加列
int columnindex = this.fpSpread1.ActiveSheet.Columns.Count;
   this.fpSpread1.ActiveSheet.Columns.Add(columnindex,1);

13 行、列删除

//删除行

this.fpSpread1.ActiveSheet.Rows.Remove(startindex,count);
//追加列
this.fpSpread1.ActiveSheet.Columns.Remove(startindex,count);

14 button事件

private void spdSetList_ButtonClicked(object sender,FarPoint.Win.Spread.EditorNotifyEventArgs e)

  {
   int rowCount = e.Row;
   int columnCount = e.Column;
   if (e.Column == 16)
   {
    if (message.ShowMessage("ConfirmDelete", "選択したライン") == DialogResult.Yes)
    {
     string DeleteTag = this.spdSetList.ActiveSheet.Cells[rowCount,columnCount+1].Text.Trim();
     if (DeleteTag == "0" || DeleteTag == "2")
     {
      this.spdSetList.ActiveSheet.Cells[rowCount, columnCount+1].Text = "3";
      this.spdSetList.ActiveSheet.Cells[rowCount,columnCount+1].BackColor = clrWater;
      this.spdSetList.ActiveSheet.Rows[rowCount].Visible = false;
     }
     else if (DeleteTag == "1")
     {
      this.spdSetList.ActiveSheet.Rows[rowCount].Remove();
     }
    }
   }
  }

 

本文章摘自csdn,转载请注明出处

转载于:https://www.cnblogs.com/nearby/archive/2012/03/10/2388679.html

你可能感兴趣的文章
数据结构思维 第三章 `ArrayList`
查看>>
CentOS6、7编译安装FFmpeg
查看>>
被眼睛欺骗?这正是你比机器高明的地方!深度学习如何处理认知错觉
查看>>
向导机器人出没日本机场,外表萌萌哒!
查看>>
Android项目实战(二十九):酒店预定日期选择
查看>>
PHP IDE phpstorm 常用快捷键
查看>>
蓝牙的未来怎样发展?
查看>>
AI、新材料、5G、智慧城市,未来的社会场景在高交会提前上演
查看>>
Facebook开发的一种数据查询语言——GraphQL:安全概述和测试技巧
查看>>
ECS主动运维2.0,体验升级,事半功倍
查看>>
vim 学习方法
查看>>
php token验证范例
查看>>
WebSocket的C++服务器端实现
查看>>
java中两种添加监听器的策略
查看>>
MySQL explain 详解
查看>>
【翻译】Traits in PHP
查看>>
脑洞成现实!AI系统可提前10s预测地震
查看>>
视频风口下,传统CDN服务商将归何处
查看>>
对VR感兴趣,贾樟柯正在筹备VR电影长片
查看>>
JAVA 注解的几大作用及使用方法详解
查看>>