0

1 つは訪問用、もう 1 つはピックアップ用です。ユーザーが訪問またはピックアップのいずれかをリストに追加すると、ユーザーに表示するリスト ボックスにも追加されます。

私の質問は、リスト ボックス内の項目、たとえば Indexchanged をクリックしたときです。訪問または配信のいずれかに関連する新しい GUI を開きたいので、訪問をクリックすると、次のように訪問フォームが開きます。コードですが、どのフォームを開くかを認識できるように、リストを区別するにはどうすればよいですか?

 private void lstVisits_SelectedIndexChanged(object sender, EventArgs e)
    {
        //Allow the user to click on the listbox to open a visit
        //This event is called after the user has clicked on the list
        int index = lstVisits.SelectedIndex;
        //Get the index of the Visit that the user has clicked upon

        Visits selected = theList.getVisits(index);
        //Get the visits object from the list

        Visitsform.visits = selected;
        //Ensure that the appointment form references the selected visit

        Visitsform.ShowDialog();
        //Show the visits form

        updateList();
        //update the list as the user may have deleted the appointment
4

1 に答える 1

1

両方のリストの項目が同じ listBox に格納されている場合は、次のようなものを使用できます。

編集:listBox からオブジェクトを取得する場合は、それらをオブジェクトとして listBox に追加する必要があります。次に例を示します。

Visits v = new Visit();
Pickups p = new Pickup();
lstVisits.Items.Add(v);
lstVisits.Items.Add(p);    


private void lstVisits_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (listBox1.SelectedItems.Count > 0)
                {
                    object o = listBox1.SelectedItems[0];
                    if (o is Visits)
                    {
                        Visits visit = (Visits)o;
                        Visitsform.visits = visit;
                        Visitsform.ShowDialog();
                    }
                    else
                    {
                        Deliveries delivery = (Deliveries)o;
                        Deliveriesform.visits = visit;
                        Deliveriesform.ShowDialog();
                    }
                }
            }
于 2012-11-25T18:23:44.177 に答える