2009-08-02 6 views
0

ユーザーがリストボックス(winforms 2.0) のオーナー描画変数スタイルを使用しているときに、そのセルで編集コントロールを描画するアイテムを選択したとき Isその ないドロップダウンなんとかそれがあったように、実際の編集コントロールは、セルまたは項目に表示されて 方法 おかげリストボックスコントロールownerdraw質問

+0

編集可能なドロップダウンリストが必要なのですか?ユーザーはリスト内の項目から選択するか、テキストボックスに独自の値を入力できますか? – DOK

+0

デスクトップアプリケーション(WinForms)またはWebアプリケーション(ASP.Net)で作業していますか?あなたがこれをしようとしているときに大きな違いがあります。ところで、これらの問題を明確にするために質問を編集することは、まったく受け入れられます。 – DOK

+0

デスクトップの場合は、winformsとwpfを明確にしたいと思うでしょう。 –

答えて

1

私はListViewコントロールのためのいくつかの類似し使用しています。メソッドは次のとおりです。

  1. TextBoxを作成し、コントロールの配列に追加して非表示にします。

    innerTextBox.Size = new Size(0、0);

    innerTextBox.Location = new Point(0、0);

    this.Controls.AddRange(新しいコントロール[] {this.innerTextBox});

    innerTextBox.KeyPress + =新しいKeyPressEventHandler(this.EditOver);

    innerTextBox.LostFocus + =新しいEventHandler(this.FocusOver);

    innerTextBox.Hide();

    innerTextBox.Text = ""; DoubleClickのイベントで

  2. が選択された項目を検索し、テキストボックスに値を取得する独自の方法を結合

    this.DoubleClick + =新しいイベントハンドラ(this.EditableDoubleClick)。

    プライベートボイドEditableDoubleClick(オブジェクト送信者、System.EventArgs e)の {

    selectedItemText = selectedItem.ToString()。

    innerTextBox.Size =新しいサイズ(subItemRect.right - subItemRect.left、subItemRect.bottom - subItemRect.top);

    innerTextBox.Location = new Point(subItemRect.left、subItemRect.top);

    innerTextBox.Show();

    innerTextBox.Text = selectedItemText;

    }テキストボックスに失われたフォーカスオン

  3. - バック選択された項目に設定された値。

    selectedItem = innerTextBox.Text;