ファイル表示

Posted by muchag | Eclipse | 2018-08-01 (水) 20:42:18

【環境】
Eclipse: Oxygen (4.7) PHP
OS:Windows10 Pro 64bit
手順
  1. プロジェクト・エクスプローラー右上の ▼ をクリック
  2. [フィルターおよびカスタマイズ]
  3. 「フィルターおよびカスタマイズ」
    1. 「フィルター」タブを選択

ここのチェックを付け外しすれば OK。
チェックが付いているものは、表示されない。

.htaccess

.htaccess や .gitignore などは
「.*リソース」のチェックを外すと表示される。

Eclipse | 2018-08-01 (水) 20:42:18 |

editorconfig-eclipse

Posted by muchag | CakePHP 3.x,Eclipse,Library & PlugIn & AddIn | 2018-03-07 (水) 16:21:41

.editorconfig に対応するためのプラグイン。

CakePHP3 の コーディング規約 を調べていたら
.editorconfig なるものの存在を知った。

これを Eclipse で利用できるようになるプラグイン。

【環境】
editorconfig-eclipse: 0.3.0.201702161018 Beta
Eclipse:Oxygen (4.7)
EPP Marketplace Client:1.5.1.v20160929-1432
OS:Windows10 Pro 64bit
インストール

[ヘルプ]-[Eclipse マーケットプレース]
検索窓に「editorconfig」
「editorconfig-eclipse 0.x」がヒットするので [インストール]
ライセンスに同意して [完了]

警告:署名なしコンテンツを含むソフトウェアをインストールしています。
このソフトウェアの真正性または妥当性を実証できません。
インストールを続行しますか?

がーん。。。断念。 😥

CakePHP 3.x,Eclipse,Library & PlugIn & AddIn | 2018-03-07 (水) 16:21:41 |

Localkit が起動しない!

Posted by muchag | Monaca | 2018-02-18 (日) 21:59:11

【環境】
Monaca LocalKit: 2.5.0? → 2.5.1
経緯

ある日突然 Localkit が起動しなくなった。

アプリアイコンをクリックして、処理中のグルグルが断続的に2,3回出たものの
サッパリ起動しない。

Localkit をアンインストールして、再インストールしてもダメ。

原因

不明。

解決

teratail:Monaca LocalKitが起動されません(2017-12-11)
こちらの記事のおかげで解決。

記事にある通り、下記手順にて無事に起動するようになった。

  1. Localkit(おそらく 2.5.0)をアンインストール
  2. 下記2ディレクトリを削除
    1. ローカルディスク(c)/Users/(ユーザ名)/.cordova
    2. ローカルディスク(c)/Users/(ユーザ名)/AppData/Roaming/Monaca Localkit
  3. Localkit 2.5.1 を再インストール

私が戸惑っている数ヶ月の間に、解決記事がアップされていて助かりました。
ありがとうございました。

プロジェクト追加

プロジェクトが綺麗サッパリなくなっていたので

  1. 左ペイン「プロジェクト一覧」右にある+ボタンから
  2. [インポート]-[Cordova プロジェクトをインポート]
  3. 「既存の Cordova プロジェクトをインポート」
    1. 作業ディレクトリ:[参照] からローカルリポジトリ(ディレクトリ)を選択
    2. プロジェクト名:任意
    3. [インポート]
Monaca | 2018-02-18 (日) 21:59:11 |

「OK」「キャンセル」

Posted by muchag | C#,Visual Studio | 2018-01-28 (日) 20:28:51

フォームの「OK」「キャンセル」ボタンのお話。

【環境】
Visual C#: 15.5.4(2017)
キー連動

フォーム表に配置したボタンに「OK」「キャンセル」の挙動を持たせる。
=Enter 押下で反応する「OK」ボタン、ECS 押下で反応する「キャンセル」ボタン。

フォームのプロパティ
AcceptButton:「OK」の挙動をするボタンの Name を設定
CancelButton:「キャンセル」の挙動をするボタンの Name を設定

手書き

下記のように手書きして、Form の Key_Down イベントへ登録する手もある。


private void Login_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
    }
    else if (e.KeyCode == Keys.Cancel)
    {
    }
}
値の受け渡し

