質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

コンボボックス

GUIの要素のひとつです。Listboxと同様にいくつかのうちひとつを選択する機能だが、Comboboxの場合は選択されたもののみがデフォルトとして表示される。

Q&A

解決済

2回答

4400閲覧

[VB.NET]別フォームのコンボボックスへの値の受け渡し方法がわかりません。。

退会済みユーザー

退会済みユーザー

総合スコア0

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

コンボボックス

GUIの要素のひとつです。Listboxと同様にいくつかのうちひとつを選択する機能だが、Comboboxの場合は選択されたもののみがデフォルトとして表示される。

0グッド

0クリップ

投稿2020/07/10 03:44

編集2020/07/10 03:45

前提・実現したいこと

VisualBasicでサブフォームからメインフォームに値を渡したいのですが、DataGridView内のコンボボックスへの値の渡し方がわかりません。
コンボボックスのItemに保存せずにコンボボックス内に表示させたいです。

テキストボックスには値を渡すことに成功しています。

発生している問題・エラーメッセージ

コンボボックスに値が入らない。(エラーなどは出ておりません。)

該当のソースコード

VB

1[受け取る側] 2 If dgv.Columns(e.ColumnIndex).Name = "ODBtn" Then 3 For Each c As DataGridViewCell In DataGridView1.SelectedCells 4 If DataGridView1(c.ColumnIndex, c.RowIndex).Selected Then 5 CM0530.Show() 6 DataGridView1(0, c.RowIndex).Value = CM0530.select_data 7 End If 8 Next 9 End If 10 11[渡す側] 12 Dim select_data As String 13 select_data = DataGridView1.SelectedCells(0).Value & vbCrLf 14 '//データを受け渡し 15 For Each c As DataGridViewCell In CM0110.DataGridView1.SelectedCells 16 If CM0110.DataGridView1(c.ColumnIndex, c.RowIndex).Selected Then 17 CM0110.DataGridView1(0, c.RowIndex).Value = select_data 18 End If 19 Next 20 21 Me.Close()

試したこと

同じグリッド内にあるテキストボックスの列には値を表示することが出来ました。

補足情報(FW/ツールのバージョンなど)

Visual Studio2017,SQL Server

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

その別フォームのインスタンスを渡しておいて、そいつからDataGridView内のComboBoxにアクセスするようにすればいけます


C#で、というのが恐縮ですが、

C#

1 // frmというのは別フォームのインスタンス 2 foreach( var a in frm.dataGridView1.SelectedCells) 3 { 4 string b=((DataGridViewComboBoxCell)a).Value as string; 5 b をなんやかや 6 7 あるいは 8 ((DataGridViewComboBoxCell)a).Value = b; 9 }

というところでしょうか

投稿2020/07/10 05:11

編集2020/07/10 05:58
y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/07/10 05:26

回答いただき、誠にありがとうございます! よろしければ、もう少しヒントをいただきたいです。 知識不足で大変申し訳ございません。
y_waiwai

2020/07/10 05:33

いまきがついたけど、 別フォームのコントロールにデータの受け渡しがわからないのか、 DataGridViewのComboBoxのデータ受け渡しがわからないのかどっち?
退会済みユーザー

退会済みユーザー

2020/07/10 05:42

後者になります!
y_waiwai

2020/07/10 05:59

追記しました これで参考になるでしょうか
退会済みユーザー

退会済みユーザー

2020/07/10 06:49

ありがとうございます! 非常に参考になりました! コンボボックス内に格納されている値を渡した際は表示されるのですが、 コンボボックス内に格納されていない値を渡すと表示されなくなります。 コンボボックス内に格納されていない値も表示したいのですが そのような方法はあるのでしょうか?
guest

0

ベストアンサー

DataGridViewのコンボボックス(DataGridViewComboBoxColumn)は基本的に選択肢にある(ComboBoxに登録してある項目)を選択するためのものになります。
ですので、新しい値をComboBoxに追加してから、Cellの値を変更する必要があります。

処理としては
1.セルに入れる値がComboBoxに登録されているデータか確認する
2.登録されていない場合、ComboBoxにデータを追加する
3.セルにデータを格納する
といった流れになるかと思います。

投稿2020/07/10 07:18

YAmaGNZ

総合スコア10242

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/07/10 10:19

回答ありがとうございます! そうなのですね。。 格納するのは諦めてテキストボックスで実装しようと思います! ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問