Form을 표시해야 할 때 ObjectDisposedExpection이 계속 표시됩니다. 혹시이 작업을 수행하는 방법을 알고 계신가요? NotthingForm.Show() foreach에서 ObjectDisposedExpection 오류가 발생합니다. Visual Studio Ultimate 2012 C#에서 프로그래밍 중입니다.Form을 표시하는 동안 ObjectDisposedException이 발생했습니다.
RichTextBox NotitiesTB = new RichTextBox();
private Form NotitiesForm;
/// <summary>
///
/// </summary>
/// <param name="label"></param>
///
public void NotitiesLatenZien()
{
if (filename != null)
{
BRTSignal signal = new BRTSignal(filename);
BRTEventRepository Notities = new BRTEventRepository(signal);
List<IBRTNote> note = Notities.ReadNotes();
BRTEventService TijdNotities = new BRTEventService(signal);
TijdNotities.MakeNoteTimesRelativeToTrack(note, 1);
//TextBox NotitiesTB = new TextBox();
//NotitiesTB.Name = "Notities";
if (NotitiesForm == null)
{
NotitiesForm = new Form();
}
NotitiesForm.Height = 600;
NotitiesForm.Width = 1000;
NotitiesForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
NotitiesForm.MaximizeBox = false;
NotitiesForm.Disposed +=NotitiesForm_Disposed;
NotitiesForm.Text = "Notities";
NotitiesTB.Multiline = true;
NotitiesTB.Height = 600;
NotitiesTB.Width = 980;
NotitiesTB.ReadOnly = true;
NotitiesTB.Clear();
//NotitiesTB.Click += NotitiesTB_Click;
//NotitiesTB.SelectionStart = Convert.ToInt32(referenceLineSelectedPage);
NotitiesTB.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Both;
NotitiesTB.Name = "Notities";
NotitiesForm.Controls.Add(NotitiesTB);
foreach (IBRTNote notes in Notities.ReadNotes())
{
//string test = Convert.ToString((notes.Time));
//textBox1.Text = String.Concat(textBox1.Text, string.Concat(Environment.NewLine, notes.Text));
if (NotitiesTB.Text == "")
{
NotitiesTB.Text += new BRTToDotNET.RTDateTime((long)notes.Time).ToDotNet().ToString() + " " + notes.Text;
}
else
{
NotitiesTB.Text += "\r\n" + new BRTToDotNET.RTDateTime((long)notes.Time).ToDotNet().ToString() + " " + notes.Text;
}
//MessageBox.Show("\r\n" + notes.Text);
NotitiesForm.Show();
NotitiesForm.BringToFront();
}
}
else
{
MessageBox.Show("Er blijkt een .sig file te missen. Controleer of u een .sig file heeft ingeladen.");
}
}
private void NotitiesForm_Disposed(object sender, EventArgs e)
{
NotitiesForm = null;
}
어떤 라인에서이 예외가 발생합니까? – Caramiriel
Form 객체는 일회용 객체입니다. 닫힌 후에는 더 이상 사용할 수 없으며 새 것을 만들어야합니다. 'NotitiesForm' 변수가 문제를 일으키고 있습니다. 최소한 변수를 'null'로 설정할 수 있도록 FormClosed 이벤트를 구독해야합니다. 높은 확률로 전체 변수는 실제로 유용하지 않습니다. 왜냐하면 여러분이 실제로 form 객체를 결코 다시 사용하지 않기 때문입니다. 그냥 삭제하십시오. –
'NotitiesTB'를 어디에서 새롭게합니까? 당신은 그것을 처분합니까? – DrKoch