2014-07-11 3 views
0

수정 됨 : Windows Forms 응용 프로그램이 있고 ListView가 추가되었습니다. 내 목록보기에 항목을 추가 할 수 있지만 항목이있는 각 행의 번호를 지정하려고합니다. 나는 그 숫자가 변화 죄송이 개정 후의 다소 극적 2.ListView (C#)의 각 행에 번호 매기기

 if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
     { 
      int initialID = 2; 

      //Change button text. 
      button4.Text = ("Clear/Add Fonts"); 

      //For each string in the open file dialog array. 
      foreach (string fontFileName in ofd.SafeFileNames) 
      { 
       //Add a line in the list view for each selected file. Don't allow for the same file to appear twice. 
       if (listView1.FindItemWithText(fontFileName) == null) 
       { 
        for (int i = 0; i < initialID; i++) 
         listView1.Items.Add(fontFileName).SubItems.Add((i).ToString()); 
       } 
      } 
     } 

enter image description here

열에 표시 할. 이제 글꼴 ID 아래에 숫자가 나타나지만 지금은 늘릴 수 없습니다. 나는 내가 아주 가깝다고 생각한다.

답변 : 다음 내가 Cyral에 의해 제안을 구현하는 방법입니다

if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
      { 
       int initialID = 1; 
       int count = initialID; 

       //Change button text. 
       button4.Text = ("Clear/Add Fonts"); 

       //For each string in the open file dialog array. 
       foreach (string fontFileName in ofd.SafeFileNames) 
       { 
        //Add a line in the list view for each selected file. Don't allow for the same file to appear twice. 
        if (listView1.FindItemWithText(fontFileName) == null) 
        { 
          listView1.Items.Add(fontFileName).SubItems.Add(count++.ToString()); 
        } 
       } 
      } 
      else 
+0

'lvi'는 아무것도 붙이지 않는 것 같습니다. – Cyral

답변

1

오래된 질문 :

당신은 ListViewItem 방금 ​​추가에 SubItems를 설정해야합니다.

lvi.Text = fontFileName; 
lvi.SubItems.Add(initialID.ToString()); 
listView1.Items.Add(lvi); 

새로운 질문 :

그 때마다 다시 설정되기 때문에 귀하의 카운터 루프가 작동하지 않습니다, 그리고 InitialID이 하나이기 때문에, i는 항상 내가 사용하는 것이 좋습니다 다음을 0

될 것입니다 :

int initialID = 1; //Make a constant and put it somewhere 
int count = initialID; //Will count how many items are added (Could also be done with a for loop with a condition) 
foreach (string fontFileName in ofd.SafeFileNames) 
{ 
    //Add a line in the list view for each selected file. Don't allow for the same file to appear twice. 
    if (listView1.FindItemWithText(fontFileName) == null) 
    { 
     ListViewItem lvi = new ListViewItem(fontFileName); 
     lvi.SubItems.Add(i.ToString()); 
     listView1.Items.Add(lvi); 
     count++; 
    } 
} 
+0

청소해야했습니다. 코드에서 몇 가지 일을하십시오. 서브 라인 작업을 한 줄로 완료했습니다 :'listView1.Items.Add (fontFileName) .SubItems.Add ((i) .ToString()); ' 지금은 증분 작업을하고 있습니다. 도와 주셔서 감사합니다. – Gernatch

+0

알았습니다! 내 원래 게시물에 "답변"아래에 최종 코드를 추가했습니다. 도와 주셔서 정말 고맙습니다. 새롭기 때문에 나는 오만함을 많이 얻는다. 어떤 사람들은 내 문법을 편집하기 만하면됩니다. 응. – Gernatch

+0

다행히 도울 수 있어요 :) – Cyral