子フォームから親フォームへの受け渡しする方法
F1=親フォーム,F2=子フォームとする。
private void F1(イベントハンドラー)
{
using (F2 f2=new F2())
{
f2.ShowDIalog(this);/親フォーム→子フォーム(展開)/
/ここに子フォームの処理が入る/
変数=f2.InputText;/子フォーム→親フォーム(データ譲渡)/
}}
public string InputText{get;set}/譲渡用変数/
private void F2(イベントハンドラー)
{
InputText=HOGE;/譲渡変数値/
this.Close();/F2の表示を消す/
}
キャスト可能判断条件
変数名.TryParse(対象, out ture時出力箇所)
例)
if(int.TryParse(int A,out int B)) ←Aがint変換可能ならBに出力。null確認に使えるかも…
機能ごとにまとめて見やすくする。
#region~#endregion
はさんだコード等をまとめて見やすくすることが出来る。
continue構文
処理のスキップを行う。
for,while,do~whileのループ処理で用いる。
条件がtureのとき処理をスキップする。
Enabled(選択付加のプロパティ)の不思議
プロパティで追加ツールのEnabled設定をTrueにしたときなぜか色がグレーアウトする。
調べたらどうやらそもそもの仕様の関係でした。
ユーザーに選択できませんということを伝えるためにグレーアウトするらしい。
そのおかげで見た目が変わってしまうから困ったものだ。
とりあえずReadOnlyで代用できるようなのでそっちを使うことに。
Tabコントロールを避けたければTagStopプロパティをfalseにする。
日にちとかのデータを取得する
DateTime.Now.Tostring("yyyyMMddHHmmss")
上記で4文字の年(y)2文字の月(M)2文字の日(d)2文字の時間(H)2文字の分(m)2文字の秒(s)を取得できる。
つまり20170511183005(2017年5月11日18時30分05秒)が取得できる
CSSの調整
グーグルクロームの開発者モードで調整 → 更新
が一番わかりやすいし対応しやすい。
C#からJavascriptを呼び出す。
例>
webapp開発中にフォームのようなポップアップが表示したい。
ポップアップの内容を状態によって変更したい。
そんなときは
Literalを使用してjavascriptを呼び出す。
注意点>
javascriptを呼び出すと画面描写がおかしくなる(たぶん描写しきる前にjavascriptの処理が走るため?)
処理の前にwaitでも引っ掛けるか…。
画像ファイルを変更する
内容>
ページAで表示している画像をページBにて変更する。
UserページのヘッダーをAdminが変更するみたいな…。
動き>
- フォームを開く
- Userページで使用している画像を表示
- FileUploadで画像を指定
- 指定した画像を変更画像として表示
- 変更ボタンを押下して画像変更。
やってること>
フォームにはaspImage(二個)FileUpload(一個)ボタン(2個)設置
処理前は画像は白の画像(デフォルト.png)に画像名を変更したものを入れている。
- フォームロード時に格納されているUserページの画像をプロジェクトのローカルファイル(TMP)にコピー
- コピーした画像をaspImageで表示(Userページで使用している画像)
- FileUploadで画像を指定
- 確認ボタンを押下して指定した画像を変更画像の名前で上書き。空白だったaspImage(変更後画像)が指定した画像に上書きされる。
- 確認ボタンを押下
- 変更後画像をもともと参照していたファイル名に上書き保存
localの画像をデフォルト.pngをリネームして上書き保存。(初期化)
一言>
プロジェクト直下のフォルダをいじるのであまりよくない気がする。
キャッシュが残ると画像が変わらない…。
Webのキャッシュを無効化する方法
以下のURL
ASP.NET で ブラウザ キャッシュ を 無効化 する web.config 設定
web.Configファイルに対して行う。
サーバーアクセスが多いときはやめたほうが良い(アクセスのキャッシュを毎回取得する)