找回密码
 立即注册

QQ登录

只需一步,快速开始

carlyuan1115

注册会员

4

主题

16

帖子

38

积分

注册会员

积分
38

微信认证勋章

最新发帖
carlyuan1115
注册会员   /  发表于:2016-1-22 23:33  /   查看:9433  /  回复:15
MultiRow中的可输入单元格(如GcTextBoxCell,GcNumberBoxCell等)如何与软键盘控件GcSoftKeyboard绑定起来,只要一获得焦点就可以弹出软键盘?
还是说MultiRow得单元格无法使用这个功能?

15 个回复

倒序浏览
robert
金牌服务用户   /  发表于:2016-1-25 12:31:00
沙发
请尝试以下代码,看是否可以解决问题
  1.         public Form1()
  2.         {
  3.             InitializeComponent();
  4.             this.gcMultiRow1.CellBeginEdit += GcMultiRow1_CellBeginEdit;
  5.             this.gcMultiRow1.CellEndEdit += GcMultiRow1_CellEndEdit;
  6.         }

  7.         private void GcMultiRow1_CellEndEdit(object sender, CellEndEditEventArgs e)
  8.         {
  9.             this.gcMultiRow1.HideTouchKeyboard();
  10.         }

  11.         private void GcMultiRow1_CellBeginEdit(object sender, CellBeginEditEventArgs e)
  12.         {
  13.             if(this.gcMultiRow1.CurrentCell is TextBoxCell)
  14.             {
  15.                 this.gcMultiRow1.ShowTouchKeyboard();
  16.             }
  17.         }
复制代码
回复 使用道具 举报
carlyuan1115
注册会员   /  发表于:2016-1-25 13:03:00
板凳
谢谢版主,首先这样弹出的并不是gcsoftkeyboard,是系统的软键盘吧?
我找到了弹出gcsoftkeyboard的方法了,基本思路差不多是这样,只是弹出来的位置有点怪,是以整个multirow为基础的,不是某个cell,有什么办法吗?
或者换个问法,gcsoftkeyboard的show方法第一个参数是control类型的,但cell不是一个control,有办法把cell转换成control吗?
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2016-1-25 13:33:00
地板
把Cell换成GcMultiRow.EditingControl试试,看是否可以
回复 使用道具 举报
carlyuan1115
注册会员   /  发表于:2016-1-25 13:54:00
5#
取到的editingcontrol一直是空,有什么地方需要设置吗?
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2016-1-25 14:15:00
6#
是否可以尝试用EditingControlShowing事件替换CellBeginEdit事件?
回复 使用道具 举报
carlyuan1115
注册会员   /  发表于:2016-1-25 15:11:00
7#
貌似不行,editingcontrol不是nothing了,但是也不是编辑中的单元格,弹出的keyboard看上去还是以multirow为基础的
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-1-25 17:36:00
8#
回复 7楼carlyuan1115的帖子

嗯,问题我们收到了,我们再研究看看,然后给您反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2016-1-27 11:16:00
9#
是否可以试试以下代码,看是否和预期的行为一致
  1.         private void GcMultiRow1_EditingControlShowing(object sender, EditingControlShowingEventArgs e)
  2.         {
  3.             this.BeginInvoke(new System.Action(()=>
  4.             {
  5.                 if(this.gcMultiRow1.EditingControl!= null)
  6.                 {
  7.                     gcSoftKeyBoard.KeyboardPositioningMode = SoftKeyboardPositioningMode.DropDown;

  8.                     gcSoftKeyBoard.Show(this.gcMultiRow1.EditingPanel);
  9.                 }
  10.             }));
  11.         }

  12.         private void GcMultiRow1_CellEndEdit(object sender, CellEndEditEventArgs e)
  13.         {
  14.             gcSoftKeyBoard.Hide();
  15.         }
复制代码

评分

参与人数 1金币 +999 收起 理由
Alice + 999 奖金金币

查看全部评分

回复 使用道具 举报
carlyuan1115
注册会员   /  发表于:2016-1-27 13:44:00
10#
就是这个效果!对大神献上膝盖!
不过稍微再有一点点要求就是,
出来keyboard之后,点上面的数字什么的输不到multirow的单元格里,必须要再点一下单元格之后再点键盘才能输入。
这是为什么?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部