[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 07/24 13:23 / Filesize : 265 KB / Number-of Response : 1013
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part158



1 名前:デフォルトの名無しさん mailto:sage [2023/03/26(日) 07:31:00.51 ID:2LMOL5Ty0.net]
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part157
https://mevius.5ch.net/test/read.cgi/tech/1669349768/
■関連スレ
C#, C♯, C#相談室 Part97
https://mevius.5ch.net/test/read.cgi/tech/1671585518/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
初心者はまずVisual Studioを使いましょう。なおVisual Studioの使い方などに関しては各バージョンで違うので専用スレでお願いします
www.visualstudio.com/downloads/
■情報源
https://learn.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://learn.microsoft.com/en-us/dotnet/standard/class-libraries
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
++C++; // 未確認飛行 C
https://ufcpp.net/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

818 名前:デフォルトの名無しさん (オッペケ Sr05-Cr01) [2023/06/16(金) 22:22:57.11 ID:koUma95Nr.net]
既存のアプリケーションを移行したくないのはわかる
けど、null不許容参照型が使えないのはいまどきあり得ない

819 名前:デフォルトの名無しさん (ワッチョイ 1379-hEWj) mailto:sage [2023/06/16(金) 23:36:36.10 ID:sUccxFc+0.net]
これだからフレームワークありきの環境はダメなんだよ
やっぱC/C++しか信じられん!…ってなるのぉ?

820 名前:デフォルトの名無しさん (ワッチョイ 79ac-t2KC) mailto:sage [2023/06/17(土) 01:27:12.96 ID:96RBnRrs0.net]
金無限にあるならともかく、現実はフレームワーク使わんと採算とれないことがそこそこある

821 名前:デフォルトの名無しさん (ワッチョイ a2bd-L1I+) mailto:sage [2023/06/17(土) 05:59:53.37 ID:3A62XWi80.net]
>>798
「リモート処理」って訳されていて最初ピンとこなかったけど、
英語ページを見たらやっぱり.NET Remotingのことなのね。

822 名前:デフォルトの名無しさん (ワッチョイ b1e5-C6j3) mailto:sage [2023/06/17(土) 08:16:10.20 ID:uo5kyeT50.net]
>>810
警告がうざったい……

823 名前:デフォルトの名無しさん (ワッチョイ b6da-RnTl) mailto:sage [2023/06/21(水) 22:15:02.05 ID:hW8H2hzX0.net]
コンパイラのnullチェックもLinq to SQLが混じるとうまく働かないね。
まぁ限界があるのは分かる

824 名前:デフォルトの名無しさん (ワッチョイ d242-C6j3) mailto:sage [2023/06/22(木) 01:03:28.84 ID:AGxh0AyX0.net]
Linq To SQLは大昔に終わっているからうまく動かないかもな

825 名前:デフォルトの名無しさん (ワッチョイ 3274-hrKI) [2023/06/22(木) 04:35:53.17 ID:CPcSxaDF0.net]
わたしは今からLinq To SQLを勉強しようといろいろ川俣の本を買ったのですが。

826 名前:デフォルトの名無しさん (ワッチョイ 8554-dYQK) mailto:sage [2023/06/22(木) 05:01:31.04 ID:Xft5ksI80.net]
自分自身にとって明確な理由やメリットがあって勉強するならいいと思う。
理由もなく、存在を知ったから目的ないのに勉強するというなら勉強不要。

たとえ話になるけど、ガチでプロ選手目指す野球少年なら野球の練習する意味あるけど、
大谷の話題で野球に興味持ったニワカが、目的なく練習しても意味ないでしょ。



827 名前:デフォルトの名無しさん (ワッチョイ ad7c-ZjIi) mailto:sage [2023/06/22(木) 05:23:50.74 ID:fUhg+N3Z0.net]
そうでも無いやろ

プロになる気が無くても野球やってみたら才能がある事に気付いたとかあるやん
プロの選手だって高校までは別の競技やってたとか2つ同時にやってたとかあるやん

828 名前:デフォルトの名無しさん (ワッチョイ f642-C6j3) mailto:sage [2023/06/22(木) 07:28:29.12 ID:oInj3jkO0.net]
勉強するならLinq To SQLより後継のefやる方が賢いとは思う
具体的な仕事があるなら別だが

829 名前:デフォルトの名無しさん (ワッチョイ 6107-Tk+b) mailto:sage [2023/06/22(木) 07:31:19.22 ID:U7fCu9Ru0.net]
efはefで欠点多いからなぁ
自分で選べるならDapperが最強

830 名前:デフォルトの名無しさん (ワッチョイ ad7c-ZjIi) mailto:sage [2023/06/22(木) 09:08:14.28 ID:fUhg+N3Z0.net]
WebなんかでステートレスならDapperで良いけどデスクトップアプリなんかでステートフルならEFの変更追跡なきゃだるいやん

用途で選べばいいんだよ

831 名前:デフォルトの名無しさん (アウアウウー Sacd-Tk+b) mailto:sage [2023/06/22(木) 09:21:07.30 ID:8AaELlpYa.net]
変更追跡が役に立つ場面なんてほぼ無いよ
速度は無茶苦茶遅いし
どうしても追跡したいならDapperで使うクラスに変更通知やIEditableObjectでも仕込んでおいたほうがいい

832 名前:デフォルトの名無しさん (スッップ Sdb2-6ESG) mailto:sage [2023/06/22(木) 13:34:23.63 ID:iyk8obpJd.net]
そろそろ的外れなたとえ話は罪に問えるようにするべきだな

833 名前:デフォルトの名無しさん (ワッチョイ 22ea-hRAP) mailto:sage [2023/07/07(金) 20:47:23.54 ID:BdypaOA90.net]
visual studioのformでプロジェクトデザイナーの設定settings.settingsでint型の配列を使いたいん
[10]個ぐらいなんですけど、windowsFormでいい設定の保存方法ありますか?

834 名前:デフォルトの名無しさん (ワッチョイ 0610-Mrss) mailto:sage [2023/07/07(金) 22:10:36.42 ID:VQ1+4DlV0.net]
>>825
デザイナーからじゃなくて直接Properties/Settings.settings/Settings.Designer.csに書けばいけるよ
でもデザイナ触るとcs上書きされるからまた追記しないといけないけどね
https://ideone.com/tJGGHq

835 名前:デフォルトの名無しさん (ワッチョイ 22ea-hRAP) mailto:sage [2023/07/07(金) 22:51:58.76 ID:BdypaOA90.net]
>>826
さんくすです、デザイナーをいじらずListを追加するんですね
Settings.Designer.csを書き換えたことをどこかに書いとかないとダメですね []
[ここ壊れてます]



837 名前:デフォルトの名無しさん (アウアウウー Sabb-DX8j) mailto:sage [2023/07/07(金) 23:11:34.06 ID:G77vHYnia.net]
なんでpartialクラス使わねーの?

838 名前:デフォルトの名無しさん (ワッチョイ 22ea-hRAP) mailto:sage [2023/07/07(金) 23:28:40.56 ID:BdypaOA90.net]
>>828
Settings.csの partial class Settingsを使えってことでしょうか?

839 名前:デフォルトの名無しさん (アウアウウー Sabb-DX8j) mailto:sage [2023/07/07(金) 23:43:30.04 ID:G77vHYnia.net]
>>829
そっちが人間が書き換える用のファイル

840 名前:デフォルトの名無しさん (ワッチョイ 9fea-kkOg) mailto:sage [2023/07/08(土) 08:13:42.94 ID:91Ogp97S0.net]
>>830
サンクスですSettings.csに書けば上書きされないってことですね

841 名前:デフォルトの名無しさん (スッップ Sdbf-CFBc) mailto:sage [2023/07/09(日) 13:11:44.65 ID:Dnv+EbFzd.net]
通知領域のアイコンをクリックすると現れるメニューを複数列にしてみたいです
こういう場合は自作コントロールを作成する必要があると考えればよいですか?
この辺は未経験なので自分にはハードル高そうですが

昔から使わせて頂いてるMr.Clipboardというソフトウェアに類似するものを作ることが目標です。

842 名前:デフォルトの名無しさん (スッップ Sdbf-CFBc) mailto:sage [2023/07/09(日) 13:23:58.06 ID:Dnv+EbFzd.net]
ん~contextMenuStripとかをいじって自作コントロールを作るという高いハードルを越えるより
通知領域アイコンをクリックした時に、メニューに似せたフォームが、ちょうどメニューが表示されるような位置に現れるようにしたほうがいいのかな・・・実現可能性は高そう

Mr.Clipboardの作者さんはどうやってこういうものを作ったんだろう

843 名前:デフォルトの名無しさん (オッペケ Sr0b-kkOg) mailto:sage [2023/07/09(日) 14:28:31.42 ID:qTcsfTmnr.net]
古そうなソフトウェアだから
そもそもContextMenuStripじゃなくてContextMenu(=COMCTL32)を使ってるんじゃないかな
使ったことないから知らんけどひょっとしたら何かデフォルトで2列表示できる機能が備わってたりして

844 名前:デフォルトの名無しさん (スッップ Sdbf-CFBc) mailto:sage [2023/07/09(日) 15:40:32.78 ID:Dnv+EbFzd.net]
>>834
ありがとうございます
画像貼れればいいのですが規制されててダメなんですごめんなさい

Mr.Clipboardを自分のPCで今使っているのですが、通知領域のアイコンをクリックすると、10列表示されます。
文字列を登録することができるのですが、登録数をふやすほど列も増えていく仕様なんです
列数だけではなく、1列当たりの行数なども柔軟に扱えないと実現できないのかなと思ってます。

一応>>833の方向性でやってみることにしました
継承やらオーバーライドやら試してみたい気持ちもあったのですが、.そもそもNETのソースコードを正しく読み解く自信が・・・

845 名前:デフォルトの名無しさん (ワッチョイ 3768-rqKn) mailto:sage [2023/07/09(日) 16:18:02.54 ID:rFc2qelE0.net]
現在進行形でC#の仕事してるけどプログラミングよりもgitとかのほうが難しい
マーキュリアル開いて出てきたMQ パッチ適用がどうたらって何のこと?

846 名前:デフォルトの名無しさん (ワッチョイ 9f80-KChr) mailto:sage [2023/07/09(日) 16:26:49.16 ID:W7Z8cVLl0.net]
Git の質問かと思ったら、マーキュリアルの話始めたり
精神分裂症かな



847 名前:デフォルトの名無しさん (ワッチョイ 9701-xBPm) mailto:sage [2023/07/10(月) 01:02:30.69 ID:qL1vqKUB0.net]
混在してるか移行中のPJで初心者故に両者がごっちゃになってるだけだとエスパーしてみます

848 名前:デフォルトの名無しさん (スップ Sd3f-mu37) mailto:sage [2023/07/10(月) 07:18:29.54 ID:BXZpIYtLd.net]
単に物を知らないのをバカにしたいだけで本気で精神分裂症とは思っとらんだろ

849 名前:デフォルトの名無しさん (ワッチョイ 9f80-KChr) mailto:sage [2023/07/10(月) 09:42:06.39 ID:zUnHM/go0.net]
C#ってプロジェクトを作らないとコンパイル出来ないんでしょうか?
main関数のあるHelloWorld.csだけでコンパイルするのは無理?

850 名前:デフォルトの名無しさん (ワッチョイ f7c6-knyK) mailto:sage [2023/07/10(月) 09:50:21.18 ID:jFNuf9xo0.net]
csc.exeを直接実行すれば*.csだけでもコンパイルできるよ
Linux向けとかはどうか知らないけど

851 名前:デフォルトの名無しさん (ササクッテロラ Sp0b-JJLP) mailto:sage [2023/07/10(月) 10:13:07.78 ID:bDJ4URo4p.net]
>>840
C#がインタプリタ的に使えるのって案外知られて無いんだなぁ

852 名前:デフォルトの名無しさん (ワッチョイ 9f80-KChr) mailto:sage [2023/07/10(月) 10:33:54.46 ID:zUnHM/go0.net]
>>841
Linuxには無さげですね
dotnetコマンドでも無理そう

853 名前:デフォルトの名無しさん (ワッチョイ 9f80-KChr) mailto:sage [2023/07/10(月) 10:59:12.77 ID:zUnHM/go0.net]
>>842

dotnet-repl を入れたら実行結果の確認は出来るようになった
ありがとう

854 名前:デフォルトの名無しさん (アウアウウー Sa9b-Pj0o) mailto:sage [2023/07/10(月) 12:41:26.24 ID:h4a2e+7ia.net]
シェルスクリプト代わりにするならC#使うよりPowerShellの方が便利だから
batはそろそろ滅べ

855 名前:デフォルトの名無しさん (ワッチョイ bf79-CBkq) mailto:sage [2023/07/10(月) 12:44:12.34 ID:pvSg+WfU0.net]
powershellでええやん

856 名前:デフォルトの名無しさん (アウアウクー MM0b-xBPm) mailto:sage [2023/07/10(月) 13:19:11.50 ID:otun5GpPM.net]
batとの互換性が中途半端なのがイラつきますけどね



857 名前:デフォルトの名無しさん (アウアウウー Sa9b-Pj0o) mailto:sage [2023/07/10(月) 14:17:36.82 ID:h4a2e+7ia.net]
batみたいな化石との互換性なんか要らんだろ
PowerShell使えばC#もそのまま動くぞ
https://codezine.jp/article/detail/5007

858 名前:デフォルトの名無しさん (ブーイモ MM8f-9ZAg) mailto:sage [2023/07/11(火) 22:56:21.27 ID:0HX/1I5LM.net]
talkで質問集まってるみたいだから向こうに行くかな

859 名前:デフォルトの名無しさん (スププ Sdbf-1L5A) mailto:sage [2023/07/12(水) 01:00:39.52 ID:WP87K7PTd.net]
おう、二度と戻ってくるなよ

860 名前:デフォルトの名無しさん (オッペケ Sr0b-B87o) mailto:sage [2023/07/14(金) 11:09:10.37 ID:SW9fkks0r.net]
少しはここもまともになるかな

861 名前:デフォルトの名無しさん (オッペケ Sr0b-jHc6) mailto:sage [2023/07/14(金) 11:21:59.88 ID:gWjfvyvyr.net]
プログラム板住人誰も移住してなさそうだから変わらないんじゃない?

862 名前:デフォルトの名無しさん (ワッチョイ 7f2d-/79E) mailto:sage [2023/07/14(金) 11:29:58. ]
[ここ壊れてます]

863 名前:62 ID:FrJI/jtz0.net mailto: あっちはスレッドだけ出来てて中身が空なのばっかりじゃん
C#関連スレは全て1件もレス付いてない
[]
[ここ壊れてます]

864 名前:デフォルトの名無しさん (オッペケ Sr0b-WUNe) mailto:sage [2023/07/14(金) 13:15:57.44 ID:o+Lvn4Uxr.net]
jane styleってC#で開発したって聞いたが勘違いかな

865 名前:デフォルトの名無しさん (ワッチョイ 57a7-xgtz) mailto:sage [2023/07/14(金) 13:19:10.56 ID:0qf2Hag/0.net]
Delphiだから勘違いだね
Delphiの発明者が後のC#の発明者と同一人物だからそういう勘違いが生まれたのでは

866 名前:デフォルトの名無しさん (スププ Sdbf-Gz7C) mailto:sage [2023/07/14(金) 17:53:33.20 ID:L1fXIk/+d.net]
発明されたんだ



867 名前:デフォルトの名無しさん (ワッチョイ 95ad-tdBp) [2023/07/15(土) 12:52:20.24 ID:x4tryG3A0.net]
初心者です。
非同期メソッドにCancellationTokenを渡して、エラーハンドリングを行う必要があることを知りました。CancellationTokenSourceからCancellationTokenを作成して、非同期メソッドに渡していくところまではできました。ただ、ネストが深い非同期メソッド内でトークンをキャンセルしたいときに、どのようにキャンセルすれば良いのか分からない状況です。
非同期メソッドからCancellationTokenSourceのCancelメソッドはどのように呼べば良いのでしょうか。

868 名前:デフォルトの名無しさん (ワッチョイ 665f-bpoS) mailto:sage [2023/07/15(土) 12:56:18.34 ID:IVtLjRqQ0.net]
【えっ】Perlに未来はあるのか?【終わり?】

869 名前:デフォルトの名無しさん (JP 0H62-9/0y) mailto:sage [2023/07/15(土) 13:15:08.16 ID:KExn0jd0H.net]
トークンをキャンセルする権限を持ってるのは非同期処理側じゃなくて呼び出し元だと思うんだけど・・・
(だからcancellationTokenSourceを持ってる人だけがCancel()を実行できる)

呼び出し元から指図されたわけじゃないけど自発的にキャンセルしたいってことなら
throw new OperationCanceledException(token)
とでもすればいいんじゃないかな

870 名前:デフォルトの名無しさん (ワッチョイ ca2d-2eqx) mailto:sage [2023/07/15(土) 13:42:20.93 ID:m7eEyKEv0.net]
それはtokenの状態と整合性取れないし不自然だろう
普通に(キャンセルしたいと判断した)要因に合った例外使えば済む話だ

871 名前:デフォルトの名無しさん (ワッチョイ 95ad-tdBp) [2023/07/15(土) 15:05:06.38 ID:x4tryG3A0.net]
>>859
>>860
ご回答ありがとうございます。
awaitしている非同期メソッド内で例外を投げて、呼び出し元でcancellationTokenSource.Cancelしてキャンセルする、というのはできました。
ただ、awaitしない非同期メソッド内で例外を投げてもcatchできず、呼び出し元でcancellationTokenSource.Cancelできない状況です。
awaitして、非同期メソッド内で例外を投げて呼び出し元でキャンセルするしかないのでしょうか。

872 名前:デフォルトの名無しさん (ワッチョイ ca2d-2eqx) mailto:sage [2023/07/15(土) 16:17:24.24 ID:m7eEyKEv0.net]
>>861
awaitしない非同期メソッドのタスクにContinueWith()で後続タスクを作って、その中でキャンセルかな。
後続タスクの実行条件はConinueWith()の引数にTaskContinuationOptionsを指定すれば変更出来る。
(エラーが起きた時のみ実行するとか)

873 名前:デフォルトの名無しさん (スッップ Sd94-XM1G) mailto:sage [2023/07/15(土) 17:39:44.49 ID:q/a2phH1d.net]
windowsアプリ作る時にform2の幅をコンストラクタ内で指定しても
136未満だと勝手に136に広げられてしまうんだね
知らなくて原因究明するのに時間かかった

874 名前:デフォルトの名無しさん (ワッチョイ 87e5-XQTJ) mailto:sage [2023/07/17(月) 11:07:42.07 ID:fKATz6pi0.net]
MinimumSizeにそう設定されてるだけでは

875 名前:デフォルトの名無しさん (ワッチョイ ca2d-2eqx) mailto:sage [2023/07/17(月) 12:47:25.02 ID:oq1oEUQ30.net]
>>863
FormBorderStyleプロパティがNone、ToolWindow系、その他で幅が変わるね。
ToolWindowだとタイトルバーに表示されるボタンの有無でもちょっと変わって、
ControlBox = falseの時が一番小さく出来る。
何故かNoneの時が一番大きくなる。

>>864
MinimumSizeがSize(0,0)でもなる

876 名前:デフォルトの名無しさん (ワッチョイ 3210-2eqx) [2023/07/17(月) 21:11:29.34 ID:hjrHtCYP0.net]
自作クラスのインスタンス化したときに、
そのインスタンスのプロパティを設定するやりかた? を教えてください。
うまい言い方ができないので、例を示します。
自作クラスで
class Square
{
double width
double height
}
があったとして、
 Square square = new Square(){width = 3, height =2}
としたならば、
 console.Writeline (square.ToString())
とすると
 6
 と表示されるようなイメージです。
何がしたいのかというと、 IPropertyChanged を使って、中の 
プロパティが変化したときに、square が変わったということを認知したいのです。



877 名前:デフォルトの名無しさん (ワッチョイ 3279-EJzg) mailto:sage [2023/07/18(火) 02:03:58.47 ID:BpIlHiPB0.net]
Writelineで6を表示したければToStringをoverrideしてやればいいだろうまでは思いましたが
貼られたコードと「何がしたいのかというと」が全く繋がってなくて、恐らくこれは誰も質問を理解できてない状況ではないでしょうか
私の感想としてはIPropertyChangedとやらを使いたければ使えばいいだけの話ではないでしょうか

878 名前:デフォルトの名無しさん (ワッチョイ ca2d-2eqx) mailto:sage [2023/07/18(火) 02:28:36.72 ID:GDp0BnYT0.net]
例には書いてないけどIPropertyChangedイベントを購読して、イベントが来たらConsole.WriteLine()するんでしょう
で、IPropertyChangedの実装方法が知りたいと


public class Square : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged;
private void SetProperty< T >( ref T field, T value, [CallerMemberName]string propertyName = null )
{
if ( field.Equals( value ) )
{
return;
}
field = value;
PropertyChanged?.Invoke( this, new PropertyChangedEventArgs( propertyName ) );
}

private double _width;
public double Width
{
set => SetProperty( ref _width, value );
get => _width;
}

private double _height;
public double Height
{
set => SetProperty( ref _height, value );
get => _height;
}
}

