tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: ListBoxから選択項目削除できない
投稿日: 2005/09/17(Sat) 10:24
投稿者まか
> <下記コード>
> Private Sub txt商品_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handl
es
> txt商品.LostFocus
>         Dim scn As SqlClient.SqlConnection = New SqlClient.SqlConnection( _
>                 "Data Source = localhost;Persist Security Info=False" _
>                 & ";Integrated Security=SSPI;database=Yuukari")
>         Dim dSet As DataSet = New DataSet("t_商品マスタ")
>         Dim dAdp As SqlClient.SqlDataAdapter
>
>         scn.Open()
>
>         dAdp = New SqlClient.SqlDataAdapter("SELECT * FROM T_M_商品マスタ Where 商
品コ
> ード
> = " & CInt(txt商品.Text), scn)
>         dAdp.Fill(dSet, "t_商品マスタ")
>
>         Dim dt As DataTable = dSet.Tables("t_商品マスタ")
>         For i As Integer = 0 To dt.Rows.Count - 1
>             list商品.Items.Add(CType(dt.Rows(i)("商品名"), String))  ←★修

>         Next
>
>
>         scn.Close()
>
>
>         btn削除.Enabled = True
>         txt数量.Enabled = True
>         txt数量.Focus()
>         list商品.Enabled = True
>         btn修正.Enabled = True
>         btn送信.Enabled = True
>
>     End Sub
>
>
> Private Sub btn削除_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
> Handles btn削除.Click
>         '***今現在の削除方法 2005/09/15 始め***
>         '選択された商品を削除する
>         If MsgBox("削除してもよろしいですか?", MsgBoxStyle.YesNo) = MsgBoxRes
ult
> .Yes Then
>
>             Dim dt As DataTable = CType(list商品.DataSource, DataTable)
>             dt.Rows.RemoveAt(Me.list商品.SelectedIndex)
>             Me.list商品.Refresh()
>
>         End If
>
>         '***今現在の削除方法 2005/09/15 終わり***
>     End Sub
>
> 上記のコードだとエラーが発生
>   dt.Rows.RemoveAt(Me.list商品.SelectedIndex)
> の場所で。
> このエラーをなくすにはどうしたらいいですか?

下のツリーのなおこ(・∀・)さんの文章を読むと
「ListBoxにデータベースなどのデータをバインドした場合、
Item.Removeはできないです。」とありますので、現在バインドしていないので、元のコードに戻せばい
いと思います。

Dim dt As DataTable = CType(list商品.DataSource, DataTable)
        dt.Rows.RemoveAt(Me.list商品.SelectedIndex)
とりあえず、上記2行はコメントにして

        list商品.Items.Remove(list商品.SelectedItem)

> あと、今のままだとListBoxに『1:商品名』と出てしまい。『1:』が表示されないようにするには
どう
> したらいいでしょうか。

★参照。

で、いけると思うのですが。。。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。