cxGrid使用记录
cxgrid 双击 获取所点击行的内容
创建view的 optionsselection->cellselect 设置为false ,才能触发双击事件
案例:
procedure TForm_Child_Archive.cxGrid1DBTableView1CellDblClick(
Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo;
AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin3
////取得所双击列的列表头名称 ACellViewInfo.Item.Index 为所双击列
//ShowMessage(cxGrid1DBTableView1.Columns[ACellViewInfo.Item.Index].Caption);
with cxGrid1DBTableView1.DataController do
begin
//取某行某列的值 ,取第5列,参数4
ShowMessage(Values[FocusedRecordIndex,4]);
end;
end;
其他:
如果不需要对单元格进行选择可:设置CXGrid的TableView对象的OptionsSelection->CellSelect 为False;
如果需要对单元格进行选择可:设置CXGrid的TableView对象的OptionsData中的全部属性 为False;
cxgrid的多选记录 修改记录问题
cxgrid多选 , 有可能是连续的,有可能是隔了其他记录的
cxgrid 把 cxGrid1DBTableView1--》 optionselection--》multiselect设为true就可以了
GridView.DataController.DataModeController.GridMode=True;
修改选中的记录中一个字段 :
sample1:
procedure TForm1.btnSelectValueClick(Sender: TObject);
var
I, J:Integer;
begin
for I:=0 to tvcxgd1DBTableView1.DataController.GetSelectedCount-1 do begin
J:=tvcxgd1DBTableView1.DataController.GetSelectedRowIndex(I);
ShowMessage(VarToStr(tvcxgd1DBTableView1.DataController.GetValue(J,0)));
end;
end; sample2:
Var
i:integer;
begin
For i:=0 To cxGrid1DBTableView1.Controller.SelectedROwCount-1 Do
begin
cxGrid1dbtableview1.Controller.FocusedRow:=cxGrid1dbtableview1.Controller.SelectedRows[i];
Adoquery1.Edit;
Adoquery1.FieldByName('DeptName').AsString:=Edit1.Text
Adoquery1.Post;
end;
end;
摘自:http://topic.csdn.net/t/20041025/08/3487114.html
摘自:http://topic.csdn.net/t/20060113/09/4514294.html
进行cxgrid多行记录删除
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
sID : string;
adotmp : TADOQuery;
begin
//Values[0] 为字段a
//Values[1] 为标识字段
//cxgrdItemList 为cxGrid
sID := '0';
for i := 0 to cxgrdItemList.DataController.Controller.SelectedRecordCount - 1 do
begin
if cxgrdItemList.DataController.Controller.SelectedRecords[i].Values[0] = True then
continue;
sID := sID + ', ' + cxgrdItemList.DataController.Controller.SelectedRecords[i].Values[1];
end;
adotmp := TADOQuery.Create(nil);
with adotmp do
try
{自己写
Connection := ;
}
sql.Text := 'delete from yTbName where ID in (' + sID + ')';
ExecSQL;
finally
free;
//刷新一下cxgrid的dataset;
end;
end;
摘自:http://hi.baidu.com/diy_era/blog/item/73b5ccdd6896dd385882dd12.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人