重複起動を抑制する
static void Main()
{
 // 重複起動を抑制
 Mutex m = new Mutex(false, "Name");
 if (m.WaitOne(0, false) == true)
 {
 // アプリケーションを起動
 Application.Run(new Form1());
 // Mutexを解放
 m.ReleaseMutex();
 }
 m.Close();
}
 
メインフォームへの参照を取得する
メインフォームとは別のクラスを作成し、メインフォームのオブジェクトへの参照を保存するstaticフィールドを作成する。
public class Share
{
 public static Form1 m_MainForm; // Form1クラスへの参照
 (以下省略)
}

Main関数を変更する。
static void Main()
{
 // Form1クラスのオブジェクト作成
 Form1 MainForm = new Form1();
 // Form1オブジェクトへの参照を設定
 Share.m_MainForm = MainForm
 // アプリケーションを起動
 Application.Run(MainForm);
}

他のクラスから参照する。
Share.m_MainForm.textBox1.Text = "abc";
 
カーソル位置を設定する
Point p = new Point(1024, 768);
Cursor.Position = p;
 
Internet Explorerでドキュメントを表示する
string sFileName = Application.StartupPath + "\\Readme.htm";
Process.Start("IExplore.exe", sFileName);
 
フォームにグラフィックを描画する
フォームのPaintイベントに記述する。
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
 Pen p = new Pen(Color.Blue, 1);
 e.Graphics.DrawRectangle(p, 0, 0, 64, 64);
}
 
フォーム上のコントロールを探す
TextBox textBox;
foreach(Control ctrl in this.Controls)
{
 if (ctrl is TextBox)
 {
  textBox = (TextBox)ctrl;
  // TabIndexがキーワード
  if (textBox.TabIndex == 0)
  {
   // 処理
  }
 }
}
 
現在日時を文字列で取得する
Label1.Text = String.Format("{0:yyyy/MM/dd(ddd) HH:mm:ss}", DateTime.Now);
 
イベントを使用する
一例としてイベントでメッセージを通知する。
まず、イベントを発生するクラスにイベントを定義する。
public class Class1
{
 // メッセージイベントのデリゲート
 public delegate void MessageEventHandler(object sender, MessageEventArgs e);
 // メッセージイベントのフィールド
 public event MessageEventHandler OnMessageEventHandler;

 /// <summary>
 /// メッセージイベント
 /// </summary>
 private void OnMessageEvent(MessageEventArgs e)
 {
  if (OnMessageEventHandler != null)
  {
   OnMessageEventHandler(this, e);
  }
 }

イベントを発生させる。
 // メッセージイベントデータクラス作成
 MessageEventArgs MessageArgs = new MessageEventArgs("メッセージ");
 // メッセージイベント
 OnMessageEvent(MessageArgs);

イベントのパラメータとして、メッセージを渡すためのクラスを定義する。
/// <summary>
/// メッセージイベントデータクラスの定義
/// </summary>
public class MessageEventArgs : EventArgs
{
 protected string m_sMessage = "";

 /// <summary>
 /// メッセージイベントデータクラスのコンストラクタ
 /// </summary>
 public MessageEventArgs()
 {
  m_sMessage = "";
 }
 public MessageEventArgs(string sMessage)
 {
  m_sMessage = sMessage;
 }

 /// <value>メッセージデータの取得と設定</value>
 public string sMessage
 {
  // メッセージデータの取得
  get
  {
   return m_sMessage;
  }
}

メッセージを受けるクラスでインスタンスを作成し、イベントを登録する。

// オブジェクトを作成
Class1 class1 = new Class1();
// メッセージイベントを登録
class1.OnMessageEventHandler += new Class1.MessageEventHandler(OnMessage);

/// <summary>
/// メッセージイベント
/// </summary>
/// <param name="sender">イベントのソース</param>
/// <param name="e">イベントデータを格納しているオブジェクト</param>
private void OnMessage(object sender, MessageEventArgs e)
{
 Label1.Text = e.sMessage;
}