タイトル : 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:』が表示されないようにするには どう > したらいいでしょうか。 ★参照。 で、いけると思うのですが。。。 |