0

MyListViewListView から継承し、オーバーライドしているクラスがありますOnDragDrop()(およびドラッグ アンド ドロップを実装するために必要なその他のイベント)。これらMyListviewの 2 つをフォームに配置すると、アイテムを 1 つからドラッグして、もう 1 つにドロップできます。この部分は機能します。

OnDoubleClick()ここで、そのクラスをオーバーライドして、これらのうちの 2 つをMyListViewsフォームに配置し、そのうちの 1 つをダブルクリックすると、アイテムがそこから削除され、もう 1 つに追加されるようにします。しかし、私はこれを行う方法について頭を悩ませることができません。アイデアを教えてください。ありがとう。

4

3 に答える 3

1

次の方法で、ホスト フォームにロジックを配置します。

  • 最初の ListView のダブルクリックを処理する
  • 最初の ListView から削除
  • 2 番目の ListView に追加

これをさまざまな形で行っていない限り、これ以上複雑にする価値はありません。

編集: 正当化されている場合、集中化は同じことを行うメソッドを追加するのと同じくらい簡単です (疑似コード)

public void MyForm_OnListViewDoubleClick(object sender, EventArgs e)
{
   MoveListItem(firstListView, secondListView);
}
// ... 
public static void MoveListItem(ListView source, ListView destination) 
{
   var listItem = source.SelectedItem;
   source.Remove( listItem );
   destination.Add( listItem );
}
于 2012-05-22T15:51:48.527 に答える
1

特定の方法でアイテムの選択を管理しているかどうかはわかりませんが、可能です

于 2012-05-22T15:51:52.457 に答える
0

これがあなたのタイトルへの答えです

protected override void OnDoubleClick(EventArgs e)
{
    base.OnDoubleClick(e);
}

そして、ここにあなたの質問への答えがあります

ListView から継承されたクラスで DoubleClick イベントを使用する これは、他の非常によく似た質問にリンクするだけです。

于 2012-05-22T18:18:49.620 に答える