그리드를로드 할 때 사용하려는 진행률 막대를 디자인했습니다 (저장 프로 시저에서 DataGridview를로드합니다). 그러나 저장 프로 시저를 호출하는 프로세스에는 호출하는 항목이 다릅니다 (아래 참조). 나는 일찍 진행률 표시 줄을 얻는 일에 착수했다. (그것은 아래의 코드에서 볼 수 없기 때문에 왜 여기에 있는가?)하지만 내 질문은 이것이다.여러 작업이 포함 된 진행률 막대
추적하고있는 진행 상황이 여러 가지 다른 방법 일 때 진행 막대를 제대로 깨울 수 있습니까? "LoadGrid"메소드는 저장 프로 시저의 처리와 DataGridview의로드 (즉, 시간 절약 프로세스)와 같이 진행 상황을 추적하고 싶습니다. 나는 정확한 코드를 사용하는 것과는 정반대로 적절한 기술을 묻는 것이 더 바람직하다고 생각하지만 진행률 표시 줄에 대한 지식이 제한적입니다. "바쁜"이라고 말하는 무작위 아이콘을 사용할 수 있지만 합법적으로 가능한 경우 진행률 표시 줄을 사용하고 싶습니다.
public void btnLoadGrid_Click(object sender, EventArgs e)
{
frmProgress progressForm = new frmProgress();
try
{
progressForm.MdiParent = this;
progressForm.Text = "Importing DSC_0";
progressForm.Top = this.Height/3 - progressForm.Height/2;
progressForm.Left = this.Width/2 - progressForm.Width/2;
//ofd1.Title = "Import legacy DSC balances";
//this.ofd1.ShowDialog(this);
//Need code to empty grid before loading
grd1.Rows.Clear();
grd1.Refresh();
//Load grid based on new selections
GetUserSelections();
GetUserRelatedInfo();
LoadLabelForecastType();
LoadGrid();
}
catch (Exception ex)
{
util.LogError(ex);
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
Cursor.Current = Cursors.Default;
progressForm.Close();
}
는 그리고 진행 막대 자체 :
namespace AmortClient
{
public partial class frmProgress : Form
{
public frmProgress()
{
InitializeComponent();
}
public ProgressBar Pbar
{
get { return this.pb1; }
}
}
}
나는 배경 노동자를 사용하고 방금 루프에 대한 귀하의 모든 "작업"을 포장 진행률 표시 줄을 사용하는 마지막 시간입니다. 여기 제가 사용한 산책입니다. http://www.codeproject.com/Tips/83317/BackgroundWorker-and-ProgressBar-demo –
좋은 자습서. 매우 기초적이지만 효과적입니다. 내 프로젝트 코드의 원저자가 generics와 delegate에 관한 몇 가지 다른 것들과 함께 우리 시스템을 생각해 냈을 것이다. 나는 단지 그 뒤에 와서 그것을 나중에 패치해야했기 때문에 나는 그저 많이 알고있다. 그것은 그 일이 어떻게 처음 일했는지를 배우는 것을 의미했다 !!! = D – Nevyn
고마워, 나는 이것을 읽고 며칠 동안 시험해 볼 것이다. –