C# - 変換.tokyo | henkan.tokyo

【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


【C#】乱数を発生させる

  
【C#】乱数を発生させる

・C#で乱数を発生させるには、Randomクラスを使用します。

このサンプルコードでは、最初に引数を指定しないでRandomオブジェクトを作成し、Random.Next()を使って5個の整数の乱数を発生させています。

次に、現在の時刻をシード値としてRandmオブジェクトを作成し、Random.NextDouble()を使って実数の乱数を発生させます。
Random.NextDouble()で発生させる乱数の範囲は0〜1なので、100.0倍することで、0〜100までの実数の乱数を生成します。


C#乱数発生Random

■サンプルコード
class Program
{
static void Main(string[] args)
{

// Randomオブジェクトを作成する
Random rnd1 = new Random();

// 整数の乱数を出力する
for (int i = 0; i < 5; i++)

Console.Out.WriteLine("{0}", rnd1.Next());
Console.Out.WriteLine();

// 時刻をシード値としてRandomオブジェクトを作成する
Random rnd2 = new Random((int)(DateTime.Now.Ticks % Int32.MaxValue));

// 実数の乱数を出力する
for (int i = 0; i < 5; i++)

Console.Out.WriteLine("{0}", rnd2.NextDouble() * 100.0);

}
}

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


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

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

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

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

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


■サンプルコード

// フォームでもキーイベントを受け取る
this.KeyPreview = true;


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


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


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

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


■サンプルコード

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

Control cControl = this.ActiveControl;


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

if (cControl != null) {

MessageBox.Show(cControl.Name);

}


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

this.ActiveControl = this.textBox1;


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

this.ActiveControl = null;


【C#】フォームをアクティブにする


■【C#】フォームをアクティブにする


・フォームをアクティブにしたい場合は、Form のインスタンスから Activate メソッドを使用します。


■サンプルコード

// cForm1 をアクティブにする

cForm1.Activate();


// このフォームをアクティブにする

this.Activate();