StringBuilder sb = new StringBuilder();
    foreach (AddEntry list in addedEntry)
    {
        sb.AppendLine();
        if (!string.IsNullOrEmpty(list.URL))
             sb.AppendLine("URL: " + list.URL);
        if (!string.IsNullOrEmpty(list.SoftwareName))
             sb.AppendLine("Software Name: " + list.SoftwareName);
        if (!string.IsNullOrEmpty(list.SerialCode))
             sb.AppendLine("Serial Code: " + list.SerialCode);
        if (!string.IsNullOrEmpty(list.UserName))
             sb.AppendLine("User Name: " + list.UserName);
        if (!string.IsNullOrEmpty(list.Password))
             sb.AppendLine("Password: " + list.Password);
        sb.AppendLine();
    }
    mainWindow.ChangeTextBox = sb.ToString();
Edit: I have used UnhandledException's version as it is much more legible than my solution was (and the conditional operator is generally frowned upon in most cases).
I also want to point out that your AddEntry class could be easier written using auto properties (assuming you're using .NET 3.0+).
See:
namespace Store_Passwords_and_Serial_Codes
{
    class AddEntry
    {
        // Auto properties make this class a lot easier to read.
        public string type { get; set; }
        public string url { get; set; }
        public string softwareName { get; set; }
        public string serialCode { get; set; }
        public string userName { get; set; }
        public string password { get; set; }
        // Non-default constructor.
        public AddEntry(string type, string url, string softwareName, string serialCode, string userName, string password)
        {
            this.type = type;
            this.url = url;
            this.softwareName = softwareName;
            this.serialCode = serialCode;
            this.userName = userName;
            this.password = password;
        }
    }
}
And lastly, as you have said, it's important that you don't save information for one entry type that would belong in another (for instance, you shouldn't save URL into a PC entry type, as it makes no sense to).  This entire solution would probably be better off using stronger typed objects (i.e. WebPassword, PCPassword, SoftwareSerialCode, etc).  These could all inherit from a base class (Entry or something to that effect) to make it easier to strongly type the list, as well.
For instance:
class Entry { }
class PCPassword : Entry
{
    string userName { get; set; }
    string password { get; set; }
    public PCPassword(string uName, string pass)
    {
        this.userName = uName;
        this.password = pass;
    }
    public override string ToString()
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendLine();
        sb.AppendLine("User Name: " + this.userName);
        sb.AppendLine("Password: " + this.password);
        sb.AppendLine();
        return sb.ToString();
    }
}
You would then refer to it in your code as such:
 private void btnAddEntry_Click(object sender, EventArgs e)
 {
     // Making sure that type is selected.
     if (cmbType.SelectedIndex != -1)
     {
         if (cmbType.SelectedIndex == 0)
         {
             if(textUserName.Text == String.Empty || textPassword.Text == String.Empty)
                    MessageBox.Show("Please fill all the fields!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
             else
             {
                 addedEntry.Add(new PCPassword(textUserName.Text, textPassword.Text));
                 MessageBox.Show("Entry was successfully added!", "Entry Added!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 ClearFields();
             }
         }
         // etc, etc
         // Print our items
         StringBuilder sb = new StringBuilder();
         foreach (Entry item in addedEntry)
         {
             sb.Append(item.ToString());
         }
         mainWindow.ChangeTextBox = sb.ToString();
     }
 }
Just thought I'd throw that out there ;)