У меня была похожая проблема несколькими днями ранее, но теперь все сложнее.
Я пытаюсь использовать ArrayList из формы 2, в форме 1. Я не могу создать новый экземпляр формы 2, потому что это сделает мое содержимое формы 2 нулевым. Как я могу сделать это, изменив свой кусок кода?
Рекомендуются примеры для чайников.
Редактировать
int totalEntries = 0;
var myarr = SharedResources.Instance.ArrayList;
if(cmbType.SelectedIndex == 0)
myarr.Add(new AddPC(cmbType.Text,
txtUserName.Text, txtPassword.Text));
Почему приведенный выше код вызывает исключение nullreference?
private void sfdSaveToLocation_FileOk(object sender, System.ComponentModel.CancelEventArgs e)
{
EncryptDecrypt en = new EncryptDecrypt();
StringBuilder sb = new StringBuilder();
// I need the arraylist here but I can not access it as it is.
foreach (var list in addWindow.addedEntry)
{
if (list is AddPC)
{
AddPC tmp = (AddPC)list;
sb.Append(tmp.ToString());
}
else if (list is AddWebSite)
{
AddWebSite tmp = (AddWebSite)list;
sb.Append(tmp.ToString());
}
else if (list is AddSerialCode)
{
AddSerialCode tmp = (AddSerialCode)list;
sb.Append(tmp.ToString());
}
}
File.WriteAllText(sfdSaveFile.FileName, sb.ToString());
}
У меня уже есть новый экземпляр формы AddEntryWindow:
private void tsmiAddEntry_Click(object sender, EventArgs e)
{
if (storedAuth == null)
{
DialogResult result = MessageBox.Show
("You must log in before you add an entry."
+ Environment.NewLine + "You want to authenticate?",
"Information", MessageBoxButtons.YesNo,
MessageBoxIcon.Information);
if (result == DialogResult.Yes)
{
AuthenticationWindow authWindow =
new AuthenticationWindow();
authWindow.ShowDialog();
storedAuth = authWindow.Result;
AddEntryWindow addWindow = new AddEntryWindow
(this, storedAuth.UserName, storedAuth.Password);
addWindow.ShowDialog();
}
else
{
}
}
else
{
AddEntryWindow addWindow = new AddEntryWindow
(this, storedAuth.UserName, storedAuth.Password);
addWindow.ShowDialog();
}
}
Привет.