C#のWinformsでのお話。
動的にテキストボックスをフォームに出力するにはどうすれば良いのか、と思案にくれていました。
ある条件では、テキストボックスを1個。ある条件では、3個。はたまた、ある条件では10個などなど、ダイナミックにテキストボックスを表示する方法はないのかと。
HTMLをつかったWebベースだったら簡単にできますが、Winformsの場合、フォームの大きさが決まってるし、下に下に伸ばすにも、下にあるエレメントも動かさないといけないしなぁ。
HTMLだったら、簡単なのに!!
そういう風に思って、困っていました。
あるとき、気がつきました。
データグリッドビューじゃね?と。
Datagridviewだったら、横にスクロールバーついてるし、勝手に可変調節してくれて、Rowごとのデータもアクセスが可能じゃんか!
Datagridviewにデータバウンドせず、カラムの編集をする。
そしてカラムの追加をする。
この時に、カラムの属性を選択する。
ボタン、チェックボックス、コンボボックス、イメージ、リンク、テキストボックス。
例
品目はデータベースから引っぱってきて、数量はユーザーインプットとします。
品目のカラムはコンボボックスにします。数量はテキストボックスにします。
品目は、データベースから引っぱってきて、かつ、入力時にデータベースに書き込むので、品目IDが必要になりますから、コンボボックスにします。
行の追加後に、データソースを指定してあげましょう。
データソースが無い場合は、データセットを入れましょう。このあたりの手順は、コンボボックスのデータベースからのデータソース設定手順と同じです。
DisplayMemberを品目名に、ValueMemberを品目IDにします。
あとは、LoadのFunctionとデータ確認などなど必要な関数を入れていきましょう。
一件落着ですね。
見た目は悪いけど、必要な事項はこれで満たせる!
したいことと、出来ること、よくよく考えて、頭の中で寝かせると、あるとき思いつきますよね。
こういう現象出来る人間でよかった!
|
2016年1月12日火曜日
Winforms動的テキストボックス
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