【プログラミング】に関する知恵袋
【質問】
VBプログラミングの疑問点こんにちは。私は独学でVisualBasicのWindowsアプリケーションの作成を学習しているのですが、プログラミングの知恵袋に関連する解説をすると、まだ初歩的なところしか覚えていない状態です。今回は、プログラムのソース上でエラーが出ますので解決したく思い、質問を投稿させて頂きました。[ソースコード]Public Class Form1 Dim WithEvents i As New AlarmInteger(NumericUpDown2.Value) Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim num As Short = NumericUpDown1.Value i.Value += num Label1.Text += num End Sub Private Sub i_Over(ByVal sender As Object, ByVal ByVale As System.EventArgs) Handles i.Over MsgBox("OVER") End SubEnd ClassPublic Class AlarmInteger Private m_Value As Integer Private m_Max As Integer Public Event Over(ByVal sender As Object, ByVal e As EventArgs) Public Sub New(ByVal max As Integer) Me.Max = max End Sub Public Property Value() As Integer Get Return m_Value End Get Set(ByVal value As Integer) If value > Me.Max Then RaiseEvent Over(Me, New EventArgs) End If m_Value = value End Set End Property Public Property Max() As Integer Get Return m_Max End Get Set(ByVal value As Integer) m_Max = value End Set End PropertyEnd Class上記のソースコードは、あるサイトに掲載されていたものの一部を編集したものです。ドメインナビのドメインの取得情報について考えてみると、(フォーム上には「button1」「Label1」「NumericUpDown1」「NumericUpDown2」を配置してます)プログラムの内容は「ボタンを押すとNumericUpDown1の数ごとに数字を飛ばしながらLabel1内の数値をカウントアップしていき、NumericUpDown2の数値に達するとMsgBoxがでる」といったものにしたいのですが、上記ソースの上から3行目がデバッグ時に「InvildOperationExceptionはハンドルされませんでした」とエラーがでます。編集したソースですので雑駁で申し訳ございませんが、ドメインナビのドメインの取得情報とは、改善点など見つかりましたら、ご教授よろしくお願いいたします。プログラミングの知恵袋を解説すると、以上のことです。
【解答】
AlramIntegerのインスタンス生成時には まだNumericUpDown2が生成されていないために起こる現象ですForm1クラスにSub Newとタイプして コンストラクタを生成してInitializeComponent() を呼び出した後でi = New AlarmInteger( NumericUpDown2.Value )とします元の変数宣言はDim WithEvents i As AlarmIntegerとして 変数宣言だけにします
その他関連ワード
- Iビーム|
- ヌル|
- エスケープシークエンス|
- スクロールキャプチャ|
- クラスライブラリ|
- スレッド|
- オーバーレイ|
- リッピング|
- フリーソフト|
- 上書き保存|
