我用了 CellEndEdit事件,在编辑单元格值后按下Enter键,然后单元格焦点向下移动.
我希望焦点回到我编辑值的原始Cell.
我用过很多方法,但都失败了.
Private Sub DataGridVie1_CellEndEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridVie1.CellEndEdit
'...
'....editing codes here...to input and validate values...
'...
'...
'...before the End If of the procedure I put this values
DataGridVie1.Rows(e.RowIndex).Cells(e.ColumnIndex).Selected = True
DataGridVie1.CurrentCell = DataGridVie1.Rows(e.RowIndex).Cells(e.ColumnIndex)
'DataGridVie1.BeginEdit(False) '''DID NOT apply this because it cause to edit again.
End If
Run Code Online (Sandbox Code Playgroud)
我不知道编辑后或输入键后的实际代码,焦点回到编辑的原始单元格中.
因为每次我点击ENTER键,它直接进入下一个Cell.
是什么代码将焦点重新定位回原始Cell编辑.
我知道这个EditingControlShowing方法,但我不认为我必须使用那种方法来获得我想要的东西.
我投降,我花了我的时间差不多12小时得到我想要的,但我不能.
此代码搜索所有文件夹和文件名,但我想排除一些文件夹,包括我要从搜索中排除的文件夹的子目录.
我希望有人可以提供帮助.
procedure TForm1.CombineDir(InDir : string; OutStream : TStream);
var AE : TArchiveEntry;
dFound:boolean;
procedure RecurseDirectory(ADir : string);
var sr : TSearchRec;
TmpStream : TStream;
begin
if FindFirst(ADir + '*', faAnyFile, sr) = 0 then begin
repeat
if (sr.Attr and (faDirectory or faVolumeID)) = 0 then begin
//ShowMessage('Filename is :>'+ ADir + sr.Name);
if (NotThisPath.IndexOf(ADir + sr.Name)>=0) or dFound then begin
ShowMessage('DO NOT INCLUDE THIS FILENAME :>'+ ADir + sr.Name);
end else begin
ShowMessage('>>> INCLUDE THIS FILENAME :>'+ ADir …Run Code Online (Sandbox Code Playgroud) 此代码使用:TArchiveEntry ;
那么,我真的怀疑这不是来自Zlib Unit吗?因为可以在不声明Zlib单元的情况下使用TArchiveEntry.
var AE : TArchiveEntry;
Run Code Online (Sandbox Code Playgroud)
AE.EntryType := aeFile;
AE.FileNameLen := Length(sr.Name);
AE.FileLength := sr.Size;
OutStream.Write(AE, SizeOf(AE));
OutStream.Write(sr.Name[1], Length(sr.Name));
// Write the file itself
TmpStream := TFileStream.Create(ADir + sr.Name, fmOpenRead or fmShareDenyWrite);
OutStream.CopyFrom(TmpStream, TmpStream.Size);
TmpStream.Free;
Run Code Online (Sandbox Code Playgroud)
毫无疑问,这是来自Zlib Unit.
var compr : TZCompressionStream;
Run Code Online (Sandbox Code Playgroud)
for i := 0 to zFiles.Count-1 do
begin
compr := TZCompressionStream.Create(mStream, zcDefault);
compr.CopyFrom(infile,c);
compr.Free;
end;
Run Code Online (Sandbox Code Playgroud)
我想知道为什么,有什么区别?我无法弄明白,几乎有相同的表现.