So-net無料ブログ作成
検索選択

.NET Framework で Dialog を表示させたいときの典型的な使用例 [wiki]

.NET FrameworkWindows アプリケーションを作成していると Dialog を表示させることがよくある。そのときの典型的な使用例は次の通り。

using (Dialog dlg = new MyDialog())
{
    dlg.MyProperty = property;

    if (dlg.ShowDialog(this) == DialogResult.OK)
    {
        property = dlg.MyProperty;
    }
}

※MyDialog は自分で作成したダイアログであり、Windows.Forms のダイアログを継承したクラスとする。
※dlg.MyProperty はプロパティの設定を例示することを意図しており、MyProperty というプロパティが既定で存在するわけではない。


.NET Framework の TextBox でプログラムから改行を追加するには? [wiki]

「\r\n」が改行を意味する。よって、例えば次のように記述できる。

txtInfo.AppendText("World Top Left\r\n");

ただし、TextBox.Multiline プロパティtrue になっていないと複数行入力することはできない(false の場合は単一行)。

 


.NET Framework で ListBox に連結された DataSouce の要素を変更するには? [wiki]

.NET Framework で ListBox に連結(Binding) された DataSouce の要素を変更するには、例えば、次のようなコードを記述する。

ここで、SelectIndexを別変数にコピーしているのは、SuspendBinding() メソッドが呼び出されると、SelectIndex の値が -1 になってしまうからである。

listBox1.DataSource = USStates;
listBox1.DisplayMember = "LongName";
listBox1.ValueMember = "ShortName";

int idx = listBox1.SelectedIndex;
BindingContext[USStates].SuspendBinding();
USState tmp = (USState)USStates[idx];
tmp.LongName = textBox1.Text;
BindingContext[USStates].ResumeBinding();
listBox1.SelectedIndex = idx;

参考文献


.NET Framework で妥当な URL か否かを判定するには? [wiki]

System.Uri.CheckSchemeName は URI の  “scheme” をチェックする。URI すべてをチェックするわけではない。ここで言う “scheme” は

scheme = alpha *( alpha | digit | "+" | "-" | "." )
で定義する “scheme” である。

では URL が妥当か否かはどのように判定したら良いか?

 

MSDN を読むと単純にUri(string)コンストラクタを用いれば良いらしい。RFC2396 に該当しない場合は System.UriFormatException を投げてくれるようだ。

#てっきり bool を返す static method があるものとばかり...

参考文献


.NET Framework で Explorer を起動するには? [wiki]

例えば、F:\directory を開きたいのなら次の用にする。

Process.Start("Explorer.exe",@"F:\directory");
Process.Start(@"F:\directory");

前者だとフォルダビューが表示されず、後者は表示される。この差はExplorerのフォルダオプションに依存するのかも知れない(未調査)。

shell32.dllをオブジェクトブラウザで調べるとShellFolderViewなどがある。その辺を使うものと推測する。Microsoft Shell Control And Automations と言うらしい。なお、詳細は MSDNのSHELL FAQに記述されているようだ。


.NET Framework で java.awt.robots を 実現するには? [wiki]

.NET Framework 1.1 では無理みたい。SendKeysクラスの ヘルプ には、

ほかのアプリケーションをアクティブにするマネージ メソッドはありません。したがって、現在のアプリケーション内部でこのクラスを使用するか、または FindWindow や SetForegroundWindow などのネイティブ Windows メソッドを使用して、ほかのアプリケーションに強制的にフォーカスを移すことができます。

という記述がある。
素直にWin32APIの

  • SendInput
  • SendMessage
  • PostMessage
  • FindWindow

あたりを使えば良いと思う。


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。