BV.netでアプリケーションを組んでみたいのですが、ListBox内を元の状態(真っ白)にするには、どう記述すればよいでしょうか?VB4ですと、List1.ListClearって書けば、よかったと思います。
MSDNで探してもわかりませんでした。
ListBox.Items.Clearで。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.listbox.objectcollection.clear(VS.80).aspx
ちぇしゃさんありがとうございました。
早速
Me.ListBox2.Items.Clear()
を記述してみましたが、
データソース プロパティを設定したときに Items コレクションを変更することはできません。とのエラーが返ってきます。
データソースをはずすとか、何か処理が必要なのでしょうか?
データソースをはずすには、どうすればいいのでしょうか?
申し訳ありません。
> データソース プロパティを設定したときに Items コレクションを変更することはできません。とのエラーが返ってきます。
データソースとして利用しているオブジェクトの Clear メソッドなら使えるのでは?
> データソースをはずすには、どうすればいいのでしょうか?
Nothing を設定します。
特攻隊長まるるう様、お返事ありがとうございます。
早速、下記のように記述してみました。
まず、ListBox2にデータソースをセットする。
Dim dv As DataView = New DataView(oDataSet.Tables("dmaster"))
dv.Sort = "dname"
Me.ListBox2.DataSource = dv
ボタンでListBox2の表示を真っ白にするために、下記のように記述してみました。
Me.ListBox2.DataSource = Nothing
Me.ListBox2.Items.Clear()
あるいは、
Me.ListBox2.DataBindings.Clear()
Me.ListBox2.Items.Clear()
と記述してましたが、どちらとも、エラーが返ってきます。
>データソースとして利用しているオブジェクトの Clear メソッドなら使え
>るのでは?
とのお返事をいただきましたが、どのように記述すればよいかわかりません。本当に、初心者で申し訳ありません。
どうか、教えてください。
よろしくお願い申し上げます。
>どちらとも、エラーが返ってきます。
そのエラーの内容について考えてみましたか?
少し考えてみれば何かしら進展するはずなんですけどね。
まずはさん、お返事ありがとうございます。
エラーの内容ですが、
'データ連結を行なう
Dim dv As DataView = New DataView(oDataSet.Tables("dmaster"))
dv.Sort = "dname"
Me.ListBox2.DataSource = dv
次に、ボタンで、ListBox2の表示を真っ白にするために、
Me.ListBox2.Items.Clear()
と記述して、ボタンをクリックしたときに、
ListBox2の内容も消えず、
「データソース プロパティを設定したときに Items コレクションを変更することはできません。」
とのエラーが返ってきたので、
Me.ListBox2.DataSource = Nothing
Me.ListBox2.Items.Clear()
と記述したところ、
Dim dv As DataView = New DataView(oDataSet.Tables("dmaster"))
のところで、
「値を Null にすることはできません。 パラメータ名: dataSource」
とのエラーが発生しましたので、
Me.ListBox2.DataBindings.Clear()
Me.ListBox2.Items.Clear()
と記述してみたのですが、
Me.ListBox2.Items.Clear()
のところで、
「データソース プロパティを設定したときに Items コレクションを変更することはできません。」
とのエラーが返ってきます。
何を、どうすればよいか、わからなくなってしまいました。
どうか、何をどう書けばよいか、教えてください。
申し訳ありません。
お願いします。
Me.ListBox2.DataSource = oDataSet.Tables("dmaster")
Me.ListBox2.DisplayMember = ○○(表示させる項目)
Me.ListBox2.ValueMember = △△(表示させている項目に対応するコードなど。なければ特に必要なし)
として表示ができ、
Me.ListBox2.DataSource = Nothing
でクリアできるのではないでしょうか?
>Me.ListBox2.Items.Clear()
は必要ないかと思われます。
めが〜ねさん、お返事ありがとうございます。
Me.ListBox2.DataSource = oDataSet.Tables("dmaster")
Me.ListBox2.DisplayMember = dname
Me.ListBox2.ValueMember = dcode
Me.ListBox2.DataSource = Nothing
で、デバックを実行してみたのですが、
やはり、
Dim dv As DataView = New DataView(oDataSet.Tables("dmaster"))
のところで、
「値を Null にすることはできません。 パラメータ名: dataSource」
とのエラーが発生しましす。
データバインドしたListBox2を真っ白にクリアするのは不可能なのでしょうか?
> Dim dv As DataView = New DataView(oDataSet.Tables("dmaster"))
> のところで、
> 「値を Null にすることはできません。 パラメータ名: dataSource」
> とのエラーが発生しましす。
ボクの回答内容と関係ないエラーです。
データが表示されている状態で、
Me.ListBox2.DataSource = Nothing
だけ実行してください。
特攻隊長まるるう様
落ち着いてエラー発生場所を確認してみたところ、
ListBox2_SlectedIndexChanged()
でした。
If文で振り分けたところ、エラーが回避されました。
Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged
Me.Label4.Text = CStr(Me.ListBox2.SelectedValue)
Me.Label5.Text = Me.ListBox2.GetItemText(Me.ListBox2.SelectedItem)
If butan2flg = 1 Then
Dim cm As CurrencyManager = Me.ListBox2.BindingContext(Me.ListBox2.DataSource)
Dim dr As DataRow = CType(cm.Current, DataRowView).Row
Label6.Text = dr("dyaka")
Else
End If
TextBox2.Select()
End Sub
自分が情けなく感じます。
ありがとうございました。
解決マーク付け忘れでした。
ありがとうございました。