タグ

ブックマーク / zecl.hatenablog.com (7)

  • TextBoxってReadOnly = trueでもフォーカスあたる。空気読めなさすぎだよね。 - Bug Catharsis

    WindowsApplicationの標準コントロールってKYだよねというお話 C#でもVB.NETでも当然同じなんだけど、TextBoxコントロールのReadOnlyプロパティをtrueに設定したら、 入力を受け付けなくなるので、背景色をグレーに設定したりする。でもフォーカスは普通に受け付ける。 TabStopプロパティをfalseに設定しても、当然マウスでクリックしたらGotFocusしてしまう。 ReadOnlyがtrueであれば、「べ、別にあんたのためにフォーカス移動したんじゃないんだからねッ!」って、 ツンデレ口調で表現した意味は全くないんだけど、フォーカスなんて別に移動して欲しくないんだよね実際*1。 そーゆー話は、WindowsApplicationを開発している現場であれば、あちこちであるもんだろうと思う。 Enabledプロパティをfalseにしたところで、文字が薄いグレ

    TextBoxってReadOnly = trueでもフォーカスあたる。空気読めなさすぎだよね。 - Bug Catharsis
  • コントロールのTabIndex順で処理したいことってあるよね。階層のTabIndexを表現してみよう。 - Bug Catharsis

    またまたWindowsApplicationにおける標準コントロールが、空気読めなさすぎなのではないかというお話。 C#でTabIndexの階層構造順にControlを並べ替える方法の1つの例を示します。 TabIndexプロパティだけじゃ、TabIndexの階層構造わかんねーじゃん各標準コントロールのTabIndexプロパティにて、[Tabキー]押下時のFocusの移動順を定義することができます。 画面にコンテナコントロールを利用しないような場合、TabIndex順は単純な数値の大小比較となるが、 コンテナコントロール内に入れ子にするようなレイアウトであれば、TabIndexの構造が階層化し複雑になります。 そのようなレイアウトのTabIndexを定義する場合、通常であればVisualStudioの[表示]→[タブオーダー]の操作によって、 TabIndexを割り当てることになります。こ

    コントロールのTabIndex順で処理したいことってあるよね。階層のTabIndexを表現してみよう。 - Bug Catharsis
    murasuke
    murasuke 2009/07/28
    TabIndex階層構造が同一の場合は、コントロールのZオーダーによってコントロール内の循環順序を決定する
  • いまさら聞けないSQL Server 2005のインデックス その4「フルテキストインデックス」 - Bug Catharsis

    フルテキストインデックス数百万行のテキストデータに対してLIKE演算子を含むクエリを実行すると、結果が得られるまで かなりの時間とコストを要してしまうことがあるが、フルテキスト検索を使用すると、非常に高速に検索を行うことができる。 char、varchar、nvarchar型のデータを格納する列に対してフルテキストインデックスを作成することができる。 また、Microsoft Wordドキュメントファイルなどのバイナリデータを格納する varbinary(max)列または、 image列に対してもフルテキストインデックスを作成することができる。 バイナリデータの検索に対しては、LIKE述語は使用することができないため、 フルテキストインデックスを検討するとよいだろう。 フルテキストインデックスをテーブルに作成するには、テーブルに一意でNULLが許容されない列が1つ必要となる。 また、フルテ

    いまさら聞けないSQL Server 2005のインデックス その4「フルテキストインデックス」 - Bug Catharsis
  • 動的にDLL(ライブラリ)をロードしてアセンブリを作って、P/Invokeなdelegateを生成してみよう。 - Bug Catharsis

    C#で動的にDLL(ライブラリ)をロードしてアセンブリを作って、P/Invokeなdelegateを生成 動的にDLL(ライブラリ)をロードするというシナリオは、意外と要求されることが多いのではないかと思います。 利用する関数があらかじめ明確になっているのであれば、そのまま直実装でも構わないのですが、 それが明確になっていないような場合、あるいは都度動的に変化するというような場合では、一筋縄にはいきません。 そんな場合は、P/Invokeなdelegateについても動的に生成することを検討してみるとよさそうです。 具体的な方法を簡単に説明します。まずWinAPIのLoadLibrary関数でDLL(ライブラリ)をロードします。 続きまして、アセンブリを動的に生成し、またそのアセンブリに動的にクラスを作成します。 その動的に作成したクラスについて、読み込んだDLLから関数ポインタを積んだメソ

    動的にDLL(ライブラリ)をロードしてアセンブリを作って、P/Invokeなdelegateを生成してみよう。 - Bug Catharsis
  • いまさら聞けない.NET テクノロジの例外管理の設計および実装のガイドライン その2 - Bug Catharsis

    例外の検出 .NET Framework では、他の一般的な水準のオブジェクト指向プログラミング言語と同じように、 構造化例外処理を利用して例外を適切に処理することができる。 構造化例外処理とは、例外と保護されたコードブロック、およびフィルタを含む制御構造によって、 例外処理を堅牢かつ効率的に行うことができる仕組みである。 try、catch、および finally ブロックを使い、コード内で送出された例外を検出し、 ログを記録したり復旧を試みるなど、適切な対応をとることができる。 まず、例外を送出する可能性のあるコードがtry ブロックに記述される。tryブロック内で例外が送出されると、 その例外のクラスにマッチするフィルタを持つ最初の catch ブロックが例外をキャッチする。 複数の catch ブロックを置く場合には、具体的な型から一般的な型の順に並べる必要がある。 そうしなければ

    いまさら聞けない.NET テクノロジの例外管理の設計および実装のガイドライン その2 - Bug Catharsis
  • アパートメントモデルと、.NETのSTAThreadAttribute - Bug Catharsis

    アーパートメントモデルの種類COMコンポーネント*1は、大きくシングルスレッドアパートメントモデル(STA)と マルチスレッドアパートメントモデル(MTA)に分けることができる。 レンタルスレッドアパートメントモデル(RTA)というのもあるようですが、詳細不明のため割愛します。 ■シングルスレッドアパートメント(Single Thread Apartment) シングルスレッドアパートメントは1つのスレッドから構成されているので、 シングルスレッドアパートメントの中に存在しているすべての COM オブジェクトは、 そのアパートメントに属する1つのスレッドからのメソッド呼び出ししか受け取ることができません。 シングルスレッドアパートメントの中の COM オブジェクトに対するすべてのメソッド呼び出しは、 そのシングルスレッドアパートメントのスレッドのウィンドウ メッセージ キューによって同期さ

    アパートメントモデルと、.NETのSTAThreadAttribute - Bug Catharsis
  • 2009-01-18

    ネタ元 山大@クロノスの日記 - アンチ型付DataSet派の自作ORマッピングより なぜ型付DataSetを使うのか、型なしDataSetは使わないのか 型付DataSetについては、嫌な思い出も少なくないので不満がないわけでもないのだけど、 常識的に考えて「型付DataSetを使うべきだよね。*1」というのは、もちろん知識として知っているつもり。 その理由は大きく3つあって、まずIDEのインテリセンスによってプログラミングの効率化が期待できること。 そして、コンパイル時に型チェックが行われるため、実行時の型変換エラーを未然に防げること。 また、コンパイル時に型が決定されているため実行時の列へのアクセスパフォーマンスが向上すること。 いずれも、システム開発をする上では生唾モノのおいしいメリットであるから、部分的に型なしDataSetを利用することはあるものの、 なるべく型付DataSe

    2009-01-18
  • 1