tomatomax.net

Every rule has its exception.

Archive for the C# Category

Enterの挙動を変更




Form.AcceptButtonプロパティを変更することで、Enterキーを押したときの挙動を変更することができる。相変わらずCE.NETには対応してないけど。

AcceptButtonプロパティを設定していてもテキストボックスで改行を行いたい場合はtextBox.AcceptsReturnプロパティをtrueにする。

// 設定
this.AcceptButton = button1;
// 解除
this.AcceptButton = null;


レジストリ




Microsoft.Win32.RegistryKeyを使えばサクサクできる。書き込みの際はOpenSubKeyの第二引数をtrueにすること。

private const string KEY = @"Software\Microsoft\Windows\CurrentVersion\Policies\Explorer";

// 読み取り
Microsoft.Win32.RegistryKey reg =
Microsoft.Win32.Registry.CurrentUser.OpenSubKey(KEY);

int i = (int)reg.GetValue("NoDriveTypeAutoRun");
AutoRunCheckBox.Checked = (i == 0xFF);
reg.Close();

// 書き込み
Microsoft.Win32.RegistryKey reg =
Microsoft.Win32.Registry.CurrentUser.OpenSubKey(KEY, true);
reg.SetValue("NoDriveTypeAutoRun", 0xFF);
reg.Close();

NoDriveTypeAutoRunの値をいじってCDの自動実行の設定を行うアプリ作ってみた(http://hp.vector.co.jp/authors/VA013135/DisableAutoRun.zip)

.NET Frameworkが必要なのがなぁ。


テキストボックスのオートスクロール




TextBoxクラスのSelectメソッドもしくはSelectionStartプロパティを設定することでキャレットを文字列の末尾に持っていって、ScrollToCaretメソッドでスクロールさせる。

textBox1.Select(textBox1.Text.Length, 0);
textBox1.ScrollToCaret();

Control.TextChangedイベントあたりで。