我是否可以在此EditQuestionMaster(int qid_value)
按钮内点击此qid_value
,如果是,我可以如何执行此操作以便private void button1_Click(object sender, EventArgs e)
正确
UpdateQuestion
提前感谢任何帮助
答案 0 :(得分:2)
public partial class EditQuestionMaster : Form
{
DbHandling db = new DbHandling();
int qid; // here is the class variable
public EditQuestionMaster(int qid_value)
{
InitializeComponent();
this.qid = qid_value; // set the value here
string subNtop = db.GetEditSubNTopic(qid_value);
string[] subNtopData = subNtop.Split('~');
cmbSubject.Text = subNtopData[2];
}
private void button1_Click(object sender, EventArgs e)
{
qid // use it here
答案 1 :(得分:0)
扩大偶然的回答:
您可以定义业务对象来处理更新,如下所示:
public class QuestionEditor
{
DbHandling db = new DbHandling();
int questionId;
public QuestionEditor(int questionId)
{
this.questionId = questionId;
}
public void SetAnswer(string answerOption)
{
db.UpdateQuestion(qid, answerOption);
}
}
创建表单后,让它创建业务对象的新实例:
public partial class EditQuestionMaster : Form
{
QuestionEditor editor;
public EditQuestionMaster(int qid_value)
{
InitializeComponent();
editor = new QuestionEditor(qid_value);
}
}
现在,表单中的其他方法可以调用编辑器来执行操作。
private void button1_Click(object sender, EventArgs e)
{
string answerOption;
// switch populates answerOption
editor.SetAnswer(answerOption);
}
通过移动逻辑来执行远离用户交互的表单的更新称为抽象。这种抽象允许UI代码在某种程度上独立于问题数据的访问/存储方式而发展。这是n层架构的基础。