본 글에서는 주로 .NET WinForm을 이용하여 리스트뷰에 프로그레스바를 추가하는 방법을 소개하고 있으며, 프로그레스바 컨트롤의 추가 및 사용법을 예제 형식으로 간략하게 분석하고 있습니다. 필요한 친구들은 이 글의 예시를 참고하시면 됩니다.
.NET WinForm을 사용하여 목록뷰에 진행률 표시줄을 추가하는 방법을 설명합니다. 참고하실 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.
오랜 시간 동안 찾지 못해 제가 직접 작성했습니다.
우선 에서 목록 보기에 데이터를 로드하는 event에 진행률 표시줄 추가:
foreach (string d in arr) { int index = lv.Items.Count + 1; item = new ListViewItem(new string[] { index.ToString(), d, "", "", "", "" }); lv.Items.Add(item); float progress = 0; Rectangle SizeR = default(Rectangle); System.Windows.Forms.ProgressBar ProgBar = new System.Windows.Forms.ProgressBar(); SizeR = item.SubItems[2].Bounds; SizeR.Width = lv.Columns[2].Width; ProgBar.Parent = lv; ProgBar.SetBounds(SizeR.X, SizeR.Y, SizeR.Width, SizeR.Height); ProgBar.Value = (int)progress; ProgBar.Visible = true; //取一个唯一的名字,以后好找 ProgBar.Name = d + "progressbar"; }
그런 다음 진행률 표시줄의 값을 수정해야 하는 위치에 해당 값을 설정합니다:
//循环listview上的所有控件,按名字找到progressbar foreach (Control item in lv.Controls) { if (item.Name == d.Name + "progressbar") { ProgressBar bar = (ProgressBar)item; bar.Value = (int)((d.Progress) * 100); } }
실제로, 방금 리스트뷰에서 지정한 그리드의 진행바를 길이, 너비, 높이에 따라 수정했습니다. 여기서 리스트뷰의 열을 드래그하면 그리드의 위치가 변경됩니다. 이때 위치를 수정해야 합니다. 해당 진행률 표시줄의 ColumnWidthChanging 이벤트를 추가해야 합니다. 열을 드래그하면 진행률 표시줄의 위치가 변경됩니다.
private void lvt_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e) { Rectangle SizeR = default(Rectangle); int width = e.NewWidth; foreach (Control item in lv.Controls) { //根据名字找到所有的progressbar if (item.Name.IndexOf("progressbar") >= 0) { ProgressBar bar = (ProgressBar)item; //Rectangle size=bar.Bounds; SizeR=bar.Bounds; //lv.Columns[2]是放置progressbar的地方 SizeR.Width=lv.Columns[2].Width; bar.SetBounds(lv.Items[0].SubItems[2].Bounds.X, SizeR.Y, SizeR.Width, SizeR.Height); //bar.Width = width; } } }
위 내용은 .NET WinForm은 목록 보기에 진행률 표시줄을 추가하는 방법을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!