0

ダブルクリックしてリストボックスの名前変更モードのように入力するか、メッセージボックスを介して、ユーザーがリストボックス文字列の一部を編集できるようにしたいと思います。値は double であり、結果を listBox と実際のリストの両方に反映させたいと考えています。

これは私のリストです。コストを編集する必要があります:

        public BindingList<Edge> edgeList = new BindingList<Edge>();

これは私の ToString 関数です:

        public override string ToString()
        {
            return string.Format("Cost: {0}, Start: {1}, End: {2}", (int)_cost, _start, _end);
        }

これは私のリストに追加されています:

pfi.ni.edgeList.Add(e1);

そして、これは、リストボックスに発生したときに新しいプロパティを追加する方法です:

listBox2.Items.Add(e1);

listBox に selectedIndexChanged イベントを設定し、それを取得できるので、クリックするとプロパティのコストが表示されます。今はそれを編集しているだけだと思います。

    private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
    {
        Edge selectedItem = listBox1.SelectedItem as Edge;

        result = MessageBox.Show(string.Format("Cost: {0}", e1._cost));
        //selectedItem._cost doesn't work for some reason, so I use e1._cost 
        //until I can figure it out
    }
4

1 に答える 1

0
Edge selectedItem = listBox1.SelectedItem as Edge;
selectedItem._cost = inputTextBox.Text;
listBox1.Refresh();
于 2012-10-22T13:02:08.287 に答える