我有2個窗體,我將調用Form1和Form2。在Form1中是以下代碼:無法獲取組合框更新/刷新
public void PrinterDD()
{
printer.Items.Clear();
string sprinters = @"filepath";
using (StreamReader reader = new StreamReader(sprinters))
try
{
while (!reader.EndOfStream)
{
string strPrnItem = reader.ReadLine();
MessageBox.Show(strPrnItem); //just here for troubleshooting purposes
printer.Items.Add(strPrnItem);
}
}
finally
{
reader.Close();
printer.Update();
printer.SelectedIndex = 0;
}
}
當Form1加載時,將首先調用此方法。組合框(「打印機」)正確填充。
在窗體2,我要寫入文件,並改變它的方法:
private void accept_Click(object sender, EventArgs e)
{
this.AcceptButton = accept;
if (selectedprinters != null && selectedprinters.Items != null && selectedprinters.Items.Count > 0)
{
File.Delete(sprinters);
StreamWriter writer = new StreamWriter(sprinters);
try
{
foreach (object item in selectedprinters.Items)
{
writer.WriteLine(item.ToString());
}
}
finally
{
writer.Close();
Voicemails.PrinterDD();
}
}
this.Close();
}
線Voicemails.PrinterDD();
運行從上方Form1中的方法。在逐步完成代碼時,一切似乎都正常;沒有錯誤,文本文件會被寫入新的值。但組合框永遠不會更新/刷新以顯示新的字符串。
我在做什麼錯?
編輯。我在Form1代碼中嘗試了printer.Refresh();
而不是printer.Update();
。
ps。我使用的文件是一個文本文件,所以我不認爲我能夠綁定組合框,所以我不認爲做printer.DataSource = null
,然後重新綁定它將工作。
請不要在「C#」前加題目標題。這就是標籤的用途? –
什麼是「語音信箱」對象?它是「Form1」的一個實例嗎? –
對不起。語音郵件是Form1的實際類名稱。我只是爲了簡單起見而說Form1 – Kurt