如何在cxGrid中实现在某个单元格输入数据,其它若干单元格也自动输入相同的内容? 如题. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 // 我在C++ Builder中写了如下的代码:void TForm1::ImportSameTextInSelections(AnsiString strText){ for (int i=0; i <5; i++) for (int j=0; j<5; j++) { TableView->DataController->Values[i][j] = strText; }}//---------------------------------------------------------------------------void __fastcall TForm1::TableViewEditKeyUp( TcxCustomGridTableView *Sender, TcxCustomGridTableItem *AItem, TcxCustomEdit *AEdit, WORD &Key, TShiftState Shift){ Variant val = AEdit->EditingValue; if (!VarIsNull(val)) { TableView->DataController->BeginUpdate(); ImportSameTextInSelections(val); TableView->DataController->EndUpdate(); } }//---------------------------------------------------------------------------可是在输入时,当前单元格的内容输入之后,一闪就没有了,其它需要输入相同内容的单元格也只有当前输入的字符,其它字符也没有了。我这样做的目的:在一个数据录入界面中,用户选择若干单元格后,输入相同的内容。以前用TStringGrid已经实现,因为cxGrid功能强大,就改用cxGrid,可相同作用的代码,现在却行不通。搞了一下午了,也没有搞出来! 以前做过。不要在这个事件里面写,跟数据集组件有关的,什么什么Change的...在那里面写,改变其它的时候就改变那个Filedvalue就可以了 我这样可以达到输入相同的内容,但是得解决一个问题:当前单元格处于焦点时,输入的字符不被选择为蓝色,就是光标直接处于字符的最后!// 设定总显示编辑栏TableView->OptionsBehavior->AlwaysShowEditor = true;TableView->OptionsBehavior->ImmediateEditor = true;void __fastcall TForm1::TableViewEditKeyUp( TcxCustomGridTableView *Sender, TcxCustomGridTableItem *AItem, TcxCustomEdit *AEdit, WORD &Key, TShiftState Shift){ TableView->BeginUpdate(); try { int R = TableView->Controller->FocusedRowIndex; int C = TableView->Controller->FocusedColumnIndex; A(R,C); } __finally { TableView->EndUpdate(); }}//---------------------------------------------------------------------------void TForm1::A(int R, int C){ AnsiString strText = ""; // 通过改变当前焦点得到当前输入单元格的内容 TableView->Controller->FocusedRowIndex = 0; TableView->Controller->FocusedColumnIndex = 0; Variant val = TableView->DataController->Values[R][C]; if (!VarIsNull(val)) strText = AnsiString(val); for(int i=0; i<5; i++) for(int j=0; j<5;j++) TableView->DataController->Values[i][j] = strText; // 再把焦点移到当前单元格。此时如果解决上面的问题,即可以完全达到要求!!! TableView->Controller->FocusedRowIndex = R; TableView->Controller->FocusedColumnIndex = C;} Chinaneu(中国东大):谢谢!当前单元格处于焦点时,输入的字符不被选择为蓝色,就是光标直接处于字符的最后!这个问题,我想,不应该是大问题,哪个高手知道说一下! XE3中,如何显示各种非unicode文字? 图片路径 已知一条线(x1,y1) (x2,y2) ,求经过(x1,y1)的垂直线 如何将装入到graphi字段的图片压缩?? 请问如何得到MainMenu在窗口上方出现的菜单条的高度? IntraWeb/EWF/Asp.Net,你都用哪个?why? WindowsNT下关机的源代码 有关日期的问题,在线等待,急!急!急! 大家来帮我啊,一个很简单的问题 midas 3.0的'interface not supported'(接口不支持)错误 如何动态修改cxGrid当前单元格的颜色和字体? 怎么利用cxgrid的搜索结果?
{
for (int i=0; i <5; i++)
for (int j=0; j<5; j++)
{
TableView->DataController->Values[i][j] = strText;
}
}
//---------------------------------------------------------------------------void __fastcall TForm1::TableViewEditKeyUp(
TcxCustomGridTableView *Sender, TcxCustomGridTableItem *AItem,
TcxCustomEdit *AEdit, WORD &Key, TShiftState Shift)
{
Variant val = AEdit->EditingValue;
if (!VarIsNull(val))
{
TableView->DataController->BeginUpdate();
ImportSameTextInSelections(val);
TableView->DataController->EndUpdate();
}
}
//---------------------------------------------------------------------------可是在输入时,当前单元格的内容输入之后,一闪就没有了,其它需要输入相同内容的单元格也只有当前输入的字符,其它字符也没有了。我这样做的目的:在一个数据录入界面中,用户选择若干单元格后,输入相同的内容。以前用TStringGrid已经实现,因为cxGrid功能强大,就改用cxGrid,可相同作用的代码,现在却行不通。搞了一下午了,也没有搞出来!
不要在这个事件里面写,跟数据集组件有关的,什么什么Change的...在那里面写,改变其它的时候就改变那个Filedvalue就可以了
TableView->OptionsBehavior->AlwaysShowEditor = true;
TableView->OptionsBehavior->ImmediateEditor = true;void __fastcall TForm1::TableViewEditKeyUp(
TcxCustomGridTableView *Sender, TcxCustomGridTableItem *AItem,
TcxCustomEdit *AEdit, WORD &Key, TShiftState Shift)
{
TableView->BeginUpdate();
try
{
int R = TableView->Controller->FocusedRowIndex;
int C = TableView->Controller->FocusedColumnIndex;
A(R,C);
}
__finally
{
TableView->EndUpdate();
}
}
//---------------------------------------------------------------------------void TForm1::A(int R, int C)
{
AnsiString strText = ""; // 通过改变当前焦点得到当前输入单元格的内容
TableView->Controller->FocusedRowIndex = 0;
TableView->Controller->FocusedColumnIndex = 0;
Variant val = TableView->DataController->Values[R][C];
if (!VarIsNull(val)) strText = AnsiString(val); for(int i=0; i<5; i++)
for(int j=0; j<5;j++)
TableView->DataController->Values[i][j] = strText;
// 再把焦点移到当前单元格。此时如果解决上面的问题,即可以完全达到要求!!!
TableView->Controller->FocusedRowIndex = R;
TableView->Controller->FocusedColumnIndex = C;
}
谢谢!当前单元格处于焦点时,输入的字符不被选择为蓝色,就是光标直接处于字符的最后!这个问题,我想,不应该是大问题,哪个高手知道说一下!