这可能是一个简单的解决方案,但我无法理解它。
我有动态生成的页面,我计算需要通过LINQ语句生成的页面(例如):(这是更新的代码,用于显示调用questionCount的位置并设置为_labelQuestionCount - 这是一个片段从一个更大的方法动态生成所有页面并设置动态页面中的所有控件)
using (DataClasses1DataContext db = new DataClasses1DataContext())
{
int questionsCount = (from q in db.vw_Custom_SelectQuestionnaireQuestions
select q.tbl_QuestionnaireQuestion_Description).Count();
_labelQuestionCount = questionsCount.ToString();
}
Label labelCount = new Label();
labelCount.ForeColor = Color.Blue;
labelCount.Location = new System.Drawing.Point(35, 290);
labelCount.Size = new System.Drawing.Size(150, 30);
labelCount.Tag = _dataSetRadioButtons.Tables["tbl_QuestionnaireAnswer_Score"];
labelCount.Text = String.Format("Question Count: {0}", _labelQuestionCount);
这是全局变量:
string _labelQuestionCount;
原因是,当我点击动态创建的页面时,我想“计算”它们,以便在我的“下一个按钮”事件中,我将知道x页面是我的最后一页,我可以导航/做一些其他的代码。
下一个按钮的当前代码是:(更新)
void nextButton_Click(object sender, EventArgs e)
{
bool c = IsChecked(_form);
if (c == true)
{
var w = Convert.ToInt32(_labelQuestionCount);
_form.Dispose();
w--;
if (w == 0)
{
//go to another page or do something else
}
}
else
{
MessageBox.Show("You must select at least one.");
}
}
正如你所看到的,我尝试从全局变量(例如__labelQuestionCount
)中获取值并尝试将其计数为“向下”,直到达到0并执行其他操作。
但是,因为我的页面是动态生成的,所以我永远不会达到0.
这可能是错误的方法,所以如果有人可以建议或帮助它将非常感激。
亲切的问候, geoNeo
答案 0 :(得分:1)
你必须在下一个按钮点击事件中将减少的值(w--)重新分配给全局变量_labelQuestionCount。因为如果你点击下一步,_labelQuestionCount对于所有点击都将保持相同。
答案 1 :(得分:0)
如果没有任何问题,我会考虑分配给Page
一些int PageID
。
当您从基地恢复页面的合并时,您不会计算它们的数量,而是获得最新页面的PageID
现在。
在button_click
上,您再次询问点击时收藏品中的最后一个元素(因为它可能已更改,新页面已添加到收藏夹中),请将其{ {1}},并检查您浏览的页面是否具有相同的ID,如果是,请执行您需要执行的操作。