879 名前:デフォルトの名無しさん (ワッチョイ 87e5-XQTJ) mailto:sage [2023/07/18(火) 08:44:49.63 ID:3b5O2M5n0.net]
>>863 >>865
なんか頭の中で136ってもっとおっきいイメージになってた、すまないw
アイコンやコントロールボタンが表示できる最低サイズだったね
面白いことに、FormBorderStyle=Noneの時に
コンストラクタでどんだけ小さいWidth指定しても136になるけど
その後でShown等のフォームが生成された後の時点でWidth指定すると2までは縮まるんだな
SizableとかだとShownでやっても136になるけど

880 名前:デフォルトの名無しさん (スッップ Sd94-XM1G) mailto:sage [2023/07/18(火) 10:03:44.12 ID:W6YFjoCEd.net]
>>865
>>869
はーやっぱり知識ある人は知ってるんですねー
こういう理屈じゃないところでいちいち悩まないといけないのが大変ですわ

まったく別の話なんですけど、
今これ>>832作ってて面白いこと気づきました

MouseClickイベントって右クリック・左クリック別に処理を分けられないじゃないですか
e.Button == MouseButton.Left とかが使えるMouseDown使えって言われるんですけど
bool isRightClickみたいなフィールドつくって、MouseDownのイベントハンドラで右・左判別して結果をisRightClickに設定
んで、MouseDownイベントの直後にMouseClickイベントも発生するからこいつのハンドラでisRightClickを取得して右・左別に処理わけることができた!

