C++ Builder 中對listview模擬複製某個單元格的內容
實現listview的雙擊事件OnDblClick()新增如下程式碼:
方法一:
POINT ptt;
GetCursorPos(&ptt); //獲取螢幕相對座標
long nPos = ptt.x; //獲取X軸長度
if( lv2->SelCount <= 0 ){ return; } //如果點選listview空白處之間返回
int nIndex = 0;//索引
long nTotal = lv2->Left+pnl2->Width+3;//計算螢幕座標距離左邊的長度作為初始值
for(int i=0;i<lv2->Columns->Count;i++)
{
TListColumn *pCol = lv2->Column[i];
if( pCol->Width == 1 )//主要針對listview第一列是checkbox
{
nTotal+= pCol->Width;
continue;
}
if( nPos > nTotal )
{
nTotal+= 1;//每2個格子之間的寬度算1
nTotal+= pCol->Width;
if( nTotal >= nPos )
{
int nTemp = nTotal-pCol->Width;
if( nPos >= nTemp+1 && nPos <= nTotal )
{
nIndex = i;
}
else
{
nIndex = i-1;
}
break;
}
}
}
nIndex = nIndex-1; //減掉第一列listview第一列是給checkbox預留的所以要從第二列開始算起
if( nIndex == -1 ) { return; }
String strValue = "";
try
{
strValue = lv2->Items->operator[](lv2->Selected->Index)->SubItems->Strings[nIndex];
}catch(...)
{
strValue="";
}
方法二:
int nIndex = 0;
TPoint Pos = lv2->ScreenToClient(Mouse->CursorPos);
Pos.x += GetScrollPos(lv2->Handle, SB_HORZ);
for(int i=0; i<lv2->Columns->Count; i++)
{
Pos.x -= ListView_GetColumnWidth(lv2->Handle, i);
if (Pos.x < 0)
{
nIndex = i;
break;
}
}
nIndex = nIndex-1; //減掉第一列listview第一列是給checkbox預留的所以要從第二列開始算起
if( nIndex == -1 ) { return; }
String strValue = "";
try
{
strValue = lv2->Items->operator[](lv2->Selected->Index)->SubItems->Strings[nIndex];
}catch(...)
{
strValue="";
}
Clipboard()->Clear();
Clipboard()->SetTextBuf(strValue.c_str());
最終將複製單元格的內容儲存到剪下板中,如果Clipboard報錯未定義,引入標頭檔案:#include <Vcl.Clipbrd.hpp>
lv2是listview控制元件的name。
相關文章
- JavaScript合併表格中的內容相同的單元格JavaScript
- poi操作excel,複製sheet,複製行,複製單元格,複製styleExcel
- wps的excel中的單元格限定輸入的內容Excel
- elementui——表格的相同內容單元格合併UI
- 複製excel中設定了公式的單元格資料的方法Excel公式
- js獲取點選單元格中的內容程式碼例項JS
- 複製ue中的十六進位制內容
- 如何從 ABAP 偵錯程式裡提取某個內表的內容用於單元測試
- Delphi_Excel例子:單元格複製貼上 (轉)Excel
- DataGridView設定單元格的提示內容ToolTip詳解View
- 用C++模擬蚊子的運動來檢驗概率論內容C++
- elixir模擬ruby快速複製字串字串
- C++中的複製控制C++
- 前端模擬使用者的複製操作前端
- Excel2003中將同一列單元格中的內容進行分列Excel
- ABAP--一個讀取EXCEL單元格的內容超過256個字元的程式碼樣例Excel字元
- js獲取指定單元格的內容程式碼例項例項JS
- java繼承——對物件中的重複內容說ByeJava繼承物件
- 在excel中某些單元格內批量增加相同的內容Excel
- QT之——QTableWidget拖拽單元格並替換內容(進階)QT
- SpringBoot中的response和request模擬單元測試Spring Boot
- 獲取某庫某個儲存過程內容儲存過程
- 單元測試模擬框架Mockito框架Mockito
- 模擬標準c++中的RttiC++
- js 實現點選複製內容JS
- JavaScript複製內容到剪貼簿JavaScript
- 用C++ Builder來定製系統選單(轉)C++UI
- 通過生成內容和CSS網格佈局為空單元格新增樣式CSS
- goldengate 過濾對某張表的複製操作Go
- PHP模擬登陸抓取頁面內容PHP
- css+js 設定網頁內容不可複製或可複製CSSJS網頁
- 禁止複製網頁內容的程式碼例項網頁
- aix掛載光碟機並把內容複製到本地硬碟中AI硬碟
- 需求:獲取其他程式中的ListView控制元件的文字內容View控制元件
- 如何隱藏Excel中單元格公式且其他單元格可修改Excel公式
- 單元測試之模擬物件技術物件
- c# datagridview選中當前單元格及單元格單擊事件C#View事件
- Golang 單元測試執行 _test.go 中的某個 func 方法Golang