1. 由于单元格处于编辑状态的时候,按下回车键以及左右键甚至F1-F12不会触发MultiRow的KeyPreview事件,因此想要通过自定义单元格呼出GcMultiRow的这些事件。
抱歉,编辑状态是,无法触发MultiRow的PerviewKeyDown事件
2. 由于GcDate以及GcNumber类型的控件,原有的IvalidateRange以及IvalidateValue事件已经没有了。并且值的还原动作也不一样了。所以想要在封装的单元格里面增加这些动作。
CellType 上的MaxMinBehavior属性可能是你想要的
3. Template的动态重构....
个人建议,你可以建立一个数字索引和名字的对应关系来解决这个问题
例如,你设计Template的时候给你认为在第一小行第一列的Cell起名为“0,0” 给第二小行第三小列的Cell起名为“1,2”以此类推
然后你就可以封装如下代码:
- public class MyGcMultiRow : GcMultiRow
- {
- public Cell this[int row, int subRow, int subColumn]
- {
- get
- {
- var cellName = GetCellName(subRow, subColumn);
- return this[row, cellName];
- }
- }
- private string GetCellName(int subRow, int subColumn)
- {
- return subRow + "," + subColumn;
- }
- }
复制代码
有没有封装InputMan的单元格的Demo,能不能提供下?
自定义InputMan单元格的方法和自定义普通的单元格方法类似。
- public class MyGcTextBoxCellType : GcTextBoxCell
- {
- public override Type EditType
- {
- get
- {
- return typeof(MyGcTextBoxEditingControl);
- }
- }
- }
- public class MyGcTextBoxEditingControl : GcTextBoxEditingControl
- {
- }
复制代码
需要重写一些函数来达成一些自定义效果。 |