ってこれもみんな普通にやってんのかな・・・自分としては大発見なのだが。
今左右クリックやD&Dで細かい動きを作ってるんでこれは貴重な発見だった

881 名前:デフォルトの名無しさん (スププ Sd94-uP9V) mailto:sage [2023/07/18(火) 10:04:51.17 ID:5Ch5Zuv0d.net]
>>867
>>868
ありがとうございます
質問のしかたが悪くうまく伝わっていないのですが回答は知りたかったことの一部でもありその部分については理解しました。

public class Hoge :IpropertyChanged
{
public Square square


}
とした時に
squareが値をもっていないことから、methodでsquare.widthの値を変えたとしてもsquareか変化したことを認識できないとの理解です
SquareにIPropertyChangedを噛ませてhogeのpropertyが変わったとする方法もあるのかも知れませんがsquare自身に値を持たせる方法があったら教えて下さい

882 名前:デフォルトの名無しさん (ワッチョイ 87e5-XQTJ) mailto:sage [2023/07/18(火) 10:25:56.29 ID:3b5O2M5n0.net]
>>870
何のMouseClickイベントのこと?
FormやNotifyIconのMouseClickイベントならe.Button使えるはずだけど

883 名前:デフォルトの名無しさん (スッップ Sd94-XM1G) mailto:sage [2023/07/18(火) 11:52:13.49 ID:W6YFjoCEd.net]
>>872
今いろいろ確認して、間違えてたことが分かりました
ごめんなさい

