■94056 / inTopicNo.2) |
Re[1]: DataRepeater上のPictureBox |
□投稿者/ 魔界の仮面弁士 (2596回)-(2020/03/09(Mon) 09:12:07)
|
■No94055 (たかし さん) に返信 > 画像ファイル名 = Me.DataRepeater1.CurrentItem.Controls("画像TextBox").Text > Me.画像PictureBox.ImageLocation = 画像ファイル名
Me.画像TextBox と Me.DataRepeater1.CurrentItem.Controls("画像TextBox") は別物ですし、 Me.画像PictureBox と Me.DataRepeater1.CurrentItem.Controls("画像PictureBox") も別物です。
Me.画像TextBox と Me.DataRepeater1.ItemTemplate.Controls("画像TextBox") は同じものですが、 これは文字通り、各アイテム行のテンプレートとなるものであって、DataRepeater によって 各行に繰り返し複製されている個々のコントロールとは異なります。
> どうすれば思った通りのことができるのでしょうか?
DataRepeater を使うなら、普通は「データバインド」で処理します。
型付 DataSet を使えば、デザイン時にバインドを済ませられますが、 下記のように、コードにてバインド対象の項目を割り当てていくこともできます。
Public Class Form1 Private ds As DataSet
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.ds = New DataSet()
Dim tbl = ds.Tables.Add("Table1") tbl.Columns.Add("Name") tbl.Columns.Add("URL") tbl.Rows.Add("Windows", "https://img-prod-cms-rt-microsoft-com.akamaized.net/cms/api/am/imageFileData/RE4pkvE") tbl.Rows.Add("Surface", "https://img-prod-cms-rt-microsoft-com.akamaized.net/cms/api/am/imageFileData/RE4pndL") tbl.Rows.Add("Office", "https://img-prod-cms-rt-microsoft-com.akamaized.net/cms/api/am/imageFileData/RE4pkv7") tbl.Rows.Add("XBox", "https://img-prod-cms-rt-microsoft-com.akamaized.net/cms/api/am/imageFileData/RE4pxBu") Me.ds.AcceptChanges()
Me.BindingSource1.DataSource = Me.ds Me.BindingSource1.DataMember = tbl.TableName
Me.画像Label.DataBindings.Add("Text", Me.BindingSource1, "Name", True) Me.画像TextBox.DataBindings.Add("Text", Me.BindingSource1, "URL", True) Me.画像PictureBox.DataBindings.Add("ImageLocation", Me.BindingSource1, "URL", True)
Me.DataRepeater1.DataMember = Nothing Me.DataRepeater1.DataSource = Me.BindingSource1 End Sub End Class
|
|