お世話になります。
ご回答宜しくお願いします。
現在VBでDLLプログラムを開発しております。
以下簡単な仕様です。
DLLで自作のプロパティ( SelectedFlg )と、
SelectedFlgが変更された時に発生するイベントを追加しました。
親システムからVBのDLLを呼び出し、親システムがSelectedFlgの値を変更すると
DLL内でイベントを感知し、処理をするというような感じです。
例えば、親システムへDLLをパネルとして2つ( A , B )貼り付け
Aをクリックすると、AのSelectedFlgをTrueに、BのSelectedFlgをFalseにして
Trueの方はBackColorを赤、Falseの方はBackColorを白
のような形にしたいと考えてます。
しかし、実行してみると
BackColorが反映されるのは、初期値を設定した時の1度のみでした。
その後クリックしても、BackColorが変化することはありません。
どこか間違いや思い違いがあるんでしょうか。
以下コードになります。
・・・OriginalControlクラス・・・
Public Class OriginalControl
Public Event SelectedValueChanged(ByVal sender As Object, ByVal e As EventArgs)
Protected Sub OnSelectedValueChanged(ByVal e As EventArgs)
RaiseEvent SelectedValueChanged(Me, e)
End Sub
Public Property SelectedFlg() As Boolean
Get
Return m_SelectedFlg
End Get
Set(ByVal value As Boolean)
m_SelectedFlg = value
Me.OnSelectedValueChanged(New EventArgs)
End Set
End Property
Private m_SelectedFlg As Boolean
End Class
・・・Panel・・・ OriginalControlクラスを継承したControl
( 省略 )
Private Sub Panel_SelectedValueChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs)
Handles MyBase.SelectedValueChanged
If Me.SelectedFlg = True Then
setBackColor( Color.Red )
Else
setBackColor( Color.White )
End If
End Sub
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
質問文に記載されたコード自体は、
とくに問題等見当たらないように思われます。
# イベント名がChangedなのに値の変化が無くてもイベント発生するとか、細かい点はさておき。
掲載されていない部分のコードで、
・親側がちゃんとSelectedFlgを意図する値に設定しているか
・setBackColor()の中で、パラメータに渡された色を正しくBackColorに設定しているか
などを確認してみてはいかがでしょうか。
自己解決致しました。
原因は、イベントを返す処理のようなものが不足していたためでした。
親システムでDLLをクリックしたときに、MouseClickイベントをDLLに渡します。
その後、DLLからMouseClickイベントの返却を行わないと、
親システム上でMouseClickイベントが認識されずMouseClickの処理が無視されておりました。
Private Sub Me_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Me.Click
OnClick(e) 'イベントを返却する処理
End Sub
大変基礎的なところでした。
お騒がせ致しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) EXCELのセル相互同期用のVBAでの不具合 3 2022/08/10 11:44
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
ExcelでGaussian fittingをした...
-
VB初心者。小数点以下の表示で...
-
VB.NETでコンボボックスの1行目...
-
ユーザーフォームのテキストボ...
-
【ASP.NET】 DataTextFieldの値...
-
Excel VBA 複数選択したリスト...
-
変数名の取得
-
変数に代入してある数値を表示...
-
power BI クエリエディター 〇...
-
【C++/CLI.NET】コンボボックス...
-
値を返さないコード パス
-
マクロ 特定のセル値のみクリ...
-
ListBoxでオートフィルター表示
-
VB.NETでアクティブなformを知...
-
チェックした値を取得したい(C...
-
Excel VBAのリストボックスの値...
-
RegisterClassExのエラー原因
-
ダブルクリックをした順番に数...
-
Excel vba ユーザーフォームテ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
マクロ 特定のセル値のみクリ...
-
VB.NETでコンボボックスの1行目...
-
変数名の取得
-
値を返さないコード パス
-
Excel VBAのリストボックスの値...
-
VB初心者。小数点以下の表示で...
-
ハッシュテーブル(連想配列)が...
-
textboxとLabelを動的に変更する
-
PL/SQLでのTO_DATEの時間取得に...
-
VB.NETでアクティブなformを知...
-
Excel vba ユーザーフォームテ...
-
マクロで奇数と偶数の値を2か所...
-
DataTableに対するLINQについて
-
【C++/CLI.NET】コンボボックス...
-
[VBA]選択範囲の下から上に処理...
-
範囲が指定されている乱数について
-
[VB.net] DataGridViewのコンボ...
-
変数に代入してある数値を表示...
-
vbscriptを使いexcelを参照して...
おすすめ情報