複数のラベルをForm上に動的配置したうえで、このラベル全てにクリック系のイベントを追加したんです。
この際、イベントハンドラも自分でコードを書いたのですが、Label_MouseClickイベントハンドラの引数である e の型を、間違えてMouseEventArgsではなくEventArgsとしていたため、e.Buttonが使えなかったというオチでした。
e.Buttonが使えない点を除いて問題なく動いていたので気づきませんでした

ふぅ・・・何やってんだか・・・

884 名前:デフォルトの名無しさん (スッップ Sd94-XM1G) mailto:sage [2023/07/18(火) 12:01:06.39 ID:W6YFjoCEd.net]
MouseDown使わないといけないのはVBAでした
知識がぐちゃぐちゃになってました

885 名前:デフォルトの名無しさん (ワッチョイ e979-9/0y) mailto:sage [2023/07/18(火) 13:43:10.65 ID:hAXktsXG0.net]
赤あげて、白あげて、白下げないで、赤下げる♪

左押して、右押して、右離さずに、左離す♪

886 名前:デフォルトの名無しさん (ワッチョイ 73ae-/jfo) [2023/07/18(火) 14:42:32.76 ID:INtka+wY0.net]
VBAはVB.netに仕様変更する気が無いんだろうな・・・



887 名前:デフォルトの名無しさん (ワッチョイ a6cd-LhHw) mailto:sage [2023/07/18(火) 15:08:54.43 ID:ss/yk/UI0.net]
vb6言語より環境が古くさすぎて触るきにならん
出力して、vscodeでやって取り込みもあるけどいまいち

