zoukankan      html  css  js  c++  java
  • Spread 常用属性

    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();
         }
        }
       }
      }

  • 相关阅读:
    疫情环境下的网络学习笔记 python 5.8 数据库入门终章
    疫情环境下的网络学习笔记 python 5.7 navicat数据库,例题,sql注入
    疫情环境下的网络学习笔记 python 5.6 暂时看看
    疫情环境下的网络学习笔记 python 5.5 MYSql 表关系,外键
    疫情环境下的网络学习笔记 python 5.4 数据库基础
    疫情环境下的网络学习笔记 python 4.30 初识数据库
    疫情环境下的网络学习笔记 python 4.29 网络小项目
    XJOI 夏令营501-511测试11 游戏
    XJOI 夏令营501-511测试11 统计方案
    CF1197D Yet Another Subarray Problem
  • 原文地址:https://www.cnblogs.com/renfeng/p/3652658.html
Copyright © 2011-2022 走看看