C#

ExceptionBox その2

C#

結局のところ、Microsoft.SqlServer.MessageBox.ExceptionMessageBoxではExceptionのFullNameが表示されないのが気に入らないとゆーだけなので、こうしてみました。 using System; using System.Windows.Forms; namespace 例外 { public static class Except…

順列

C#

1からNまでの整数の順列を出力するプログラムです。 class Program { private const int N = 4; private static int i; private static int[] p; internal static void Main(string[] args) { i = 0; p = new int[N + 1]; for (int k = 0; k < N; k++) Try(k…

コレクションクラス

C#

コレクションを使う際、どのクラスを使うのかいつも迷うので、まとめました。[完全版] 究極のC#プログラミング ~新スタイルによる実践的コーディングを参考にしました。 普通のコレクション ジェネリックのコレクション 機能 ArrayListList可変サイズの1次元…

西暦→和暦変換

C#

よくいわれることですが……和暦なんかなくなってしまえばいいのに。*1 えーと、古代〜近代において、「こよみ」を支配するものは天下を支配するものであったそうです。 江戸時代では、幕府の許可なくカレンダーを販売したものは厳罰に処せられたとか。 でもさ…

LINQのselect

「プログラミングC#第5版」を読んでたら、 SQL とともに育った人たちにとっては、select 文が最後に来ることに慣れるのに数年はかかるでしょう! と書いてあって笑いました。 まー、LINQに慣れる必要があるかどうかも怪しいもんですが。

TextBoxと改行

C#

MultiLine の TextBox に改行入りテキストを設定しようとして、 text.Text = "foo\nbar"; なんてことやってまして、で、できない。 調べたら text.Text = "foo\r\nbar"; でうまくいきました。*1 *1:実は "\n\r" だと思い込んでて、時間が掛かってしまいまし…

ウィンドウメニューサンプル

C#

で、ウィンドウメニューがいじれるようになったので、サンプルを作りました。 /// <summary> /// ウィンドウメニュー操作用クラス。 /// </summary> internal class RuleWindowMenu { #region MENUITEMINFO.fMask の値 /// <summary>fState</summary> const int MIIM_STATE = 0x00000001; /// <summary>wID</summary> c…

例外のシリアル化と逆シリアル化

C#

シリアル化 byte[] output; BinaryFormatter formatter = new BinaryFormatter(); MemoryStream stream = new MemoryStream(); formatter.Serialize(stream, ex); output = stream.GetBuffer(); stream.Close(); 逆シリアル化 private Exception BinToExcept…

主キーがサーバ生成のテーブルへの挿入

主キーが uniqueidentifier のテーブルで、かつその値をデータベースの規定値で挿入しようと思いました。 で、Linq to SQL で insert しようとすると、そのフィールドを null にすると、System.Data.SqlClient.SqlException が送出されるんです。 メッセージ…

ExceptionBox

C#

作りかけ。一応動くけど、もちっと考えたほうがよさそう。 Microsoft.ExceptionMessageBox.dll必須。 using System; using Microsoft.SqlServer.MessageBox; using System.Windows.Forms; namespace 例外 { /// <summary> /// 例外を表示するダイアログボックス /// </summary> …

タスクトレイ

C#

[隠す]ボタンでアプリケーションをタスクトレイに入れる。 タスクトレイアイコンをシングルクリックすると元に戻る。 using System; using System.Windows.Forms; namespace 名前空間 { public partial class Form1 : Form { public Form1() { InitializeCom…

バイナリでシフトJIS

C#

バイナリファイルに対して文字列をシフトJISで出力したい場合*1があるので、サンプルを作ってみました。 ミソはEncoding.GetBytes()を使うだけですがね…。 using System; using System.Text; using System.IO; namespace ShiftJis出力 { class Program { con…

is演算子の否定

C#

if (obj is MyObject) { } これはいいんですけど、is演算子の否定はどうすればいいんでしょうね。 if (!(obj is MyObject)) { } まー、これでいいのですが。 if (obj isnot MyObject) { } こーゆーのは無いのよね。まー、いいですけど。

文字列の暗号化

C#

文字列を暗号可・復号するクラスです。 http://www.microsoft.com/japan/msdn/thisweek/300x10/phase2/encrypt/cs.aspxを参考につくりました。 共有キーと初期化ベクタは適当に変更してください。 using System.Text; using System.Security.Cryptography; u…

DataGridViewのCell移動をEnterで

C#

http://www.vbstation.net/tips/datagridviewenter.htm http://www.vbstation.net/tips/inherits_control.htm を参考に作りました。 public partial class DataGridViewEx : DataGridView { public DataGridViewEx() { InitializeComponent(); } protected o…

MarshalAsとSizeOf

C#

MarshalAs属性のstringを使った構造体の大きさを得る方法です。 using System; using System.Runtime.InteropServices; namespace ConsoleApplication1 { class Program { unsafe static void Main(string[] args) { Console.WriteLine(Marshal.SizeOf(typeo…

@ITのサンプルコードの一部修正

C#

@IT:.NET TIPS WebRequest/WebResponseクラスでPOSTメソッドによりデータを送信するには? - C# VB.NET http://www.atmarkit.co.jp/fdotnet/dotnettips/318webpost/webpost.htmlにあるサンプルコードが、googleの仕様変更のため、動作がおかしくなるので…

例外メッセージボックスをプログラムする方法

C#

http://technet.microsoft.com/ja-jp/library/ms166340.aspxMicrosoft.ExceptionMessageBox.dllを使うところがミソ(僕の環境ではC:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\Microsoft.ExceptionMessageBox.dllにありました)。 static class E…

NULLターミネイテッド文字配列をstringに変換する

C#

string csharpString = new string(cstring).TrimEnd(new char[]{'\0'})); csharpString 変換先文字列 cstring NULLターミネイテッド文字列。つまりCで用いられる文字列。 これを基にして作ったメソッド。 public static string StringFromCString(char[] ca…

ホットキーでウィンドウを前面に

C#

ホットキーでウィンドウを前面に出す方法。 using System.Runtime.InteropServices; // DllImport [DllImport("User32.dll")] static extern bool SetForegroundWindow(IntPtr hWnd); [DllImport("User32.dll")] static extern bool RegisterHotKey(System.I…