private void Start1_Click(object sender, EventArgs e)
        {
            ProjectTableRow CurrentRow = ProjectTable.First(x => x.Id == ProId);

            bworker = new BckWorkerTemplate(ProName, TopTable, AnsTemplate, pausebfconfirm, pausebfnextpost, postQnA, ref CurrentRow);
            workerdict.Add(ProId, bworker);
            workerdict[ProId].bwStartDataGrid(sender, e);
            this.Start1.Enabled = false;
        }
        public BckWorkerTemplate(string ProjName, string TopicTable, string AnswTmpl, int pausebfconfirm, int pausebfnextpost, bool postQnA, ref ProjectTableRow CntRow)
        {
            bw                 = new System.ComponentModel.BackgroundWorker();
            locProjName        = ProjName;
            locTopicTable      = TopicTable;
            locAnswTmpl        = AnswTmpl;
            locpausebfconfirm  = pausebfconfirm;
            locpausebfnextpost = pausebfnextpost;
            locpostQnA         = postQnA;

            bw.WorkerSupportsCancellation = true;
            bw.WorkerReportsProgress      = true;

            bw.DoWork             += new DoWorkEventHandler(bw_DoWorkDataGrid);
            bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompdDataGrid);
            bw.ProgressChanged    += new ProgressChangedEventHandler(bw_ProgressChdDataGrid);

            localTableRow = CntRow;

            // e.g.  "MumsNetUK", "topicsmumsnet", "AmazonUK-one-link"
        }
        private void PopulateDataGrid()
        {
            //DataGridViewProgressColumn column = new DataGridViewProgressColumn();

            this.projectDataGridView1.AutoGenerateColumns = false;

            Projects prjs = new Projects();

            ProjectTable = new BindingList <ProjectTableRow>();

            prjs.Query.AddResultColumn(Projects.ColumnNames.Id);
            prjs.Query.AddResultColumn(Projects.ColumnNames.ProjectName);
            prjs.Query.AddResultColumn(Projects.ColumnNames.TopicsTable);
            prjs.Query.AddResultColumn(Projects.ColumnNames.AnswerTemplate);

            prjs.Query.AddResultColumn(Projects.ColumnNames.Language);
            prjs.Query.AddResultColumn(Projects.ColumnNames.Pausebeforeconfirm);
            prjs.Query.AddResultColumn(Projects.ColumnNames.Pausebeforenextpost);
            prjs.Query.AddResultColumn(Projects.ColumnNames.PostQnA);

            prjs.Query.Load();
            int rownum = prjs.RowCount;

            for (int i = 1; i <= rownum; i++)
            {
                prjs.Filter = Projects.ColumnNames.Id + " = " + i.ToString();

                if (!prjs.EOF)
                {
                    ProjectTableRow row = new ProjectTableRow(prjs.Id, prjs.ProjectName, prjs.TopicsTable, prjs.AnswerTemplate, prjs.Language, prjs.Pausebeforeconfirm, prjs.Pausebeforenextpost, ToBool(prjs.PostQnA));

                    ProjectTable.Add(row);
                }
                prjs.Filter = null;
            }
            this.projectDataGridView1.DataSource = ProjectTable;
        }