Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //In the Form class
- private void ClickDelegate(Object o, System.EventArgs e, QuestionContainerState obj)
- {
- CustomControl1 c = (CustomControl1)o; //CustomControl1 is the class name of the custom label I'm using to display on the question palette.
- ... //Irrelevant code
- int adder = DisplayAQuestion(c.GetQNo);
- counter = adder + 1; //counter stores the current value of the question being displayed.
- ... //Irrelevant code
- }
- private void DisplayAQuestion(int i)
- {
- ButtonBase temp;
- int optionId = 1;
- foreach (string s in questions[i].Options)
- {
- ... //Irrelevant code, MCQ portion.
- else if (QuesTypes[i].Equals("MSQ") || QuesTypes[i].Equals("Linked")) //Temporary measure for linked questions
- {
- if (questionDisplay1.MSQResp.ContainsKey(i))
- {
- //temp = questionDisplay1.GetResponse;
- var temporary = questionDisplay1.MSQResp.FirstOrDefault(x => x.Key.Equals(i)).Value.Find(y => ((CustomChecks)y).optionId == optionId);
- if (temporary != null && temporary.Text.Equals(s))
- {
- questionDisplay1.AddOption_msq(s, true, i, optionId);
- }
- else
- questionDisplay1.AddOption_msq(s, false, i, optionId);
- }
- else
- {
- questionDisplay1.AddOption_msq(s, false, i, optionId);
- }
- }
- optionId++;
- }
- }
- private void button5_Click(object sender, EventArgs e) //Save And Next button
- {
- if (QuestionContainer.Controls.Count != 0)
- {
- if (QuesTypes[counter - 1].Equals("MCQ")) //Sample portion
- {
- if (!questionDisplay1.MCQResp.ContainsKey(counter - 1))
- questionDisplay1.MCQResp.Add(counter - 1, questionDisplay1.MCQDisplay[counter - 1]);
- else
- questionDisplay1.MCQResp[counter - 1] = questionDisplay1.MCQDisplay[counter - 1];
- }
- else if (QuesTypes[counter - 1].Equals("MSQ") || QuesTypes[counter - 1].Equals("Linked"))
- {
- if (!questionDisplay1.MSQResp.ContainsKey(counter - 1))
- questionDisplay1.MSQResp.Add(counter - 1, questionDisplay1.MSQDisplay[counter - 1]);
- else
- questionDisplay1.MSQResp[counter - 1] = questionDisplay1.MSQDisplay[counter - 1];
- }
- ... //Irrelevant code
- }
- }
- //In the QuestionDisplay class.
- public void AddOption_msq(string optionText, bool arg, int QNo, int option)
- {
- CustomChecks cb = new CustomChecks();
- cb.Text = optionText;
- cb.Location = new Point(3, 40 + grbOptions.Controls.Count * 30);
- cb.AutoSize = true;
- cb.Checked = arg;
- cb.QuestionNumber = QNo;
- cb.optionId = option;
- if (!DispMSQ.ContainsKey(QNo)) //First time the question is viewed.
- {
- // First time, add an empty list
- DispMSQ.Add(QNo, new List<ButtonBase>());
- }
- if(DispMSQ.ContainsKey(QNo) && DispMSQ[QNo].Any()) //If option is deselected.
- {
- if (arg == false)
- foreach (CustomChecks C in DispMSQ[QNo])
- {
- if(C.Text.Equals(optionText))
- {
- DispMSQ[QNo].Remove(C);
- break;
- }
- }
- }
- cb.CheckedChanged += delegate(Object sender, System.EventArgs e)
- {
- temp = sender as CustomChecks;
- if (((CustomChecks)temp).Checked == true)
- {
- if (!DispMSQ[QNo].Any(x => x.Text.Equals(optionText))) //Check if the checkbox already exists in the List
- {
- DispMSQ[QNo].Add(temp);
- }
- }
- if (((CustomChecks)temp).Checked == false)
- {
- foreach (CustomChecks C in DispMSQ[QNo])
- if (C.Text.Equals(temp.Text))
- {
- DispMSQ[QNo].Remove(C);
- break;
- }
- }
- };
- grbOptions.Controls.Add(cb);
- if (RespMSQ.ContainsKey(QNo) && RespMSQ[QNo].Any()) //For persistently displaying the proper checked state.
- {
- foreach (CustomChecks C in RespMSQ[QNo])
- {
- foreach (CustomChecks D in grbOptions.Controls)
- {
- if (D.Text.Equals(C.Text))
- {
- D.Checked = C.Checked;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement