無料ブログはココログ

【C#】 同じソースコードを複数のプロジェクトで参照するには

.csprojファイルを直接編集して、リンクとして登録すればよい。 <File RelPath = "sample.cs" Link = "..\sample\sample.cs" SubType = "Code" BuildAction = "Compile" />

【C#】 ショートカットファイルを作るには

ここを参考に。

  1. ソリューションエクスプローラの「参照設定」で「参照の追加」 COM タブにある Windows Script Host Object Model (wshom.ocx) を追加
  2. すると obj ディレクトリに IWshRuntimeLibrary.dll ができる ildasm というツールでこの中身のシンボルをブラウズできる
  3. 後は,次のようなコードを書けばいい
using IWshRuntimeLibrary;
private void CreateShortcut(string filename, string shortcutPath, string iconPath, string description)
{
    IWshShell_Class TheShell = new IWshShell_Class();  
    IWshShortcut_Class shortcut = 
        (IWshShortcut_Class)TheShell.CreateShortcut(shortcutPath);
    shortcut.TargetPath = filename;
    shortcut.IconLocation = iconPath;
    shortcut.Description = description;
    shortcut.Save();
}
...
    string sep = Path.DirectorySeparatorChar.ToString();
    string desktopPath = 
        Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
    CreateShortcut( "foo.exe",  // 元のファイルのパス名
                    desktopPath + sep + "bar.lnk", // ショートカットのパス名
                    "icon.ico", // アイコンのパス名
                    "comment"); // コメント

【C#】 テキストボックスをスクロールするには

private void resultTextBox_TextChanged(object sender, System.EventArgs e) {
    RichTextBox textBox = (RichTextBox) sender;
    textBox.SelectionStart = textBox.Text.Length; 
    textBox.ScrollToCaret();
}
TextBox.HideSelectionプロパティをfalseにセットすれはScrollToCaret()する必要がない。
private void messageHandler(String str) {
    this.resultTextBox.AppendText(str + Environment.NewLine);
    this.resultTextBox.SelectionStart = this.resultTextBox.Text.Length;
    this.resultTextBox.Focus();
}