A Day In The Life

とあるプログラマの備忘録

.net

uGUIのテキストを点滅させてみる

Unity の uGUI でテキストをこんな感じに点滅させる方法です。 Update メソッドに処理を書いても良かったのですが個人的な好みで UniRX を使って実装してみました。Mathf.Sin メソッド(三角関数)を使ってアルファ値を0から1に緩やかに変化させています。 usi…

UnityでRedux.NETを使ってみた

フロントエンド開発と iOS アプリ開発でステート管理に Redux(iOSはReSwift)を使っています。Unity でも Redux 使えないかなと探していたところ Redux.NET というC♯の実装を見つけたので使ってみることにしました。 手順 Redux.NET を使うためには Reactive …

いろんなフレームワークで実践されているパターン集

エンタープライズ アプリケーションアーキテクチャパターン翔泳社このアイテムの詳細を見るもう少し訳がしっかりしてればなぁと思うところが何点かありましたが、内容は良かったです。 トランザクションとかデータベースまわりのパターンが6割程度占めてまし…

.NETで四捨五入

Math.Roundメソッドを使うと四捨五入ができると思いきやできません。 .NETで四捨五入用のメソッドは今のところないようです(ていうかVB6の時からなかったような)。 Math.Roundメソッドはいったい何をしてくれているかというと近似値へのまるめを行ってくれま…

再帰処理

開発をしていると再帰処理をする場面が必ず出てきます。 初めて作った再帰プログラムは、とある工場の稼動日計算。 カレンダーの平日休日をたどって稼働日を計算するのに使いました。 前のプロジェクトではフォームのコントロールに一括でプロパティをセット…

NullPointerExceptionと遭遇

最近、NullPointerExceptionによく出会います。 String型の変数でNullチェックを怠っているからです。 VB.NETの時は.ToStringをするだけで簡単に空文字に変わってくれたのに...。 いちいちif文でNullかどうか書くのはめんどくさい。 なんかいいやり方ない…

日付のフォーマット

日付のフォーマットを行うときは、String.Formatメソッドを使用します。 具体的にはString.Format("{0:yyyy/MM/dd}",日付)と記述します。 よく使う表記は以下の6つだと思います。 yyyy年(西暦4桁) MM月 dd日 HH時(24時間制) mm分 ss秒 注意点は大文字と小文…

デザイナが開かない

以下の図のような継承関係があると孫フォームのデザイナが開かなくなります。 他のクラスのメソッドを呼んで処理をしていることが原因のようです(上図では汎用フォームでログクラスのログ吐出しメソッドを呼んでいます)。 いろいろ調べてみましたが現在これ…

OpenFileDialogで予期せぬエラー

同じソリューション内でファイル取得を相対パスで行うとOpenFileDialog,SaveFileDialogのShowDialogメソッドでエラーが発生します。 ファイル取得を相対パスで行うとその情報を保持してしまうようです。 ファイルの取得を絶対パスにするかApplication.Startu…

コンボボックスのTextChangedイベント

コンボボックスにDropDownStyleというプロパティがあります。 このプロパティをDropDownListにするとTextChangedイベントが発生しなくなります。 SelectedIndexChangedまたはSelectedValueChangedを使用しましょう。

データグリッドのキーイベントが発生しない

データグリッドでキーイベントが発生しないという現象が起こります。 データグリッドProcessCmdKeyメソッドをオーバーライドして入力キーを拾えるようにします。 Public Class ExDataGrid Inherits System.Windows.Forms.DataGrid Public Event KeyEvent(ByV…

データアダプター生成でフィールド数に制限がかかる

データアダプターで取り扱えるフィールド数に制限がありエラーがかかる時があります。 データセットの構成ウィザードでエラーがかかってしまってセレクトコマンドの作成できなくなります。 解決方法として考えられるのはデータリーダーを使う。SQLコマンドを…

久々にハマっちゃいました。

とある画面のTrueDBGridをクリックするとインデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。 パラメータ:indexというエラーが出てしまいます。 クリックイベントを使用しているわけでもなくなぜか落ち…

VB2005のフォーム

VB2005ではフォームをインスタンス化しなくて良いそうです。 VB6みたいになってやだなぁ...。 VB6の時、標準モジュールでコントロールに直接値を入れるソースを見たときはビビッたけど、 おんなじ様なことが起きそうで恐い。 ネタ元:じゃんぬさん http:/…

カスタムコントロール

最近、VB.NET(Windows Form)のカスタムコントロール作成をしています。 プロジェクト特有の規則・法則があったり、 使い勝手が悪いところはコントロールを積極的に直しています。 基本はTさんがいろいろとアイデアを出して作ってくれたのを修正しています。 …

データグリッドやめます

現在vb.netでデータグリッドを使っています。 お客様からの要望で列固定で表示してほしい項目があるとのことでした。 .NET Framework標準のデータグリッドで列固定の実装は実現不可能とのこと...。 というわけでグレープシティが発売しているTrueDBGridを…

DateTimePickerの背景色が変わらない

vb.netにDateTimePickerというコントロールがありますが、 なかなか使い勝手が悪いです。 空文字が入力できない。(必ず日付を指定しないといけない) 入力操作がいまいちやりにくい。 背景色が変更できない。 3番目は.NET Frameworkのバグです。 使い勝手のい…

MDI子フォームでEnterキーが拾えない。

MDI フォームにおいて、2つのMDI 子フォームを作成しました。 MDI子フォームAとBがありまして A画面にB画面を開くボタンが配置されています。 A画面からB画面を開きB画面を閉じてA画面に戻ります。 その後、A画面のテキストボックスでEnterキーを押すとなぜ…

コーディングルールを決めるなら

超図解VB.NETルールブックエクスメディアこのアイテムの詳細を見るVB.NETのコーディング規約が細かく紹介されています。 基本的な内容から、少し深い内容まで幅広く網羅されています。 内容がわかりやすいのと図解で丁寧に説明してあるのでかなりお薦めです…

If文での文字の比較

if文でテキストボックスの値を比較する時は気をつけましょう。 テキストボックスに入力されている数値の大小関係を判定する時 If txtSuji1.Text > txtSuji2.Text Then 処理1 end if と書くと間違った判定をしてしまう時があります。 txtSuji1に9、txtSuji2…

クラスの循環参照について。

VisualStudioでたくさんのプロジェクトを作成して開発しています。 そこで厄介な問題に当たってしまいました。 循環参照です...。 現在サブシステムごとにプロジェクトを作成しています。 そこであるサブシステムと別のサブシステムのクラスを相互で参照…