if  ckWithdraw.Checked then
  begin
    panel3.Caption:='退 货';
    dbg_zkfc.Options:=[dgTitles,dgIndicator,dgColumnResize,dgColLines,dgRowLines,dgTabs,dgConfirmDelete,dgCancelOnExit,dgMultiSelect];
    dbg_zkfc.Refresh;
  end
  else begin
   panel3.Caption:=' 发 出';
       dbg_zkfc.Options:=[dgTitles,dgIndicator,dgColumnResize,dgColLines,dgTabs,dgConfirmDelete,dgCancelOnExit];
       dbg_zkfc.Refresh;
  end;但是在切换后,单行模式就无法在dbgrid中录入数据了有什么简单有效的办法解决一下?

解决方案 »

  1.   


      if  ckWithdraw.Checked then 
      begin
        panel3.Caption:='退 货';
        dbg_zkfc.Options:=dbg_zkfc.Options + [dgMultiSelect];
        dbg_zkfc.Refresh;
      end
      else begin
        panel3.Caption:=' 发 出';
        dbg_zkfc.Options:=dbg_zkfc.Options - [dgMultiSelect];
        dbg_zkfc.Refresh;
      end;
      

  2.   

    清空先前多选的记录叫什么来着 dbgrd1.SelectedRows.Clear;
      

  3.   

    我目前的解决办法是放了两个dbgrid,一个使用单选,一个使用多选,控制着visible属性
      

  4.   


    if  ckWithdraw.Checked then
      begin
        panel3.Caption:='退 货';
        dbg_zkfc.Options:=[dgTitles,dgIndicator,dgColumnResize,dgColLines,dgRowLines,dgTabs,dgConfirmDelete,dgCancelOnExit,dgMultiSelect];
        dbg_zkfc.Refresh;
      end
      else begin
      panel3.Caption:=' 发 出';
          dbg_zkfc.Options:=[dgEditing,dgTitles,dgIndicator,dgColumnResize,dgColLines,dgTabs,dgConfirmDelete,dgCancelOnExit];//Options属性中你的代码缺少了dgEditing
          dbg_zkfc.Refresh;
      end;
      

  5.   

    谢谢哦,使用了两个dbgrid来实现,懒得修改了。