tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルListBox選択で・・
記事No2227
投稿日: 2005/09/22(Thu) 15:39
投稿者じゅん
[OSのVer]:Windows    [VBのVer]:VB.NET
以前の続きみたいなものですが。  
ListBoxに商品名と数量が表示されています。それをtxt商品・txt数量にそれぞれ『商品名のコード』
と『数
量の数値』を表示させたい(ListBox内でカーソルが移動するとその都度変化するように)のですが、
どうし
たらいいでしょうか?
あと、ListBoxにFocus()で移動した時に商品などが選択されているのかわからないですが、点線の枠
で囲まれ
た感じで表示されますが(キーの下を押せば青色で囲まれる)、それを移動した時に青色で囲んでほし
いのです
がこれはどうやったらいいのでか?調べたのですがわからなくて(涙)
お願いします。

[ツリー表示へ]
タイトルRe: ListBox選択で・・
記事No2230
投稿日: 2005/09/22(Thu) 16:01
投稿者なおこ(・∀・)
お世話になります。

> [OSのVer]:Windows    [VBのVer]:VB.NET
> 以前の続きみたいなものですが。  
> ListBoxに商品名と数量が表示されています。それをtxt商品・txt数量にそれぞれ『商品名のコード』
> と『数量の数値』を表示させたい(ListBox内でカーソルが移動するとその都度変化するように)ので
すが、
> どうしたらいいでしょうか?

→これって、ListBox1.SelectedIndexChangedのときに、
 txt商品に商品名のコード
 txt数量に数量を
 表示する処理を書けばよいのでは?

> あと、ListBoxにFocus()で移動した時に商品などが選択されているのかわからないですが、点線の枠
> で囲まれ
> た感じで表示されますが(キーの下を押せば青色で囲まれる)、それを移動した時に青色で囲んでほし
> いのです
> がこれはどうやったらいいのでか?調べたのですがわからなくて(涙)

Me.ListBox1.Focus()
Me.ListBox1.SelectedIndex = 1 ←これは選択したいindexを指定する。

[ツリー表示へ]
タイトルRe^2: ListBox選択で・・
記事No2233
投稿日: 2005/09/22(Thu) 16:14
投稿者じゅん
[OSのVer]:Windows    [VBのVer]:VB.NET  
> →これって、ListBox1.SelectedIndexChangedのときに、
>  txt商品に商品名のコード
>  txt数量に数量を
>  表示する処理を書けばよいのでは?
というと?
コードをお願いできないでしょうか?

> Me.ListBox1.Focus()
> Me.ListBox1.SelectedIndex = 1 ←これは選択したいindexを指定する。
最初は
list商品.SelectedIndex(1,true)
でやっていたのですが、上記とはどうちがうのですか?

[ツリー表示へ]
タイトルRe^3: ListBox選択で・・
記事No2236
投稿日: 2005/09/22(Thu) 17:00
投稿者なおこ(・∀・)
お世話になります。

> [OSのVer]:Windows    [VBのVer]:VB.NET  
> > →これって、ListBox1.SelectedIndexChangedのときに、
> >  txt商品に商品名のコード
> >  txt数量に数量を
> >  表示する処理を書けばよいのでは?
> というと?
> コードをお願いできないでしょうか?

というと?
私にプログラム作成を発注しているのですかw?

まぁいいです。この前とソースが変わっていないのなら、こんな感じです。

Private Sub list商品_SelectedIndexChanged(ByVal sender As Object, _
                     ByVal e As System.EventArgs) _
                     Handles list商品.SelectedIndexChanged
  If Not IsNothing(Me.list商品.SelectedItem) Then
    Me.txt商品.Text = _
    CType(Me.m_TestDt.Rows(Me.list商品.SelectedIndex)("商品コード"), String)
    Me.txt数量.Text = _
    CType(Me.m_TestDt.Rows(Me.list商品.SelectedIndex)("数量"), String)
  End If
End Sub

