| ■No59581 (hs さん) に返信
> イベントの呼出し方法について質問です。
イベントを呼び出すのは、コンポーネント側の仕事です。(RaiseEvent)
コンポーネントを利用する側にとっては、イベントとは
“呼び出すもの”ではなく、“呼び出されるもの”であるべきです。
利用側から、以下のような流れで呼び出される事はありますけれどね。
・Button.PeformClick メソッドを呼ぶと、Click イベントが呼び出される。
・TextBox.Text プロパティを変更すると、TextChanged イベントが呼び出される。
・Form.Close メソッドを呼ぶと、FormClosing イベントが呼び出される。
・Invalidate メソッドを呼ぶと、Paint イベントが呼び出される。
> 例えば、Formに配置してあるButtonのClickイベントを呼び出す時...
そういう場合は、
Sub Button1_Click(…) Handles Button1.Click
'
'処理内容
'
End Sub
Sub 何某()
Button1_Click(Button1, EventArgs.Empty)
End Sub
のようにするのではなく、以下のように実装した方が良いと思いますよ。
Sub Button1_Click(…) Handles Button1.Click
処理メソッド()
End Sub
Sub 何某()
処理メソッド()
End Sub
Sub 処理メソッド()
'
'処理内容
'
End Sub
> Handles Datagridview.CellFormatting
CellFormatting イベント内の処理を、外部から意図的に行いたいという質問に
みえるのですが、それは何のために必要なのでしょうか?
理由がよく分かりませんが、CellFormatting イベントを直接発行させたいのであれば、
OnCellFormatting メソッドを呼び出せば OK です。とはいっても、このメソッドを呼べるのは
継承クラスの場合だけですけれどね(イベント発行は、コンポーネント側の仕事なので)。
なお、DataGridViewCellFormattingEventArgs 引数については
下記のようにして用意できます。引数は適宜指定しましょう。
Dim arg As New DataGridViewCellFormattingEventArgs( _
columnIndex,
rowIndex, _
value, _
value.GetType(), _
New DataGridViewCellStyle() _
) |