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

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

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

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

451閲覧

カスタムコントロールにテキストボックスを複数配置する方法

fendd

総合スコア13

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

1クリップ

投稿2019/03/27 01:48

前提・実現したいこと

テキストボックスを複数配置したいです。
.DrawBackgroundで表示したんですが、
イメージを表示するだけになってしまい困ってます。

いろんな言葉で検索してみたんですが、下記ソースコードの継承までしかたどり着けず、
肝心の表示が全く出来ていない状態です。

カスタムコントロールにて、複数のテキストボックスとラベルを配置する方法のご教示をお願いいたします。

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

テキストボックスが表示されません。

該当のソースコード

VB.NET

1Public Class TXTB 2 Inherits TextBox 3 Public Sub New() 4 AddHandler Me.TextChanged, AddressOf CustomTextBox_TextChanged 5 AddHandler Me.Leave, AddressOf CustomTextBox_Leave 6 End Sub 7 8 Private Sub CustomTextBox_TextChanged(ByVal sender As Object, ByVal e As EventArgs) 9 Me.PathEllipsis(Me.Text, Me.Font, Me.Size) 10 End Sub 11 12 Private Sub CustomTextBox_Leave(ByVal sender As Object, ByVal e As EventArgs) 13 Me.Text = Me.PathEllipsis(Me.Text, Me.Font, Me.Size) 14 End Sub 15 16 Private Function PathEllipsis(ByVal text As String, ByVal font As Font, ByVal size As Size) As String 17 TextRenderer.MeasureText(text, font, size, TextFormatFlags.PathEllipsis Or TextFormatFlags.ModifyString) 18 Return text 19 End Function 20End Class

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

VisualStudio2017

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/03/27 02:43

何を作っているのでしょう。Windows Forms? WPF? ASP.NET Web Forms? Visual Studio のバージョン以外の開発環境も書いてください。 「テキストボックスを複数配置」するのに「DrawBackgroundで表示」というのが分かりません。ツールボックスから必要数ドラッグ&ドロップするのではダメなんですか? 動的に配置したい? XY問題になってませんか?
fendd

2019/03/27 02:56

ご回答ありがとうございます。 環境情報が不十分で申し訳ございませんでした。 現在VB.NETで開発を行っており、Windows Form Applicationを作成しております。 作成しているソフトは会計ソフトです。 100行くらいの伝票入力を作成しているんですが、 1行あたり30オブジェクトくらいあるので、合計で3000個ほどになります。 動的に配置して、IventHandlerで処理を紐づけしてみたのですが、 そもそも100行表示するのに30秒ほどかかってしまいました。 そこで、カスタムコントロールで作ってるんじゃない?とアドバイスをいただいたので、 カスタムコントロールで伝票入力部分の作成をしている段階です。 現時点で、カスタムコントロールで複数のテキストボックス・ラベルを配置することが出来ずに困っています。 宜しくお願い申し上げます。
退会済みユーザー

退会済みユーザー

2019/03/27 03:58

> カスタムコントロールで作ってるんじゃない?とアドバイスをいただいたので、 それはこのスレッドの話ですよね⇒ https://teratail.com/questions/181354 現在のコードの「時間がかかりすぎる」という問題をカスタムコントロールを作ることで解決できるというのは、どういう根拠でそう判断されたのでしょうか? 現在のコードのどこがボトルネックになっているかを調べるのが先だと思うのですが。そして、ボトルネックが判明したら、その部分を改善する手段を策定して、その結果がカスタムコントロールを作るということになって初めて考える話ではないかと思いますけど。そういうことはしてないのでは?
退会済みユーザー

退会済みユーザー

2019/03/27 04:01

Windows Forms アプリの話であることは質問欄を編集して書いておくようお願いします。あと、開発環境(OS, .NET のバージョンなど)も追記願います。 #Ivent ではなくて Event では?
Y.H.

2019/03/27 04:27

100行30列もあるならgrid系のコントロールを使った方がいいと思う。
fendd

2019/03/29 05:13

すみません、自己解決しました。 理想のUIに出来たのでこれで解決とします。 Y.H.さん grid系コントロールって、グループ化するほどコントロールないから困ってたんですけどもね。
guest

回答1

0

自己解決

カスタムコントロールを作成する。

投稿2019/03/29 05:14

fendd

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問