値の受け渡し

C#,Visual Studio | 2018-01-28 (日) 20:28:51 |

アプリケーション設定

Posted by muchag | C#,Visual Studio | 2018-01-28 (日) 18:47:49

アプリケーション内の設定のこと。
preference の方が区別が付くかも?

この話、どこかの記事に書いた気がするんだけど
見つけられないので、改めて記述。

【環境】
Visual C#: 15.5.4(2017)
入れ物

プロジェクトのコンテキストメニュー [プロパティ]
左ペイン [設定]

こちらの画面で、1つずつ下記を設定していく。
名前:設定値の名称。任意。プログラム内で使用するので、アルファベットで設定してね
種類:設定値のデータ型
スコープ:
アプリケーション:全ユーザー統一
ユーザー:ユーザー毎
値:値

利用

// 取得
txtUsername.Text = Properties.Settings.Default.LoginUsername;
Properties.Settings.Default.Save();

// 設定
Properties.Settings.Default.LoginUsername = "username";
保存場所

ユーザー設定は、ユーザーの非表示のローカル アプリケーション データ フォルダーのサブフォルダー内のファイルに保存されます。

MSDN:方法 : 実行時にユーザー設定を C# で書き込む

というわけで、SQLite -> 導入 にも書いた通り

C:\Users\[user_name]\AppData\Local\Packages\(おそらくランダム文字列)\LocalState

にあるみたいだけど、上記記事は UWP の場合なわけで
フォームアプリケーションの場合は、パッケージ ID をどこで見ればいいのかしらね~。

C#,Visual Studio | 2018-01-28 (日) 18:47:49 |

DataGridView

Posted by muchag | C#,Visual Studio | 2018-01-23 (火) 14:26:29

データを一覧表示するコントロール。

MSDN:DataGridView コントロール (Windows フォーム)
MSDN:DataGridView クラス

【環境】
Visual C#: 15.5.4(2017)
用途

データを一覧表示するコントロール。

プロパティ

MSDN:DataGridView クラス
一覧はこちらにあるので、逆引きで!

縞々にしたい

MSDN:AlternatingRowsDefaultCellStyle

行ヘッダを消したい

RowHeadersVisible

C#,Visual Studio | 2018-01-23 (火) 14:26:29 |

DbDateTimePicker

Posted by muchag | C#,Visual Studio | 2018-01-23 (火) 14:12:17


