找回密码
 立即注册

QQ登录

只需一步,快速开始

zjutwb

高级会员

15

主题

32

帖子

1467

积分

高级会员

积分
1467

活字格认证

zjutwb
高级会员   /  发表于:2013-11-29 16:53  /   查看:8942  /  回复:10
怎么设置,才能对键盘delete键能响应,而且删除选中的文字?

10 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-11-29 17:40:00
沙发
回复 1楼zjutwb的帖子

zjutwb 你好,
不好意思,我没能理解你的逻辑。
本身 delete 键就可以删除单元格中的选中文字。
响应 delete 键的方式如下:

  1.         void fpSpread1_EditModeOn(object sender, EventArgs e)
  2.         {
  3.             GeneralEditor ge = this.fpSpread1.EditingControl as GeneralEditor;
  4.             ge.PreviewKeyDown += new PreviewKeyDownEventHandler(ge_PreviewKeyDown);
  5.         }

  6.         void ge_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
  7.         {
  8.             //if (e.KeyValue== 46)
  9.             //{
  10.             //    GeneralEditor ge=sender as GeneralEditor;
  11.             //    string test = ge.SelectedText;
  12.             //    ge.Text.Replace(test, "");
  13.             //}
  14.         }
复制代码
回复 使用道具 举报
zjutwb
高级会员   /  发表于:2013-11-29 18:39:00
板凳
本身 delete 键就可以删除单元格中的选中文字。???    我怎么使用中,delete键删除不了选中单元里的文字?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-12-2 11:07:00
地板
回复 3楼zjutwb的帖子

是的,请参考截图:

Demo1.gif

或者我理解的和你描述的操作不一致?
回复 使用道具 举报
zjutwb
高级会员   /  发表于:2013-12-3 22:23:00
5#
我的删除,跟你的删除还是不一样。比如我是选中A1B1两格,在按delete键,按照excel的话,直接就删除A1B1两个里的数据,而你们这个功能好像不行。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2013-12-4 09:47:00
6#
回复 5楼zjutwb的帖子

试试下面的代码:


  1. this.fpSpread1.KeyDown += new KeyEventHandler(spread_KeyDown);


  2. private void spread_KeyDown(object source, KeyEventArgs e)
  3.         {
  4.             if (e.KeyCode == Keys.Delete)
  5.             {
  6.                 FpSpread spread = (FpSpread)source;
  7.                 int selectionCount = spread.ActiveSheet.SelectionCount;
  8.                 if (selectionCount > 0)
  9.                 {
  10.                     for (int i = 0; i < selectionCount; i++)
  11.                     {
  12.                         CellRange range = spread.ActiveSheet.GetSelection(i);
  13.                         spread.ActiveSheet.ClearRange(range.Row, range.Column, range.RowCount, range.ColumnCount, true);
  14.                     }
  15.                 }
  16.                 else
  17.                 {
  18.                     int activeRow = spread.ActiveSheet.ActiveRowIndex;
  19.                     int activeColumn = spread.ActiveSheet.ActiveColumnIndex;
  20.                     spread.ActiveSheet.ClearRange(activeRow, activeColumn, 1, 1, true);
  21.                 }
  22.                 e.Handled = true;
  23.             }
  24.         }
复制代码
回复 使用道具 举报
zjutwb
高级会员   /  发表于:2013-12-6 14:18:00
7#
C#上不行.
回复 使用道具 举报
zjutwb
高级会员   /  发表于:2013-12-6 14:30:00
8#
CellRange 这个有问题。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2013-12-6 14:37:00
9#
回复 8楼zjutwb的帖子

恩, 啥问题?
代码、截图, 多点详细的描述有助于解决问题。
回复 使用道具 举报
zjutwb
高级会员   /  发表于:2013-12-6 14:41:00
10#
改为:FarPoint.Win.Spread.Model.CellRange range = fpSpread1.ActiveSheet.GetSelection(i);   可以了。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部