2009-06-01 8 views
0

私はA B C D Eのような項目を持つリストボックスを持っています。
私はまた2つのボタンを持っていますMove UPMove Down
プロパティウィンドウ(F4)で既にプロパティをfalseにしました。ボタンをC#で有効にするリストボックスで選択した項目の特定の位置を見つける方法は?

ユーザーがBまたはすべての項目を選択すると、[上へ移動]ボタンが有効になります。それは無効にする必要があります。

ユーザーがDまたはそれ以上のすべての項目を選択した場合、私の下に移動ボタンを有効にする必要があります。これはEのために無効にする必要があります。

ここに書かれるコードの正しい部分を教えてください。

ありがとう....

答えて

0

私のアプリでも同様のことをやっています。また、複数の項目の選択を処理し、選択された複数の項目が連続しているかどうかをチェックします。

private bool SelectionIsContiguous(ListBox lb) 
{ 
    for (int i = 0; i < lb.SelectedIndices.Count - 1; i++) 
     if (lb.SelectedIndices[i] < lb.SelectedIndices[i + 1] - 1) 
      return false; 

    return true; 
} 

private void SetMoveButtonStates() 
{ 
    if (this.listBox.SelectedIndices.Count > 0) 
    { 
     if (this.listBox.SelectedIndices.Count > 1 && !SelectionIsContiguous(this.listBox)) 
     { 
      this.btnMoveUp.Enabled = false; 
      this.btnMoveDown.Enabled = false; 
      return; 
     } 

     int firstSelectedIndex = this.listBox.SelectedIndices[0]; 
     this.btnMoveUp.Enabled = firstSelectedIndex == 0 ? false : true; 

     int lastIndex = this.listBox.Items.Count - 1; 
     int lastSelectedIndex = this.listBox.SelectedIndices[this.listBox.SelectedIndices.Count - 1]; 
     this.btnMoveDown.Enabled = lastSelectedIndex == lastIndex ? false : true; 
    } 
} 
+0

こんにちはのRashmi、私がお聞きしたかったの答えもう一つのため ありがとう:

は、ここでは、コードです。私は私のリストボックスからファイルを選択したいと思っています。上記の私のボタンを有効にしたいのですが、これを書いていますif(m_lbOPFfiles.SelectedIndex == 0) { m_BtnValidateInput.Enabled = true; } 今すぐ選択する私のボタンは有効ですが、私はBのようなファイルを選択したいのですが、有効にしてください。上記の部分をSelectIndex Changed Clik Eventに書きました。 ワットを間違って助けることができますか? –

+0

私はあなたのprobを正しく理解していれば、これを行う必要があります:..... if(m_lbOPFfiles.SelectedIndex> = 0){m_BtnValidateInput.Enabled = true; } ....これが役立つことを願って:) –

+0

ありがとう、 それは働いた... よろしく Shweta .. –

0

ListBoxのSelectedIndexChangedイベントを処理します。 SelectedIndexが0より大きい場合は、「上に移動」を有効にします。それは数えるよりも小さい場合には - 1、「下に移動」を有効

0

ここで私はlistBox_SelectedIndexChangedに使うコードです:

this.moveUp.Enabled = this.listBox.SelectedIndex > 0; 
this.moveDown.Enabled = this.listBox.SelectedIndex > -1 && listBox.SelectedIndex < listBox.Items.Count - 1; 

実際には、コードのダイアログのがあまりにも初期化時に呼び出されると、そこから呼び出されたメソッド内だが。

関連する問題