(.Net)DataGridViewでリンク列の値とDataSourceの列の値を対応させる方法
したいこと:DataTableの"Mail"列の値をDataGridViewのリンク列(DataGridViewLinkColumn)で表示したい。

最初は、ループでリンクセルの Value プロパティに値を入れてたのですが、それだと値が表示されませんでした。

で、いろいろMSDN徘徊してるうちによーやく目的のことができるプロパティ見つけました。
DataGridViewColumn.DataPropertyNameプロパティです。
こいつの値にデータソースとなっているDataTableの"Mail"列の名前を指定することでできました。

いちおうサンプルソースです。
DataTableはすでに作成済で、DataTableの"Mail"列にDataGridViewのリンクセルに表示したい文字列が入ってるとします。

'DataGridView上の各種設定 (dtblは DataTable オブジェクト )
frmDataExt.dgvExtract.DataSource = dtbl
'奇数行の背景を変更
frmDataExt.dgvExtract.AlternatingRowsDefaultCellStyle.BackColor = Color.PeachPuff

'列の自動順番を解除
frmDataExt.dgvExtract.AutoGenerateColumns = False
 
'メールリンク列作成
Dim clmMail As New DataGridViewLinkColumn()

clmMail.Name = "メール"
'リンク押下後の色指定
clmMail.VisitedLinkColor = Color.DeepPink
'DataSoureに設定したDataTableのどの列の値をこの列の値として使用するか設定
clmMail.DataPropertyName = dtbl.Columns("Mail").ColumnName

'DataDridViewに列追加
frmDataExt.dgvExtract.Columns.Add(clmMail)

このプロパティの詳細はMSDN参照のこと。

このプロパティはSystem.Windows.Forms.DataGridViewColumnにあるので、それを継承している他のDataGirdViewでの列(DataGridViewButtonColumn , DataGridViewCheckBoxColumn , DataGridViewComboBoxColumn , DataGridViewImageColumn , DataGridViewTextBoxColumn)でもおそらく使えると思われます。

.Netはプロパティが膨大過ぎてなかなか覚えれませんね。
[PR]
by jehoshaphat | 2008-11-28 19:04 | .Net開発 | Trackback | Comments(0)
トラックバックURL : http://jehupc.exblog.jp/tb/9084266
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。


<< (SQL)SQLで区分などの複... 生年月日(誕生日)から簡単に年... >>