0

リストボックスにアイテムがあります。それを取得して PointF に変換し、pointF のリストと比較できるようにします。

例) var selection = listBox3.SelectedItem ; // "{X=18,Y=48.10001}" のように

PointF p1 = (PointF) 選択;

//そのアイテムが選択され、浮動小数点に変換されたら、optFlowPoints というリストで検索して見つけ、そのポイントが存在するかどうかを確認します

PointF drawPointEst=optFlowPonits.Find(p=>p.Equals(選択));

したがって、次の 2 つの問題があります。

  1. selectedItem を PointF に変換する方法
  2. 一致を見つけるためのラムダ式の書き方
4

1 に答える 1

1

selectedItem を PointF に変換する方法:

リストを埋める方法を変更できると思います。試しましたlistBox3.Items.AddRange(temp.Cast<object>().ToArray());か?ListBox が ToString を呼び出すので、うまくいくと思います。( http://msdn.microsoft.com/en-us/library/z018s5az.aspxを参照してください) 次に、ListBox に文字列ではなく PointF オブジェクトが含まれるようになったため、InvalidCastException はなくなります。

一致を見つけるためのラムダ式の書き方:

PointF drawPointEst = optFlowPoints.Find(p => p == selection);

http://msdn.microsoft.com/en-us/library/system.drawing.pointf.op_equality.aspx

于 2012-05-02T22:07:33.003 に答える