888 名前:デフォルトの名無しさん (ワッチョイ 4dc6-l/Dq) mailto:sage [2023/07/18(火) 16:00:19.51 ID:zVxGTRP30.net]
>>871
細かいけどINotifyPropertyChangedじゃない?
SquareにINotifyPropertyChangedを実装して、
Hogeの方でこういう風に
Square square {
get { return _square; }
set {
if (_square is not null) _square.PropertyChanged -= OnSquareChanged;
this._square = value;
if (value is not null) _square.PropertyChanged += OnSquareChanged;
}
}
void OnSquareChanged(object sender, PropertyChangedArgs e) {
this.OnPropertyChanged(nameof(this.square));
}

889 名前:デフォルトの名無しさん (ラクッペペ MM34-iMTa) mailto:sage [2023/07/18(火) 16:06:27.35 ID:vLiOabGzM.net]
VBA - VisualBasic
https://learn.microsoft.com/ja-jp/office/vba/library-reference/concepts/getting-started-with-vba-in-office

Office add-ins - C#
https://learn.microsoft.com/ja-jp/office/dev/add-ins/overview/office-add-ins

Vsto - C#
https://learn.microsoft.com/ja-jp/visualstudio/vsto/create-vsto-add-ins-for-office-by-using-visual-studio

Office Scripts - TypeScript(JavaScript)
https://learn.microsoft.com/ja-jp/office/dev/scripts/overview/excel