@IT:DateTimePickerコントロールでDBNullを扱うには?[C#、VB](2008-01-31)

MSDN:DateTimePicker コントロール (Windows フォーム)
MSDN:DateTimePicker クラス

【環境】
Visual C#: 15.5.4(2017)
経緯
デフォルトのDateTimePicker

DateTimePicker を使いたい。
だけど、null のときに日付が入ってしまうと
空欄にしておきたいユーザが、ご入力をしてしまう。
むぅ。

設計の問題?

Google 先生に聞いてみると、色々とあるみたいだけど
ほとんどの情報が古い。。。

何で改善されないんだろう。
どこかにも書いてあったけど、DateTime 型を利用するのに
null は普通に使うと思うんだけどな~。

私の設計が悪いのかしらね。

記事

それでも、DateTimePicker が null を許容できないことは
当時?みなさんが試行錯誤されたようで、下記のような記事を見つけた。
codeguru:Yet Another Nullable DateTimePicker Control(2005-04-25)
CodeZine:Nullを許容するDateTimePickerコントロール(2005-05-13、日本語訳記事)

null に対応してくれる DateTimePicker

現時点では、よい方針を思いつかないので
DbDateTimePicker を使ってみた。

@IT:DateTimePickerコントロールでDBNullを扱うには?[C#、VB](2008-01-31)
おおお、奇しくも後1週間で10周年w

作成

カスタム コントロールを追加 して
自動生成ソースに、参考サイトのソースを、ちみっと調整してコピペ。


public partial class DbDateTimePicker : DateTimePicker
{
    public DbDateTimePicker()
    {
        InitializeComponent();
    }

    protected override void OnPaint(PaintEventArgs pe)
    {
        base.OnPaint(pe);
    }

    [Bindable(true), Browsable(false)]
    public new object Value
    {
        get
        {
            if (base.Checked)
                return base.Value;
            else
                return DBNull.Value;
        }
        set
        {
            try
            {
                if (Convert.IsDBNull(value))
                {
                    base.Checked = false;
                }
                else
                {
                    base.Value = Convert.ToDateTime(value);
                    base.Checked = true;
                }
            }
            catch (Exception ex)
            {
                base.Value = Convert.ToDateTime(value);
                base.Checked = true;
            }
        }
    }
}
配置

アプリ側にコントロールを追加 して
フォーム上へ配置。
dbdtpDate

コントロールのプロパティから
ShowCheckBox を True

C#,Visual Studio | 2018-01-23 (火) 14:12:17 |

コントロール -> 自作

Posted by muchag | C#,Visual Studio | 2018-01-23 (火) 12:17:24


MSDN:デザイン時の Windows フォーム コントロールの開発

【環境】
Visual C#: 15.5.4(2017)
種類

コントロールの自作といっても2種類ある。

  • ユーザー コントロール
    • UserControl を継承した、完全オリジナルコントロール
  • カスタム コントロール
    • 既存コントロールを継承した、カスタムコントロール
プロジェクト

せっかく自作するなら、再利用できるようにしたいので
クラスライブラリプロジェクトを別途作成。

クラス
  1. [プロジェクト]-[新しい項目の追加](他の追加でも大丈夫)
    1. プロジェクトコンテキストメニュー [追加]-[新しい項目] でも同じ
  2. 「新しい項目の追加」ダイアログ
    1. 左ペイン [インストール済み]-[Visual C# アイテム]-[Windows Forms]
    2. 中央ペイン
      1. [ユーザー コントロール(Visual C# アイテム)]
      2. [カスタム コントロール(Visual C# アイテム)]
    3. 名前:任意
    4. [追加]
ユーザー コントロール

1からの作成なので、デザイン画面がある。

カスタム コントロール

既存コントロールを継承して作るので、デザイン画面には、継承したいコントロールを D&D。

ビルド

完成したら、クラスライブラリプロジェクトをビルド。

参照設定

.dll の参照設定。

コントロール追加
  1. 利用したいプロジェクトのツールボックスを開く
  2. 追加したいコントロールカテゴリのコンテキストメニューから [アイテムの選択]
  3. 「ツールボックス アイテムの選択」ダイアログ
    1. 「.NET Framework コンポーネント」タブ
      1. 右下の [参照] から、当該 .dll を [開く]
      2. 作成したコントロールにチェック
      3. 最初はリストにチェックボックスがあったのに、2回目以降出ない。。。
    2. [OK]

追加すると、ツールボックス内対象カテゴリ最下部に当該コントロールが追加される。
ツールはアルファベット順に並んでいるので、それに合わせたければ
当該カテゴリコンテキストメニューから [アイテムをアルファベット順に並べ替え]。

参考サイト

みかみんのプログラミング道場:カスタムコントロール作成入門講座初級編 作成環境の準備
→作成したカスタムコントロールの追加方法

C#,Visual Studio | 2018-01-23 (火) 12:17:24 |

EntityFramwork -> 実践

Posted by muchag | C#,Visual Studio | 2018-01-21 (日) 20:14:57

お試し で大分理解できたので
実際に挑戦!

【環境】
Visual C#: 15.5.4(2017)
プロジェクト作成

お試し との変更点は
メインをフォームアプリにしたこと。

参照設定

フォームアプリプロジェクトへ、NuGet パッケージ管理から、下記をインストール。

  • SQLitePCLRaw.bundle_e_sqlite3
  • SQLitePCLRaw.bundle_sqlcipher
  • SQLitePCLRaw.bundle_green
スタートアッププロジェクト

上記3つのプロジェクトについて、何をするかによって
スタートアッププロジェクトを切り替えないければならない。

  • フォームプロジェクト
    • フォームアプリを動かすときは、これがスタートアッププロジェクト
  • ビジネスロジックプロジェクト
    • マイグレーションをするときは、これがスタートアッププロジェクト
  • ビジネスロジックテストプロジェクト
    • テストをするときは、これがスタートアッププロジェクト
初回マイグレーション
エラー1

Add-Migration Initial
More than one DbContext was found. Specify which one to use. Use the '-Context' parameter for PowerShell commands and the '--context' parameter for dotnet commands.
原因

DbContext クラスが複数あったため。

解決

対象 DbContext クラスを指定してコマンド実行。


Add-Migration Initial -Context MyAppSystem.EmployeeModel
To undo this action, use Remove-Migration.
Update-Database -Context MyAppSystem.EmployeeModel
Applying migration '20180121111141_Initial'.
Done.
エラー2

Add-Migration Initial -Context MyAppSystem.EmployeeModel
Could not load assembly 'MyApp'. Ensure it is referenced by the startup project 'MyAppSystem'.
原因

パッケージ マネージャー コンソール上部にある
「既定のプロジェクト」が、MyApp になっていた。

解決

「既定のプロジェクト」を、MyAppSystem に変更。

フォームイベント

今回は、フォームロード時に走らせる処理として Main_Load メソッドとした。
Main の部分は、フォームクラス名を入れるのが通例らしい。

フォームプロパティのイベント一覧(雷マーク)において
Load => Main_Load
と設定するだけ。

射影

Entity の中から、特定のプロパティを取得する=表示カラムを絞る。
このことを「射影」というらしい。


var arrayEmployees = db.Employees
    .Select(record => new {
        record.EmployeeCode,
        Name = record.FamilyName + " " + record.FirstName
    })
    .ToArray();
  • record へ新しい配列をセットするよ~
  • 配列のプロパティは、record.EmployeeCode と Name だよ~
  • record.EmployeeCode はそのままでいいけど、Name は、record の FamilyName と FirstName を半角スペースで連結して戻してね~

という風に、計算や加工も含めて自由に取得できる。

record

この部分の表記方法を勉強中。

LINQ の考え方としては「配列の要素」を指していると思う。

foreach (var value in array) の value に当たる感じ?

今回は、DB から抽出したレコード群が要素なので
record としてみたけど、何でもよさそう。

Count()

データの個数。


db.Employees.Count()
カラム名指定

上記例に合わせると、こうなる。


dgvEmployees.Columns[nameof(Employee.EmployeeCode)].HeaderText = "従業員コード";
dgvEmployees.Columns[nameof(Name)].HeaderText = "氏名";

ここで面白いのが
Employee.EmployeeCode を EmployeeCode とするとエラー。
record.EmployeeCode としてもエラー。
Name は、何も付けなくてもエラーにならないどころか、想定通りに動く。

まだまだ意味がわかっていない。

参考サイト

Qiita:Entity Framework6で単純なデータ表示フォームを作成(2015-09-08)
→DataGridView へのデータの登録の仕方。DataGridView のカラム名の変更の仕方

Keibalight プログラミングを淡々と:【LINQ】要素の個数を取得するには(Count集計演算子)(2011-07-19)
→LINQ による、データ個数の数え方

C#,Visual Studio | 2018-01-21 (日) 20:14:57 |

GitFlow for Visual Studio 2017

Posted by muchag | Git,Library & PlugIn & AddIn,Visual Studio | 2018-01-21 (日) 18:49:35

Visual Studio に GitFlow を導入するための機能拡張。

マーケットプレイス:GitFlow for Visual Studio 2017

【環境】
Visual C#: Community 2017
導入

上記ページから、.vsix ファイルを DL して開けば、
インストール作業が始まる。

その前に VS を閉じておくとスムーズ。

インストール後、チーム エクスプローラーのメニューに
「GitFlow」が追加される。

初期設定

「GitFlow」へ移動して [Initialize]
[OK]

運用

「GitFlow」へ移動
[Start Feature]
[Start Release]
[Start Hotfix]
[Other]

作成

[Start Feature]
Feature 名を入力
[Create Feature]

その他

[Finish Feature]
[Finish Release]
[Finish Hotfix]

Git,Library & PlugIn & AddIn,Visual Studio | 2018-01-21 (日) 18:49:35 |
次ページへ »