変換.tokyo | henkan.tokyo

【VB】フォームで現在アクティブなコントロールを取得または設定する


■【VB】フォームで現在アクティブなコントロールを取得または設定する


フォームで現在アクティブなコントロールを取得または設定するには、ActiveControl プロパティを使用します。
ActiveControl プロパティは、フォームに限らず IContainerControl インターフェイスを実装しているすべてのコントロールで使用できます。

ActiveControl に任意のコントロールを指定すると、そのコントロールをアクティブにすることができますが、本来は コントロールにフォーカスを設定する のように、コントロール側の Focus メソッドで行うようにするべきです。



■サンプルコード

' このフォームで現在アクティブなコントロールを取得する

Dim cControl As Control = Me.ActiveControl


' 取得できた場合のみ、そのコントロールの名前を表示する

If Not cControl Is Nothing Then

MessageBox.Show(cControl.Name)

End If


' TextBox1 をアクティブなコントロールに設定する

Me.ActiveControl = Me.TextBox1


' どのコントロールもアクティブでない状態にする

Me.ActiveControl = Nothing



  










【C#】「C#←→VB.NET」コード変換ツール


■【C#】「C#←→VB.NET」コード変換ツール


既存のC#コードをVB.NETコードに移し替えるような場合には、「C#←→VB.NET」コード変換ツールが便利です。

「C#←→VB.NET」コード変換ツールには次のようなものがあります。


●ソフトウェアをダウンロードして実行


・SharpDevelop(の一機能) 
http://www.sharpdevelop.net/OpenSource/SD/Download/#SharpDevelop3x

sharpdevconv.gif


左がC#(変換前)で、右がVB.NET(変換後)のコードです。

お勧めですが、コメントが一部なくなります。


◆C#→VB.NETのコード変換

●Web上で実行

・KamalPatel.Net

「Convert C# to VB .NET」
http://www.kamalpatel.net/ConvertCSharp2VB.aspx


●ソフトウェアをダウンロードして実行

・KamalPatel.Net

「Convert C# to VB .NET」にある[ Convert C# TO VB .NET OFFLINE ]をクリックしてダウンロード。
http://www.kamalpatel.net/ConvertCSharp2VB.aspx



「C#←→VB.NET」コード変換ツール関連の情報としては、以下のサイトを参照するとよいでしょう。

・DOBON.NET

「どぼん!の .NET Tips: C#のコードをVB.NETへ変換する」
http://dobon.net/vb/dotnet/links/convertcs2vb.html

「どぼん!の .NET Tips: VB.NETのコードをC#へ変換する」
http://dobon.net/vb/dotnet/links/convertvb2cs.html


ただし、これらのツールで完璧にコードを変換できるわけではありません。

いくらVB.NETとC#の文法などが類似しているといっても、「言語の壁」は予想以上に厚いのです。

よって、これらのツールを使うだけでは不十分で、その「言語の壁」を熟知することが重要です。

その情報源として次の本をお勧めします。


cs_vb_conv.jpg

詳細は下記リンクからご確認いただけます。

http://www.awonidou.com/itemdetail/?si=book:11126153


【VB】フォームでもキーイベントを受け取るようにする


■【VB】フォームでもキーイベントを受け取るようにする


フォームでも、キーイベントを受け取るようにするには、KeyPreview プロパティを True に設定します。

これにより、フォームの KeyDown, KeyPress, KeyUp イベントが発生するようになります。

フォームでキーイベントを受けれるようになったからと言って、フォーム内のコントロールのキーイベントが発生しなくなるわけではありません。

通常は、デザイナで初期値として設定します。


' フォームでもキーイベントを受け取る

Me.KeyPreview = True