-4

リストから削除する方法に苦労しているプロジェクトがあります。

削除したいリストアイテムは、ユーザーがリストボックスから選択したインデックスにあるアイテムです。

プロジェクトには、Pickcuplistという名前のリスト用のクラスと、メインフォーム用とピックアップフォーム用の2つのGUIがあります。ピックアップフォームは削除ボタンが表示される場所ですが、選択されたインデックスのリストボックスがメインフォームにあります。

List.RemoveAtを見つけましたが、それを機能させることができないようです。

アイテムは、次のようなピックアップフォームフォームからのようにリストに追加されます。

txtCustName.Text = thePickup.name;
txtCustAddress.Text = thePickup.address;
txtArrival.Text = thePickup.arrival.ToString();
txtDaddress.Text = thePickup.Daddress;
txtDeliveryName.Text = thePickup.Dname;
LblType.Text = thePickup.type;

これはメインフォームの追加のコードです

  /*
            * This method creates a new pickup object, allows the user to
            * enter details and adds it to the List
            *  
            */

        Pickupform.pickup = new Pickups();
        //New Visit- note added to the pickupform object

        Pickupform.ShowDialog();
        //Show the pickupForm. ShowDialog ensures that the form has the exclusive focus until it is closed.

        if (Pickupform.pickup != null)
        //if null then the "cancel" button was pressed
        {
            Pickups newpic = Pickupform.pickup;
            //Get the Pickup object from the form

            thePickup.addPickups(newpic);
            //Add the visit to the list
        }
        updateList();
        //Update the list object to reflect the Pickups in the list
4

2 に答える 2

0

このリンク (http://www.dotnetperls.com/removeat) を見てください。

その核心はこのビットです:

var list = new List<string>();
list.Add("dot");
list.Add("net");
list.Add("perls");

list.RemoveAt(1); <-- See, you pass in an integer

したがって、あなたの場合、削除をトリガーするイベントまたは何かが発生します。その時点で、削除するアイテムのインデックスを見つけてメソッドを呼び出す必要があります。これに苦労している場合は、いくつかのチュートリアルを行うことを検討する必要があります。これは非常に基本的なものです。

于 2012-12-05T00:03:51.623 に答える
0

Form[削除] ボタンがあるを表すクラスに移動します。

Clickこのボタンのイベントに関連付けられているイベント ハンドラーを見つけます。

このクラスから pickupList にアクセスできる場合は、そこから呼び出しますRemoveAt

アクセスできない場合は、リストを他のフォームに渡す方法を見つけてください。たとえば、[削除] ボタンのあるフォームが他のフォームから作成された場合、リストをコンストラクター パラメーターとして渡し、[削除] ボタンのあるフォームのフィールドに保持できます。

于 2012-12-05T00:07:08.500 に答える