16/09/06 14:17:43.23 exBFNrjj0.net
最近売れ筋の入門書にはyieldについて解説されていないようですが、これは廃れたのでしょうか?
426:デフォルトの名無しさん (ワッチョイ 6730-l4Vs)
16/09/06 14:35:42.66 t1C08fjS0.net
具体的にどの入門書です?
427:デフォルトの名無しさん (オッペケ Sr8f-RETc)
16/09/06 18:13:23.66 W4987S5sr.net
独学でc#やってるけど、他人が作った
428:コード組み合わせるだけでどんなアプリでも作れるね あとはITリテラシー低い連中に高く売りつければいいだけ 楽すぎる
429:デフォルトの名無しさん (スププ Sd5f-JXyZ)
16/09/06 18:20:39.68 ltEGP2sud.net
そのコードを見つけてくる検索力がすごい
430:デフォルトの名無しさん (ワッチョイ 17cb-RETc)
16/09/06 23:37:15.30 Sfilc/xC0.net
>>422
俺の知らない(pcのダウンロード履歴にないでおk)エロ動画を自動でダウンロードするアプリを頼む
431:デフォルトの名無しさん (ワッチョイ 8f90-wh/5)
16/09/06 23:56:35.73 FO29RTxa0.net
yeild とか現役で開発してた時にすら
使った事ない
構造体もだ
432:綴りw (ドコグロ MM9f-RETc)
16/09/07 08:07:05.36 AUiAMendM.net
>>425
確かに俺もないわ
構造体の方はあるけど
433:デフォルトの名無しさん (オッペケ Sr8f-RETc)
16/09/07 08:15:44.73 X+3Ie8TTr.net
>>424
なんかできそうな気するわ
金になるならやる
434:デフォルトの名無しさん (ワッチョイ c7ff-/sqZ)
16/09/07 11:31:58.86 8SeVjemL0.net
yeildはUnityにいったら急に使うようになったw
435:デフォルトの名無しさん (ワッチョイ c7ff-/sqZ)
16/09/07 11:32:29.22 8SeVjemL0.net
おっとコピペしたから綴りは無視で。。。
436:デフォルトの名無しさん (ワッチョイ 6bd4-V3yE)
16/09/07 12:00:19.60 eVTUc00Y0.net
Unityの場合、言語仕様が謎でAwait/Async(C#5)が使えず、コルーチンを使わざるを得ない場面が多くてyield必須になってくるんだろうけどさあ・・・・
これに関連して思い出したんだけど、UnityのC#の言語仕様ってどこかに公開されてないのかな?
一説にはC#3相当とは言われているものの、ちょっと試してみた感じだとラムダ式でメソッドを記述(C#6)できたり、インデックス初期化子(C#6)が使えたりと謎だらけだ
437:デフォルトの名無しさん (ワッチョイ 133a-RETc)
16/09/07 12:11:19.15 qSRr1oiT0.net
>>430
.NET Framework 3.5 相当で動けば、C#の記法は新しくても良いとか?
でも、謎な部分あるよね。
438:デフォルトの名無しさん (ドコグロ MMaf-TXi9)
16/09/07 13:10:41.28 QfykF8DQM.net
>>430
シンタクックスシュガーなら内部的に構文に変換されるから使えるって話だろ。
439:デフォルトの名無しさん (オッペケ Sr8f-RETc)
16/09/07 13:47:51.01 P9Zqjq7xr.net
awaitとかの非同期つかうとawaitの外の配列への格納が非同期に格納されてうまく処理できない
440:デフォルトの名無しさん (ワッチョイ c723-wh/5)
16/09/07 14:06:02.75 Wz/3zuTl0.net
>>433
lock使ってもダメかな?
441:デフォルトの名無しさん (オッペケ Sr8f-RETc)
16/09/07 16:54:21.54 P9Zqjq7xr.net
>>434
試してみる!
442:デフォルトの名無しさん (ワッチョイ eb7b-RETc)
16/09/07 18:51:19.99 ZWT9hR9W0.net
visualstudioでコンパイルするビット数指定できると聞いたんだけど
これを外部ファイルとかで指定してビルドする方法ってないよね…?
ビット数指定のexeで指定したら、主のプログラムが指定されたビット数でビルドされるみたいな
443:デフォルトの名無しさん (ワッチョイ 775e-IPsc)
16/09/07 18:54:41.93 G9ygDtLc0.net
>>436
x64かx86かAnyCPUとかって話ならVSのバージョンも明示したほうがいいと思うぞ
444:デフォルトの名無しさん (ワッチョイ eb7b-RETc)
16/09/07 18:59:01.76 ZWT9hR9W0.net
>>437
まさにそれ
アドバイスありがと
VS2015
anyCPUってなんなんだろうな
今日はじめてこの機能知ったよ
ビット数指定なんて
445:デフォルトの名無しさん (ワッチョイ eb7b-RETc)
16/09/07 19:00:39.41 ZWT9hR9W0.net
連レスですまない
communityです
446:デフォルトの名無しさん (アウアウ Sacf-NO8Q)
16/09/07 19:24:16.85 aWoJ1pFca.net
>>439
ん?
質問はもう解決したんだよね?
447:デフォルトの名無しさん (ワッチョイ eb7b-RETc)
16/09/07 19:28:03.66 ZWT9hR9W0.net
>>440
途中まではGoogle先生の検索を変えたら解決した
環境変数とか指定してコマンドラインから実行できるんだねってはなった
ただまだ全ては解決してない。
448:デフォルトの名無しさん (ワッチョイ eb7b-RETc)
16/09/07 19:28:52.39 ZWT9hR9W0.net
C#関係ないから別スレで頼んでくるわ
スレ汚しすまん
449:デフォルトの名無しさん (ワッチョイ 6fb6-10NS)
16/09/07 22:22:39.17 ctWbCCsJ0.net
for eachがインデックスの順番通り処理され(る保証が)ないのは有名だけど、yield returnで順番に返すようにしたデータをfor eachで処理する場合も順番通りにならないことってある?
調べてもそのあたりよくわからないんだけど誰かわかる人いるかな
450:デフォルトの名無しさん (アウアウ Sacf-NO8Q)
16/09/07 22:32:19.49 aWoJ1pFca.net
>>443
列挙子の吐き出すデータをわざわざシャッフルする馬鹿なフレームワークはありえないと思いますw
451:デフォルトの名無しさん (ワッチョイ 133a-RETc)
16/09/07 22:56:51.05 qSRr1oiT0.net
>>443
enumerator.MoveNext()の順に処理される
452:デフォルトの名無しさん (ワッチョイ f3dc-OoDU)
16/09/07 23:59:32.17 If+GZyVf0.net
>>443
どこの時空で有名なんだ?
連番のインデックスが定義されているということは即ち要素に順序が定義されているということなので、
普通は列挙子はインデックスの順番通りに要素を返すように実装するぞ
少なくとも.NET Frameworkで提供されているコレクションについては、
順番通りに要素を返さないようなクソ実装してるものはないはず
Dictionaryの順序が定義されないとかの話と混同してないか?
453:デフォルトの名無しさん (アウアウ Sa09-nnaQ)
16/09/08 00:10:49.36 ll3GZTXWa.net
>>446
なんか突っ込むところズレてると思うw
コード書いた人がそう保証してない限り、列挙子がインデクサと同じ順番でデータを吐き出すことを
期待してはいけないのは>>443の言う通りだよw
454:デフォルトの名無しさん (ブーイモ MMb1-Te6E)
16/09/08 00:24:26.03 4zgfpHKTM.net
順序のあるコレクション列挙した順番は不定
列挙子が返す順序とforeachで列挙する順序は同じ
yieldで返した順序と列挙子が返す順序は同じ
455:デフォルトの名無しさん (ワッチョイ 34cb-j70e)
16/09/08 00:31:31.37 YkLgKLZQ0.net
仮にそれが確定した仕様だったとしても自分も勘違いしちゃうような
マイナー仕様を他人にも見せるコードで書くのは好かんな
456:デフォルトの名無しさん (ワッチョイ e6b6-Te6E)
16/09/08 00:32:09.36 Tb74UpNz0.net
よかった、さすがにyieldで順番に返してるつもりのデータが狂った準備で処理されることはないんだね
これからも安心してyieldを多用できるよthx
457:デフォルトの名無しさん (ワッチョイ 34cb-j70e)
16/09/08 00:36:07.17 YkLgKLZQ0.net
foreachでしかアクセスできないようなクラス使わされて
要素を削除するときにどうしてもケツから消さないとインデックスがおかしくなるのに
foreachでしかアクセスできなくて俺はキレた
458:デフォルトの名無しさん (ワッチョイ 34cb-j70e)
16/09/08 00:38:11.71 YkLgKLZQ0.net
>>450
えーでもさ
お前その動作が分かり難いって身を持って体験したのに
他人にはそういうコード見せちゃうんだ?
459:デフォルトの名無しさん (ブーイモ MMb1-Te6E)
16/09/08 00:45:18.97 4zgfpHKTM.net
ちなみにFCLの順序有りコレクションは列挙順も同じになると保証されている
460:デフォルトの名無しさん (ワッチョイ e6b6-Te6E)
16/09/08 00:54:44.18 Tb74UpNz0.net
みせないよ
全部dllにするしprivateメソッド内でしか使わないから
461:デフォルトの名無しさん (アウアウ Sa09-nnaQ)
16/09/08 00:56:43.05 ll3GZTXWa.net
>>451
余程パフォーマンスの要求が厳しいとかじゃなきゃ、列挙してるコレクションからアイテム削除するって
あんまり良い作法とは思えんなあそもそも。
列挙と操作は分ければいいのに。
列挙字に削除するアイテムをLilstに入れるとか、逆に残す方にするとか、
やり方いろいろあるよねえ。
462:デフォルトの名無しさん (スプッッ Sd28-j70e)
16/09/08 07:40:16.14 b73KNLmzd.net
>>443
これ本当なのか?
463:デフォルトの名無しさん (ワッチョイ 9823-tq+X)
16/09/08 09:05:54.31 lIlJcuEY0.net
シーケンスを自分で組めば作ったように動くが、MSのライブラリなどは保証していないってことでしょ
464:デフォルトの名無しさん (ワッチョイ 11dc-j70e)
16/09/08 09:16:49.80 mLK2BL1B0.net
いや基本的に「コレクションの要素順」に返ることは保証されてるよ
Dictionaryみたいに「挿入順」を保持しないものは存在するけど、コレクションの要素順に返ることには違いない
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
465:デフォルトの名無しさん (ワッチョイ f053-Te6E)
16/09/08 12:37:21.85 BaIwaWl+0.net
となると順序のあるコレクションではその順に処理されると考えていいな。
列挙子がコレクションの順序と違う順に返したらそれもう順序のあるコレクションじゃないわけだし。
466:デフォルトの名無しさん (アウアウ Sa09-nnaQ)
16/09/08 12:52:34.95 jmQRCRWra.net
>>459
スタックなんかインデクサはLIFO、列挙した場合はFIFOでもおかしくないし
そういう実装されても文句は言えないと思うけどw
467:デフォルトの名無しさん (ワッチョイ f053-Te6E)
16/09/08 13:51:27.50 BaIwaWl+0.net
その場合インデクサの大小が逆になっていると考えれば良いのでは。
468:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/08 15:24:52.02 r2DjRlBp0.net
C#って、Perlで言う所のこんなことできる?
#まずハッシュとか配列に処理を入れる。(これはハッシュ)。
$hash{name1} = sub {処理}; #関数を宣言と同時に変数に代入
$hash{name2} = sub {処理};
$string = <>; #どっか外部から文字列を入手する
$hash{$string}->(); #実行 (エラー処理は今は書いてない)。
469:デフォルトの名無しさん (ワッチョイ 11dc-j70e)
16/09/08 15:26:54.32 mLK2BL1B0.net
>>462
Dictionary<string, Action>にラムダ式を入れる
470:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/08 16:24:01.08 r2DjRlBp0.net
>>463
ありがとう。
検索したけどずっと動かないと思ったら.NetFrameWorkのバージョンのせいだった
471:デフォルトの名無しさん (ワッチョイ 98d4-T8i7)
16/09/08 16:54:52.72 2NLKCBtb0.net
ちょっとやそっと.NetFrameworkが古いぐらいじゃ動くと思うけどな・・・・
472:デフォルトの名無しさん (スプッッ Sd28-j70e)
16/09/08 18:02:45.61 xMRsbH3+d.net
初歩の初歩の質問だと思うのだけど教えてくだされ
.net frameworkってdll形式なの?
開発環境と実行環境異なってたら使えなかった
exeファイル入ったプロジェクトそのまま持っていけば動くと思ったけど甘かったんでしょうか
473:デフォルトの名無しさん (スプッッ Sd78-j70e)
16/09/08 18:06:19.95 tu6IqL7jd.net
1.0でも使ってんじゃね
474:デフォルトの名無しさん (スプッッ Sd78-j70e)
16/09/08 18:08:40.15 tu6IqL7jd.net
>>466
ランタイムもインストールしないと
475:デフォルトの名無しさん (ワッチョイ 81d6-XNJE)
16/09/08 18:42:01.82 rYr1hc3Z0.net
windows updateを忘れずにしていれば最新版が勝手に入ると思うんだけど
いまどき.net frameworkが入っていないパソコンってあるのか?
476:デフォルトの名無しさん (ワッチョイ 93c0-tq+X)
16/09/08 19:14:04.67 hJk2TQC90.net
最近のOSで3.5以前のEXEを動かそうとして失敗するケースはよく見かける
477:デフォルトの名無しさん (スプッッ Sd28-j70e)
16/09/08 19:19:20.69 xMRsbH3+d.net
書き方がまずかったすみません
開発環境には2015入ってて実行環境には何も入ってない
ただプロジェクトフォルダそのまま持っていけば全部梱包されてるからできるだろーって
やってみたらできなかった…って感じです
本当に初歩の初歩ですまないが教えて下さい
478:デフォルトの名無しさん (ワッチョイ 3d38-ZwPk)
16/09/08 19:22:09.82 X4kUfY+40.net
>>471
>>468
479:デフォルトの名無しさん (スプッッ Sd28-j70e)
16/09/08 19:35:45.77 xMRsbH3+d.net
>>472
ランタイムぐぐってくる
ありがとう
教えてくれた人ともう一度教えてくれた人
480:デフォルトの名無しさん (ワッチョイ e53c-j70e)
16/09/08 19:37:21.52 d9ZZl7aD0.net
>>469
4.6Xって可能性もあるだろ
481:デフォルトの名無しさん (ワッチョイ 9030-ZwPk)
16/09/08 19:46:50.92 GLpY6Jp90.net
>>473
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
482:デフォルトの名無しさん (ワッチョイ 93e2-GoLj)
16/09/08 19:49:07.02 qh7bbUgC0.net
await Task.Run(() => { cal(); });
(略)
private int cal(){
return 100;
}
上のタスクはどう記述すれば戻り値を受け取れますか?
voidをintにできないとエラーがでます
483:デフォルトの名無しさん (ワキゲー MM4e-Td3s)
16/09/08 20:04:29.51 wSgtkTSYM.net
Task<int>
484:デフォルトの名無しさん (ワキゲー MM4e-Td3s)
16/09/08 20:06:49.75 wSgtkTSYM.net
あとブロックにするなら明示的にreturn
{return cal();}
485:綴りw (ドコグロ MMde-j70e)
16/09/08 20:09:46.27 ZGDN5kDfM.net
>>471
とりあえず開発環境と実行環境のOS書けよ
486:デフォルトの名無しさん (スプッッ Sd28-j70e)
16/09/08 20:36:39.68 5+Utboodd.net
>>479
開発環境 win10
実行環境 xp
長い間アプデできてない当たり前だけど
487:デフォルトの名無しさん (ドコグロ MMde-j70e)
16/09/08 20:56:01.20 ZGDN5kDfM.net
>>480
> 実行環境 xp
> 長い間アプデできてない当たり前だけど
>>469 の懸念が現実のものになるとは...
> いまどき.net frameworkが入っていないパソコンってあるのか?
488:デフォルトの名無しさん (ワッチョイ 9030-ZwPk)
16/09/08 21:00:01.99 GLpY6Jp90.net
XPだと.NET Framework 4だから、
プロジェクトの対象のフレームワークを.NET Framework 4にしないと生け贄を捧げても動かない
VS2015だとデフォは.NET Framework 4.5.2のはず
まとめると
プロジェクトは対象フレームワークを.NET Framework 4に変更してビルドし直す
XPには.NET Framework 4をインストールする
489:デフォルトの名無しさん (スプッッ Sd28-j70e)
16/09/08 21:03:27.90 5+Utboodd.net
>>481
>>482
そう言うことか
ってかネットフレームワークって標準なんだな
ビジュアルスタジオについてくるもんだと思ってたよ
490:デフォルトの名無しさん (ワッチョイ 3e90-tq+X)
16/09/08 21:15:22.43 UTR6V9h30.net
Google Analytics の調子が悪い
491:デフォルトの名無しさん (ワッチョイ bc42-tq+X)
16/09/08 22:19:22.26 A7Pb5oFv0.net
おまいの個人データぶっこ抜くのに忙しいんだよ
492:デフォルトの名無しさん (スプッッ Sd28-j70e)
16/09/09 07:42:45.67 Im9/6uOtd.net
C#でdll・ヘッダファイルに定義されてる関数を
テキストファイルやxmlファイルから読み込んで動的に呼び出す手法は以下以外にあるかな
別スレでこんな意見を頂いた
他にも手法あるならそれと比べて設計考えてみたいんだ
69 以下、無断転載禁止でVIPがお送りします 2016/09/08(木) 21:10:41.799 ID:BdEIRhbW0
>>65
相手のコードがc#でビルドされてるのが前提で
事前にAssembly.LoadFromでdll取得して
後はテキストから関数名と引数引っ張って事前に読み込んだassemblyからGetTypeで型とってGetMethodでメソッドとって引数は配列に詰めてInvokeする
493:デフォルトの名無しさん (ワッチョイ 9030-ZwPk)
16/09/09 10:58:24.81 7hmX2uTk0.net
>>486
呼び出される側(dll側)は何で開発されているかはっきりさせてくれ
別スレの人も
>相手のコードがc#でビルドされてるのが前提
と断ってるが
>dll・ヘッダファイルに定義されてる関数を
という部分を考えると、相手のコードはC#で開発されているように見えない
494:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/09 12:46:53.61 dr6bYi/v0.net
C#始めたばかりなんですが、
当たり前のようにフィールドって言葉を使われ始めました。
ちょっと解説してください。
495:デフォルトの名無しさん (ワッチョイ 4919-u8AM)
16/09/09 12:50:28.56 wNOotapd0.net
class {
int a; // <= フィールド
int B { get { return a; } set { a = value; } } // <= プロパティ
int C() { return a; } // <= メソッド
}
496:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/09 12:56:02.44 dr6bYi/v0.net
>>489
クロージャってこと?
違うか?
497:デフォルトの名無しさん (ワッチョイ 98d4-T8i7)
16/09/09 12:59:18.99 /qYjDQsk0.net
フィールドってクラスに属してる変数のことだよ
498:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/09 13:01:49.33 dr6bYi/v0.net
ふむふむ
その変数は、インスタンスごとに個別に発生する値で、なおかつクラス内で共有ってことですか?
499:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/09 13:05:04.75 dr6bYi/v0.net
質問連打ですみませんが、メンバもよく分かりません。
メソッドのことですか?
500:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/09 13:26:54.06 dr6bYi/v0.net
分かってきました。
C#は、コンストラクタの実行時にメソッド以外にも色々インスタンスが生成されて返される。
メソッドが生成されればメソッド。
変数が生成されればフィールド。
そうゆうのを全部まとめてメンバ。
って解釈でいいでしょうか?
501:デフォルトの名無しさん (ワッチョイ 9030-ZwPk)
16/09/09 13:59:16.94 7hmX2uTk0.net
>>494
URLリンク(msdn.microsoft.com)
502:デフォルトの名無しさん (ワッチョイ 6923-tq+X)
16/09/09 14:00:32.59 2SLUNITP0.net
横槍ですまんが、>>488がこれまでに触ったことがある他のプログラミング言語を言えばレスつけやすくなるんじゃないか?
503:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/09 14:14:29.68 dr6bYi/v0.net
すまん、ありがとう。
けっこう分かってきた。
処理構造はこう書けって決まってるというか、用意されてる感じの言語なのね。
ちなみにCとPerlです。
504:デフォルトの名無しさん (ラクラッペ MMb1-tq+X)
16/09/09 15:45:45.00 +pScTfufM.net
ChartのDataSourceにDataSetを割り当てて、SeriesのXValueMember, YValueMemberにDataColumnを割り当てたいのですが、
YValueMemberだけが0かnoneしかなく割り当てることができません。
とりあえず0とnoneに指定して動作させても、X軸だけ増える一方でY軸は表示されないままです。
どう設定すればY軸を指定できるのでしょうか?
参考サイトは以下です。
よろしくお願いします。
URLリンク(earth.air-nifty.com)
505:デフォルトの名無しさん (ワッチョイ 4919-u8AM)
16/09/09 17:05:47.56 wNOotapd0.net
対象のDataTableに数値型の列が存在していないとか
506:デフォルトの名無しさん (アウアウ Sa35-1gdI)
16/09/09 19:08:06.31 iXjGEKQTa.net
あかん。c#勉強始めてフォームアプリ作ってみたが、全然クラス作らないで出来上がってしまう。。
クラスにするイメージがつかん。
507:デフォルトの名無しさん (オッペケ Sr3d-j70e)
16/09/09 21:08:50.87 N6MOLrmlr.net
そもそも動けばいいんだよ
中身なんて誰も知らんし
508:デフォルトの名無しさん (アウアウ Sa09-j70e)
16/09/09 21:41:17.78 oMlYA35za.net
F#で死人が出そう
509:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/09 22:13:58.70 dr6bYi/v0.net
string.Joinがあるのにstring.Concatがあるのを教えてクレメンス
510:デフォルトの名無しさん (ワッチョイ 81d6-XNJE)
16/09/09 22:34:20.31 skcsL2YB0.net
JoinとConcatの引数を確認すりゃ分かるけど用途が違う
511:デフォルトの名無しさん (スプッッ Sd78-j70e)
16/09/10 00:00:05.31 ERC4HZmfd.net
>>487
両方ともC#です!
512:デフォルトの名無しさん (ワッチョイ 9541-RG0E)
16/09/10 00:47:28.10 67HVyNly0.net
>>500
そもそも中規模以上の開発における
諸問題への対応策として生まれたのが
オブジェクト志向なんだから
それでいいし
最初はあんま意識しなくていいと思う
513:デフォルトの名無しさん (ワッチョイ 3e90-tq+X)
16/09/10 01:15:23.70 Wm1HNmHU0.net
朝日新聞大阪本社 記者
西村 圭史 (ニシムラ ケイシ)
nishimura-k5@asahi.com
取材させてください。
514:デフォルトの名無しさん (オッペケ Sr3d-j70e)
16/09/10 03:33:26.64 OS/pxD32r.net
画素編集のFormアプリ作ってるんだけど、コンパイルしてんのに処理重いのはなんで?
フォトショップとか、なんでレイヤーいくつも重ねてもサクサク動くんだよ…作ってる奴らすげえな
515:デフォルトの名無しさん (ワッチョイ c69f-wdYe)
16/09/10 03:54:14.48 Cc+a6CZq0.net
並列化を駆使して色々やってるからだろ
スレッドとかSIMDとかGPUとか
516:デフォルトの名無しさん (ワッチョイ f053-Te6E)
16/09/10 06:03:52.43 4AzSt0BN0.net
ちゃんと書けばそこまでしなくてもそんなに遅くない
517:デフォルトの名無しさん (ワッチョイ bc7b-DgIw)
16/09/10 06:47:02.70 iNw4r1ei0.net
毎フレーム、全部の画素を、メモリにコピーするからだろ
最初にメモリにコピーしたら、そのメモリをずっと使えばいい
518:デフォルトの名無しさん (ワッチョイ f053-Te6E)
16/09/10 06:59:04.57 4AzSt0BN0.net
レイヤーが10枚あって8番目のレイヤーで作業してるときは、
・1~7番レイヤーを合成済みの画像 *1
・8番レイヤー (編集対象)
・9~10番レイヤーを合成済みの画像 *2
の3つを合成して表示すりゃいいんだよ。
*1、*2 はアクティブなレイヤーを切り替えるときに計算しておく。
これなら何十枚あってもブラシとかは軽いだろ?
519:デフォルトの名無しさん (ワッチョイ c15b-1gdI)
16/09/10 10:03:42.17 zhSU2N3O0.net
>>506
ありがと
ちょっとずつ機能を足しながらクラスの使い方勉強していくよ
520:デフォルトの名無しさん (オッペケ Sr3d-j70e)
16/09/10 10:11:09.24 OS/pxD32r.net
>>511
Bitmapに入れといてるよ
>>512
編集対象を8番目から5番とかに変えたら、また全部の合成の再計算になるよね?
アクティブなレイヤーを変えたり、レイヤーを表示・非表示に切り替えただけで全部再計算が必要な気がする
521:デフォルトの名無しさん (ブーイモ MMb1-Te6E)
16/09/10 10:14:34.09 oyefpNCyM.net
>>514
キャッシュを使う
522:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/10 12:10:04.49 7MaNMesA0.net
C#のnamespaceは、Classを束ねる物として機能してるんですか?
なので、
a = new namespace.class();
a.hoge();
// NameSpace.Classname.MethodName みたいな関係になるというか
523:デフォルトの名無しさん (ワッチョイ 937b-Td3s)
16/09/10 12:13:09.95 /+pbEB3C0.net
クラスを束ねるものとして機能
っていうのがどういうの想定してるのか分からんからなんとも
524:デフォルトの名無しさん (ブーイモ MMb1-Te6E)
16/09/10 12:17:01.14 8vECtVT4M.net
名前空間は名前を管理するもの
クラスを管理しているわけではない
525:デフォルトの名無しさん (ワッチョイ 6923-tq+X)
16/09/10 12:17:20.05 Rv8WG5cB0.net
namespace については↓
URLリンク(msdn.microsoft.com)
下の方にある For More Information のリンク先も読むことをお勧めする
526:デフォルトの名無しさん (ワッチョイ b5a1-Te6E)
16/09/10 12:19:28.84 qVsRfG5m0.net
名前空間自体はプレフィックスを構造化した物に過ぎない様な
.NET Frameworkにおいては確かに機能群を束ねるのに使われてるけど
527:デフォルトの名無しさん (ブーイモ MMb1-Te6E)
16/09/10 12:24:02.58 8vECtVT4M.net
>>520
機能を束ねてはいない
名前を束ねているだけ
528:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/10 12:30:16.44 7MaNMesA0.net
分かりました。
名前空間は型なのですね。
529:デフォルトの名無しさん (ワッチョイ 81d6-XNJE)
16/09/10 12:35:43.10 mo9S6SVL0.net
何も分かっていないじゃん
530:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/10 12:39:41.86 7MaNMesA0.net
一応公式にはそのように記述されてたのですが・・・
違うと思った場合は、その旨に沿って返答いただけると質問に対する助けとなりますです。
531:デフォルトの名無しさん (アウアウ Sa35-1gdI)
16/09/10 12:42:31.05 x75xnK8ka.net
javaのpackageと同じかってことを言いたいのか?
532:デフォルトの名無しさん (ブーイモ MMb1-Te6E)
16/09/10 12:47:32.32 8vECtVT4M.net
>>524
引用して
533:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/10 12:51:26.59 7MaNMesA0.net
俺的には解決したからもういいよ
具体的な何かが出てきたらまた質問する
534:デフォルトの名無しさん (ワッチョイ bc42-MXHb)
16/09/10 12:55:43.79 DPMvCIey0.net
>>522
違います
例えば"報告書印刷"クラスが「営業」用と「総務」用と「経理」用の3種類あるとしよう
"営業報告書印刷"クラス、"総務報告書印刷"クラス、"経理報告書印刷"と別々のクラス名でもいいが
そういうふうにクラス名にいろんな情報を付加するとどんどんクラス名が長くなってしまうだろ
そこで、名前空間を使って整理するんだよ
例えば"業�
535:ア"名前空間内に"営業"名前空間と"総務"名前空間と"経理"を置いて そこにそれぞれの"報告書印刷"クラスを置くと これで 業務.営業.報告書印刷クラス ※業務.営業が名前空間 業務.総務.報告書印刷クラス ※業務.総務が名前空間 業務.経理.報告書印刷クラス ※業務.経理が名前空間 という風に"報告書印刷"という単純なクラス名ながら、名前空間で区別、整理できて便利 ※わかりやすく説明するためにクラス名や名前空間名は日本語にした
536:デフォルトの名無しさん (ワッチョイ bc42-MXHb)
16/09/10 13:00:54.61 DPMvCIey0.net
>>524
名前空間も含めたクラス名が型ってことだよ
537:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/10 13:00:55.18 7MaNMesA0.net
ありがとう。
ただそれは最初の質問となにが違うのでしょうか?
一応質問の趣旨としては、名前空間とクラスが無関係であるケースの言語も多いから聞いたのですが。
538:デフォルトの名無しさん (ワッチョイ bc42-MXHb)
16/09/10 13:07:18.31 DPMvCIey0.net
>>530
あー、最初の質問は見てないわ
まー、名前空間ってそういうもんだと思っとけばいいよ
それ以上の詳しくは自分で勉強・研究してくれ
539:デフォルトの名無しさん (ガラプー KK6b-viWw)
16/09/10 14:18:37.23 vbKJk9JlK.net
今始めたばかりの初心者なんだけどエラーがでる…
誰か解決してください!
main(){
print("やっほー!");
}
540:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/10 14:19:45.47 7MaNMesA0.net
なんかな、cwて書いてタブを2回押すとええねんて
541:デフォルトの名無しさん (ワッチョイ bc5e-XNJE)
16/09/10 14:37:45.49 6Xz+/qd00.net
>>514
Bitmapは大きな画像になるとやたらメモリを食うし、バイト配列に変えて処理した方が速い場合もある
とりあえず画像処理やるのはC#(とGDI+)は向いていないと思う。Unityとかならともかく
合成はある程度の大きさがあって何枚もあったらC++でもそんな速くはならないからいろいろ工夫する必要があると思う
ググったらその手のことやっているところはいくつかヒットするよ
>>532
やりたいことは何か、表示されたエラーは何か書かないとな
ここにいるのは回答者も初心者が大半だからそれだけじゃわからん
もしくは↓へどうぞ
エスパーが質問に答えるスレ
スレリンク(tech板)
542:デフォルトの名無しさん (ワッチョイ 7d4a-chQw)
16/09/10 15:30:38.68 ViqXWo9H0.net
// こういう同じメンバーを持つ二つのクラスがあって
public class MyClass1
{
public int id;
public string name;
}
public class MyClass2
{
public int id;
public string name;
}
// この関数を二つのクラスから使いたいのですが、
void func(MyClass1 mc1)
{
var id = mc1.id;
var name = mc1.name;
}
// こんな風にすると
void Main()
{
MyClass1 mc1 = new MyClass1();
func(mc1);
MyClass2 mc2 = new MyClass2();
func(mc2); //<====== 当然ここでエラーしますよね。
}
func()の引数のあたりをどうにか改造して、MyClass1でもMyClass2でも
引数で受けられるようにできますか?
543:デフォルトの名無しさん (ワッチョイ 7d4a-chQw)
16/09/10 15:36:54.17 ViqXWo9H0.net
補足です。
MyClass1とMyClass2の定義は変更しないという条件でお願いします。
544:デフォルトの名無しさん (ワッチョイ 693a-j70e)
16/09/10 15:41:00.20 S2i4VzyR0.net
>>535
void func(dynamic mc1)
{
int id = mc1.id;
string name = mc1.name;
}
545:デフォルトの名無しさん (ブーイモ MMb1-Te6E)
16/09/10 15:42:02.88 6z3ll4dhM.net
void func(dynamic dmc) { 以下略
546:デフォルトの名無しさん (ワッチョイ 7d4a-chQw)
16/09/10 15:44:33.78 ViqXWo9H0.net
>>537
ありがとうございました。
助かりました。
547:デフォルトの名無しさん (ワッチョイ 7d4a-chQw)
16/09/10 16:08:06.37 ViqXWo9H0.net
問題がありました。
本当は、funcの引数は
void func(MyClass1 mc1) {...}
ではなくて、
void func(List<MyClass1> mc1_list) {...}
という形式です。
そしてfuncの中でLinqを使っていて
var a = from e in mc1_list
where e.id == 10
select e.name;
みたいな処理があるのですが、
void func(dynamic mc1_list) {...}
にしたら、
ソース型 'dynamic' に対するクエリ式または型 'dynamic' の結合シーケンスのあるクエリ式は使用できません
と言うエラーが出ました。
どうすれば良いでしょうか?
548:デフォルトの名無しさん (ブーイモ MMb1-Te6E)
16/09/10 16:11:51.94 6z3ll4dhM.net
func(IEnumerable<dynamic> dmcs) { 以下略
549:デフォルトの名無しさん (ワッチョイ 7d4a-chQw)
16/09/10 16:19:03.49 ViqXWo9H0.net
>>541
ありがとうございました。
うまく行きました。
2chには優秀な人が多いですね。
助かりました。
550:デフォルトの名無しさん (ラクラッペ MMb1-tq+X)
16/09/10 19:38:25.00 jNfWtnbnM.net
>>499
ドロップダウンの中選ぶのではなく、直接文字を入力したらできました。
レスありがとうございました。
551:デフォルトの名無しさん (ワッチョイ f053-Te6E)
16/09/10 19:47:21.98 4AzSt0BN0.net
>>514
適当な枚数のレイヤーごとにコンポジション結果をキャッシュしておくとか色々工夫のしようがある。
分割統治法ね。
あと質問しといてアドバイスに反論すんなよ…議論したいなら質問じゃなく自分なりの意見やアイデアを書けよ。気分悪いわ。
552:デフォルトの名無しさん (アウアウ Sa09-nnaQ)
16/09/10 20:04:14.12 qbdJrNQPa.net
>>544
質問してる奴は反論するなってよー分からん感覚だなw
いっちゃ悪いけどそれで気分が悪くなるんならお前さんが人間的に幼すぎるんだよw
553:デフォルトの名無しさん (オッペケ Sr3d-j70e)
16/09/10 20:06:07.74 OS/pxD32r.net
>>534
むちゃくちゃありがとう!
といってももうすでにC#でBitmapで作ってしまってるのでなんとか頑張ります…
>>515
キャッシュも調べてみます!
554:デフォルトの名無しさん (アークセー Sx3d-j70e)
16/09/10 20:35:04.49 lhsLes9jx.net
>>544
バカ発見
555:デフォルトの名無しさん (アウアウ Sa09-j70e)
16/09/10 20:39:01.13 vL431mpna.net
ポリモーフィズムを使えよ
556:デフォルトの名無しさん (オッペケ Sr3d-j70e)
16/09/10 21:18:48.94 OS/pxD32r.net
>>544
ごめんw
そのつもりで書いたんじゃないけど再度読んだらそう見えるな…
557:デフォルトの名無しさん (ブーイモ MM28-Te6E)
16/09/10 21:24:42.77 Vmp4NXtlM.net
というか初心者は2chなんかで遊んでないで本を読んでteratailにでも行きなさい
558:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/11 01:24:47.80 KwUcbZQO0.net
始めたばかりでパブリックとスタティックとプライベートの違いが分からんのだけど、
namespace main_file
{
class Program {
static void Main(string[] args) {
file1.TestClass TestA = new file1.TestClass("引数1");
file1.TestClass TestB = new file1.TestClass("引数2");
TestA.pub = "てすと1";
TestB.pub = "てすと2";
TestA.method();
TestB.method();
}
}
}
namespace file1 {
class TestClass {
private string prv = ""; //クロージャ? インスタンスごとに個別くさい
static string sti = ""; //クロージャじゃないこと確定。インスタンス関係なくオブジェクトで共有。
public string pub = ""; //パブリック。インスタンスごとに個別でどこからでもアクセスできる?
public TestClass (string con){ //クラス名を同じにするとコンストラクタやねんて。でも呼ぶときはnewやん
sti = con;
prv = con;
pub = con;
}
public void method() {
Console.WriteLine("static: " + sti);
Console.WriteLine("private: " + prv);
Console.WriteLine("public: " + pub);
}
}
}
559:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/11 01:25:09.11 KwUcbZQO0.net
Perlで書くとこれで合ってる?
{
package main_file;
my %TestA = file1::TestClass("引数1");
my %TestB = file1::TestClass("引数2");
${$TestA{pub}} = "てすと1";
${$TestB{pub}} = "てすと2";
$TestA{method}->();
$TestB{method}->();
}
{
package file1;
my $sti = ""; #スタティックな変数をシミュレート
sub TestClass {
my $prv = $_[0]; #クロージャとして機能させる
my $pub = $_[0];
$sti = $_[0];
my $sub = sub {
print "static: " . $sti . "\n";
print "private: " . $prv . "\n";
print "public: " . $pub . "\n";
return();
};
return( method => $sub, pub => \$pub); #パブリックは呼び出し元でアクセスできるようアドレスを返す
}
}
560:デフォルトの名無しさん (ワッチョイ 1c7b-sMwW)
16/09/11 02:34:05.89 PXOT+RwB0.net
perl厨お断り
561:デフォルトの名無しさん (ワッチョイ 9030-ZwPk)
16/09/11 03:42:16.63 K+OtkjhU0.net
Perlやってると勉強はできなくなるらしいな
562:デフォルトの名無しさん (ワッチョイ fb49-nhzf)
16/09/11 04:05:19.92 RiSeQbPk0.net
>>551
public/privateとstaticはごっちゃにしたらダメ。
public staticとかprivate staticとか指定出来る。
563:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/11 05:06:56.23 KwUcbZQO0.net
>>555
わかった。ありがとう。
564:デフォルトの名無しさん (ワッチョイ 9342-tq+X)
16/09/11 09:05:21.64 BLHdbzh90.net
Perlのような変態言語が組めるのに
なぜC#のアクセス指定子ごときで躓くのか
565:デフォルトの名無しさん (ブーイモ MMb1-Te6E)
16/09/11 09:19:28.13 16fUBnygM.net
こうも連日つまらない質問が来ると辟易すえうね
入門書ぐらいは読んでから質問したらどうなの
566:デフォルトの名無しさん (ワッチョイ 693a-tq+X)
16/09/11 13:58:37.76 BlSjMya00.net
>>552
blessを使わず、
わざわざhashぽく関数参照して呼び出す意図は?
567:デフォルトの名無しさん (ワッチョイ 693a-tq+X)
16/09/11 14:02:38.75 BlSjMya00.net
// C# のクロージャ例
Func<int> CreateClosure()
{
int i = 0;
Func<int> counter = () => ++i;
return counter;
}
568:デフォルトの名無しさん (ワッチョイ 7d4a-chQw)
16/09/11 15:44:20.04 EHkX+KfY0.net
自作のソリューションにプロジェクトが数個あり、
参照設定がリビルドなどしたタイミングで参照が見つからない
と言うエラーになる場合があります。
でもエラーが出ていても正常に実行できます。
VSを再起動するとエラーは解消します。
何が原因でしょうか?
569:デフォルトの名無しさん (ワッチョイ 98d4-T8i7)
16/09/11 16:03:01.02 b5d1ew5Y0.net
Perlスクリプトの翻訳を続けてもベターCの域から出ないよ
JavaでもC#でもC/C++でも変わらないから人口も多いJavaスレにでも行ったほうが幸せじゃないの?
570:デフォルトの名無しさん (ワッチョイ 98ff-Ai1A)
16/09/11 16:07:30.28 sDjieMc30.net
>>561
参照欄にマークついたりしてない?
そこでフルパス見られるよ
32/64関係かも?AnyCPUかな
571:デフォルトの名無しさん (ワッチョイ e63c-j70e)
16/09/11 16:13:14.53 zF4qt1T70.net
>>561
ビルドの順序をちゃんと指定してないんじゃね?
572:デフォルトの名無しさん (ワッチョイ 98ff-Ai1A)
16/09/11 16:14:34.18 sDjieMc30.net
ああ、依存関係指定してないとかか
573:デフォルトの名無しさん (ワッチョイ 7d4a-lDuG)
16/09/11 17:23:25.51 EHkX+KfY0.net
>>564
何回もチェックしました。
>>565
何十回もチェックしました。
574:デフォルトの名無しさん (アウアウ Sa09-nnaQ)
16/09/11 17:29:29.42 WnLcVcZ+a.net
>>566
ないとは思うけど、ひょっとして
プロジェクト参照じゃなくてアセンブリを直接参照とかしてない?
575:デフォルトの名無しさん (ワッチョイ 7d4a-lDuG)
16/09/11 17:31:32.28 EHkX+KfY0.net
>>567
してますが何か問題有りますか?
576:デフォルトの名無しさん (アウアウ Sa09-nnaQ)
16/09/11 17:33:22.28 WnLcVcZ+a.net
>>568
現に問題起こってるじゃんw
577:デフォルトの名無しさん (ブーイモ MMb1-Te6E)
16/09/11 17:34:29.53 16fUBnygM.net
プロジェクトあるのにアセンブリ参照するのは何故?
578:デフォルトの名無しさん (ワッチョイ 7d4a-lDuG)
16/09/11 17:35:29.68 EHkX+KfY0.net
>>570
癖です
579:デフォルトの名無しさん (ブーイモ MMb1-Te6E)
16/09/11 17:36:34.78 16fUBnygM.net
>>571
癖なら仕方がないですね
580:デフォルトの名無しさん (ワッチョイ 7d4a-lDuG)
16/09/11 17:40:33.13 EHkX+KfY0.net
>>572
2013ではこの問題は出なかったのに
2015ではこの問題が出ます。
なぜですか?
581:デフォルトの名無しさん (ブーイモ MMb1-Te6E)
16/09/11 17:43:10.59 16fUBnygM.net
>>573
不思議ですね
582:デフォルトの名無しさん (ワッチョイ 81d6-XNJE)
16/09/11 17:44:42.34 pxo2/Ce
583:40.net
584:デフォルトの名無しさん (ワッチョイ 7d4a-lDuG)
16/09/11 17:45:02.33 EHkX+KfY0.net
>>574
2015のバグでしょうか?
585:デフォルトの名無しさん (アウアウ Sa09-nnaQ)
16/09/11 17:46:10.32 WnLcVcZ+a.net
>>573
運が良かっただけだと思うよw
VS2005の時代によく分かってなくて同じチョンボをしたことがあるけど、
やっぱり>>561みたいな気まぐれに問題が起こる感じだった
586:デフォルトの名無しさん (ブーイモ MMb1-Te6E)
16/09/11 17:49:58.65 16fUBnygM.net
>>576
わかりかねます
Microsoftに問い合わせてみてはどうでしょうか
587:デフォルトの名無しさん (アウアウ Sa09-nnaQ)
16/09/11 18:56:50.78 WnLcVcZ+a.net
静かになったのはやっぱり>>567が原因か?
これだけ騒いだんだから報告ぐらいして欲しいよね
588:デフォルトの名無しさん (ワッチョイ fb49-nhzf)
16/09/11 23:06:03.58 RiSeQbPk0.net
>>576
VSのバグじゃなくて、使い方が悪い。
アセンブリ参照する時は、そのアセンブリ自体はビルド時に更新されないことが前提。
もしそのビルドで更新されるなら、プロジェクト参照を使うべき。
589:デフォルトの名無しさん (ワッチョイ b0eb-tq+X)
16/09/12 11:37:15.05 xRlv9baY0.net
>>532
class sample
{
static void Main()
{
Console.WriteLine("ヤッホー(∩´∀`)∩\n");
}
}
590:デフォルトの名無しさん (ワッチョイ 1c7b-tq+X)
16/09/12 15:10:57.76 dC9AlG3D0.net
>>559 ブレスでクロージャは出来ない気がしたから。深い意味はない。
>>560 ありがとう
あと関係ないけど、今GUIの勉強で猫でも分かるなんちゃらってサイト見てるのだけど、
猫には分かっても俺にはわからないことがけっこうあるようなので、
そんな俺みたいなレベルの人にも分かるようなサイト知ってる人がもし居たら教えてください。
URLリンク(www.kumei.ne.jp)
591:デフォルトの名無しさん (ワッチョイ 34ce-BWVR)
16/09/12 17:51:17.34 qDbI1d2i0.net
今32bit環境も想定して32bitで作成中なんですが、主に動かすのは64bit環境です。
それで、中身は主にWin32APIを使うプロジェクトなんですが、
DllImportした際に受け渡す構造体とかの32bit/64bit環境のサイズの情報ってどっかにまとまってないですかね?
今は一応動いてはいるけど、それで正しいのか判らんという状態で、
とても気持ち悪いのです。
592:デフォルトの名無しさん (ワッチョイ 4919-u8AM)
16/09/12 18:17:22.38 5uM6sdA10.net
自分でC++で動かしてみるのが一番手っ取り早い
593:デフォルトの名無しさん (アウアウ Sa09-nnaQ)
16/09/12 18:26:13.35 0pjXoVUQa.net
>>583
言ってることがよく理解できんけどこういうの?
URLリンク(msdn.microsoft.com)
594:デフォルトの名無しさん (ワッチョイ f023-tq+X)
16/09/12 18:53:04.14 ZFI9hvo+0.net
>>583
構造体のサイズといってもメンバを>>585のように読み替えるだけで
構造体情報はMSDNなりSDKのヘッダファイルに書かれていると思うけど
但しWindows2000の情報は古いのでダメだ、VC++のIntelliSenseを見るとか
基本的にはポインタ系とsize_t系くらいじゃない、これをIntPtrで定義する
refやoutが適切な時はそれで良いし、他[In,Out]やArrayWithOffsetを適宜
Unicode対応APIがあれば(安全で速い)Charset.Unicodeを使うとか
関数ポインタのデリゲートにはUnmanagedFunctionPointerを使うとか
繰り返し呼び出し速度が気になる場合はSuppressUnmanagedCodeSecurityとか
595:デフォルトの名無しさん (ワッチョイ 98d4-T8i7)
16/09/12 20:15:41.40 dVnv8TGV0.net
すまんが、XamarinStudioについているGit関連の機能って一度に1つバージョンを戻すことしかできないの?
それ以上のことはコンソールでやれってことなんかな・・・・
596:デフォルトの名無しさん (アウアウ Sa09-nnaQ)
16/09/13 02:06:56.94 Pc6Wm7Aaa.net
質問するだけしてトンズラする感じ悪い奴多いな最近
597:デフォルトの名無しさん (ワッチョイ 1ceb-tq+X)
16/09/13 13:19:25.57 KmoeAHv00.net
2ちゃんねるで見返りを求めてはいけない
ここはヤフー掲示板じゃない
礼などしなくていい、ただし、教えてもらったことは必ず身につけて
もし同じようなことを質問している人がいたら、かつての自分がしてもらったように
教えてあげなさい
598:デフォルトの名無しさん (ワッチョイ bc42-tq+X)
16/09/13 16:32:00.74 q0gvgXcr0.net
CommonSaveFileDialog でダイアログを閉じてからでないと FileName 等が取得できないようです
FileOk でフルパスを評価し「既に存在します上書きしますか?」みたいなことをやりたいのですが
良い方法を教えてください
599:デフォルトの名無しさん (ワッチョイ 98ff-Ai1A)
16/09/13 16:49:12.84 PKqvRNpu0.net
OverwritePrompt に true だと足りない?
600:589 (ワッチョイ bc42-tq+X)
16/09/13 17:13:31.09 q0gvgXcr0.net
>>591
ありがとうございます
この機能は問題ないのですが
既存の名前の他にある特定の名前でも独自メッセージを出すようにしたいのです
説明不足ですみませんでした
601:デフォルトの名無しさん (アウアウ Sa09-nnaQ)
16/09/13 17:42:42.66 c6Y5aSJza.net
CommonSaveFileDialogってWin7の時代に出たあれのか。
ググってもほとんど情報ないのが悲しいねw
やっぱりXPで使えないんじゃ仕事じゃ使えないよねまだまだ
602:デフォルトの名無しさん (ワッチョイ 98ff-Ai1A)
16/09/13 18:17:37.92 PKqvRNpu0.net
イベント時にファイル名取れないかって話か
SelChangeでもでてこないな、継承するかソースついてるからそれみて
なんとかするしかないかねえ
603:デフォルトの名無しさん (スプッッ Sd28-j70e)
16/09/13 18:32:54.04 LmZnag12d.net
テストケースを作る達人いるかね
604:デフォルトの名無しさん (ワッチョイ bc42-tq+X)
16/09/14 07:35:28.33 LIctzWig0.net
URLリンク(aster.or.jp)
605:デフォルトの名無しさん (ワッチョイ 8185-MXHb)
16/09/14 17:20:03.55 DRF/iRYF0.net
あるインターフェースの非同期メソッドを別の非同期メソッドを使って実装しなければいけないのですが、
どうすればいいでしょうか。GetXXXAsyncが実装しなければいけない非同期メソッドで
別のクラスのインスタンスyyyのGetYYYAsyncで実装しなければいけません。
XXXの結果はYYYに変換できるものとします。
public Task<XXX> GetXXXAsync() {
yyy.GetYYYAsync(t => {
var yyy = t.result // XXXをYYYに変換
return ????
}
}
606:デフォルトの名無しさん (ワッチョイ 3279-tq+X)
16/09/14 17:21:19.05 5MgbrOE10.net
<XXX>が一瞬<><><><>に見えた
607:デフォルトの名無しさん (ワッチョイ 8185-MXHb)
16/09/14 17:23:00.56 DRF/iRYF0.net
それとも、awaiを使うんでしょうか?
public async Task<XXX> GetXXXAsync() {
var yyy = await yyy.GetYYYAsync();
return ConvertToXXX(yyy); // YYYをXXXに変換
}
もちろん、上のコードではreturn文の型が違うのでコンパイルできませんが。
608:デフォルトの名無しさん (ワッチョイ 8185-MXHb)
16/09/14 17:24:07.03 DRF/iRYF0.net
>>597の
>var yyy = t.result // XXXをYYYに変換
は間違いいですね。YYYをXXXに変換するのでした。
609:デフォルトの名無しさん (ワッチョイ 8185-MXHb)
16/09/14 17:27:27.84 DRF/iRYF0.net
変数名とかかぶtってたりポカやってますが。すみません。
var zzz = await yyy.GetYYYAsync();
zzzとかにします。
610:デフォルトの名無しさん (フォォーッ MM63-tq+X)
16/09/14 18:32:23.18 rtwXtOmSM.net
タイマーを使ってラベルの文字列を1文字ずつ表示する処理についての質問です
Column1列の0行目に入ってる文字列の長さを取得する方法がわからなくて困ってます
それがわかれば実現できそうな気はしてるのですが・・・
わかる方いたら教えてください
private void timer1_Tick(object sender, EventArgs e)
{
int nagasa =0;
label1.Text = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();
nagasa +1;
if(nagasa > ココをどう書けばいいのかわからない)
{
nagasa = 0;
timer1.Stip();
}
}
611:デフォルトの名無しさん (ワッチョイ 9030-ZwPk)
16/09/14 18:37:45.78 ZbLz4+NF0.net
目が~目が~
まずインターフェースと別のクラスのシグニチャを正しく漏れなく記載するんだ
命取られる訳じゃねえ
落ち着け、推敲しろ
612:デフォルトの名無しさん (ワッチョイ 9030-ZwPk)
16/09/14 18:38:44.13 ZbLz4+NF0.net
>>601
>>603
613:デフォルトの名無しさん (ワッチョイ 9030-ZwPk)
16/09/14 18:45:11.80 ZbLz4+NF0.net
>>602
StringにキャストしてLengthプロパティ参照ではあかんのですか
614:デフォルトの名無しさん (ワッチョイ 8185-MXHb)
16/09/14 18:47:20.85 DRF/iRYF0.net
>>603
まず、実装するのはUWPですがISupportIncrementalLoading.LoadMoreItemsAsyncです。
URLリンク(msdn.microsoft.com)
で、要はその実装の内部で、HttpClient.SendAsync()を呼んで、
レスポンスを加工して、LoadMoreItemsAysncの戻り値のIAsyncOperation<LoadMoreItemsResult> に
したいわけです。
615:デフォルトの名無しさん (フォォーッ MM63-tq+X)
16/09/14 19:17:14.13 rtwXtOmSM.net
>>605
レスありがとうございます
表示できるようになりましたが1文字ずつではなく一気に全部表示されます・・・
private void timer1_Tick(object sender, EventArgs e)
{
string str;
int nagasa =0;
label1.Text = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();
nagasa +1;
str = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();
if(nagasa > str.Length)
{
nagasa = 0;
timer1.Stip();
}
}
616:デフォルトの名無しさん (フォォーッ MM63-tq+X)
16/09/14 19:27:05.98 rtwXtOmSM.net
コードを変えてみましたが1文字ずつ表示できませんでした
どう変えたらタイマーを使って1文字ずつ表示できるようになるんでしょうか
private void timer1_Tick(object sender, EventArgs e)
{
str = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();
foreach(char a in str)
{
label1.Text += a.ToString();
}
imer1.Stop();
}
617:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb1-fLkO)
16/09/14 21:59:20.32 3NkcLiKmK.net
>>608
カウンタ変数を使え
618:デフォルトの名無しさん (ワッチョイ bc5e-XNJE)
16/09/14 22:23:47.57 idTcOFf/0.net
>>608
strは配列じゃないんだからindexがないと全部表示されるのは当たり前だと思うんだが
str.Substring使うとかして1文字ずつ拾って表示しないと
619:デフォルトの名無しさん (ワッチョイ 693a-tq+X)
16/09/14 22:24:49.16 +DlTv1Gs0.net
>>608
せめて文法合ってるコードを張ってくれ
label1.Text = str.Substring(0, label1.Text.Length + 1);
if(label1.Text == str) timer1.Stop();
620:デフォルトの名無しさん (フォォーッ MM63-tq+X)
16/09/14 22:51:34.50 rtwXtOmSM.net
>>609-611
みなさんレスありがとうございます
>>609-610さんの意見を参考にコードを書きました
count
str = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();
label1.Text = str.Substring(0,count);
621:デフォルトの名無しさん (フォォーッ MM63-tq+X)
16/09/14 23:06:43.61 rtwXtOmSM.net
String str = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();
label1.Text = str.Substring(0,label1.Test.Length +1);
if(label1.Test == str)
{
timer1.Stop();
}
途中で書き込んでしまったり>>612の途中のコードも貼ろうと思いましたが
なぜか書き込みできなかったので>>611さんのコードだけにしときます
レスしてくださったみなさん本当にありがとうございました
622:デフォルトの名無しさん (ワッチョイ 037b-chWY)
16/09/15 01:14:25.30 BGRQA4DR0.net
xmlからdataSetにセットした文字列がtextBoxやlabelで改行されないのですが、特別なことをしないといけないのでしょうか?。
試してみたxmlファイル
<Table>
<Column>あいう \r\n えお</Column>
</Table>
<Table>
<Column>"かき" + \r\n +"くけこ"</Column>
</Table>
<Table>
<Column>"さし" + CR + LF + "くけこ"</Column>
</Table>
textBox.Text = Convert.ToString( dataset.Tables{"Table"}.Rows[0]["Column"]);
結果は改行コードが認識されず(あいう \r\n えお)や("かき" + \r\n +"くけこ")といったように、そのまま出力されて�
623:オまいます。 解決策を教えてください。お願いします。
624:デフォルトの名無しさん (ワッチョイ 5f02-Zdre)
16/09/15 05:54:29.82 jXLgVuef0.net
Labelってそもそも改行して表示できたっけ?
TextBoxのMultilineがfalseとか言うオチじゃないのか?
まさか改行コードじゃなくて
625:デフォルトの名無しさん (ワッチョイ 5f02-Zdre)
16/09/15 05:57:21.93 jXLgVuef0.net
あれ、切れた
まさか改行コードじゃなくて ”¥r¥n”って文字列が入ってるってオチじゃないだろうな
と書いてたんだが(クォーテーション囲みのとこは半角で)
626:デフォルトの名無しさん (ブーイモ MM9f-eXu6)
16/09/15 07:54:18.77 HtD/99ZTM.net
C#よりまずC言語で基礎を学んできたほうがいい
627:デフォルトの名無しさん (ワッチョイ 233a-chWY)
16/09/15 09:37:13.88 4hO/LARH0.net
>>614
数値参照
628:デフォルトの名無しさん (ワッチョイ 037b-chWY)
16/09/15 11:56:00.29 BGRQA4DR0.net
>>616
labelでも改行されますよ。
textBoxで試す時はMultilineはtrueにしてますよ。
xmlのデータをそのまま書いてるので”¥r¥n”とはやってないです。
textBox.text → dataSet → writexmlで保存し、readxmlmi→ dataSet → textBox.textでロードしてます。
>>618
すみません。ちょっとわからないので、もう少し詳しく教えていただけないでしょうか。
629:デフォルトの名無しさん (ワッチョイ bf41-jsoS)
16/09/15 14:55:57.11 oVe6chyL0.net
>>617
ほんとこれ
クラスとかなんて後からでいいわ
630:デフォルトの名無しさん (オイコラミネオ MM3f-wJFc)
16/09/15 15:17:19.63 tpr9+BX0M.net
System.IOのPathクラスにメソッドを追加する方法はないですか?
Pathクラスは静的クラスなので継承できなくて困ってます
631:デフォルトの名無しさん (ワッチョイ a7ff-oW7a)
16/09/15 15:24:15.63 cPNlrWMs0.net
拡張メソッド使えない?
632:デフォルトの名無しさん (ワッチョイ 83dc-wJFc)
16/09/15 15:24:43.91 Cj/yMtkH0.net
>>621
そんなことをする意味はない
独自にPathHelperクラスとか作ればいい
633:デフォルトの名無しさん (ワッチョイ c730-4e/M)
16/09/15 15:26:31.74 Spuf+iD10.net
どうしてもやりたいならC#やめたらいいよ
無理だから
634:デフォルトの名無しさん (ワッチョイ a7ff-oW7a)
16/09/15 15:50:34.62 cPNlrWMs0.net
だから拡張メソッドでいいでしょ
やることは >>623 だけど、
>System.IOのPathクラスにメソッドを追加
したように見える
635:620 (オイコラミネオ MM3f-wJFc)
16/09/15 16:14:41.93 tpr9+BX0M.net
拡張メソッドだとどう記述するんでしょう?
拡張メソッドって例えばstringクラスにメソッドを追加したように見せかけるには
メソッド名(this string オブジェクト名)
って感じにすると思うんですがこれだと静的クラスはできなくないです?
636:デフォルトの名無しさん (ワッチョイ a319-tp8f)
16/09/15 16:45:12.61 rXzgatzr0.net
うん、できない
624はPathクラスが静的クラスだったことを忘れてたんだな
637:デフォルトの名無しさん (ワッチョイ 175e-9vqT)
16/09/15 20:00:02.57 /+11+XuH0.net
>>619
暇つぶしに試してみたけど>>616であっているじゃないか
<Table>
<Column>あいう
えお</Column>
</Table>
でtextBox.Text = Convert.ToString( dataset.Tables["Table"].Rows[0]["Column"]);
どんな勘違いしたのか知らんが>>616に謝ったほういいと思う
>>615
ちなみにできないのはコンボボックスとか改行を区切りにしているコントロールだな
638:デフォルトの名無しさん (ワッチョイ d37b-chWY)
16/09/15 20:50:10.05 4n2t8Mfb0.net
>>628
こちらのxmlファイルのソースは、保存する時に改行コードだと認識されずに、下のように保存されてるみたいです。
<Table>
<Column>あいうえお</Column>
</Table>
複数のラベルに表示させる為に、データを入力するテキストボックスをデータグリッドビューへ変更しました。
プロジェクトをアップしたので、どこを変えたら改行コードを認識して>>628さんのようなxmlファイルになるのでしょうか。
URLリンク(fast-uploader.com)
>>616
こちらの勘違いでした。
すみませんでした。
639:デフォルトの名無しさん (ワッチョイ 375b-eXu6)
16/09/15 21:07:15.47 iYCM94tJ0.net
💩💩 じゃないの?
って>>618も言ってるわけだが。
640:デフォルトの名無しさん (ワッチョイ 5f02-+iqG)
16/09/15 21:08:54.40 jXLgVuef0.net
>>628
Labelで改行、確かにできてるな
大昔のVS(2003で確認)のデザイナでは設定できなかったので勘違いしてたのかも
それでもコードで突っ込んだら改行してたわ
641:デフォルトの名無しさん (ワッチョイ 375b-eXu6)
16/09/15 21:09:25.57 iYCM94tJ0.net
ぁ。
&#13;&#10; の半角な。
642:デフォルトの名無しさん (ワッチョイ fb17-dM7R)
16/09/15 21:23:47.93 kyc/d2BX0.net
WinFormsはめったにやらないしやってもDataGridViewなんか絶対使わないが貼ってあるプロジェクトをDLして見てみた。
で、ちょっとググると URLリンク(dobon.net)
falseじゃねーか。trueにしたら改行されたぜ(手作りの改行入りXMLで)。
セル入力が改行入力できるのを確認してそのままセーブ。ちゃんとXMLに改行が保存されている。
643:デフォルトの名無しさん (ワッチョイ 175e-9vqT)
16/09/15 21:35:16.58 /+11+XuH0.net
>>629
それよくわからんし、古いVS使っているからそのままこちらでは使えん
URLリンク(ideone.com)
全部一体にしたソース上げておく
ボタン1で書き込み、ボタン2で読込み、ボタン3で表示
644:デフォルトの名無しさん (ワッチョイ d37b-chWY)
16/09/15 21:37:31.01 4n2t8Mfb0.net
>>633
データグリッドビューにも改行できるプロパティがあったとは。
しょうもない質問に、お付き合いくださった皆様本当にありがとうございました。
645:デフォルトの名無しさん (ワッチョイ d37b-chWY)
16/09/15 21:39:56.73 4n2t8Mfb0.net
>>634
わざわざソース作ってくれてありがとうございます。
ソースを確認して、解析したいと思います。
なにからなにまでありがとうございました。
646:デフォルトの名無しさん (アウアウ Sa1f-NmdU)
16/09/15 21:49:13.86 JEiXRkBDa.net
横からすまんけどDataGridView使わないで、何で表示させるの?
区切りよく見せるやり方がわからない
647:デフォルトの名無しさん (スップ Sdbf-wJFc)
16/09/16 07:05:58.60 EiAsfn7Ed.net
Googletestすんごく便利じゃね?ってなった
648:>>633 (ワッチョイ 175e-9vqT)
16/09/16 18:45:59.06 ad4eOHdw0.net
button2_Clickのds.ReadXmlの前にds = new DataSet();を置かないとReadXmlの意味が無かったわw
申し訳ない
649:デフォルトの名無しさん (ワッチョイ 17ea-Pgjg)
16/09/17 02:09:38.81 PLH+Fwg30.net
文字列形式の数字を数値形式で変数に格納するやり方について教えてください。
整数であれば
int num = int.Parse("123,456,789", System.Globalization.NumberStyles.AllowThousands);
これでOKですよね?
では、小数点以下が含まれていて、かつ1000以上の数字はどうすればいいのでしょうか?
たとえば987,654.3みたいな数字です。
単純にfloat.parseってしたら怒られちゃいました。
650:デフォルトの名無しさん (ワッチョイ 175e-9vqT)
16/09/17 02:35:45.70 Lk1O5YzS0.net
>>640
なんかいっぱい方法があるなw
URLリンク(dobon.net)
string st = "987,654.3";
float f = float.Parse(st, System.Globalization.NumberStyles.Any);
decimal d = decimal.Parse(st, System.Globalization.NumberStyles.AllowDecimalPoint|System.Globalization.NumberStyles.AllowThousands);
double db = double.Parse(st.Replace(",", ""), System.Globalization.NumberStyles.Float);
自分で適当に試してくれ
651:デフォルトの名無しさん (アウアウ Sa9f-8sPh)
16/09/17 02:51:37.76 0IJLfM4Ca.net
こんな質問してる人がありえないとは思うけど、日本以外での展開も考えてるなら
非英語圏だとカンマとポイントが逆だったりして、最初によく仕様を決めておかないと
あとでハマるかもよw
652:デフォルトの名無しさん (ワッチョイ 17ea-Pgjg)
16/09/17 08:01:09.21 PLH+Fwg30.net
すいません、ありがとうございました
653:デフォルトの名無しさん (ブーイモ MM9f-eXu6)
16/09/17 08:15:17.67 ZlGddzijM.net
国際化はプレゼンテーションに小細工するだけじゃ追いつかないよね
654:デフォルトの名無しさん (ドコグロ MM3f-wJFc)
16/09/17 11:24:57.53 4J0ckOcAM.net
文字の長さが違うから
コントロールのサイズや構成自体を変えろとか言ってきたりするから
自動では無理だね
655:デフォルトの名無しさん (ワッチョイ c35b-NmdU)
16/09/17 12:15:36.41 ChuD1bst0.net
すみません。質問です
フォームアプリを作成中(勉強中)です
Form1.csのファイルをPertialで分割して別のソースファイルを作ったときに、分割して作ったソースファイルをエクスプローラーでForm1の子となるように表示させたいです。
プロジェクトファイルを変更して子表示には出来ましたがSubタイプをCodeに変えてもコンパイラに?Formに書きかえられてしまい、ダブルクリックでソースファイルを開けません。
どうしたらいいのでしょうか
656:デフォルトの名無しさん (アウアウ Sa9f-8sPh)
16/09/17 12:36:18.20 HrJPJui6a.net
>>646
ごめん何言ってるのか全然わからない
657:デフォルトの名無しさん (JP 0H9f-nW2o)
16/09/17 12:57:05.38 qiyywEhcH.net
プロジェクトのツリー構成をいじろうとして変なことしてるけど元に戻っちゃうよ~
ってことかな
658:デフォルトの名無しさん (ワッチョイ c730-4e/M)
16/09/17 13:03:02.02 v/zQjqAf0.net
ああ、「エクスプローラ」って「ソリューションエクスプローラ」のことか
659:デフォルトの名無しさん (ワッチョイ 5b49-oG/L)
16/09/17 13:09:04.40 0+lykI9p0.net
>>646
諦める。
partialって、デザイナーの自動生成ソースと分けるために使われてるけど、それ以外は普通使わない。
クラスを作って機能毎に分けるようになれば、そんなことする必要ないから。
660:デフォルトの名無しさん (ワッチョイ c35b-NmdU)
16/09/17 14:14:38.63 ChuD1bst0.net
>>647
>>648-650
のかたの認識で間違いないです
>>648-650
ありがとうございます
できない、やることに意味があまり意味ないってことで了解しました
連投で申し訳ないのですが
機能別にわけたクラスがForm1のコントロールにアクセスするのは、Form1.textbox1.textのような記述で行っていけばいいんでしょうか
普通どういう風にコーディングしていくのかがわかりません
661:デフォルトの名無しさん (ワッチョイ c730-4e/M)
16/09/17 14:34:03.35 v/zQjqAf0.net
C#にはデフォルトインスタンスがないから
VBみたいにクラスからアクセスはできないぜ
(そのつもりで書いているのか分からないが)
C#入門のお手伝いをご希望なら
私どもではなく書籍か入門サイトを頼った方が無難である
662:デフォルトの名無しさん (ワッチョイ 175e-9vqT)
16/09/17 14:35:44.65 Lk1O5YzS0.net
>>651
URLリンク(dobon.net)
663:デフォルトの名無しさん (アウアウ Sa9f-8sPh)
16/09/17 15:16:11.27 HrJPJui6a.net
>>651
Formの外のクラスからFormの持つコントロールにアクセスするようなコードを書いてはダメ。
TextBoxのTextの変更はFormの責任でやる
664:デフォルトの名無しさん (ブーイモ MM9f-eXu6)
16/09/17 15:20:57.18 exk5TsB4M.net
VB6の被害者ってまだいたんだね
665:デフォルトの名無しさん (ワッチョイ c35b-NmdU)
16/09/17 15:45:47.87 ChuD1bst0.net
>>652-654
ありがとうございます
いえいえ、ここの方たちの意見は十分参考になります
入門用だとForm1クラスの中にクラスを作ってるものばかりなので、それに沿って記述していくとForm1のソース量が延々長くなり最初のような質問をさせていただきました
>>653
の方を参考に勉強してみます
また何かあれば質問させてください
ありがとうございました
666:デフォルトの名無しさん (ワッチョイ 97d4-EMlz)
16/09/17 17:51:24.24 2hKXgH7u0.net
メソッドの引数にオブジェクトがある場合に、デフォルト値(?)を設定することってできないのでしょうか?
class B{}
があった場合に
A(B b = new B())
のようなことがしたいのですが・・・・
667:デフォルトの名無しさん (ワッチョイ 83dc-wJFc)
16/09/17 18:03:49.90 /l22qB3W0.net
>>657
オーバーロードする
もしくはnullをデフォルトにしといて先頭でnullチェックして代入
668:デフォルトの名無しさん (ドコグロ MM3f-wJFc)
16/09/17 18:35:43.77 4J0ckOcAM.net
>>656
partialもいいよ
無駄にクラス分けて複雑になったら意味ないし
画面がでかいことと設計がどうとかって関係ないし
見た目Formにあるコントロールの処理がFormに無い時点で俺は気が狂う
669:デフォルトの名無しさん (ブーイモ MM9f-eXu6)
16/09/17 18:41:40.76 kuAV8nPQM.net
クラス別けても複雑にはならないだろう分け方が間違ってなければ
Partialは分業や自動生成のための物で機能分割のためのものではない
670:デフォルトの名無しさん (ワッチョイ 03cb-wJFc)
16/09/17 19:47:28.29 UtwXhxtU0.net
>>660
だから機能分割しないって
単に画面がひたすらでかいときってあるじゃん
その数百はあろうコントロールの載った画面の端っこにラジオボタンがあったとして
その処理がどこに書いてあればわかりやすいんだよって話よ
671:デフォルトの名無しさん (アウアウ Sa9f-8sPh)
16/09/17 20:09:00.98 HrJPJui6a.net
>>661
言いたいことは分からんでもないけど、部分クラスを使って「分ける」んじゃなくて、
regionを使って「整理する」方が得策だと思うよ
672:デフォルトの名無しさん (ワッチョイ 03cb-wJFc)
16/09/17 20:11:32.28 UtwXhxtU0.net
>>662
partialでいいじゃん
673:デフォルトの名無しさん (ブーイモ MM9f-eXu6)
16/09/17 20:14:20.19 kuAV8nPQM.net
>>661
そういう巨大なビューは容易に管理可能なサイズの子ビューに分割する
ビューは複数の子ビュー間の調停を行いそれ以外の最低限の処理しかしない
一度の分割では不十分な場合には子ビューが再帰的に子ビューを持っても良い
ラジオボタンの処理はラジオボタンが直接に配置されたビューに書けば良い
そして各ビューにはクラスを割り当てて実装する
PartialもRegionも使わない
674:デフォルトの名無しさん (アウアウ Sa9f-8sPh)
16/09/17 20:22:44.82 HrJPJui6a.net
>>663
部分クラスは一覧性がよくない。
コードの見通しをよくして見たい個所をすぐ探せるように分割したはずが、
結局複数のファイルをいちいち渡り歩いて探さなきゃならない本末転倒が起こる。
>>664はユーザーコントロールを使えと言ってるのかもしれないけど、
コードの見通しをよくするためにユーザーコントロールを使うのはちょっと違うと思う。
675:デフォルトの名無しさん (ワッチョイ 175e-9vqT)
16/09/17 20:24:29.74 Lk1O5YzS0.net
職場の制約じゃないんだし、どっちでも好きなようにしたらいいと思うが議論スレでやれよ
676:デフォルトの名無しさん (ワッチョイ 8394-1I2o)
16/09/17 20:41:30.63 qocRQo9a0.net
議論スレw
気に入らない奴らを追い出したいからとバカが作ったあのスレ
作るだけ作って自分でも盛り上げず過疎ってるあのスレ
…よくあんなとこに誘導しようと思うなw 作った人ですか?w
677:デフォルトの名無しさん (ワッチョイ c730-4e/M)
16/09/17 21:25:21.29 v/zQjqAf0.net
単芝くっさ
678:デフォルトの名無しさん (ワッチョイ 179d-eXu6)
16/09/17 22:16:24.50 WMm2U5Oz0.net
くっさとかくっさ
679:デフォルトの名無しさん (ガラプー KK5f-Y+P+)
16/09/17 22:21:10.33 VM86FVmfK.net
草と書くっさ
680:デフォルトの名無しさん (アウアウ Sa1f-NmdU)
16/09/17 22:23:03.01 KhWwRLFba.net
まともな回答もできんやからが荒らすな
681:デフォルトの名無しさん (ブーイモ MM9f-eXu6)
16/09/17 22:29:33.53 2JExcSSQM.net
>>665
普通のクラスだろうとUIクラスだろうとプログラミングの基本は変わらないよ
分割して統治せよ
オブジェクト指向言語ではその手段が主にクラスであり
UIではコントロールやコンポーネントというだけの話
適切にクラス化すれば自然とプログラムの見通しは良くなるし
見通しをよくするための手段としてクラス化を選択するのは正当な判断だ
むしろリージョンやパーシャルで分割するという判断の方が良い習慣に逆らった邪道な判断だろうね
682:デフォルトの名無しさん (ワッチョイ 977b-chWY)
16/09/17 22:34:39.28 bbRJl+Ku
683:0.net
684:デフォルトの名無しさん (アウアウ Sa9f-8sPh)
16/09/17 22:40:50.65 HrJPJui6a.net
>>672
端的に言えば、ネーミングに困るような分割は分割統治でも何でもないよ。
ただの細切れだ。
命名に困るよね?
>>664みたいな分割をしたら。
685:デフォルトの名無しさん (ワッチョイ 83dc-U9f6)
16/09/17 22:48:21.12 /l22qB3W0.net
本当に必要なコードなら仕方ないけど、
巨大なクラスって大抵同じような処理がいろんなところに散らばってたりコピペまみれだったり
より上のレイヤでやるべきことをビューのコードと一緒くたにしてベタ書きしてたりするのが多いんだよね
まともなコードでソースファイル分けたくなるほどクラスが肥大化することは稀
686:デフォルトの名無しさん (ワッチョイ 03cb-wJFc)
16/09/17 23:00:37.63 UtwXhxtU0.net
>>675
単に使うからって理由で新聞みたいな細かさで配置されてる画面だってあるよ
上下左右に関連なんてなくてひたすらデータが羅列されてるだけみたいな
687:デフォルトの名無しさん (ワッチョイ c730-4e/M)
16/09/18 01:02:53.73 3bUsWpmg0.net
エッジケースを一般論として語る
688:デフォルトの名無しさん (ワッチョイ 03cb-D0fg)
16/09/18 08:10:21.19 Vs//CHex0.net
public class ListValue {
public string Col1;
public string Col2;
public static void LoadFromFile(List<ListValue> list, string filename) {
if (File.Exists(filename)) {
using (StreamReader reader = new StreamReader(filename, Encoding.GetEncoding("shift-jis"))) {
while (!reader.EndOfStream) {
string line = reader.ReadLine();
string[] splitData = line.Split('\t');
var tmp = new ListValue();
tmp.Col1 = splitData[0];
tmp.Col2 = splitData[1];
list.Add(tmp);
}
}
}
}
}
のような感じでTSVをLISTに読み込んでいますが、列数が数十もあると
tmp.Col1 = splitData[0];
tmp.Col2 = splitData[1];
が面倒なのでループにしたいと思ってます。
イメージとしては
for(略) {
tmp[i] = splitData[i];
}
こんな感じですが、tmp[i]のような書き方はできないようです。
どのように書けばループに出来るでしょうか。
689:デフォルトの名無しさん (ワッチョイ 37ce-D0fg)
16/09/18 08:50:24.05 Dby0x7420.net
public class ListValue {
public string[] Cols;
public SetSize(int len) { Cols = new string[len]; }
public string this[int i] {
set { this.Cols[i] = value; }
get { return Cols[i]; }
}
(略)
var tmp = new ListValue();
tmp.SetSize(splitData.Length);
for(略) {
tmp[i] = splitData[i];
}
listAdd(tmp);
(略)
かな?
690:デフォルトの名無しさん (ワッチョイ 83dc-U9f6)
16/09/18 08:58:10.66 FLMBUfED0.net
>>678
メンバに順序は無いので、何らかの手段で順序情報を付加してやる必要がある。
その上で、リフレクションを使って動的に値をセットする。
たとえばカスタム属性を使って以下のようにする。(動くかどうかは知らん)
public class OrderAttribute : Attribute {
public Order(int value) { this.Value = value; }
public int Value { get; private set; }
}
public class ListValue {
[Order(0)] public string Col1 {get; set;}
[Order(1)] public string Col2 {get; set;}
}
public static class TsvLoader {
public static IEnumerable<ListValue> LoadFromFile<T>(string filename) =>
File.ReadLines(filename)
.Select(line => line.Split(‘¥t’))
.Select(DeserializeRow);
public static T DeserializeRow<T> where T : class, new() (IEnumerable<string> row) {
var propvals = typeof(T).GetProperties()
.OrderBy(prop => ((OrderAttribute)p.GetAttribute(typeof(OrderAttribute))).Value)
.Zip(row, (prop, val) => new { Property = prop, Value = val });
var obj = new T();
foreach (var propval in propvals) { propval.Property.SetValue(obj, propval.Value); }
return obj;
}
}
こんなことするより素直に>>679の方がいいと思うけど
691:デフォルトの名無しさん (ワッチョイ 03cb-D0fg)
16/09/18 10:43:54.66 Vs//CHex0.net
>>679
ありがとうございます。
列名を配列にするとLINQが使いにくいのかなと思っています。
以前にLISTのLISTを作った時にそうだったので、配列も同じかなと。
ですが、考え方は勉強になりました。
>>680
ありがとうございます。
こちらは列名がそのまま使えるのでいいかなと思ったのですが、
ハイレベルすぎてついて行けませんでした。
結局のところ私のようなレベルであれば、数十列あったとしても
全部書いてる方が間違いがないようです。
列が増えた時に忘れそうですが・・・
ありがとうございました。
692:デフォルトの名無しさん (ワッチョイ 37ce-D0fg)
16/09/18 11:08:30.68 Dby0x7420.net
受け渡しがstring[]のままなら、
さっきの[]だけ定義して、コンストラクタで
public ListValue(string[] Cols_) { Cols = Cols_; }
list.Add(new ListValue(line.Split('\t')));
で1行に
693:デフォルトの名無しさん (ブーイモ MMbf-eXu6)
16/09/18 12:47:11.68 Yxs7/HnaM.net
今だったらCSV読み込み用のNuGetライブラリを使う場面だろうけど
初心者で自作したいならCSVを読み込んでDataTableに詰め込む処理を作る
これは自前のファイル解析処理でもいいしOleデータアダプタを使ってもいいしなにか別の方法でもいい
そしてデザイナーで型付データテーブルを定義する
少し前までは平凡な現場ではこういう事をよくやっていたものだ
694:デフォルトの名無しさん (ワッチョイ 333c-eXu6)
16/09/18 19:05:10.98 7K/Z8eac0.net
C#でおしゃれなUIをデザインしたいんだけどどうしたらいいですか?
Visual studioのwindowフォームだと味気ないデザインしか出来なくてこまってます
どなたか教えてください
695:デフォルトの名無しさん (ワッチョイ 175e-9vqT)
16/09/18 19:11:21.49 4IEY4Cwd0.net
>>684
コントロールを自分で描画する
URLリンク(dobon.net)
変えるのが背景くらいでいいのならデザイナで設定できるけど
696:デフォルトの名無しさん (ワッチョイ 83dc-wJFc)
16/09/18 19:21:44.92 FLMBUfED0.net
>>684
UWP使えば
697:デフォルトの名無しさん (ワッチョイ 97d4-EMlz)
16/09/18 22:44:04.59 dUd9O0RL0.net
共変性についてよく理解できないのですが・・・・
class A : B {}
の時に、
B b = new A();
のようなことができると入門書などに書かれていますが、
A b = new A();
とした場合と何が違うのですか?
698:デフォルトの名無しさん (アウアウ Sa9f-8sPh)
16/09/18 22:59:05.90 tyXWdZhGa.net
>>687
とりあえずそれは共変と全然関係ないよw
699:デフォルトの名無しさん (ワッチョイ 83dc-W8Ns)
16/09/18 23:11:20.92 FLMBUfED0.net
>>688
共変で間違ってないよ
URLリンク(msdn.microsoft.com)
700:デフォルトの名無しさん (アウアウ Sa9f-8sPh)
16/09/18 23:16:40.64 tyXWdZhGa.net
>>689
いや間違ってるからw
701:デフォルトの名無しさん (ワッチョイ 97d4-EMlz)
16/09/18 23:25:08.86 dUd9O0RL0.net
共変なのかどうかよくわからずに言葉を使ってしまい申し訳ないのですが、例の2つはどういう違いがあるのですか?
型がAでもBでも変わりがないように見えてしまいます
702:デフォルトの名無しさん (アウアウ Sa9f-8sPh)
16/09/18 23:34:59.86 tyXWdZhGa.net
>>691
どのメンバーにアクセス可能かはオブジェクトの型ではなく変数の型で決まる。
だから上のbはAのみで実装されているメンバーにアクセスできない。
703:デフォルトの名無しさん (ワッチョイ 333c-eXu6)
16/09/18 23:45:27.02 2anw7PLb0.net
>>686
UWPってスキンとか変更できますか?
704:デフォルトの名無しさん (ワッチョイ 97d4-EMlz)
16/09/18 23:51:38.54 dUd9O0RL0.net
今試しに手元でやってみたのですが確かに派生先のメンバにはアクセスできませんでした
b is Aみたいなことをした時にtrueが返ってくるために同じではないかと勘違いしてたのがやっと理解できました
ありがとうございます
705:デフォルトの名無しさん (ワッチョイ c730-4e/M)
16/09/19 01:50:22.29 x6oYh1MF0.net
>>693
そんなもん標準では備わってない
せいぜいテーマ変えるくらい
URLリンク(msdn.microsoft.com)
706:デフォルトの名無しさん (ワッチョイ 2351-chWY)
16/09/19 07:26:38.08 byZSyyWN0.net
Formsから移行するならWPFだろうが、なんでいきなりUWPなんて話になるんだろうか。
707:デフォルトの名無しさん (ワッチョイ 333c-wJFc)
16/09/19 07:56:49.85 R4yOZzeH0.net
>>696
なぜいまさらWPF?
708:デフォルトの名無しさん (ワッチョイ 4723-chWY)
16/09/19 08:21:41.59 G088RuKS0.net
>>697
先週からUWP始めたけど、C++のDLLが呼び出せないとか右クリックメニューが出来ないなど
面倒なこと沢山有るよな
コントロールが増えて楽しいってのはあるんだが
709:デフォルトの名無しさん (ワッチョイ 2351-chWY)
16/09/19 08:23:12.93 byZSyyWN0.net
>>697
Formsからの移行だから。
なんで見た目を変えたいってだけで制約の多いUWP薦めるのか理解不能だわ。
710:デフォルトの名無しさん (ワッチョイ c730-4e/M)
16/09/19 08:31:37.25 x6oYh1MF0.net
WPFにしろUWPにしろ過疎過ぎて死亡
711:デフォルトの名無しさん (ワッチョイ 03cb-wJFc)
16/09/19 10:06:22.68 bJUofi690.net
>>697
オワコン確定なの?
712:デフォルトの名無しさん (ワッチョイ 83dc-W8Ns)
16/09/19 10:10:16.99 jZTV89ee0.net
始まったことすらありません
713:デフォルトの名無しさん (ブーイモ MM9f-eXu6)
16/09/19 10:10:26.90 vuaz7X22M.net
需要がなさすぎて終わる前に始まってすらいない
一般向けはブラウザかスマートデバイス向けのアプリばっかりだし
業務用デスクトップアプリは保守要員のスキル考えるとFormsしか採用できない
714:デフォルトの名無しさん (ベーイモ MMff-qrXn)
16/09/19 10:35:49.15 bIVnttmtM.net
XAMLがいけないのだよ
デスクトップ アプリを UWP アプリに変換する
URLリンク(developer.microsoft.com)
715:デフォルトの名無しさん (アウアウ Sa9f-8sPh)
16/09/19 10:36:25.30 dWsrNIgMa.net
むしろWPFは細々続いていくと思うけど...
ストアアプリみたいにまたいつ梯子を外されるかわらからないUWPなんか
覚えようって人は余程お人よしかMSラブとしか思えない
Petzoldとか、ストアアプリで本書いた人も恐らく相当怒ってるよねw
あんなことされたら今度はUWPで本書いてやろうって気にはなかなかならないはず
716:デフォルトの名無しさん (ベーイモ MMff-qrXn)
16/09/19 10:39:32.10 3DxG+ajbM.net
Microsoft、デスクトップアプリをUWPアプリへ変換するツールをWindowsストアで公開
URLリンク(pc.watch.impress.co.jp)
DesktopAppConverter
URLリンク(www.microsoft.com)
717:デフォルトの名無しさん (スプッッ Sdbf-wJFc)
16/09/19 10:50:32.07 CIKkLThgd.net
>>705
むしろ書くネタを投入してくれてると考えないと
718:デフォルトの名無しさん (エムゾネ FFbf-kmwO)
16/09/19 11:13:31.53 ezNHULaGF.net
下火も下火だもんな
719:デフォルトの名無しさん (ワッチョイ fbc0-chWY)
16/09/19 11:21:15.22 9tbHw/9w0.net
>>703
>保守要員のスキル
業務はこれだよな
WPFで作ってBinding楽すぎ!と使ってもらおうとしても、XAML見ただけで拒否反応示す人多すぎる
720:デフォルトの名無しさん (ワッチョイ c730-4e/M)
16/09/19 11:34:18.93 x6oYh1MF0.net
XAMLは書いても書いても頭に定着しなくてさぁ…
721:デフォルトの名無しさん (ワッチョイ 179d-chWY)
16/09/19 11:47:52.91 Jh8jv4fs0.net
つまりForms最高最強ってことですね?
これからも末永くよろしくお願いします
722:デフォルトの名無しさん (ワッチョイ 23ba-eXu6)
16/09/19 13:38:51.97 VY3VanBz0.net
WPFだけでなくVBScriptにSilverlightも
他ブラウザでは機能しない
つまり使えない
OS支配が偉大すぎだが
得意の後追い商法も効果なし
迷走Microsoft
723:デフォルトの名無しさん (オッペケ Sr1f-wJFc)
16/09/19 13:46:57.70 4tgdktKzr.net
Linqも全然使われてないですよね?
やっぱ処理が見にくいから?
724:デフォルトの名無しさん (ワッチョイ 477b-chWY)
16/09/19 15:52:15.40 MNVYkncZ0.net
見にくくはないだろ
オッサンが読めないから使うなって言われてるだけじゃね
725:デフォルトの名無しさん (ワッチョイ c3d6-9vqT)
16/09/19 15:56:12.87 Z/E4vnsc0.net
>>713
定期巡回お疲れ様です
726:デフォルトの名無しさん (ワッチョイ 03cb-wJFc)
16/09/19 16:18:19.01 bJUofi690.net
>>713
圧倒的に読める奴は減るな
727:デフォルトの名無しさん (アークセー Sx1f-wJFc)
16/09/19 16:34:06.70 eOwBF3hLx.net
>>713
はいっ!
728:デフォルトの名無しさん (ブーイモ MM9f-eXu6)
16/09/19 16:56:56.28 fik9yetTM.net
今でもたまにLinqが無かった時代のコードを保守する機会があるがあれは苦痛だ
729:デフォルトの名無しさん (アウアウ Sa9f-8sPh)
16/09/19 17:18:34.97 dWsrNIgMa.net
>>715
ラムダ式を出さなくなっただけ彼も進歩してるw
730:デフォルトの名無しさん (オッペケ Sr1f-wJFc)
16/09/19 18:27:21.89 4tgdktKzr.net
誰のこと言ってんのかわからんけど、おれどちらかというとプログラマじゃないからここでアホみたいな質問すると思う
731:デフォルトの名無しさん (ワッチョイ bf73-chWY)
16/09/19 20:49:54.41 DKrTn01q0.net
TabControl1のtabPage3にLabel1を追加したいのですが
Label a1 = new Label();
this.tabControl1.Controls.Add(a1);
this.tabPage3.Controls.Add(a1);
と試してもうまくいきませんどうしたらよいでしょうか?
732:デフォルトの名無しさん (ワッチョイ 175e-9vqT)
16/09/19 20:58:18.08 wipHk/080.net
>>721
デザイナで設置しないのはなにか理由があるの?
Label a1 = new Label();
this.tabPage3.Controls.Add(a1);
a1.Text = "hoge"; a1.BringToFront();
最後の行は表示確認用
733:デフォルトの名無しさん (ワッチョイ bf73-chWY)
16/09/19 21:18:25.46 DKrTn01q0.net
>>722
ありがとうございます。
tabControl1にたいしてtabPage1~かと思ったら
tabControl1,2,3含めてtabPage1~が増えるんですね。
データが固定じゃないのでデータによって
tabControl1のtabPageを増やすのをできるようにしたかったのです。
734:デフォルトの名無しさん (ワッチョイ bf73-chWY)
16/09/19 21:19:03.49 DKrTn01q0.net
>>722
解決しましたありがとうございます。
735:デフォルトの名無しさん (ワッチョイ 175e-9vqT)
16/09/19 21:36:38.88 wipHk/080.net
とりあえずデザイナで設置してみてDesigner.csの中身を見てみればよかったな。
他のコントロールでも同じだけど
721も自分のDesigner.csの中身を見て書いただけだしw
736:デフォルトの名無しさん (ワッチョイ 179f-AKTw)
16/09/20 13:59:33.52 qGlVjJF90.net
>>723
デザイナでタブコントロール複数設置すれば一目瞭然だが
tabContorol変わってもtabPageは1に戻らないよ
tabControl1.TabPages[ページIndexまたはタブのName].Controls.Add(a1);
737:デフォルトの名無しさん (ワッチョイ 1742-SOVl)
16/09/20 22:11:37.32 G5yMgC3y0.net
>>709
俺、昔、HTML見ただけで拒否反応出たわ
Web系なんて一生やらんと思ってたのに今やってるわ
738:デフォルトの名無しさん (ワッチョイ 1742-chWY)
16/09/21 16:00:32.26 2I665Pjk0.net
ツリービューの幅をジャストフィットさせる方法を教えてください
ノードの右端の座標とか水平スクロールバーが現れる幅とかが取得できればと思うのですが
739:デフォルトの名無しさん (ワッチョイ a319-tp8f)
16/09/21 17:35:44.35 b0Nua/000.net
表示されてるノードを走査してそれぞれのBounds.Rightを確認すればいいんじゃね
740:727 (ワッチョイ 1742-chWY)
16/09/21 18:35:23.37 2I665Pjk0.net
>>729
ありがとうございますピッタリできました
Bounds 見過ごしてました
これからはもっとよく確認します
741:デフォルトの名無しさん (ワッチョイ 333c-D0fg)
16/09/21 21:58:19.91 lQOLvI1I0.net
>HTML見ただけで拒否反応
これは解らんが
>Web系なんて一生やらんと思ってたのに今やってるわ
これは解る
742:デフォルトの名無しさん (ワッチョイ c35b-NmdU)
16/09/21 23:08:54.93 JVLqoW6f0.net
c#のお作法的に、フィールドに初期値をもたせるのって宣言と同時に直接代入するのとコンストラクタで設定するのってどちらが良いのでしょうか
743:デフォルトの名無しさん (ワッチョイ 333c-D0fg)
16/09/21 23:22:23.88 lQOLvI1I0.net
親クラスのコンストラクタで、子クラスのフィールドを利用する事があるなら
フィールドの宣言時に初期値を持たせておく
744:デフォルトの名無しさん (ワッチョイ 977b-a0dx)
16/09/21 23:47:25.62 o5hoVk+q0.net
string hoge = "hogehoge";
string fuga = hoge;
とした場合、fugaにはhogeのオブジェクトがコピーされて入るのですか?
それともhogeの参照のみがコピーされるのですか?
745:デフォルトの名無しさん (ワッチョイ 83dc-W8Ns)
16/09/21 23:48:50.32 bQEJ8r3q0.net
>>732
一般論として、プログラムはなるべく宣言的に書くのが良い
その意味でベストなのは宣言時代入かつreadonlyで、それができる場合は迷わずそうするべき
readonlyにできない場合は好みの問題だな
初期値だけを特別扱いするのは不自然だと感じる人もいれば宣言時代入の方が宣言的で見やすいと感じる人もいる
746:デフォルトの名無しさん (ワッチョイ 175e-9vqT)
16/09/21 23:51:34.59 49I69gX00.net
>>734
変数の場合は値が代入される
クラスの場合は参照になる
747:デフォルトの名無しさん (ワッチョイ 83dc-W8Ns)
16/09/21 23:53:56.45 bQEJ8r3q0.net
>>734
参照のみがコピーされるけど、Stringに関しては実用的にはそれを区別する必要はない
なぜならStringオブジェクトはイミュータブル(変更不能)なので、
インスタンスに対する変更の影響が同じインスタンスを参照する他の場所に波及するようなことは起こらないから
748:デフォルトの名無しさん (ワッチョイ 1690-5q76)
16/09/22 00:26:12.39 QaFi4YJK0.net
さて、某月額費用の掛かるアダルトサイトの
動画をDLするプログラムを頑張って作ります。
ハマったらここに質問するので宜しくね!
ちまちま手動ダウンロードに付かれた。
出来たら便利で公開したいけど、公開したら俺ってばれるwww
749:デフォルトの名無しさん (ドコグロ MMf4-xdvH)
16/09/22 08:50:28.86 pXuo09J0M.net
http通信あたりから勉強したらどうだろう?
750:デフォルトの名無しさん (ワッチョイ cd5b-aBDa)
16/09/22 11:50:22.29 TiDB0J3t0.net
>>733>>735
ありがとうございます
参考になりました
751:デフォルトの名無しさん (ワッチョイ 595b-xjL4)
16/09/22 13:01:39.48 R6k9xPvT0.net
オラクルのプロシージャの引数を結合配列(構造体配列)とした時、C#(というか.NET)でどういう風にパラメータを設定すればいいのかご存じの方いますか?
たとえば、下のような結合配列の型「TEST_TBL」をパッケージの仕様部で定義して、プロシージャの引数にした場合、
これを.NETから呼び出す時、DataTableやListを引数に指定することはできるのでしょうか?
TYPE TEST_REC IS RECORD(
A varchar2(8),
B number
);
TYPE TEST_TBL IS TABLE OF TEST_REC INDEX BY BINARY_INTEGER;
PROCEDURE TESTPROCEDURE(
prmTBL IN TEST_TBL
)
ググっていろいろ試しているのですが、なかなかうまくいきません。
単項目(numberやvarchar2)の配列なら実現できたのですが、項目数が多くなると煩雑になるので、上記のようなやり方ができるととても便利なのですが・・・。
752:デフォルトの名無しさん (ワッチョイ d7e2-NoHY)
16/09/22 16:37:30.73 wTxDVkWz0.net
private async Task PageLoad()
{
TaskCompletionSource<bool> PageLoaded = new TaskCompletionSource<bool>();
webBrowser1.DocumentCompleted += (s, e) =>
{
if (webBrowser1.ReadyState != WebBrowserReadyState.Complete) return;
if (PageLoaded.Task.IsCompleted) return;
PageLoaded.SetResult(true);
};
while (PageLoaded.Task.Status != TaskStatus.RanToCompletion) { await Task.Delay(10) }
}
webbrowser1.navigate(URL)の読み込みを待つ関数なんですが、これはどういう原理で動いてるんですか?
DocumentCompletedのイベントにawaitタスクを挟んで非同期にして処理の終わりを待つんですよね?
でもDocumentCompletedはドキュメントの読み込みの処理の終わりにしか呼ばれないなら
ラムダ内部はSetResult()だけでいいのかと思えば、そうするとエラーでます。
753:デフォルトの名無しさん (アウアウ Sa25-S2gS)
16/09/22 18:25:46.65 Xy0e3ZYia.net
ゲームや家電のUIでよくある、背景色には透過がかかってるけど文字だけは
不透明みたいなウィンドウってWindows Formでは実現難しかったっけ?
754:デフォルトの名無しさん (ワッチョイ 1c5e-xjL4)
16/09/22 18:36:07.99 BI5UtsIL0.net
>>743
コントロール個別は無理だがForm全体は透過を設定できる。Form.Opacity
755:デフォルトの名無しさん (ワッチョイ d78c-xjL4)
16/09/22 19:09:11.54 9JyT007J0.net
初歩的な質問ですみません
実行したら
アプリ(さんぷるA)にフォーカスが移り
F5
Ctrl + v
Tab
Enter
の順にキー入力するにはどうすればいいのですか?
また実行後アプリを終了するようにするにはどうすればいいのですか?
756:デフォルトの名無しさん (ワッチョイ 1c5e-xjL4)
16/09/22 19:17:50.59 BI5UtsIL0.net
>>745
多分この辺
URLリンク(whoopsidaisies.hatenablog.com)
終了はProcess クラス
URLリンク(msdn.microsoft.com)
CloseMainWindow()かKill()
757:デフォルトの名無しさん (ワッチョイ d78c-xjL4)
16/09/22 19:24:09.54 9JyT007J0.net
>>746
ありがとうございます
758:デフォルトの名無しさん (フォォーッ MM1f-5q76)
16/09/22 19:42:42.51 Kf3JakCfM.net
>>743
バックカラーを透明色に指定すればできる
例
Label1.BackColor = Color.Transparent;
759:デフォルトの名無しさん (ワッチョイ 9f49-Pb1R)
16/09/22 20:16:17.95 c0uylKlH0.net
>>743
Opacityプロパティを設定すれば半透過には出来るけど、文字も含めてウィンドウ全体がそうなっちゃう.。
>>748
ウィンドウやコントロールに対しては設定できないよ。実行時にArgumentExceptionが出る。
760:デフォルトの名無しさん (ワッチョイ 1c5e-xjL4)
16/09/22 20:31:26.88 BI5UtsIL0.net
ああ、全ての表示が透過になるんだったなw>>744はダメだ
>>749
フォームかパネルの背景が見えてコントロールが透けるだけでいいのなら>>748で良くないか
一部Transparentにできないコントロールはあるけど
。
ボタンとかはできてトラックバーは反映されなかったと思う
761:デフォルトの名無しさん (フォォーッ MM1f-5q76)
16/09/22 20:50:15.82 Kf3JakCfM.net
>>743さんのやりたいことのバックがなんなのかわからないけど
PictureBox1.Controls.Add(Label1);
とやればピクチャーボックスが見えつつラベルの背景色を透明にできるけどどうなんだろう
762:デフォルトの名無しさん (ワッチョイ 7e9f-djfZ)
16/09/22 21:20:00.93 TQKVxpQC0.net
背景を透過にする時は文字を縁取りしないとまともに読めないから面倒だよな
文字の描画を独自で作らないといけなくなって、「やってられるか」って手を抜くと
使えない機能が残って、結局ゴミアプリ度が上昇して終わる
763:デフォルトの名無しさん (ワッチョイ 613c-UBrL)
16/09/22 21:24:26.75 yLq2H4nH0.net
WPFでやれって話になるわけか
764:デフォルトの名無しさん (アウアウ Sa25-S2gS)
16/09/22 21:30:46.76 s0Lz39vRa.net
>>751
画像検索でググっても適当なのがなかなか見つからないけど、
例えばこれのメッセージ表示部のような感じ。
URLリンク(userdisk.webry.biglobe.ne.jp)
>>744,>>748,>>749
とりあえずレスどうも。
やっぱりWindows Formでは少なくとも簡単は方法はなさそうですね。
昔調べてWin32API使う必要があるのは知ってましたが、上のようなUIもメジャーになってるし
さすがに今はもっと簡単な方法が提供されれるかもと思ったんですが、メンテナンスモードの
Windows Formにそういうのはやはり期待する方が間違ってるか。
まあ、WPF使えばいいんでしょうけどね。個人的に嫌いだからw
765:デフォルトの名無しさん (フォォーッ MM1f-5q76)
16/09/22 21:43:19.99 q3QSoo39M.net
>>754
その画像ならこれでできますよ
PictureBox1.Controls.Add(Label1);
Label1.BackColor = Color.Transparent;
766:デフォルトの名無しさん (フォォーッ MM1f-5q76)
16/09/22 21:47:08.11 q3QSoo39M.net
もう少し詳しく書くとこうです
PictureBox1.Controls.Add(PictureBox2);
PictureBox2.Controls.Add(Label1);
Label1.BackColor = Color.Transparent;
PictureBox1に背景画像を入れてPictureBox2にメッセージ画像を入れれば参考画像のようになりますよ
767:デフォルトの名無しさん (フォォーッ MM1f-5q76)
16/09/22 21:56:40.44 q3QSoo39M.net
あ、半透明ですかw
ここにサンプルありますよ
URLリンク(dobon.net)
768:デフォルトの名無しさん (フォォーッ MM1f-5q76)
16/09/22 21:57:49.20 q3QSoo39M.net
>>757 + Label1.BackColor = Color.Transparent;でできると思います
769:デフォルトの名無しさん (アウアウ Sa25-S2gS)
16/09/22 23:02:13.93 s0Lz39vRa.net
>>756
ああ、確かにウィンドウ内の一部の領域ということなら方法はありそうですね。
トップレベルウィンドウの背景の一部または全部を他のウィンドウに対して
透過する方法はやっぱりないですよね。
770:デフォルトの名無しさん (ワッチョイ dddc-IfJd)
16/09/22 23:06:35.01 P28LZX5F0.net
>>742
バグってるぞこれ
イベントハンドラを追加しっぱなしで削除してないから、PageLoadを呼ぶたびにイベントハンドラが増える
だからIsCompletedの条件を削除するとSetResultの2度目の呼び出しが発生してエラーになるはず
最後の馬鹿みたいな完了待ちループといい、これ書いた本人がTaskを正しく理解してないからこんなもん真似しちゃダメ
正しくはこんな風にする
private Task PageLoad(Uri uri) {
TaskCompletionSource<bool> pageLoaded = new TaskCompletionSource<bool>();
EventHandler handler = (s, e) => {
if (webBrowser1.ReadyState == WebBrowserReadyState.Complete) {
webBrowser1.DocumentCompleted -= handler;
pageLoaded.SetResult(true);
}
};
webBrowser1.DocumentCompleted += handler;
webBrowser1.Navigate(uri);
return pageLoaded.Task;
}
771:デフォルトの名無しさん (ガックシ 0694-pbYT)
16/09/23 15:45:17.32 LY9xYEOG6.net
下記のページで紹介されている
同じレベルのコントロールを含めて透明に表示するということをやりたいんですが
URLリンク(mitsu.three-atmarks.com)
僕の理解力がないせいで、上のページで言われている
要は、背面のコントロールを描画するときに、
Graphicsの原点を背面のコントロールの位置にずらせれば、
直接コントロールに描画出来るはず。
という部分について、なぜこのようにすれば直接コントロールに描画できるのか
理解できないです。もう少し分かりやすく説明していただける方が
いらっしゃればありがたいです。