890 名前:デフォルトの名無しさん (ワッチョイ d010-uD+5) mailto:sage [2023/07/18(火) 17:40:37.17 ID:HtITPTeb0.net]
871が言ってる値が何のことかよくわからないな
>square自身に値を持たせる方法

891 名前:デフォルトの名無しさん (スップ Sd00-IoCj) mailto:sage [2023/07/18(火) 17:59:36.33 ID:uMqw2ex7d.net]
まず環境書けとか色々突っ込み所がありすぎて暑いしで萎えた
おまえら頑張れよ

892 名前:デフォルトの名無しさん (ワッチョイ f62f-NBo5) mailto:sage [2023/07/18(火) 21:18:14.67 ID:ZtgGANuh0.net]
>>871
俺がエスパー回答してやる

Hoge のコンストラクタでsquareをnewする
Square をクラスじゃなくて構造体にする

好きなほうを選べ

893 名前:デフォルトの名無しさん (オイコラミネオ MM71-9/0y) mailto:sage [2023/07/18(火) 22:23:27.30 ID:5UWIDgazM.net]
お前らも含めてだが…基本的なことを勘違いしてるんだろう
IpropertyChangedが必要なのかも怪しいがそれは置いておく

通常似た様なものがあった場合
面積に相当するAreaプロパティが設定されている
binding対象はHoge.Square.Areaに普通はする

