CLI里的各种控件使用

来源:互联网 发布:矢量地图数据下载 编辑:程序博客网 时间:2024/06/14 11:10

cli里控件的使用和c#有很大的相似性,先看看 openfiledialog ,  backgroundworker, FolderBroswerDialog


1.把控件拖到界面上

2. 开始写按钮事件

   //打开一个文本文件,并开始一个线程进行分析工作
openFileDialog1->Filter=gcnew String("文本文件|*.txt");
openFileDialog1->Title=gcnew String("选择用例");
openFileDialog1->Multiselect=true;
if(openFileDialog1->ShowDialog()==System::Windows::Forms::DialogResult::OK)
{
progressBar1->Location=System::Drawing::Point(11, 520);
myPercent=0;
this->backgroundWorker1->RunWorkerAsync();


}
else
{
ResetProgress();
}


3. backgroundworker 的使用

private: System::Void backgroundWorker1_DoWork(System::Object^  sender, System::ComponentModel::DoWorkEventArgs^  e) {


   array<String^>^ NameArr=gcnew array<String^>(10000);
string msg;
NameArr=openFileDialog1->FileNames;
for(int i=0;i<NameArr->Length;i++)
{
int per=100/NameArr->Length;

if(openFileDialog1->FileName->Length>0)
{
if(isStep)
{
//不干了
if(iStop==0)
break;
AutoYongli(NameArr[i],per,i*per,backgroundWorker1,msg);
}
else
{
ReadYongli(NameArr[i],per,i*per,backgroundWorker1,msg);
}
}


}

//this->backgroundWorker1->ReportProgress(100);
ResetProgress();
}
private: System::Void backgroundWorker1_ProgressChanged(System::Object^  sender, System::ComponentModel::ProgressChangedEventArgs^  e) {
this->progressBar1->Value=e->ProgressPercentage;
}
private: System::Void backgroundWorker1_RunWorkerCompleted(System::Object^  sender, System::ComponentModel::RunWorkerCompletedEventArgs^  e) {
//MessageBox::Show("Work Completed");
}


3 选定一个文件夹,并赋值给路径box

fbd->ShowNewFolderButton=true;
if(fbd->ShowDialog()==System::Windows::Forms::DialogResult::OK)
{
txtLogPath->Text=fbd->SelectedPath;
txtLogPath->Text+="\\";
}