2013-02-15 3 views
0

목록보기에서 선택한 항목을 가져오고 싶습니다. 그러나이 기능을 이미 가지고 있기 때문에 목록보기에서 가져올 수 없습니다. 이렇게하려면 위아래 화살표를 사용하고 싶습니다.위/아래 화살표 키를 사용하여 목록보기에서 초점을 맞추고있는 항목 가져 오기

나는 이미 메소드를 가지고 있지만 예외를 던졌습니다. 누구든지 리팩터링에 도움이 될 수 있습니까? 여기에 방법이 있습니다

private void lvViewFile_KeyDown(object sender, KeyEventArgs e) 
{ 
    ListView lvTemp = (ListView)sender; 
    if (e.KeyCode == Keys.Up) 
    { 
     if (lvTemp.Focused == true) 
     { 
      var selected = this.lvCategory.SelectedItems[0].Focused; 
     } 
    } 
    else if (e.KeyCode == Keys.Down) 
    { 
     if (lvTemp.Focused == true) 
     { 
      var selected = this.lvCategory.SelectedItems[0].Focused; 
     } 
    } 
} 
+0

어떤 라인과 예외가 발생합니까? 'NullReferenceException'이 줄에'var selected = this.lvCategory.SelectedItems [0] .Focused;'? – gzaxx

+0

제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

답변

1

이것은 내가 원하는 것 같습니다.

if (e.KeyCode == Keys.Up) 
      { 
       if (lvTemp.Focused == true) 
       { 
        var selected = lvTemp.FocusedItem.Index; 
        if (selected.Equals(0)) 
        { 
         enableMoveDown(); 
        } 
        else if (selected.Equals(lvCategory.Items.Count - 1)) 
        { 
         enableMoveUp(); 
        } 
        else 
        { 
         enableMoveUpMoveDown(); 
        } 
       } 
      } 
      else if (e.KeyCode == Keys.Down) 
      { 
       if (lvTemp.Focused == true) 
       { 
        var selected = lvTemp.FocusedItem.Index; 
        if (selected.Equals(0)) 
        { 
         enableMoveDown(); 
        } 
        else if (selected.Equals(lvCategory.Items.Count - 1)) 
        { 
         enableMoveUp(); 
        } 
        else 
        { 
         enableMoveUpMoveDown(); 
        } 
       } 
      }