我有一个表单
,它与主表单分开弹出。它有一个 DataGridView
显示用户访问过的所有 url。所有的 url 都保存在一个字符串列表中,然后转换为 DataTable
,然后我将值放入 DataGridView
。我可以看到带有网址的表格。
我想在单元格上启用双击,这样如果用户双击它,他将被转换为支持该 url。
我在选择一行(单击 url)并将其解析为字符串时出错。似乎它是空的,因为页面未加载
private DataTable ConvertListToDataTable(List<string> l)
{
table.Columns.Add("urls");
int i = 0;
foreach(string s in l)
{
table.Rows.Add();
table.Rows[i].SetField("urls", s);
i++;
}
return table;
}
public void pageload(List<string> list)
{
table = ConvertListToDataTable(list);
dataGridView1.DataSource = table;
}
private void dataGridView1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
Form1 form = new Form1();
form.pageInput.Text = dataGridView1.SelectedRows.ToString();
string input = form.pageInput.Text;
form.loadPage(input);
}
我尝试将 DataGridView
SelectionMode
更改为 FullRowSelect、CellSelect 和 RowHeaderSelect 但它并没有改变任何东西。试图更改单元格和行的双击。我还尝试在表单上放置一个 textBox
以进行调试。所以当我分配时:
textBox1.Text = dataGridView1.SelectedRows.ToString()
我得到的只是 Windows.Forms.DataGridViewSelectedCellCollection
,所以它肯定是空的。
问题是,如果 ToString()
不起作用,我如何取回该 url 值?谢谢您的帮助。
如果它是一个集合,您必须单独处理集合中的每个元素,否则 .ToString() 只会返回元数据中所选行的文本,即 DataGridViewSelectedCellCollection。
尝试类似的东西,
foreach(elementType i in dataGridView1.SelectedRows)
{
//do something you want here such as TextBox.Text = TextBox.Text + i.ToString();
}
我是一名优秀的程序员,十分优秀!