> > Me.ListBox1.Focus()
> > Me.ListBox1.SelectedIndex = 1 ←これは選択したいindexを指定する。
> 最初は
> list商品.SelectedIndex(1,true)
> でやっていたのですが、上記とはどうちがうのですか?

私の環境では、引数を2つとるSelectedIndexプロパティは確認できませんでしたので
申し訳ないですが、解りません。

[ツリー表示へ]
タイトルRe^4: ListBox選択で・・
記事No2237
投稿日: 2005/09/22(Thu) 17:56
投稿者じゅん
[OSのVer]:Windows    [VBのVer]:VB.NET  
ありがとうございます。
で、今発見したバグ(?)があるのですが。
<バグ内容>
商品・数量を入力していくと(商品番号順で)数量が表示されない商品がでてくる。
<表示内容>
塩タン   1
ネギたん  1
骨付きカルビ  1
ロース  1
カルビ  1
上ミノ  1
焼センマイ  1
上ホルモン  1
レバー
心臓
砂肝
子袋
かわし
鶏なんこつ
トントロ  1
ユッケ  1

ちなみに入力順位をこのようすると
<表示結果>
レバー  1
心臓  1
砂肝  1
子袋  1
かわし  1
鶏なんこつ  1
トントロ  1
ユッケ  1
塩タン   1
ネギたん  
骨付きカルビ  
ロース  
カルビ  
上ミノ  
焼センマイ  
上ホルモン  

になります。
見たいに、数量が出ないところがあるんです。なんでですかね〜??
全然理由がわからないのです。エラーが出るわけでもないので・・

[ツリー表示へ]
タイトルRe^5: ListBox選択で・・
記事No2238
投稿日: 2005/09/22(Thu) 18:25
投稿者なおこ(・∀・)
お世話になります。

SetSyohinMasterの中で、
Me.m_TestDtに、最初に数量がないDataRowを追加している。
その後、"数量が入力されれば"、数量を更新している。
そして、Me.m_TestDtの中身を"そのまま"表示してますよね。

なので、数量を必ず入力させるように画面制御するか、
もしくは、m_TestDt.Rows(?)("数量")の値がブランクなものは表示させないようにする。

実装の方法はご自身で考えてみてください。

[ツリー表示へ]
タイトルRe^6: ListBox選択で・・
記事No2239
投稿日: 2005/09/22(Thu) 18:29
投稿者じゅん
[OSのVer]:Windows    [VBのVer]:VB.NET  
数量は入れてるけど、表示されないのです(汗)

[ツリー表示へ]
タイトルRe^7: ListBox選択で・・
記事No2241
投稿日: 2005/09/22(Thu) 18:36
投稿者なおこ(・∀・)
お世話になります。

> [OSのVer]:Windows    [VBのVer]:VB.NET  
> 数量は入れてるけど、表示されないのです(汗)

では、内部のm_TestDtに対し、TextBoxで数量入力後、
数量の更新が正しく行われているか、
ステップ実行で追って見ましょう。

あと、一時的にFormにDataGridを貼り付けて、
DataGrid2.DataSource = Me.m_TestDT
DataGrid2.Reflesh()
で、DataTableの中身を確認してください。

[ツリー表示へ]
タイトルRe^8: ListBox選択で・・
記事No2243
投稿日: 2005/09/22(Thu) 18:58
投稿者じゅん
[OSのVer]:Windows    [VBのVer]:VB.NET  
> お世話になります。
>
> > [OSのVer]:Windows    [VBのVer]:VB.NET  
> > 数量は入れてるけど、表示されないのです(汗)
>
> では、内部のm_TestDtに対し、TextBoxで数量入力後、
> 数量の更新が正しく行われているか、
> ステップ実行で追って見ましょう。
>
> あと、一時的にFormにDataGridを貼り付けて、
> DataGrid2.DataSource = Me.m_TestDT
> DataGrid2.Reflesh()
> で、DataTableの中身を確認してください。

やってみます。
今日はこれで終わりなので、月曜日に結果報告します。
今日もありがとうございました。

[ツリー表示へ]