2012-07-09 2 views
-1

J'ai regardé partout sur Internet pour cela et ai trouvé semblable, mais rien de tout cela fonctionnera pour moi. Tout ce que j'ai trouvé suppose que la zone de liste est sur le formulaire principal et non le formulaire secondaire, ou le code est pour une version antérieure de C# ou Visual Studio (j'utilise VS2008).Besoin d'aide pour obtenir le texte de l'article de liste à partir du formulaire secondaire à la forme principale

Je crée un navigateur Web doté d'un bouton sur le formulaire principal (appelé frmMyBrowser) pour ouvrir une boîte de dialogue (frmBookmarks) avec une zone de liste (lstBookmark) avec des URL mises en signet. Je dois pouvoir cliquer deux fois sur un élément (l'URL mise en signet) et faire coller le texte dans la barre d'adresse (cmbAddress) du formulaire principal.

Toute aide serait grandement appréciée.

+0

s'il vous plaît afficher le code que vous avez à ce jour qui aiderait les autres à comprendre les erreurs et pour vous aider à vous obtenir les réponses. –

+0

Vous avez besoin d'une programmation côté client pour extraire la valeur des frmBookmarks et la copier dans cmbAddress. Ou vous pouvez le faire côté serveur et utiliser un panneau de mise à jour sur la mainform pour définir la nouvelle valeur. – Maarten

+0

Peut-être que vous pourriez stocker le résultat de la boîte de dialogue dans une chaîne que vous pouvez accéder à partir du formulaire principal? Et une note, c'est contre la convention de dénomination commune C# pour utiliser la notation hongroise. Par exemple, votre 'lstBookmark' devrait s'appeler' Bookmark (List) Box'. – lesderid

Répondre

0

J'ai compris que si je crée la fenêtre à l'exécution, je peux le faire fonctionner. Au cas où quelqu'un serait intéressé, le code que j'ai utilisé est ci-dessous.

frmMyBrowser_ShowFavorites public void (expéditeur d'objet, EventArgs e)

{ 

     frmFavorites.ShowIcon = false; 
     frmFavorites.ShowInTaskbar = false; 
     frmFavorites.MinimizeBox = false; 
     frmFavorites.MaximizeBox = false; 
     frmFavorites.ControlBox = false; 
     frmFavorites.Text = "Bookmarks"; 
     frmFavorites.Width = 500; 
     frmFavorites.Height = 350; 
     frmFavorites.Controls.Add(lstFavorites); 
     frmFavorites.Controls.Add(btnRemoveFavorite); 
     frmFavorites.Controls.Add(btnAddFavorite); 
     frmFavorites.Controls.Add(btnCloseFavorites); 
     frmFavorites.Controls.Add(txtCurrentUrl); 
     lstFavorites.Width = 484; 
     lstFavorites.Height = 245; 
     btnRemoveFavorite.Location = new Point(8, 280); 
     btnAddFavorite.Location = new Point(8, 255); 
     btnCloseFavorites.Location = new Point(400, 255); 
     txtCurrentUrl.Location = new Point(110, 255); 
     txtCurrentUrl.Size = new Size(255, 20); 
     btnAddFavorite.Text = "Add"; 
     btnRemoveFavorite.Text = "Remove"; 
     btnCloseFavorites.Text = "Close"; 
     txtCurrentUrl.Text = wbBrowser.Url.ToString(); 
     btnAddFavorite.Click += new EventHandler(btnAddFavorite_Click); 
     btnRemoveFavorite.Click += new EventHandler(btnRemoveFavorite_Click); 
     frmFavorites.Load += new EventHandler(frmFavorites_Load); 
     btnCloseFavorites.Click += new EventHandler(btnCloseFavorites_Click); 
     lstFavorites.MouseDoubleClick += new MouseEventHandler(lstFavorites_MouseDoubleClick); 
     frmFavorites.Show(); 
} 

public void btnCloseFavorites_Click(object sender, EventArgs e) 
{ 
if (lstFavorites.Items.Count > 0) 
{ 
using (StreamWriter writer = new System.IO.StreamWriter(@Application.StartupPath + "\\favorites.txt")) 
{ 
for (int i = 0; i < lstFavorites.Items.Count; i++) 

{ 

writer.WriteLine(lstFavorites.Items[i].ToString()); 

} 

writer.Close(); 
} 

} 
    frmFavorites.Hide(); 
} 

public void btnAddFavorite_Click(object sender, EventArgs e) 

    { 
     string strFavoriteAddress = wbBrowser.Url.ToString(); 
     if (!lstFavorites.Items.Contains(strFavoriteAddress)) 
     { 
      lstFavorites.Items.Add(strFavoriteAddress); 
      MessageBox.Show("Favorite Added", "Message"); 

     } 
     else if (lstFavorites.Items.Contains(strFavoriteAddress)) 
     { 
      MessageBox.Show("This site already exists in your Favorites list!", "Error"); 

     } 
     else 
     { 

     } 


    } 
    public void btnRemoveFavorite_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      lstFavorites.Items.RemoveAt(lstFavorites.SelectedIndices[0]); 

     } 

     catch 
     { 
      MessageBox.Show("You need to select an item", "Error"); 

     } 

    } 
    public void frmFavorites_Load(object sender, EventArgs e) 
    { 
     try 
     { 
      using (StreamReader reader = new System.IO.StreamReader(@Application.StartupPath + "\\favorites.txt")) 
      { 
       while (!reader.EndOfStream) 
       { 
        for (int i = 0; i < 4; i++) 
        { 
         string strListItem = reader.ReadLine(); 
         if (!String.IsNullOrEmpty(strListItem)) 
         { 
          lstFavorites.Items.Add(strListItem); 
         } 
        } 

       } 
       reader.Close(); 
      } 



     } 
     catch 
     { 
      MessageBox.Show("An error has occured", "Error"); 
     } 

    } 
    private void lstFavorites_MouseDoubleClick(object sender, MouseEventArgs e) 
    { 
     string strSelectedAddress = lstFavorites.Text.ToString(); 
     cmbAddress.Text = strSelectedAddress; 
     wbBrowser.Navigate(strSelectedAddress); 
     frmFavorites.Hide(); 
    } 
Questions connexes