さて、
WidthやHeightが変更になった場合にAreaはその都度変化を通知して欲しいのかどうかも気になる
WidthとHeightを同時に変更したい場合メソッドを使って適切に変更しないとゴミがでるぞ

894 名前:デフォルトの名無しさん (オイコラミネオ MM71-9/0y) mailto:sage [2023/07/18(火) 22:33:21.86 ID:5UWIDgazM.net]
Squareの値は各種プロパティを持ったオブジェクト自体でありそれを面積とみなすのはおかしいと言うこと
ToString()をoverrideして面積を出すも間違っている

ToString()で出すのは
四角形 幅:3 高さ:4 面積:12
と言う各種情報

895 名前:デフォルトの名無しさん (ワッチョイ 3210-NBo5) [2023/07/18(火) 23:28:46.06 ID:HED9e7490.net]
>>882
エスパー ありがとうございます。
square を 構造体にかえて 今までやりたかったことが解決しました。
>>883 ,>>884  ありがとうございます。
勉強になりました。

896 名前:デフォルトの名無しさん (ワッチョイ 52da-0QNR) mailto:sage [2023/07/19(水) 12:26:43.18 ID:DPJDdup00.net]
Func<T, bool>を受け取る引数にPredicate<T>を渡せないのは何故でしょうか?



897 名前:デフォルトの名無しさん (ワッチョイ 4dc6-l/Dq) mailto:sage [2023/07/19(水) 13:17:55.70 ID:rfnRytk30.net]
型が違うから

class Hoge { public string Piyo; }
class Fuga { public string Piyo; }
と同じメンバを持った2つのクラスがあっても
void Test(Hoge hoge) { ... }
にFugaを渡せないのと同じ

898 名前:デフォルトの名無しさん (ブーイモ MM69-IGBM) [2023/07/19(水) 13:33:43.83 ID:Iak4bgJxM.net]
hoge(pred.Invoke)で渡せる

899 名前:デフォルトの名無しさん (ワッチョイ 52da-0QNR) mailto:sage [2023/07/19(水) 13:52:39.72 ID:DPJDdup00.net]
なるほど。
Predicate<T>ってFunc<T, bool>のシンタックスシュガーかと勝手に勘違いしてましたが、完全に別の型ってことですね。

ありがとうございます

900 名前:デフォルトの名無しさん (ワッチョイ ce6e-rP6O) mailto:sage [2023/07/20(木) 19:04:03.42 ID:oZtgKOtx0.net]
非同期処理について質問です。業務でWPFいじってるんですけど

1 起動画面→2 起動画面表示してる間に重い処理とか色々→3 ログイン画面→4 メイン画面

という流れになっています。それで重い処理の部分がtask runになっていてあぁ非同期処理ってやつかと
なんですがやたら起動画面が長いんです。デバッグしてみるとその重い処理が実行されてるとき他の処理は実行されてなくて
結局普通に1〜4が一直線に進んでるだけじゃない?と

自分の理解だと非同期ってその処理をどっか他の場所でやっといてもらってそれ以外は全部通常通りに流れると
この場合だとたとえば3や4のウインドウが出る処理が進んでいってもその裏で重い処理をやってるみたいな
2の部分が短くなるから起動画面も当然短くなるはずだろ……と思ってたんですが

非同期ってそういうもんじゃないんでしょうか

901 名前:デフォルトの名無しさん (ワンミングク MM9b-Q4Hq) mailto:sage [2023/07/20(木) 20:07:28.14 ID:4+aEc/KWM.net]
ただ固まらないように使ってるだけじゃないの

902 名前:デフォルトの名無しさん (スップ Sd00-m3tO) mailto:sage [2023/07/20(木) 20:07:31.46 ID:GDwei+myd.net]
2の重い処理でUIスレッドを使っていて、
3ログイン画面でもUIスレッドを使うので、
3のレンダリングが遅延しているのかも

と、先生は仰っている

