提高处理listView项的函数的速度 背景
我正在开发一个使用提高处理listView项的函数的速度 背景,listview,c++-cli,Listview,C++ Cli,我正在开发一个使用listView的应用程序,我已经编写了一些函数,用于对lisyView中的项目执行操作。我的操作为OnClickCopyAllDomains和OnClickMarkAllDomains。此函数适用于域(listView项目),当listView包含超过100.000个项目时,我会感觉工作速度如何下降。下面我将向您展示函数,我希望您提前告诉我如何提高函数的速度? OnClickMarkAllDomains 此函数将listViewitems checked状态设置为true S
listView
的应用程序,我已经编写了一些函数,用于对lisyView
中的项目执行操作。我的操作为OnClickCopyAllDomains
和OnClickMarkAllDomains
。此函数适用于域(listView项目),当listView
包含超过100.000个项目时,我会感觉工作速度如何下降。下面我将向您展示函数,我希望您提前告诉我如何提高函数的速度?
OnClickMarkAllDomains
此函数将listView
items checked状态设置为true
System::Void MainForm::OnClickMarkAllDomains(System::Object^ sender, System::EventArgs^ e) {
for( int i=0; i<listViewDomainsInfo->Items->Count; ++i )
listViewDomainsInfo->Items[i]->Checked = true;
}
问题:
如何使我的功能更好,提高它们的速度?在循环之前和之后调用
此外,使用字符串连接时效率极低。将
outputClipboard
a而不是System::String.复制到剪贴板怎么样?
System::Void MainForm::OnClickCopyAllDomains(System::Object^ sender, System::EventArgs^ e) {
int itemsCount = listViewDomainsInfo->Items->Count;
System::String^ outputClipboard = System::String::Empty;
for( int i=0; i<itemsCount; ++i ) {
outputClipboard += listViewDomainsInfo->Items[i]->Text + "\r\n";
}
if( !System::String::IsNullOrEmpty( outputClipboard ) ) {
try {
System::Windows::Forms::Clipboard::SetText( outputClipboard );
}
catch( ... ) { }
}
}