タグ別アーカイブ: .NET

別オブジェクトからフォームインスタンスの参照を得るには?


.NET Framework 2.0 以降のみですが、System.Windows.Forms.Application クラスの静的プロパティ、 OpenForms により、開いているフォームインスタンスを参照することができます。
 

Form form = Application.OpenForms[0]; // 開いているフォームのうち一番古いものを得る

 

Form form = Application.OpenForms[“form1”]; // form1 という名前のフォームインスタンスを得る

 
参考:
Windowsフォームでフォームのコレクションを使用するには?
Application.OpenForms プロパティ(MSDN)
FormCollection クラス

ウィンドウが非アクティブの時にタスクバーで点滅させる


.NET Framework のクラスライブラリではタスクバーでの明滅が提供されていない(Form.Activate() は非アクティブの時呼ぶとウィンドウが再前面になる)ため、Win32API の FlashWindow() を利用します。

using System.Windows.Forms;
using System.Runtime.InteropServices;
 
public class Form1 : Form {
    // 点滅用 Win32API のインポート
    [DllImport(“user32.dll”)]
    private static extern bool FlashWindow(IntPtr hwnd, bool bInvert);
    public static void FlashWindow(System.Windows.Forms.Form window) {
        FlashWindow(window.Handle, false);
    }
     
    // ウィンドウを点滅させる
    // (ウィンドウがアクティブな時は何もおこらない)
    private void ExecExample(){
        FlashWindow(this);
    }
}

 
参考:
FlashWindow(user32)(pinvoke.net)
Win32 APIやDLL関数を呼び出すには?(@IT)

VS.NET でソースコードを自動フォーマットする


ソースコードの自動フォーマット(Eclipse では Alt-Shift-F )を VisualStudio.NET で行うには次のようにします。

Ctrl-A, Ctrl-X, Ctrl-V

全て選択してカット&ペーストしてるだけだったりします。
ソースコードの一部分だけフォーマットしたい場合は、同様に該当箇所をカット&ペーストで可能です。
 
参考:
.NET TIPS ソース・コードのインデントを手軽に整えるには?