3
DataGridViewLinkCell
のディスプレイにsearch
のようなものを表示できますが、リンクはhttp://google.com
ですか?C#DataGridViewLinkCell Display
DataGridViewを実際のリンクで散りばめないでください。
DataGridViewLinkCell
のディスプレイにsearch
のようなものを表示できますが、リンクはhttp://google.com
ですか?C#DataGridViewLinkCell Display
DataGridViewを実際のリンクで散りばめないでください。
private void Form1_Load(object sender, EventArgs e)
{
DataGridViewLinkColumn c = new DataGridViewLinkColumn();
dataGridView1.Columns.Add(c);
dataGridView1.Rows.Add();
dataGridView1.Rows[0].Cells[0].Value = "search";
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
switch (dataGridView1[e.ColumnIndex,e.RowIndex].Value.ToString())
{
case ("search"):
Process.Start("http://www.google.com");
break;
}
}
またはこの方法では、大規模なスイッチケースを避けるために:
class customcolumn : System.Windows.Forms.DataGridViewLinkColumn
{
public Dictionary<int, string> urls = new Dictionary<int, string>();
}
private void Form1_Load(object sender, EventArgs e)
{
int row_index = 0;
int column_index = 0;
customcolumn c = new customcolumn();
dataGridView1.Columns.Add(c);
dataGridView1.Rows.Add();
//Add Link-name here:
dataGridView1.Rows[row_index].Cells[column_index].Value = "search";
//Add Link here:
((customcolumn)(dataGridView1.Columns[column_index])).urls.Add(row_index, "http://www.google.com");
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
foreach (KeyValuePair<int, string> url in ((customcolumn)(dataGridView1.Columns[e.ColumnIndex])).urls)
{
if (url.Key == e.RowIndex)
{
Process.Start(url.Value);
break;
}
}
}
私はあなたがカスタムクラスを実装しているという事実が好きセル(列)にDataGridViewのリンクボタンを追加してみました非常に簡単な方法。きれいで簡潔なコードを作る:) – dustinrwh
あなたは –