【发布时间】:2013-11-11 20:48:16
【问题描述】:
我有一个form,它与主要的分开弹出。它上面有一个DataGridView,它显示了用户访问过的所有网址。所有的网址都保存在一个字符串列表中,然后转换为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 值?谢谢您的帮助。
【问题讨论】:
-
不是
CellContentDoubleClick会在edit mode中设置double-clicked cell吗? -
您遇到的错误是什么?
-
@King 不知道你在说什么,但目前的编辑模式是 EditOnKeyStrokeOrF2。我应该将其更改为 EditProgrammatically 吗?
-
@Messerschmitt 我可以使用
double-click将当前单元格设置为编辑模式,这是正常行为。虽然它可能不像double-click,但即使您第一次单击单元格,然后再次单击它,它将被设置为编辑模式。 -
@Brian,消息说:UriFormatException 未处理。无效的 URI:无法确定 URI 的格式。当我调用 dataGridView.SelectedRows.ToString() 时,我可能会在 url 字符串为空时收到此错误
标签: c# winforms datagridview datatable