如题.

解决方案 »

  1.   

    // 我在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,可相同作用的代码,现在却行不通。搞了一下午了,也没有搞出来!
      

  2.   

    以前做过。
    不要在这个事件里面写,跟数据集组件有关的,什么什么Change的...在那里面写,改变其它的时候就改变那个Filedvalue就可以了
      

  3.   

    我这样可以达到输入相同的内容,但是得解决一个问题:当前单元格处于焦点时,输入的字符不被选择为蓝色,就是光标直接处于字符的最后!// 设定总显示编辑栏
    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;
    }
      

  4.   

    Chinaneu(中国东大):
    谢谢!当前单元格处于焦点时,输入的字符不被选择为蓝色,就是光标直接处于字符的最后!这个问题,我想,不应该是大问题,哪个高手知道说一下!