carlyuan1115 发表于 2016-1-22 23:33:00

MultiRow绑定GcSoftKeyboard的问题

MultiRow中的可输入单元格(如GcTextBoxCell,GcNumberBoxCell等)如何与软键盘控件GcSoftKeyboard绑定起来,只要一获得焦点就可以弹出软键盘?
还是说MultiRow得单元格无法使用这个功能?

robert 发表于 2016-1-25 12:31:00

请尝试以下代码,看是否可以解决问题
      public Form1()
      {
            InitializeComponent();
            this.gcMultiRow1.CellBeginEdit += GcMultiRow1_CellBeginEdit;
            this.gcMultiRow1.CellEndEdit += GcMultiRow1_CellEndEdit;
      }

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

      private void GcMultiRow1_CellBeginEdit(object sender, CellBeginEditEventArgs e)
      {
            if(this.gcMultiRow1.CurrentCell is TextBoxCell)
            {
                this.gcMultiRow1.ShowTouchKeyboard();
            }
      }

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

取到的editingcontrol一直是空,有什么地方需要设置吗?

robert 发表于 2016-1-25 14:15:00

是否可以尝试用EditingControlShowing事件替换CellBeginEdit事件?

carlyuan1115 发表于 2016-1-25 15:11:00

貌似不行,editingcontrol不是nothing了,但是也不是编辑中的单元格,弹出的keyboard看上去还是以multirow为基础的

Alice 发表于 2016-1-25 17:36:00

回复 7楼carlyuan1115的帖子

嗯,问题我们收到了,我们再研究看看,然后给您反馈。

robert 发表于 2016-1-27 11:16:00

是否可以试试以下代码,看是否和预期的行为一致
      private void GcMultiRow1_EditingControlShowing(object sender, EditingControlShowingEventArgs e)
      {
            this.BeginInvoke(new System.Action(()=>
            {
                if(this.gcMultiRow1.EditingControl!= null)
                {
                  gcSoftKeyBoard.KeyboardPositioningMode = SoftKeyboardPositioningMode.DropDown;

                  gcSoftKeyBoard.Show(this.gcMultiRow1.EditingPanel);
                }
            }));
      }

      private void GcMultiRow1_CellEndEdit(object sender, CellEndEditEventArgs e)
      {
            gcSoftKeyBoard.Hide();
      }

carlyuan1115 发表于 2016-1-27 13:44:00

就是这个效果!对大神献上膝盖!
不过稍微再有一点点要求就是,
出来keyboard之后,点上面的数字什么的输不到multirow的单元格里,必须要再点一下单元格之后再点键盘才能输入。
这是为什么?
页: [1] 2
查看完整版本: MultiRow绑定GcSoftKeyboard的问题