903 名前:デフォルトの名無しさん (ワッチョイ b6d6-2eqx) mailto:sage [2023/07/20(木) 20:29:02.94 ID:etRvguBb0.net]
たぶん2の実行中に1が固まらない(アニメーションしたりマウス操作等に反応する)ようにしてるだけだな
2が完了したら3って仕様なんだろ

904 名前:デフォルトの名無しさん (ワッチョイ 56bd-rqn1) mailto:sage [2023/07/21(金) 00:30:10.37 ID:3tiQJRjE0.net]
その重い処理というのは、ログイン画面やメイン画面までに完了させる必要のない処理なの?

905 名前:デフォルトの名無しさん (オイコラミネオ MM71-rqn1) mailto:sage [2023/07/21(金) 01:04:23.20 ID:i7pkSIZ0M.net]
普通だろ

2で初期化
それが終わらないとログインすらさせない
当たり前

非同期はいわゆる並列処理ではない
処理してる間にGUIが固まらないようにしてるだけで

906 名前:デフォルトの名無しさん (ワッチョイ 87e5-XQTJ) mailto:sage [2023/07/21(金) 08:46:35.27 ID:cgj6JgkV0.net]
起動時にまずスプラッシュ画面やら表示して裏で初期化処理ガーッとやってメイン画面が出てくるアプリケーション、ごまんとあるやろ



907 名前:デフォルトの名無しさん (オッペケ Src1-YWw1) mailto:sage [2023/07/21(金) 08:48:39.50 ID:EGVnYM7fr.net]
非同期処理って偉そうな名前ついてるけどUIが固まらないようにするためだけの存在なんだよな

908 名前:デフォルトの名無しさん (ブーイモ MMba-mCwd) [2023/07/21(金) 08:56:24.44 ID:eg4croCbM.net]
画面が固まってるかどうかってそんな大事なことか?

909 名前:デフォルトの名無しさん (ワッチョイ fe33-l/Dq) mailto:sage [2023/07/21(金) 09:12:44.39 ID:1a+dN6EZ0.net]
”応答なし”って表示されるかどうかは一般利用者にとっては大きな違い

910 名前:デフォルトの名無しさん (ラクッペペ MM34-+gOE) mailto:sage [2023/07/21(金) 09:46:52.31 ID:OOKalSboM.net]
改善したいなら「重い処理」を並列に 分解するぐらいかな?
対して変わらんどころか遅くなるだろうけど

911 名前:デフォルトの名無しさん (ブーイモ MM5e-IGBM) [2023/07/21(金) 11:29:51.89 ID:69ts+SDiM.net]
業務アプリでログイン画面表示前に終わらせないといけないやたらと時間のかかる重い処理ってどういうの?
ゲームやJavaアプリではあるけどC#で作る業務アプリでは個人的には経験したことないんだけど
ネットワーク経由で自動アップデートを走らせてるとか?

912 名前:デフォルトの名無しさん (ドコグロ MM36-fSYF) mailto:sage [2023/07/21(金) 14:42:23.96 ID:6vfbgTUNM.net]
DBから必要なデータ落としてくるとかそういうのかな
そこまで大量になるかどうかはものによる

913 名前:デフォルトの名無しさん (スップ Sd00-IoCj) mailto:sage [2023/07/21(金) 15:03:06.92 ID:6MAm8yaxd.net]
コアモジュールのアップデート確認とか
こういうのを下手にオンデマンド化すると不整合で死者が出たりするんだよ

914 名前:デフォルトの名無しさん (ブーイモ MMba-mCwd) [2023/07/21(金) 20:26:40.73 ID:eg4croCbM.net]
>>901
そういうのならスプラッシュで長々と起動表示するより
さっさと画面見せてプログレスバー出した方が良くね
端的にいうとエクリプスみたいなのは嫌い

915 名前:デフォルトの名無しさん (ワッチョイ 7f10-UJxk) mailto:sage [2023/07/22(土) 06:19:51.07 ID:/NYJ/E/k0.net]
プログレスバー出してる間はツールバーやらメニューやら触れないように無効化しとくん?
見せてる意味なくない?

916 名前:デフォルトの名無しさん (ワッチョイ bf79-mRrB) mailto:sage [2023/07/22(土) 08:28:55.45 ID:a8PwsTyx0.net]
業務アプリで認証前に見せるもんなんて何かあんの逆に



917 名前:デフォルトの名無しさん (ワッチョイ 4742-pcwf) mailto:sage [2023/07/22(土) 10:35:33.60 ID:KOXik0Zr0.net]
>>906
アプリの生存確認

918 名前:デフォルトの名無しさん (ワッチョイ 27e5-UJxk) mailto:sage [2023/07/22(土) 13:04:05.76 ID:UbHj5dt40.net]
デスクトップのアイコンダブルクリックしたのになんも画面出て来なかったら
動いてるのか不安になるのがエンドユーザー






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<265KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef