2016-07-25 1 views
-1

Bonjour, j'ai un listview qui a des noms de fichiers txt dans un dossier de bureau. Donc comme j'ai droit de données il y a supprimer la mise à jour et ajouter quand je sélectionne un élément et clic droit je veux que le nom de données pour remplir le nom de la boîte de texte quand il est ouvert si je choisis 1.1.2 fixx textbox1 comme données de selectd nomEnvoi de données listview sélectionnées vers une autre zone de texte

-i essayé quelques petites choses comme chaîne de statci public, mais quand je l'utilise et listview programme d'exécution montre vide comme il n'y a rien à l'intérieur

private void liste_Load(object sender, EventArgs e) 
{ 

    #region listview fonksiyonları 
    listView1.FullRowSelect = true; 
    listView1.View = View.Details; 
    listView1.Columns.Add("Versiyon No", 133, HorizontalAlignment.Left); 
    listView1.Columns.Add("Açıklama", 200, HorizontalAlignment.Left); 
    listView1.Columns.Add("Tarih", 154, HorizontalAlignment.Left); 
    #endregion 

    #region listviewde txt dosyalarını gösterme 
    string[] dosyalar = System.IO.Directory.GetFiles(masaustu + "\\Versiyonlar"); 
    string k = ""; 
    int deger = 0; 
    foreach (var item in dosyalar) 
    { 
     ListViewItem lili = new ListViewItem(); 
     deger = item.LastIndexOf("\\"); 
     k = item.Remove(0, deger); 
     k = k.Remove(0, 1); 
     lili.Text = k; 
     StreamReader oku = new StreamReader(masaustu + "\\" + "Versiyonlar" + "\\" + k); 
     string OkunanVeri = oku.ReadToEnd(); 
     string[] dizi = OkunanVeri.Split(new string[] { ";", "$" }, StringSplitOptions.RemoveEmptyEntries); 
     lili.SubItems.Add(dizi[0]); 
     lili.SubItems.Add(dizi[1]); 
     listView1.Items.Add(lili); 
    } 

} 
#endregion 
#region txt içindekileri textboxda göstermek 
private void listView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 

    liste frm = new liste(); 
    try 
    { 

     string a = ""; 
     a = ""; 
     a = listView1.SelectedItems[0].SubItems[0].Text; 
     StreamReader oku = new StreamReader(masaustu + "\\" + "Versiyonlar" + "\\" + a); 
     string OkunanVeri = oku.ReadToEnd(); 
     string[] dizi = OkunanVeri.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); 
     foreach (var item in dizi) 
     { 
      textBox1.Text = OkunanVeri; 
     } 
     oku.Close(); 
    } 
    catch 
    { 
    } 
} 

ce sont les codes de ListView si son va vous aider s'il vous plaît aidez-moi je viens de commencer C# et je ne peux pas comprendre comment le faire

+1

Essayé le déboguer? BTW vous pouvez le simplifier avec 'lili.Text = System.IO.Path.GetFileName (item);' Vérifier pendant le débogage si vous obtenez des valeurs valides ici. En outre, votre problème est-il que la liste est vide ou que vous ne pouvez pas remplir la zone de texte de l'autre formulaire? – Ash

+0

@AshwinNair je peux obtenir des txts mais je ne peux pas l'envoyer à un autre formulaire –

+0

Vous avez dit "_listview montre vide comme s'il n'y avait rien inside_". Qu'est-ce que ça veut dire? Si vous souhaitez accéder à une zone de texte sur un autre formulaire, vous devrez utiliser des événements/délégués ou vous obtiendrez des exceptions de thread croisé. Vous le définissez en utilisant 'textBox1.Text = OkunanVeri;' impliquant que la zone de texte est sur le même formulaire. – Ash

Répondre

-2

Je ne sais pas ce que ul uisiner pour, cela peut aider

sous forme de liste:

private void openMenuItem_Click(object sender, EventArgs e)//contentmenu openbtn 
    { 

if (listView1.SelectedIndices.Count > 0)//in listview form//on_click opnbtn 
{ 


string strSlctdtext=Convert.ToString(listView1.Items[listView1.SelectedIndices[0]].SubItems[1].Text); 
       TextBoxform objTextBoxform = new TextBoxform(strListSelectedtext); 
       if (objTextBoxform.ShowDialog() == DialogResult.OK) 
       { 
        //do somthing if u want some output from textboxform in return 
       } 
      } 
     } 

en forme textbox

public TextBoxform(string strListviewselected) 

{  
    InitializeComponent(); 

    textBox1.Text = strListviewselected; 

    }