在C#中DevExpress.XtraEditors.XtraForm的类型初始值设定项引发异常,报这个错误应该怎么解决.
展开全部
一楼答的是不是楼主的问题?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
progressBar.Value = e.ProgressPercentage;
像这样的语句在BackgroundWorker线程中是不允许的,因为是进度条这个控件是属于主线程的。其它的线程不可以修改其值,如果要修改的话,也只能通过主线程来修改,我们可以使用代理(delegate)来实现。如:
delegate void DgSetProgressValue(int value);
private void SetProgressValue(int value)
{
progressBar.Value=value;
}
private void bwg_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
//progressBar.Value = e.ProgressPercentage;
DgSetProgressValue Dspv=new DgSetProgressValue(SetProgressValue);
this.Invoke(Dspv,e.ProgressPercentage);
lblStatus.Text = e.UserState.ToString();
int len=listBlog.Count;
if (len > 0)
{
dataGridView.RowCount = len;
for (int i = 0; i < len; i++)
{
DataGridViewTextBoxCell cellTitle = (DataGridViewTextBoxCell)dataGridView.Rows[i].Cells[1];
cellTitle.Value = listBlog[i].BlogTitle;
DataGridViewLinkCell cellUrl = (DataGridViewLinkCell)dataGridView.Rows[i].Cells[2];
cellUrl.Value = mCnblogsAnalysis.GetPcBlogUrl(listBlog[i].BlogUrl);
cellUrl.Tag = listBlog[i].BlogUrl;
}
}
其它地方类似修改,另外,你得在程序中使用try...catch...finally来处理异常啊。
像这样的语句在BackgroundWorker线程中是不允许的,因为是进度条这个控件是属于主线程的。其它的线程不可以修改其值,如果要修改的话,也只能通过主线程来修改,我们可以使用代理(delegate)来实现。如:
delegate void DgSetProgressValue(int value);
private void SetProgressValue(int value)
{
progressBar.Value=value;
}
private void bwg_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
//progressBar.Value = e.ProgressPercentage;
DgSetProgressValue Dspv=new DgSetProgressValue(SetProgressValue);
this.Invoke(Dspv,e.ProgressPercentage);
lblStatus.Text = e.UserState.ToString();
int len=listBlog.Count;
if (len > 0)
{
dataGridView.RowCount = len;
for (int i = 0; i < len; i++)
{
DataGridViewTextBoxCell cellTitle = (DataGridViewTextBoxCell)dataGridView.Rows[i].Cells[1];
cellTitle.Value = listBlog[i].BlogTitle;
DataGridViewLinkCell cellUrl = (DataGridViewLinkCell)dataGridView.Rows[i].Cells[2];
cellUrl.Value = mCnblogsAnalysis.GetPcBlogUrl(listBlog[i].BlogUrl);
cellUrl.Tag = listBlog[i].BlogUrl;
}
}
其它地方类似修改,另外,你得在程序中使用try...catch...finally来处理异常啊。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询