MultiRow绑定GcSoftKeyboard的问题
MultiRow中的可输入单元格(如GcTextBoxCell,GcNumberBoxCell等)如何与软键盘控件GcSoftKeyboard绑定起来,只要一获得焦点就可以弹出软键盘?还是说MultiRow得单元格无法使用这个功能? 请尝试以下代码,看是否可以解决问题
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();
}
} 谢谢版主,首先这样弹出的并不是gcsoftkeyboard,是系统的软键盘吧?
我找到了弹出gcsoftkeyboard的方法了,基本思路差不多是这样,只是弹出来的位置有点怪,是以整个multirow为基础的,不是某个cell,有什么办法吗?
或者换个问法,gcsoftkeyboard的show方法第一个参数是control类型的,但cell不是一个control,有办法把cell转换成control吗? 把Cell换成GcMultiRow.EditingControl试试,看是否可以 取到的editingcontrol一直是空,有什么地方需要设置吗? 是否可以尝试用EditingControlShowing事件替换CellBeginEdit事件? 貌似不行,editingcontrol不是nothing了,但是也不是编辑中的单元格,弹出的keyboard看上去还是以multirow为基础的 回复 7楼carlyuan1115的帖子
嗯,问题我们收到了,我们再研究看看,然后给您反馈。 是否可以试试以下代码,看是否和预期的行为一致
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();
} 就是这个效果!对大神献上膝盖!
不过稍微再有一点点要求就是,
出来keyboard之后,点上面的数字什么的输不到multirow的单元格里,必须要再点一下单元格之后再点键盘才能输入。
这是为什么?
页:
[1]
2