tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルテキストボックスへの文字列追加
記事No7036
投稿日: 2008/02/18(Mon) 00:42
投稿者オードリー
はじめまして、オードリーです。

以下の動作ができるよう考えています。

DataGridView1(0,a)に商品名、DataGridView1(1,a)にチェックボックスが配置されています。
DataGridView2(0,a)に商品名、DataGridView2(1,a)に商品コードが配置されています。

Private Sub DataGridView1_CellValidated(ByVal sender As Object, ByVal e As _
System.Windows.Forms.DataGridViewCellEventArgs) _
Handles DataGridView1.CellValidated

 Dim a As Integer = e.RowIndex
 Dim c As String

   If DataGridView1(1, a).Value = True Then

     ’cに商品コードを取得
            c =  DataGridView2(1, a).Value.ToString()

   End If

上記のように、チェックボックスにチェックを入れた商品の商品コード(c)を、Button1を
クリックした時、チェックボックスにチェックを入れた商品全ての商品コードを
つなげてTextBox1に書き込むにはどうしたらいいでしょうか?

例:複数の商品の中から、靴、ベルト、財布の商品コードをそれぞれ、
  チェックボックスにてK1256、B6589、W9654を取得し、
  Button1のクリックにてTextbox1に、K1256 B6589 W9654という感じで書き込む。

通常、Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Clickで、書き込むのですが、e.RowIndexを使用するには、DataGridView1_CellValidatedが必要です。
Button1_ClickとDataGridView1_CellValidatedとの関連のさせかたがよく判りません。

ご指南、よろしくお願いいたします。

[ツリー表示へ]
タイトルRe: テキストボックスへの文字列追加
記事No7037
投稿日: 2008/02/18(Mon) 00:59
投稿者KG
こんばんわ

すべての行をFor文で回してCheckが入ってる場合にだけチェックを付けるという
方法ではだめですか?

[ツリー表示へ]
タイトルRe^2: テキストボックスへの文字列追加
記事No7041
投稿日: 2008/02/18(Mon) 23:59
投稿者オードリー
こんにちは、オードリーです。

> すべての行をFor文で回してCheckが入ってる場合にだけチェックを付けるという
> 方法ではだめですか?

なるほど。こんなの考えました。

Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 Dim b As Integer
  For b = 0 To 306
      If DataGridView1(1, b).Value = True Then

        ListBox1.Items.Add(DataGridView2(1, b).Value.ToString())

      End If
  Next

こうすると、ListBox1に、チェックボックスで選択したオブジェクトが羅列されます。
商品の数は、わかっているので、この方が早いですね。

そこで、もう一つお聞きします。
このListbox1のオブジェクトを、Textbox1に文字列として貼り付けるには、どうしたらいいでしょうか?
うまく、文字列に変換できないのですが、、、。

[ツリー表示へ]
タイトルRe^3: テキストボックスへの文字列追加
記事No7042
投稿日: 2008/02/19(Tue) 08:40
投稿者KG
おはようございます。

うまく変換できなかったコードを教えて頂ければ
わかるかもしれませんが

ListBox1.Items(0).ToString

のような表現でできないでしょうか?

[ツリー表示へ]
タイトルRe^4: テキストボックスへの文字列追加
記事No7045
投稿日: 2008/02/19(Tue) 22:17
投稿者オードリー
いつもレスありがとうございます。

Listbox1に格納されているアイテムを、自動的に全て選択して、TextBox1に貼り付けたいのです。

もうちょっと詳しく言うと、Button1をクリックすると、チェックされた項目が、ListBox1に
格納され、そのまま格納されたアイテム全てを、TextBox1に貼り付ける、という感じです。

ListBoxでは、自分で(手動で)選択したアイテムはいろいろなところに貼り付けできます。
自動的に全てを選択して、貼り付けるというコードが判ればと思います。

すいません、グダグダのプイログラマーで、、、。(T_T)
よろしくお願いいたします。

[ツリー表示へ]
タイトルRe^5: テキストボックスへの文字列追加
記事No7046
投稿日: 2008/02/20(Wed) 00:12
投稿者かさのば
> Listbox1に格納されているアイテムを、自動的に全て選択して、TextBox1に貼り付けたいのです。
別に選択する必要は無いですよね?
Listboxの中身を全部TextBoxに放り込むだけですよね?

それなら単純にListboxの項目数分ループで回してやればいいと思います
例えばこんな感じで
For i = 0 To Listbox1.Items.Count -1
     TextBox1.Text += ListBox1.Items(i).ToString
Next i

[ツリー表示へ]
タイトルRe^6: テキストボックスへの文字列追加
記事No7047
投稿日: 2008/02/20(Wed) 01:21
投稿者オードリー
KGさん、かさのばさん、ありがとうございます!!!

こんな単純なコードだったのね。
手品のタネみたいで、わかってみると、あっけない。

お騒がせ、申し訳ありませんでした。
今後とも、よろしくお願いいたします。<(_ _)>

[ツリー表示へ]