超ド級の初心者ですが、Visual Basic.NETの本を買って勉強を始めました。
その中で「フォームのResizeイベントが発生するたびに、フォームのWidthプロパティをテキストボックスに表示するように」との練習問題がありましたがうまくできません。
Visual Basic6.0もあるので、そちらで同じことをやってみたところ、以下のようなコードで正常に動作しました。
Private Sub Form_Resize()
Text1.Text = Me.Width
End Sub
Visual Basic.NETではどう記述すればいいのか教えていただけませんか?
No.7ベストアンサー
- 回答日時:
.NET引っ張り出して、動作確認済みです。
Private Sub Form1_Resize(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Resize
Text1.Text = Me.Width
End Sub
まぁ、根本的に記述が変わるわけですよ。method定義が…
できました!ありがとうございました!
それにしてもその問題が載ってる時点での本の内容からは、イベントプロシージャ(でいいんですよね?)はクラス名とメソッド名のプルダウンから選べば自動的にできる、ていう程度の説明しかありませんでした。
自分でもなんとなくそのあたりを書換えなきゃならないのでは・・・とは思いつつ、書換え方がさっぱりわからなかったのです。
ちょっと初期段階の練習問題としては不適切ですよね・・・。
でもおかげで解決することができました。
ありがとうございます。
No.5
- 回答日時:
わたしは、Microsof の .NET を持っておらず、
フリーウェアの SharpDevelop を使用しています。
なので、下記コードでは TextBox をコードで生成しています。
コメントを書いてあるところがミソでしょうか。
-------------------------------
Imports System
Imports System.Windows.Forms
Module Main
Sub Main
Dim fMainForm As New MainForm
fMainForm.ShowDialog()
End Sub
Public Class MainForm
Inherits System.Windows.Forms.Form
'テキストボックスの生成
Dim txt As New TextBox
Public Sub New
MyBase.New()
Me.Text = "This is my form"
'テキストボックスを配置
txt.Parent = Me
txt.left = 100
txt.Top = 100
txt.width = 100
txt.height = 50
txt.visible = true
txt.text = "Hello"
'Me(MainForm1) のリサイズイベントがあったら、
'ハンドラ MainForm_Resize を呼び出すように指示
AddHandler Me.Resize, AddressOf MainForm_Resize
End Sub
'フォームのリサイズハンドラ
Private Sub MainForm_Resize(ByVal sender As Object, ByVal e As EventArgs)
txt.text = "World"
End Sub
End Class
End Module
No.4
- 回答日時:
Text1.Text = Me.Width
じゃなくて
Text1.Text = フォーム名.Width
でも ダメなのかな?
.NETを 使ってる人って あんまりいないみたいですねぇ。
No.1
- 回答日時:
私も .NET は 使ったことがないのでわかりませんが、
もしかしたら 型変換が必要なのかもしれませんね。
Me.Width は、整数で Text1.Text は 文字列ですから、
整数を文字列に変換してあげたらどうでしょうか?
また、エラーが出るならば、そのエラーも書いたほうが 原因が
わかりやすいと思います。
この回答への補足
早速のご回答、ありがとうございます!
具体的にはフォームのWidthプロパティをテキストボックスに表示するだけならできたんです。
Private Sub txtWidth_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtWidth.TextChanged
Dim tWidth As Integer
tWidth = Me.Width
txtWidth.Text = tWidth
End Sub
ただこれではフォームをリサイズしても、最初の「Me.Width」のままで変更されません。
かといってフォームのResizeイベントについてVB6と同じように書くと、最初の「Me.Width」すら出てこないのです・・・。
なので、特にエラーは出ていません。
やっぱり超初歩的な見落しをしていますか・・・?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- Visual Basic(VBA) 次のソースコードの意味を教えてください form.show vbmodel vbmodelというもの 2 2023/07/03 19:17
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サブフォルダに格納されている...
-
IF文、条件分岐の整理方法
-
VBAコードのインデント表示
-
A列に記載されているフォルダ...
-
VB.net(VB)で、フォームにExcel...
-
VBAなくなるの?
-
【ExcelVBA】インデックスが有...
-
vba アクティブシートの名前変...
-
vba 削除
-
エクセルのマクロについて教え...
-
エクセルVBAにて =A1=B1とすれ...
-
VBA 別ブックから条件に合うも...
-
時間短縮のために、テキストフ...
-
ワードVBA どの表か知ることは...
-
エクセルのマクロについて教え...
-
エクセルのVBAコードについて教...
-
VBA指定行削除
-
VBAで大量のファイルをシート名...
-
VBA 別ブックからコピペしたい...
-
配列のペースト出力結果の書式...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理 特定の文字以降を...
-
VBA テキストボックスを選択状...
-
Access VBA エラー2448について
-
[コンパイルエラー 修飾子が不...
-
verilog HDLについての質問です...
-
SQLでテキストボックスの文字を...
-
型の値をDataGridViewセルに変換...
-
teratermで、ファイル名をinput...
-
フォームのResizeイベントについて
-
MS-DOSバッチファイルコマンド...
-
複数の数字が書かれた文字列をs...
-
分数の計算のプログラミングです。
-
エクセルVBAで公用宣言した...
-
ruby テキストファイル書き出し...
-
言語[RUBY]を用いて、特定列を...
-
Fileの読み込み処理について
-
バッチファイル フォルダ名をフ...
-
バッチ for /f 空白、スペース...
-
プログラミングによるオセロゲ...
-
キーが重複しているデータの統...
おすすめ情報