いつもお世話になっています。
独学でVBの勉強をしているものなのですが、
どうしてもわからないことがあるので教えてください。
デザイナの画面で配置したテキストボックスなどのコントロールを、
コードでコピーして複数配置するようにしたいんです。
そこで、デザイナでTextBox1を配置して、
コードで以下のように記述しました。
Dim MyTextBox1 As New TextBox
MyTextBox1 = TextBox1
Me.Controls.Add(MyTextBox1)
すると、デザイナ画面で配置したテキストボックスが無くなって、
新たにコードで作成したテキストボックスだけが、
画面に表示されてしまうんです。
実際に行いたいことは、複数のコントロールをパネル上に配置して、
そのパネルをコードで複数作成することなのですが、
そもそもそのようなことはできないのでしょうか?
かなり的外れな質問になってしまっているかもしれませんが、
お分かりでしたら教えてください。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
MyTextBox1 = TextBox1 としてしまうと その前の行でせっかく作成したインスタンス(実体)をつぶしてしまっています
作成しているプロジェクトの Form1.Designr.vbファイルなどでTextBox1に関する記述をすべて検索してみましょう
newで作成して Location,Name,Size,TabIndex,Textなどのプロパティを設定 Controls.Addでコレクションに追加
といった処理になっていると思います
Dim Pt as Point
pt = TextBox1.Location
pt.Offset(0, TextBox1.Height + 4 )
myTextBox1.Location = pt
myTextBox1.Size = TextBox1.Size
myTextBox1.Name = "MyTextBox1"
myTextBox1.TabIndex = Me.Controls.Count + 1
myTextBox1.Text = "initial Text"
Me.Controls.Add( myTextBox1 )
といった具合です
パネルに追加するのであれば Me.Controlsを Panel1.Controlsなどに変更すればよさそうですよ
ご返答ありがとうございます。
私もredfox63さんが教えてくださった方法で試そうとしたのですが、
パネルに配置するコントロールはまだ確定ではなくて、
細かい場所の設定などまで考えると、
できればデザイナ画面で配置をして、
それをコピーできればと思ったんです・・・
やっぱり、横着しないでコードを書けってことですかね^^;
No.1
- 回答日時:
MyTextBox1 = TextBox1
↑この時点で、MyTextBox1が見るオブジェクトはTextBox1となり、TextBox1のコピーではなく、TextBox1そのものになってしまいます。
単純にテキストボックスを追加するだけなら、上記一文はいりません。
TextBox1のコピーをつくるなら
MyTextBox1 = TextBox1.Clone()
になります。
ご返答ありがとうございます。
早速試してみたのですが、
MyTextBox1 = TextBox1.Clone()
というふうに記述すると、
'Clone' は 'System.Windows.Forms.TextBox' のメンバではありません。
というエラーが出てしまうんです。
何か他に記述しなければならないコードなどがあるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) フレーム内のオプションボタンの選択結果をセルに書き出したい。 図のような預金種目というフレームにオプ 2 2022/07/29 11:12
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:16
- IT・エンジニアリング ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:17
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Excel(エクセル) 複数のセルでの文字判定について 5 2022/06/07 14:08
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Visual Basic(VBA) テーブルを配列に入れて、元のテーブルの行番号を取得したい 1 2022/08/16 20:15
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
「覚え間違い」を教えてください!
私はかなり長いこと「大団円」ということばを、たくさんの団員が祝ってくれるイメージで「大円団」だと間違えて覚えていました。
-
プリン+醤油=ウニみたいな組み合わせメニューを教えて!
プリンと醤油を一緒に食べると「ウニ」の味がする! というような意外な組み合わせから、新しい味になる食べ物って色々ありますよね。 あなたがこれまでに試した「組み合わせメニュー」を教えてください。
-
【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
【お題】 ・このサンタクロースは偽物だと気付いた理由とは?
-
FriendとPublicの違い。。。
Visual Basic(VBA)
-
Form_Load と Form_Activate のタイミング
Visual Basic(VBA)
-
VB.NETのスクロールバーコントロール動作について
Visual Basic(VBA)
-
-
4
VBの画面サイズについて
Visual Basic(VBA)
-
5
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
6
VB2005 DataGridView で選択状態(青色反転)
Visual Basic(VBA)
-
7
SPREAD(GrapeCity)のセルにフォーカスを設定するにはどうしたらいいのでしょうか?
Visual Basic(VBA)
-
8
VB.netでフォームのクローン
Visual Basic(VBA)
-
9
[VB.net] DataGridViewの列ヘッダー複数行表示に伴う不具合?について
Visual Basic(VBA)
-
10
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックス(VBA)でEnter...
-
エクセルの画像にツールチップ...
-
VBからエクセルのテキストボ...
-
DataGridViewで行の展開みたい...
-
テキストボックスがセルと連動...
-
ADOのCursorLocationプロパティ
-
ASP.NET : FormView内コントロ...
-
Enabled=Falseのテキストボック...
-
中国文字のプログラムでの取り扱い
-
ACCESS2010 ActiveXコントロー...
-
VB2005 コードでのコントロー...
-
コンボボックスの高さを変更し...
-
C# のテキストボックスデザイン...
-
VB6でLabelの最前面にText Box...
-
ASP.NETでのテキストボックスに...
-
VB6でPNGファイルを扱うには?
-
VB.NETで縦書表示をしたいので...
-
checkbox付きListViewで デフ...
-
細かい画面作成
-
Wordテキストコントロールが未...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックス(VBA)でEnter...
-
エクセルの画像にツールチップ...
-
Wordテキストコントロールが未...
-
ADOのCursorLocationプロパティ
-
checkbox付きListViewで デフ...
-
DataGridViewで行の展開みたい...
-
エクセル入力規制リスト行数
-
VBからエクセルのテキストボ...
-
チェックボックスの文字色の変え方
-
VB6でLabelの最前面にText Box...
-
VB.NETで縦書表示をしたいので...
-
C# TEXTが空白であるLABELは何...
-
デザインモードを解除すると消...
-
コンボボックスの高さを変更し...
-
Enabled=Falseのテキストボック...
-
ACCESS2010 ActiveXコントロー...
-
VB6でPNGファイルを扱うには?
-
MSFlexGrid
-
ユーザーフォームに日付を表示...
-
TableLayoutPanelでspan
おすすめ情報