我正在嘗試創建「歷史記錄頁面」。閱讀一個用戶的url已經是一個字符串,並將它們添加到List並將其轉換爲DataTable,但是當我點擊show History菜單選項時,我所獲得的只是列「urls」和它下面的空單元格。我假設我也可能不恰當地使用Add方法。List to Datatable。 Datatable不顯示任何值
主窗體類:
private void showHistoryToolStripMenuItem_Click(object sender, EventArgs e)
{
using (History history = new History())
{
history.ShowDialog();
nonHomepage = URLInput.Text;
if (String.IsNullOrEmpty(nonHomepage))
{
return;
}
else
{
addToList(nonHomepage);
}
}
}
public void addToList(string URLvalue)
{
listH.Add(URLvalue);
}
public List<string> getList()
{
return listH;
}
歷史窗體類:
private void History_Load(object sender, EventArgs e)
{
Form1 br = new Form1();
list = br.listH;
DataTable table = ConvertListToDataTable(list);
dataGridView1.DataSource = table;
}
static DataTable ConvertListToDataTable(List<string> l)
{
DataTable table = new DataTable();
//int columns = 0;
table.Columns.Add("urls");
foreach(string s in l)
{
table.Rows.Add(s);
}
return table;
}
有什麼建議?如果我將所有這些URL放在文件中,然後從文件中讀取並寫入文本框/表格,該怎麼辦?或者,也許我應該改變數據結構?例如,去字典嗎?提前致謝。
這是否編譯? – Harrison
我沒有調試過這段代碼,我猜想。因爲我認爲問題是當你在表單之間傳遞列表時。更具體地說,這個位:Form1 br = new Form1(); list = br.listH; ...如果您重新實例化該類,則將其所有變量設置爲它們的默認值(並且列表爲空)。 – varocarbas
是的,它編譯。我只需要將主表單中的url字符串傳遞給歷史表單,然後在歷史表單中創建列表呢? – Messerschmitt