3

ListView アイテムで特定のアイテムを選択すると、その特定のアイテムを表示できます。フォームが読み込まれると、デフォルトで表示される最後のアイテム (10 番目のアイテムなど) が表示されます。しかし、私が望むのは、デフォルトで最初のアイテムを表示することです。これどうやってするの?私は次のようなことをしようとしました

listView1.Items[1].Selected = true;

しかし、それは機能していません:

public partial class GroupExmStart : Form
    {  
        string[] totDisplayQsn = null;
        string[] QAndA = null;
        string[] words = null;
        private List<Question> questions;
        ListViewItem lvi;
        public GroupExmStart(string GroupName, string DurationID)
        {
            InitializeComponent();

            this.GrpID=GroupName;
            TopiID=db.GetTopicIDForGroup(GrpID);

            string[] conf = db.GetConfiguration(Convert.ToInt16(DurationID)).Split('|');            

            Question qsn = new Question();
            questions = qsn.Foo(TopiID, conf);
            int z = Quiz(questions);
            totQsn = Convert.ToInt16(conf[0]);            
            for (int kk = 1; kk <= totQsn; kk++)//using this I am adding items to listview
            {
                lvi = new ListViewItem();
                lvi.Text = kk.ToString();
                listView1.Items.Add(lvi);                
            }

            totDisplayQsn = new string[totQsn + 1];           
           }
        int Quiz(List<Question> questions)//using this I a passing set of questions to be displayed
        {

            foreach (Question question in questions)
            {
                DisplayQuestion(question);
            }
            return 0;
        }

        private void DisplayQuestion(Question question)//using this i am displaying questions
        {
            string Q = question.Text;
            label5.Text = Q;
            string OP1 = question.Option1;
            string OP2 = question.Option2;
            string OP3 = question.Option3;
            string OP4 = question.Option4;

            radioButton12.Text = OP4;
            radioButton11.Text = OP4;
            radioButton10.Text = OP4;
            radioButton9.Text = OP4;                
            }
        }



 private void listView1_MouseClick(object sender, MouseEventArgs e)//using this i am selection particular item and displaying it
        {
            if (totDisplayQsn.GetLength(0) >= 0)
            {
                if (listView1.SelectedItems.Count > 0)
                {
                    var q = Convert.ToInt16(listView1.SelectedItems[0].Text);
                    var selectedQuestion = questions[q-1];
                    DisplayQuestion(selectedQuestion);
                }
            }
        }

助けてくれてありがとう。

4

3 に答える 3

3

これを試して

  listView1.SelectedItems[0].Focused = true;
于 2013-08-09T11:56:47.803 に答える
1

最初のアイテムを選択するには、ゼロベースのインデックスでアクセスします。アイテムの初期化コードの直後にコードを配置します。

for (int kk = 1; kk <= totQsn; kk++)//using this I am adding items to listview
        {
            lvi = new ListViewItem();
            lvi.Selected = false;
            lvi.Text = kk.ToString();
            listView1.Items.Add(lvi);                
        }    

listView1.Items[0].Selected = true;
DisplayQuestion(questions[0]);

次のコードを削除します。

    int Quiz(List<Question> questions)//using this I a passing set of questions to be displayed
    {

        foreach (Question question in questions)
        {
            DisplayQuestion(question);
        }
        return 0;
    }
于 2013-08-09T13:37:09.190 に答える