ふらっと C#,C♯,C#(初心者用) Part141at TECH
ふらっと C#,C♯,C#(初心者用) Part141 - 暇つぶし2ch699:デフォルトの名無しさん
19/02/11 05:09:40.45 Q8pHabNH0.net
回答有り難うございます。
wpfテンプレートを使っているのですが、リストビューというツールは存在しないようですが、wpfにありましたか?

700:デフォルトの名無しさん
19/02/11 05:15:04.04 Q8pHabNH0.net
ありました
ごめんなさい

701:デフォルトの名無しさん
19/02/11 08:30:23.01 sPHRyGkO0.net
textBoxコントロールでスクロールバーが表示されている状態で
スクロールバー上で右クリックするとスクロールバーのコンテキストメニューが出ますが
richTextBoxコントロールだと出ません。textBoxでは出る標準の右クリックメニューも同様に出ません。
どうすればrichTextBoxで標準コンテキストメニューとスクロールバーのコンテキストメニューを出せるでしょうか

702:デフォルトの名無しさん
19/02/11 11:37:16.74 XJjA7d5g0.net
サーバサイドで使えるword操作用ライブラリってありますか?
ExcelにはPOIとかあるのですがwordは探しきれず

703:デフォルトの名無しさん
19/02/11 11:45:15.95 uhV1eG5ea.net
Google Docsで作ってWordにエクスポートしたら

704:デフォルトの名無しさん
19/02/11 12:49:33.20 MkFOBvt90.net
>>681
Apache POIはExcel専用じゃないけど?
URLリンク(qiita.com)

705:デフォルトの名無しさん
19/02/11 20:34:36.03 Q8pHabNH0.net
listviewの使い方について、超初心者向けに解説してるサイトを教えてください
vs2017を使用しています
いろんなサイトやyoutubeで調べてたんですが、わからないです

706:デフォルトの名無しさん
19/02/11 20:50:22.35 Y0EVtjJ+0.net
>>684
ナンシークラッツ本を買うべし

707:デフォルトの名無しさん
19/02/11 21:09:13.65 +GND3QEg0.net
>>684
知りたいのこの辺りじゃない?
ListViewコントロールへ項目を追加するには?
URLリンク(www.atmarkit.co.jp)
ListViewのアイテムがポイントで選択、シングルクリックでアクティブにできるようにする
URLリンク(dobon.net)
Drag drop ListView Item from one listView to another
URLリンク(stackoverflow.com)

708:デフォルトの名無しさん
19/02/11 22:18:17.86 tPbyrG7A0.net
Q8pHabNH0がやってるのは多分WPFだよ~

709:デフォルトの名無しさん
19/02/11 22:29:40.86 sHYekHyG0.net
いつも思う
そんなクソみたいな動作しかしない
コントロールなんてやめて
いい感じに動作するもん自分で作ればいいのに

710:デフォルトの名無しさん
19/02/11 22:33:23.81 TJZlmbA+0.net
WPFは最低でも標準でWinFormと同等のコントロール用意しておけよと

711:デフォルトの名無しさん
19/02/12 01:11:37.33 VJfrEW+T0.net
>>688
いつも思う
初心者用スレで初心者向けではないアドバイスなんてやめて
適切なスレで持論を展開すればいいのに

712:デフォルトの名無しさん
19/02/12 01:22:15.30 B1oV2gIZ0.net
>>690
それがそーでもねーと思うんだよね
使いにくいコントロールを客に納品できるレベルに持っていくって
割りと無理ゲーじゃね?

713:デフォルトの名無しさん
19/02/12 03:08:49.84 0nHRi8Dw0.net
>>690
いつも思う
バカをスルーできる耐性がいつになったら身に付くのかと

714:デフォルトの名無しさん
19/02/12 03:12:17.30 VJfrEW+T0.net
>>691
標準コントロールで実現困難なことをそれで無理に実現しようとしてるならそのアドバイスでいいだろうが、
今回の質問者は(今のところの情報では)標識コントロールで不足している訳ではなく、ありものを使うことすらやっとのレベルなのだから、自分で作れというのは無茶な要求だろう。

715:デフォルトの名無しさん
19/02/12 03:12:52.20 VJfrEW+T0.net
>>691ではなく>>692でした

716:デフォルトの名無しさん
19/02/12 05:53:58.40 DAeR3Vqi0.net
そうです、wpfです
これってwinformよりも良くないんでしょうか?
見た目が良くて新しいものというイメージなんですが

717:デフォルトの名無しさん
19/02/12 05:58:34.55 SvKCMiwAa.net
めくそはなくそ

718:デフォルトの名無しさん
19/02/12 06:07:05.14 DAeR3Vqi0.net
URLリンク(var.blog.jp)
どのテンプレートを選べばいいんでしょうか
wpf使われているソフトはほぼないと書いてあります

719:デフォルトの名無しさん
19/02/12 06:33:52.77 0tNvI9Ip0.net
WPFは専用スレがあるよ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part22
スレリンク(tech板)

720:デフォルトの名無しさん
19/02/12 06:43:57.01 0tNvI9Ip0.net
さくっと作りたいならWinForm
見た目にこだわって、今後も続けていきたいならWPF
まぁ今からやるならWPFだと思うよ。
DPIスケーリングとか今どきの地味でめんどくさい部分の対応はやってくれている。
WinFormはさくっと作れるけど、自分でUIの部品画像つくれないなら見た目は古臭くなるし、
UIとビジネスロジックの分離も大変。

721:デフォルトの名無しさん
19/02/12 06:50:44.92 n9nKxlWwM.net
一年で600レスしかつかない専用スレ

722:デフォルトの名無しさん
19/02/12 06:55:56.97 wGJ5rzVe0.net
C#がニッチだからな
プレイヤーはjavaと一桁違うんじゃね

723:デフォルトの名無しさん
19/02/12 07:07:37.35 IZHpfaFj0.net
数倍は違っても桁は違わないんじゃないのかな

724:デフォルトの名無しさん
19/02/12 07:43:09.55 HQcd2HqP0.net
5chのWPFスレとSwingスレを比較すればええのか? ええのんか?

725:デフォルトの名無しさん
19/02/12 10:49:53.10 dWGWBM0h0.net
C#で書いていると、急にLinuxみたいなのが流行りだした場合、手間が増える
だろう。この業界は、今後どうなるか分からん。

726:デフォルトの名無しさん
19/02/12 11:03:40.30 GttB/eDsd.net
>>704
そんなこと言ってたらどんな言語でもリスクあるだろwww

727:デフォルトの名無しさん
19/02/12 11:09:45.74 LAva8DO10.net
C++だと大丈夫だろうよ。

728:デフォルトの名無しさん
19/02/12 11:11:43.96 DAeR3Vqi0.net
>>699
速度も遅くて使い物にならないと効いたのですが、そんなこともないですか?

729:デフォルトの名無しさん
19/02/12 11:41:24.36 VerJGrBEM.net
>>707
それ以前に、WPFは未完成のまま既にメンテナンスモード入りしたから新規での利用はお勧めできない
MS自身がVSの開発に使うためだけにメンテされてるフレームワークだよ

730:デフォルトの名無しさん
19/02/12 11:44:21.97 DAeR3Vqi0.net
>>708
そうなんですね、c#の場合、選択肢はwindowsフォームアプリケーションしかない感じですか?
これはwin32といわれているものでしょうか?

731:デフォルトの名無しさん
19/02/12 12:22:47.98 9UpkeXwQa.net
WPFの問題点は
(1) 学習コストが高い
(2) 即時モードの描画が使えない
だと思うので、これらを気にしなきゃ、相対的に新しいWPFの方がいいんだろうけどね。
レイアウトやバインディングの柔軟性が魅力的なのは否定できない。
これは意見が分かれるけど、
(3) イベントハンドラだらけになってコードが読みづらいWindows Formの問題点の
解消を目指したはずなのに、結局かえってWPFのコードの方が分かりづらい
これもWPFが好きになれない大きな理由

732:デフォルトの名無しさん
19/02/12 12:53:00.05 IcQdq56o0.net
WPF敷居高いのは初めてづくしだからだろ。
データバインディングからレイアウトをxmlで書いて(デザイナーも使えるが)で、更にMVVMのお勉強。
だから、しんどい。

733:デフォルトの名無しさん
19/02/12 12:59:12.71 IcQdq56o0.net
wpfでもmvvmとバインディング使わなくてもいけるけど、listviewの仮想化とか使えなくなったりするが、mvvmとかも強制見たいな風潮がwpfの敷居を上げてる

734:デフォルトの名無しさん
19/02/12 13:02:29.67 DAeR3Vqi0.net
winformでやってみます

735:デフォルトの名無しさん
19/02/12 13:02:49.08 IcQdq56o0.net
androidは最初標準でデータバインディングとかなく途中で登場してMVVMっぽく作れるようになったが、
こういう風に段階を踏んで1個ずつ学び安い環境があったから良かった。
その違いだな。

736:デフォルトの名無しさん
19/02/12 13:47:31.84 BXjjeidx0.net
>>709
UWPってのもある

737:デフォルトの名無しさん
19/02/12 13:58:06.30 FIdhys7p0.net
>>689
UWP「せやな」

738:デフォルトの名無しさん
19/02/12 15:41:39.27 rOtwyWX5d.net
Xamarin.Forms+UWPならついでにiOSやAndroidにまあまあ対応できたりする

739:デフォルトの名無しさん
19/02/12 17:33:01.90 DAeR3Vqi0.net
>>715
formでやってみます
もうc++のほうがいいですか?

740:デフォルトの名無しさん
19/02/12 18:14:08.19 3x+OYT1Q0.net
好きにしろ

741:デフォルトの名無しさん
19/02/12 19:10:05.32 B1oV2gIZ0.net
>>704
c#、linuxで動くらしいぞ

742:デフォルトの名無しさん
19/02/12 19:11:51.93 B1oV2gIZ0.net
winformもlinuxで動くみたいなことも誰か言ってなかったっけ?

743:デフォルトの名無しさん
19/02/12 19:20:48.95 a/nbvL/tM.net
WPFでしんどい


744:のはMVVMという宗教。 自分で新しい宗派を名のる位のずうずうしさか他人の教義にひれ伏すか



745:デフォルトの名無しさん
19/02/12 19:21:39.94 KFZGfstbM.net
ザマリンで鬱陶しいのは信者

746:
19/02/12 22:02:44.11 afakhEje0.net
>>715-716
UWP のいい教科書/チュートリアルはありませんか?

747:デフォルトの名無しさん
19/02/12 23:28:53.73 TGYKDn8Ur.net
UWPアプリなんて誰も使ってないのに

748:デフォルトの名無しさん
19/02/12 23:39:52.22 HQcd2HqP0.net
>>724
o URLリンク(github.com)
o Windows Template Studioの吐いたひな形を眺める
o ストアにあるXAML Control Gallery

749:デフォルトの名無しさん
19/02/12 23:48:41.39 mBIHBqGr0.net
>>725
嘘をおっしゃい

750:デフォルトの名無しさん
19/02/13 00:04:01.52 sgtLrhrBr.net
>>727
いやマジでしょ

751:デフォルトの名無しさん
19/02/13 00:08:16.61 C9BSnIId0.net
>>725
俺は使ってるが

752:デフォルトの名無しさん
19/02/13 00:26:20.99 VGvE+KfY0.net
>>728
Windows10使ってる人は全員使ってるやろ

753:デフォルトの名無しさん
19/02/13 04:20:16.35 9xiZOSOZ0.net
wpf使うとエディタ自体重くならないですかね

754:デフォルトの名無しさん
19/02/13 08:22:31.97 9xiZOSOZ0.net
win form=win 32ということなんでしょうか
また、これは見た目はきれいにできないんですか?

755:デフォルトの名無しさん
19/02/13 08:35:14.74 9xiZOSOZ0.net
winformってデザイナー画面のズームできないんですか


756:デフォルトの名無しさん
19/02/13 08:37:37.78 hwjiROfk0.net
>>732
WinFormでファイラー作ると、XPのエクスプローラーもどき程度しか作れないのが問題だな
見た目のカスタマイズが困難だからね
ただWin32のコンポーネントを直に使うように作れば速度は本物と遜色ない物ができる
リストビューとか使わずにエクスプローラーの部品を引っ張ってくるなら

757:デフォルトの名無しさん
19/02/13 08:45:15.81 9xiZOSOZ0.net
>>734
見た目まで自由に作る場合はC++のほうがいいのでしょうか?
面倒そうではありますが
c++でもインターフェースは何らかのライブラリを使うと聞きますが

758:デフォルトの名無しさん
19/02/13 08:57:22.13 hwjiROfk0.net
>>735
C++でもWinFormsでも頑張れば見た目を変更できないこともない
ただ、素人が一人で片手間でやる作業量じゃすまないんだわな
簡単に見た目を変えたいのならWPFがお薦め

759:デフォルトの名無しさん
19/02/13 09:06:36.72 9xiZOSOZ0.net
↑わかりました

760:デフォルトの名無しさん
19/02/13 11:27:04.45 9xiZOSOZ0.net
>>736
それなりに使いこなせるように慣れば見た目を変えるのは容易ですか?

761:デフォルトの名無しさん
19/02/13 11:44:42.10 l4vsLjs90.net
スレチだけど、WPFはMahApps.Metroがあるからな。
メトロデザイン風なら楽できる

762:デフォルトの名無しさん
19/02/13 11:49:24.81 sgtLrhrBr.net
>>730
画像ビューワとか?
ExcelとかWinFormで作られているじゃん

763:デフォルトの名無しさん
19/02/13 12:08:48.71 ARXdU5axd.net
>>740
設定アプリ

764:デフォルトの名無しさん
19/02/13 12:17:19.46 C9BSnIId0.net
>>740
電卓

765:デフォルトの名無しさん
19/02/13 12:19:31.62 sgtLrhrBr.net
>>741
>>742
そういうのはさ、Windows10に標準でインストールされてるやつだけど
自分で作ったUWPアプリなんか誰にも使われることはないよね
そもそもアプリストアなんか見ることは一切ないし

766:デフォルトの名無しさん
19/02/13 12:24:36.18 tFsdkf9td.net
>>743
ストア見てるよ
Ubuntuとかダウンロードしたもん

767:デフォルトの名無しさん
19/02/13 12:26:05.04 e0d6KWciM.net
ダウンロードをストアから行うことはあるが、ストアでアプリを探すことは一度もやったことないな

768:デフォルトの名無しさん
19/02/13 12:33:48.97 EW0X8toeF.net
当初のUWPアプリなんて誰も使ってないという主張からどんどん特定条件が増えていくなw

769:デフォルトの名無しさん
19/02/13 12:34:12.66 2XDMMrj30.net
>>740
スタート画面

770:デフォルトの名無しさん
19/02/13 12:41:07.09 ARXdU5axd.net
>>743
>>725

771:デフォルトの名無しさん
19/02/13 14:03:56.48 jF7nIOB90.net
>>739
っMaterial Design In XAML Toolkit
マテリアルデザイン風もあるよ
MahApps.Metroとの連携も用意されてる

772:デフォルトの名無しさん
19/02/13 18:31:28.53 OfMy+HAU0.net
派遣先の組込上がりのPMがWinFormでタブレット対応アプリ作れと言ってくる
せめてWPFと言ったんだけどオナニーエンジニアうぜーと言われた

773:デフォルトの名無しさん
19/02/13 19:00:57.32 ixNjFQqZ0.net
説得できないんなら諦めろ

774:デフォルトの名無しさん
19/02/13 19:09:55.36 e0d6KWciM.net
>>750
勘違いするな
お前の仕事はモノを完成させることではなく労働力の提供なんだから黙って従えばよい
お前だって成果物責任を負う立場になれば多少なりとも保守的になるさ

775:デフォルトの名無しさん
19/02/13 20:02:03.05 NZaXG+jY0.net
>>750
俺にもお前がオナニーエンジニアにしか見えないんだが。

776:デフォルトの名無しさん
19/02/13 20:19:25.70 T+klQ57Ga.net
>>750
変な言い掛かりつけてる奴は恐らくWPFだけが
今時のタッチ操作をサポートしていることも知らないだけだから相手にすることない

777:デフォルトの名無しさん
19/02/13 21:17:02.96 sgtLrhrBr.net
前も言ったけどさ、ガワはブラウザで作ればいいじゃん
WinFormもWPFもUWPもいらん
Windowsアプリだがブラウザで操作する
ASP.Net Coreでもできそうだが

778:デフォルトの名無しさん
19/02/13 22:08:44.72 kXEWJhMu0.net
web cad な OSSのlibってあるのけ?

779:デフォルトの名無しさん
19/02/13 22:33:58.03 luVawDgcd.net
>>755
オナニー書き込みやめろ

780:デフォルトの名無しさん
19/02/14 05:20:39.39 MlsuSDTjr.net
エレクトロンみたいな感じでいいんだよ
裏側はc#、表側はhtml, css, js
.Net CoreならMacでもLinuxでも動くし
これが一番いい

781:デフォルトの名無しさん
19/02/14 07:46:22.81 Dp0xuhxW0.net
( ´_ゝ`)フーン
好きにすれば

782:デフォルトの名無しさん
19/02/14 08:16:35.34 GFNptSHh0.net
>>758
エレクチオンみたいな感じ?

783:デフォルトの名無しさん
19/02/14 11:28:10.10 MlsuSDTjr.net
バカどもには理解できないらしい

784:デフォルトの名無しさん
19/02/14 11:37:55.91 SFw402Pv0.net
ファイラを作成しているのですが、ツリービューでPC内のフォルダを検出する方法について、
どのあたりを調べたらいいか教えてください

785:デフォルトの名無しさん
19/02/14 12:34:57.27 tlcLfILV0.net
>>762
SYSTEM.IO

786:デフォルトの名無しさん
19/02/14 15:12:27.60 Q59BY7+Wp.net
>>760
こういうレスすごい好き
どうしてエレクチオンしないんだろうな

787:デフォルトの名無しさん
19/02/14 16:05:20.61 SFw402Pv0.net
>>763
ありがとぅ

788:デフォルトの名無しさん
19/02/14 20:27:11.25 SFw402Pv0.net
ソフト上でファイルにアクセスして、フォルダの中身などを表示したいのですが、まず何のフォームを使えばいいんでしょうか?

789:デフォルトの名無しさん
19/02/14 20:28:26.38 e1Z71hhf0.net
>>766
picturebox

790:デフォルトの名無しさん
19/02/14 20:37:17.42 SFw402Pv0.net
↑ありがとうございます
表示を切り替えたい場合などは、listviewなど別のものを使う感じですね

791:デフォルトの名無しさん
19/02/14 20:54:47.71 KyyLfHej0.net
質問があやふやで回答が無茶苦茶なの続いているけど遊んでいるのか?

792:デフォルトの名無しさん
19/02/14 21:19:13.61 m8w/NK2F0.net
あ?ころころすっぞ

793:デフォルトの名無しさん
19/02/14 21:27:08.41 4V+YrcT70.net
ワッチョイ変わったけど同一人物っぽいね
ソフト完成するまでずっと質問してそう

794:デフォルトの名無しさん
19/02/14 23:37:18.13 Dp0xuhxW0.net
>>771
そういうスレでしょ?

795:デフォルトの名無しさん
19/02/15 02:03:45.64 olENi3qW0.net
ある要素の中で2番目に高い数値を選ぶエレガントなlinqを教えて下さい

796:デフォルトの名無しさん
19/02/15 03:00:48.77 ehpwnyaM0.net
sortedData[1]

797:デフォルトの名無しさん
19/02/15 04:23:42.06 lsxqATYQ0.net
Distinct().OrderBy().Skip(1)
とか?
全部同じ値の可能性があるなら知らん。

798:デフォルトの名無しさん
19/02/15 04:28:01.15 lsxqATYQ0.net
エレガントとは言えない上に間違ってたorz

799:デフォルトの名無しさん
19/02/15 05:03:20.06 a5xYZsMx0.net
Distinct().OrderByDescending().ElementAt(1)
でしょ

800:デフォルトの名無しさん
19/02/15 07:02:27.81 olENi3qW0.net
>>774
その2番じぁねーw

801:デフォルトの名無しさん
19/02/15 07:03:18.02 olENi3qW0.net
>>777
ありがとうございます。

802:デフォルトの名無しさん
19/02/15 09:07:12.92 joZk3VJy0.net
>>777
だいたい良いと思うが、データが2個以上無いと落ちるよね

803:デフォルトの名無しさん
19/02/15 10:33:16.88 QcXsKv+O0.net
2番じゃ駄目なんですか

804:デフォルトの名無しさん
19/02/15 11:41:11.71 a5xYZsMx0.net
>>780
そんなもん例外キャッチすればいいでしょ

805:デフォルトの名無しさん
19/02/15 12:42:08.68 VCl1o3iCa.net
>>782
ArgumentException系をcatchするのは悪手だと思う
.Distinct().OrderByDescending(x => x).Cast<int?>().ElementAtOrDefault(1)
とするのはどうだろう

806:デフォルトの名無しさん
19/02/15 12:53:25.53 Qph8FA2WM.net
>>780
そういう状態を想定するならそもそも2番目が無い時の要件書いてないやつが悪い

807:デフォルトの名無しさん
19/02/15 12:56:57.66 dZvrqvyod.net
>>780
ちょっとしたQAにあらゆる異常系処理にまで対応したコードまで求めるのは違うと思う

808:デフォルトの名無しさん
19/02/15 13:01:49.14 tYLxs8Yjr.net
みんなLinkつこてるの?

809:デフォルトの名無しさん
19/02/15 13:02:20.42 juddEHEPp.net
二番目に高い要素を取得っちゅーてんのに二番目が無い場合に
例外じゃなく勝手に既定値を返す方がよほど悪手じゃね?

810:デフォルトの名無しさん
19/02/15 13:04:27.67 Ayyf6Kdi0.net
c#で作られているソフトって何があるのですか

811:デフォルトの名無しさん
19/02/15 13:18:02.81 VCl1o3iCa.net
>>787
強調し忘れてたから念の為書いておくと
Null許容型にしているから「二番目に高い要素が0」の場合と「二番目が無い場合」は区別できる
それを踏まえた上で指摘してくれているなら……Null許容型使ってたらnullチェックしてくれると信じてるんだがどうだろう

812:デフォルトの名無しさん
19/02/15 13:44:54.78 juddEHEPp.net
>>789
正直そのへんは踏まえずケチつけたけど
結局エラー分岐が戻り値か例外かって話になるなら
質問者そっちのけでどちらがスマートか殴りっこしても不毛だなあ

813:デフォルトの名無しさん
19/02/15 17:22:07.61 Ayyf6Kdi0.net
vs2017でただの波括弧で特定部分を囲うと、インデントされますが、これはどのような意味を持ちますか?

814:デフォルトの名無しさん
19/02/15 17:37:00.14 l6xRE0dp0.net
超かっこいい

815:デフォルトの名無しさん
19/02/15 17:54:08.50 VXffwVEC0.net
>>791
ブロックという意味です

816:デフォルトの名無しさん
19/02/15 18:14:31.02 Ayyf6Kdi0.net
>>793
if{}
みたいな条件がない
{}
だけの状態でもエラーとはなりませんが、何の意味があるのですか?
見た目を整えるだけですか?

817:デフォルトの名無しさん
19/02/15 18:34:36.59 QcXsKv+O0.net
>>788
nikon の現像ソフト

818:デフォルトの名無しさん
19/02/15 18:35:17.81 T7xyRbUnM.net
>>794
一時変数を何度も使うときに便利

819:デフォルトの名無しさん
19/02/15 18:54:51.21 Qph8FA2WM.net
>>794
C# ブロックスコープ
でぐぐれ

820:デフォルトの名無しさん
19/02/15 18:57:50.87 Ayyf6Kdi0.net
↑ありがとう

821:デフォルトの名無しさん
19/02/15 19:10:43.29 A45VNw280.net
>>794
スコープを制限するからその中で宣言したローカル変数は外�


822:ナ使えない たぶん、それ以外に違いはない



823:デフォルトの名無しさん
19/02/15 20:08:29.07 Ayyf6Kdi0.net
c#のwinformのmenustripの背景というのは変更できないのでしょうか
この辺はそれぞれのPCに依存してるのかなーと思います

824:デフォルトの名無しさん
19/02/15 20:12:53.72 gfFuWLI70.net
>>800
BackgroundImageのプロパティに設定

825:デフォルトの名無しさん
19/02/15 21:35:27.37 jCkiam8S0.net
>>792
俺の事か?

826:デフォルトの名無しさん
19/02/16 05:07:55.77 d5pUUzr/0.net
>>801
ありがつぅ

827:デフォルトの名無しさん
19/02/16 05:57:51.57 d5pUUzr/0.net
c#でスクリーンショット撮影するソフトは不可能ですか?

828:デフォルトの名無しさん
19/02/16 07:29:21.89 +4z8MAVsd.net
いいえ

829:デフォルトの名無しさん
19/02/16 11:13:44.16 I7KLi1I90.net
>>804
検索すればすぐわかる

830:デフォルトの名無しさん
19/02/16 11:55:58.09 mmBt6tnL0.net
>>804
MessageBox.Show("PrintScreenボタンを押せろください");

831:デフォルトの名無しさん
19/02/16 16:07:58.46 n2t8JUOl0.net
Cでは数値型変数を複数の場所から参照するためには、変数のポインタ得てそれを使いますが
C#ではポインタ無いんで、数値フィールド持つクラスを作って
そのインスタンスから参照するしか無いんですか?

832:デフォルトの名無しさん
19/02/16 17:01:04.63 dfsqwbBrd.net
別にポインタはあるぞ。
行儀わるいから、使うべきかよくかんがえたほうがいいだけ。

833:デフォルトの名無しさん
19/02/16 17:01:47.04 mSWYdTC80.net
>>808
スカラー型なら直接読み書きすれば良いのでは無いかと思いますが…配列なら参照型です
変数参照を扱うなら強化されたrefやoutを使えます、またunsafeだとポインタも使えます
TypedReferenceというのも有りますがコレを扱うための__makerefなどは些かアレなので…
.NETには値参照用のSystem.Runtime.CompilerServices.StrongBox<T>などジェネリック既存型も有ります

834:デフォルトの名無しさん
19/02/16 17:09:27.87 eqms90yHd.net
定数参照的な話?

835:デフォルトの名無しさん
19/02/16 17:11:36.23 PR5Tb5Rba.net
>>808
Cでもスコープ内の変数は普通に読み書き可能。
スコープ外の変数でもその値を引数として関数に渡すことができる
ポインタが必用になるのは変数を書き換える汎用的な関数を書く場合だけ
C#の場合、同じことはrefやout付きの引数で実現できる

836:デフォルトの名無しさん
19/02/16 17:20:05.45 d5pUUzr/0.net
URLリンク(nn-hokuson.hatenablog.com)
個々のサンプル通りにゲームを作成中なのですが、paintイベントハンドラってなんでしょうか
paintというイベントは何によって発生するのかよくわかりません

837:デフォルトの名無しさん
19/02/16 17:27:37.84 NXeshUsvp.net
>>813
> paintイベントハンドラってなんでしょうか
描画をするためのハンドラです
> paintというイベントは何によって発生するのかよくわかりません
描画をしたい時に発生します

838:デフォルトの名無しさん
19/02/16 17:31:08.38 d5pUUzr/0.net
↑描画とはどういう操作のことでしょうか?
フォームがロードされた時点で実行されます

839:デフォルトの名無しさん
19/02/16 17:37:19.60 NXeshUsvp.net
>>815
ゲームの場合は勝手に描画が実行され続けます

840:デフォルトの名無しさん
19/02/16 18:16:49.35 d5pUUzr/0.net
↑自動的にですか
ありがとうございます

841:デフォルトの名無しさん
19/02/17 12:34:21.09 Cn2cXppc0.net
using System;
public class Hello{
public static void Main(){
// Your code here!
private void myfunction(){
Console.WriteLine("jfo


842:asd"); } myfunction(); } } paizaでC#を入力するとエラーが出るのですが、どこがおかしいですか? private voidの部分が予期されていないというエラーが出ますね https://paiza.io/ja



843:デフォルトの名無しさん
19/02/17 12:38:27.42 51VRzV3m0.net
staticな関数から動的な関数を呼び出してるんじゃない?

844:デフォルトの名無しさん
19/02/17 12:59:41.60 j6Gi9YSR0.net
ローカル関数をサポートしてないだけでしょ

845:デフォルトの名無しさん
19/02/17 13:00:14.76 I+dbukVsp.net
>>818
private voidの部分がおかしいですね

846:デフォルトの名無しさん
19/02/17 14:31:14.74 cAaLtQSp0.net
>>818
まずこういう質問はpaizaの問題でC#のスレでやられても混乱するからVisualStudioでの話以外はやめてくれ
コード書けるサイトが間違っていないって保証が無い。実際動くコード転載してもエラーって何度も経験しているからな
VisualStudioで書くのならターゲットフレームワークを.Net4.7以上にしてprivate void myfunction()からprivate外してvoid myfunction()で動く

847:デフォルトの名無しさん
19/02/17 16:38:09.76 Agaj4T0x0.net
たすけて!これ何が違うの?
どっちも普通に使えるよね?
ちな初心者
①List<T> list = new List<T>();
②List<T> list;

848:デフォルトの名無しさん
19/02/17 16:55:04.91 2ynU5zYy0.net
後者は中身が無いからそのままじゃ使えない

849:デフォルトの名無しさん
19/02/17 17:04:55.99 KqlDIF5Pa.net
>>823
1はlistという変数の定義と同時にList型のインスタンスで初期化している、普通に使える
2はlistという変数を定義しただけの状態
ローカル変数の場合は後で初期化する必要がある、未初期化のまま使おうとするとコンパイルエラー
クラスや構造体のフィールドの場合は暗黙でnullで初期化される、「普通に使う」ためには後でList型インスタンスを代入してやる必要がある

850:デフォルトの名無しさん
19/02/17 17:07:18.00 naWxhgEk0.net
>>823
> ①List<T> list = new List<T>();

List<T> list;
list = new List<T>();
と同じ
> ②List<T> list;
はlistの実体が設定されてないからそのままlist.Add(…)とかやると例外が発生する

851:デフォルトの名無しさん
19/02/17 17:07:30.92 B/nvmulQd.net
>>822
.NETのバージョンなにか関係あるか?

852:デフォルトの名無しさん
19/02/17 17:12:13.37 tKx1WgvG0.net
>>823
C++と違ってクラスは強制的に参照型で変数宣言がポインタと同等なのよ
宣言だけではコンストラクタはもちろんインスタンスも割り当てられない

853:デフォルトの名無しさん
19/02/17 17:26:45.23 Cn2cXppc0.net
>>822
paiza だと挙動が少し違うようです
このサイトはやめときます

854:デフォルトの名無しさん
19/02/17 17:35:39.94 Cn2cXppc0.net
ちょっとコードを確認したいというときに、使えるツールありますか?
わざわざプロジェクト作るほどではないときですね
python のidleのようなものです

855:デフォルトの名無しさん
19/02/17 17:38:44.31 Ox4HquXb0.net
>>830
C#インタラクティブ

856:デフォルトの名無しさん
19/02/17 17:41:30.40 0sFVNd3o0.net
cscは標準で入っているでしょ

857:デフォルトの名無しさん
19/02/17 17:54:52.02 B/nvmulQd.net
>>830
LINQPad

858:デフォルトの名無しさん
19/02/17 18:01:37.03 /k3HmPSI0.net
csiだな

859:デフォルトの名無しさん
19/02/17 18:03:11.00 owh3i+7dM.net
スクリプトみたいに対話型でできる?

860:デフォルトの名無しさん
19/02/17 18:18:26.04 Cn2cXppc0.net
↑ありがとうございました

861:デフォルトの名無しさん
19/02/17 18:21:23.19 naWxhgEk0.net
>>830
notepad.exe + csc.exe

862:デフォルトの名無しさん
19/02/17 18:28:37.10 Agaj4T0x0.net
>>825
>>826
>>828
NEWはしなきゃいけないのね
有難う御座います

863:デフォルトの名無しさん
19/02/17 18:29:26.69 Cn2cXppc0.net
>>833
これいいっすね
初心者なのでしばらく練習します

864:デフォルトの名無しさん
19/02/17 20:45:16.60 Cn2cXppc0.net
vs codeもちょっとしたコードの確認に使うものなんでしょうか?

865:デフォルトの名無しさん
19/02/17 21:29:49.15 I+dbukVsp.net
>>840
使うひともいれば使わないひともいますね

866:デフォルトの名無しさん
19/02/18 01:50:55.38 pxm+KTrW0.net
入力項目が沢山ある画面で、変更を保存せず画面を閉じようとしたときは警告を出したいです。
何も変更せず画面を閉じる場合は警告を出さずに閉じたいです。
この場合の変更チェックは入力項目に紐づく変数1個1個をチェックする以外に、スマートな方法は無いでしょうか?
入力項目に紐づく変数はデータクラスとして用意しているので、画面開く直前にハッシュのようなものを計算し退避しておき、
画面を閉じる直前にハッシュを再計算し比較すれば行けると思うのですが、オブジェクトのハッシュを求めるのは
GetHashCodeでいいのでしょうか?

867:デフォルトの名無しさん
19/02/18 01:58:21.05 0Vx/m/dz0.net
ないね
上に1dot
下に1dot
って動かされて終了したときは
出したくないんでしょ?
何か妥協点がない限り全部比較するしかないよ

868:デフォルトの名無しさん
19/02/18 02:13:28.99 Y8U6L+e90.net
>>842
データクラスとして纏めてあるなら、GetProperties()やGetFilelds()で抽出した各変数を
ループで比較すればそこそこスマートなんじゃない。

869:デフォルトの名無しさん
19/02/18 02:29:46.98 GC8vaMYY0.net
俺ならデータクラスにINotifyPropertyChangedを実装するかな

870:デフォルトの名無しさん
19/02/18 02:53:09.62 +SQV8UeVa.net
>>842
直接の回答でなくてごめん。
そういうMSにありがちなUIはたぶん
(1) 変更をキャンセル可能であること
(2) OKボタンをクリックした時点で初めて変更が反映されること
が要件になってるからそういう仕様になるんだと思うけど、こんな要件が必用ないなら
画面の入力項目の変更を変更があった時点でその都度対応するオブジェクトの
プロパティーに反映させてしまえば、「変更を保存せず画面を閉じようとしたときは警告を出」す
必用自体がなくなる
まあ一種の手抜きだけど、場合によっては許容される手抜きだと思う

871:デフォルトの名無しさん
19/02/18 03:23:01.21 pxm+KTrW0.net
>>845
いいアイデアですね。
プロパティ1つ1つに
if(beforeValue!=afterValue)
 OnPropertyChanged();
みたいな実装が必要なのが若干だるい気がしますが。
>>846
つまり変更した瞬間に即確定って意味でしょうか?
後出し情報で申し訳ないですが、最終保存先がDBで
アプリにとって比較的重要な情報の更新をしようとしています。
なるべく意図しない変更を防ぎたいです。

872:デフォルトの名無しさん
19/02/18 08:27:54.30 GC8vaMYY0.net
>>847
データクラスのベースクラスをPrism.MvvmのBindableBaseにするとまあまあタイプ量減らせたりするよ

873:デフォルトの名無しさん
19/02/18 11:29:03.32 huM3ZKfN0.net
URLリンク(i.imgur.com)
vs codeを使っているのですが、どこから実行できるんでしょうか?
言語はc#で、マイクロソフトのc#のアドオンを入れました
ctr shift pでrunというコマンド?が出てくるので、それをクリックしたのですが、outputには何も出ません
また、ヴィジュアルスタジオの場合はイベントハンドラーがありますが、常に実行させるようなイベントというのはただのC#にあるんでしょうか?

874:デフォルトの名無しさん
19/02/18 11:34:39.00 FChOt/Xad.net
>>849
チュートリアルくらいやれよ

875:デフォルトの名無しさん
19/02/18 12:06:26.29 RBxZ7FEaM.net
>>849
ターミナルでdotnet runと打ち込んでEnterや

876:デフォルトの名無しさん
19/02/18 12:13:35.54 vM1YVHVQd.net
>>842
そう言うの割とダルいから、データをクラスにまとめといて、開いた時点でシリアライズして文字列で持っちゃう。
保存時にシリアライズして文字列一致しなかったら、変更されてる�


877:ニ言うことにする。 一個ずつ比較したら改修で漏れるよ。



878:デフォルトの名無しさん
19/02/18 12:41:30.31 huM3ZKfN0.net
>>851
ありがとうございます
そうやって実行するんですね
visual studioよりむずいです
ただ、Program.csという自動生成されたファイルが実行されます
同じフォルダに自分で作ったsample.csがあるんですが、こっちを実行させる設定はどこからするんでしょうか?
パスを指定してからdotnet runしてもエラーになるます

879:デフォルトの名無しさん
19/02/18 12:42:32.67 OjJXAwBNd.net
>>853
いやだからチュートリアルくらいやれって

880:デフォルトの名無しさん
19/02/18 12:59:06.77 pxm+KTrW0.net
>>852
それもいい考えですね。
メンバ変数に[DataMember]とアノテーションを
つければいいだけですね

881:デフォルトの名無しさん
19/02/18 13:05:27.38 99WFuefSa.net
まあ一度変更があった時点で実際には等価でも別物と見なす実装が一番簡単だねたぶん。
実際そういうソフト結構あるよね。
そういう手抜きが気に入らないなら素直にEquals実装するのが結局シンプルじゃないのかな。
フィールドが全部値型の構造体ならデフォルト実装で済むと思ったし
...と思って調べてみたけど、なんかドキュメントによって書いてるこが微妙に違うなw
URLリンク(docs.microsoft.com)
↑には「リフレクションを使用して、型のフィールドとプロパティをすべて調べます。」と書いてあるが
URLリンク(docs.microsoft.com)
↑には単純にビットイメージの比較と書いてある
となってる。どっちが正しいんだ?w

882:デフォルトの名無しさん
19/02/18 18:49:02.00 L0NbuPbAa.net
>>856
> URLリンク(docs.microsoft.com)
のRemarksには、thisとobjの全フィールドが参照型でなければbyte単位の比較、そうでなければリフレクションを使うとある
URLリンク(docs.microsoft.com)
他に知っているもので↑では、リフレクションを使うとだけある
URLリンク(referencesource.microsoft.com)
少なくとも.NET Framework 4.7.2では、ビット比較だけしていそうなFastEqualsCheckを呼ぶパスが存在する
そのパスを通るか判定しているCanCompareBits関数はexternなので詳細不明

883:デフォルトの名無しさん
19/02/18 19:16:27.32 L0NbuPbAa.net
ごめん「他に知っているもの」に貼るURL間違えた
URLリンク(docs.microsoft.com)

884:デフォルトの名無しさん
19/02/19 11:05:06.64 t+ZZI+Uh0.net
vs codeのproblemの欄なんですが、間違ったコードを入力しても自動で更新されないようです
デバッグを実行しないとだめなようですが、リアルタイムにエラーを表示してくれる設定はできますか?
以前はできたんですが

885:デフォルトの名無しさん
19/02/19 12:03:57.65 IsM0ebyqd.net
日本語でよろしく

886:デフォルトの名無しさん
19/02/19 12:33:41.44 efthhon4M.net
そいつは難しいproblemだな

887:デフォルトの名無しさん
19/02/19 17:38:20.55 JJR46+B00.net
>>859
vs codeのことは専用スレで聞け、スレ違い
Visual Studio Code / VSCode Part5
スレリンク(tech板)

888:デフォルトの名無しさん
19/02/19 19:41:44.24 t+ZZI+Uh0.net
なぜmain関数の中に処理を書かないといけないのですか?
そういうルールだからってことですか?
pythonだとどこに書いてもいいと思うんですが

889:デフォルトの名無しさん
19/02/19 19:46:47.41 +t+aP4snM.net
そういう設計思想だから

890:デフォルトの名無しさん
19/02/19 19:54:09.61 zirjw7Cj0.net
main以外をエントリポイントにできるけどな
win32apiからの慣習

891:デフォルトの名無しさん
19/02/19 21:39:52.76 eXSGnhOj0.net
>>865
C#で出来るの?
どうやって?

892:デフォルトの名無しさん
19/02/19 22:33:06.53 MriKnXlj0.net
>>866
なくはない
URLリンク(ufcpp.net)

893:デフォルトの名無しさん
19/02/20 01:09:59.10 WG18KXuW0.net
助けて!!
Parallel.Forを使ってそれぞれで別の演算アプリを起動して
4スレッドで演算処理してるんだけど
アプリ強制終了してもスレッド(演算アプリ)はずっと処理し続けてるの!お願い止まって!!
親スレッド(UIスレッド)が死んだら子スレッドも死ぬみたいなお作法ありますか?
演算アプリはSystem.Diagnostics.Process使って起動してます

894:デフォルトの名無しさん
19/02/20 01:46:34.63 3QCW37aG0.net
Process.Kill()でしょ

895:デフォルトの名無しさん
19/02/20 02:03:55.40 /GvzZ744d.net
>>868
それはC#的にスレッドとは言わない。
別プロセスだ

896:デフォルトの名無しさん
19/02/20 07:56:23.82 Jfh2EJBjr.net
電源off

897:デフォルトの名無しさん
19/02/20 09:16:30.41 JdxivbIi0.net
>>868
CancellationTokenSourceを使ってみれば?

898:デフォルトの名無しさん
19/02/20 16:01:28.63 qtZmd9yJa.net
form1にsplit container をverticalで貼り付けて左右に2分割してその中にボタンとかコンポーネントいろいろ置いてて、
あとから上にmenu stlipを追加したくなってツールボックスからmenu stripコンポーネントをドラッグ&ドロップすると
splitcontanerのpanel1かpanel2のどっちかにしか貼り付けられないのだけどform1にmenuStripを表示するようにするにはどう操作すればいいのでしょうか

899:デフォルトの名無しさん
19/02/20 16:10:46.41 YXUL7WNb0.net
一旦張り付けてから
ドキュメントアウトライン表示させてForm直下に移動させる

900:デフォルトの名無しさん
19/02/20 16:31:00.95 ThCTwK+Ha.net
>>873
前も書いたけど、
[ctrl] + [alt] + t

901:デフォルトの名無しさん
19/02/20 16:42:16.67 qtZmd9yJa.net
>>874
ありがとうございます

902:デフォルトの名無しさん
19/02/20 16:43:52.95 qtZmd9yJa.net
>>875
ありがとうございます
配置していたテキストボックスがめり込んでしまいましたがなんとか修正してみます

903:デフォルトの名無しさん
19/02/21 12:23:38.43 A65FK9eD0.net
目のかすみ
>>872
>>869
神!トークン付けてスレッド実行して
キャンセル時にスレッド内でIsCancellationRequestedで拾って
Process.Kill()すればいいのか
行けそうな気がしてきた

904:デフォルトの名無しさん
19/02/21 12:51:17.47 Nj5ihKJg0.net
それでいいのか
アプリ強制終了っていうからタスクマネージャから落とす時のことを想像してた

905:デフォルトの名無しさん
19/02/21 13:02:04.01 A65FK9eD0.net
>>879
それもあるよ!今はキャンセル機能ないから強制終了させて
この問題発せしたんよ
ちなみに強制終了の場合はなんか手法ある?
別プロセスもタスクマネージャーで落とすしかない?

906:デフォルトの名無しさん
19/02/21 13:15:26.35 Nj5ihKJg0.net
基本的にはそうじゃないかね
ちょっと凝った風にするならプロセス間通信でハートビート送って応答なけりゃ自死するとかあるけど

907:デフォルトの名無しさん
19/02/21 16:20:57.98 +4fiWh+W0.net
すみません、コルーチンの使い方について教えてください。
例えばRPGなどのゲームで、キャラクターAに話しかけると、数秒待って反応が返ってくるという処理をしたいと思っています。
まず、数秒待つというコルーチンを作り
private IEnumerator waitforsecond(float sec) {
yield return new WaitForSeconds(sec);
}
次にAに話しかけた時の処理を作りました。
public void Sample(){
 //50%の確率で無視される
 if(Probability.DetectFromPercent(50)){
MainText.text = “Aに話しかけてみた・・・”;
StartCoroutine(waitforsecond(2));
 MainText.text = "なんとAから無視された!”;
 
 //50%の確率で殴られる
  }else {
MainText.text = “Aに話しかけてみた・・・”;
StartCoroutine(waitforsecond(2));
MainText.text = "なんとAから蹴られた!”;

908:デフォルトの名無しさん
19/02/21 16:24:21.78 +4fiWh+W0.net
これで、話しかけたあと2秒時待機して反応がある、という処理になるかと思ったのですが、うまく行きません。
あと登場キャラクターもA、B、C‥‥とたくさんいるのであれば、話しかけると数秒待って反応するという関数を作ってあげたほうがスッキリするのでしょうが、やり方がイマイチわかりません。

909:デフォルトの名無しさん
19/02/21 16:42:20.49 VKoyYoRjM.net
>>883
非同期や

910:デフォルトの名無しさん
19/02/21 17:11:57.24 +4fiWh+W0.net
>>884
非同期・・ググりました。
「非同期」とは重い処理があった場合は終わるのを待たないこと。とありますが、、

911:デフォルトの名無しさん
19/02/21 19:03:38.92 +XWUccMjM.net
Wait前にthis.Refresh()って無意味だっけ

912:デフォルトの名無しさん
19/02/21 19:53:42.96 5v/pkJgQa.net
>>882
何で待つのにイテレーターを使うのかちょっと意味がわかんないねw

913:デフォルトの名無しさん
19/02/21 20:08:47.12 c4smrZlO0.net
yieldでコルーチンという一昔前の一発芸がUnityで幅を利かせているから仕方ないのねー

914:デフォルトの名無しさん
19/02/21 20:11:16.75 969mh7640.net
俺もあいまいな理解だから偉そうには言えないけど
>>882
ここのサンプルが分かりやすいかも
URLリンク(developer.wonderpla.net)
>>885
private IEnumerator waitforsecond(float sec) とpublic void Sample()が非同期(違う時間軸での動作)になるので待ち時間になっていない
>>887の言う通り待ち時間には他の物を使わないと

915:デフォルトの名無しさん
19/02/21 20:17:45.84 mRRRBv2X0.net
>>878
その演算アプリがどういう物かわからんが
そもそもそれ別プロセスじゃないとダメなのか?

916:デフォルトの名無しさん
19/02/21 22:25:20.57 +4fiWh+W0.net
>>889
ありがとうございます。
他の物とは具体的にどんな関数を使えばいいのでしょうか?

917:デフォルトの名無しさん
19/02/21 23:14:15.44 5v/pkJgQa.net
>>891
思ったより面倒臭い
URLリンク(ideone.com)

918:デフォルトの名無しさん
19/02/21 23:22:50.38 5v/pkJgQa.net
>>892
これ書いてて一つ疑問に思ったのが、
MessagingTask = MessagingTask.ContinueWith(t => job.Action());
これを以下のように、
MessagingTask.ContinueWith(t => job.Action());
こう変えると期待した動きにならない。
ContinueWithってキューになってて先に入ってるタスクの完了を待って次を実行すると思ったけど違うのか

919:デフォルトの名無しさん
19/02/21 23:42:43.30 aABnGI350.net
>>893
重箱の隅…だが。
Task.Run(() => { })の代わりにTask.CompletedTaskってあるよ。
後、Task.Delay(Pause).Wait()ってThread.Sleep(Pause)で良いんでない。

920:デフォルトの名無しさん
19/02/21 23:44:55.38 e6A24yU10.net
>>893
継続タスクが1つとは限らない。複数あったらパラって実行される。

921:デフォルトの名無しさん
19/02/21 23:48:25.54 5v/pkJgQa.net
>>894
うん、知ってたけど今使ってるのがVS2015なのよ...

922:デフォルトの名無しさん
19/02/21 23:49:35.07 5v/pkJgQa.net
>>895
やっぱり俺が誤解して理解してたんだなありがと

923:デフォルトの名無しさん
19/02/23 14:44:05.16 3cOSTboLa.net
MenuStripコンポーネントでItemを選択した時にその左にチェックを入れるようにしてるのだけど
選択した時点でメニュー閉じちゃって若干不便なのだけど
ひらいたままにする設定にはできないのでしょうか

924:デフォルトの名無しさん
19/02/23 19:07:18.92 gzY/wSmba.net
>>898
ルートのアイテムの直下ならClickか何かで親のShowDropDown()を呼べば一応実現できるっぽい。
入れ子になってる場合は、
....
ToolStripMenuItem1.Click += (sender, e) =>
{
  RecursiveShowDropDown(((ToolStripMenuItem)sender));
};
....
void RecursiveShowDropDown(ToolStripMenuItem item)
{
  if (item == null) return;
  var parent = item.OwnerItem as ToolStripMenuItem;
  RecursiveShowDropDown(parent);
  parent?.ShowDropDown();
}
たぶんこれでいける。
でもエンターキーでクリックした場合の操作性に問題が残るけど

925:デフォルトの名無しさん
19/02/23 19:24:23.57 gzY/wSmba.net
こっちの方がいいか
EventHandler eh = (sender, e) =>
{
  Action<ToolStripMenuItem> a = null;
  a = item =>
  {
    if (item == null) return;
    var parent = item.OwnerItem as ToolStripMenuItem;
    a(parent);
    parent?.ShowDropDown();
  };
  a((ToolStripMenuItem)sender);
};
ToolStripMenuItem1.Click += eh;

926:デフォルトの名無しさん
19/02/24 03:15:52.41 pRL7US30a.net
>>899
無事できました
ありがとうございます!

927:デフォルトの名無しさん
19/02/24 11:47:42.69 L3+XvQB40.net
質問です
現在、以下のように一つの非同期処理(時間のかかるディスクの書き込み)
を実行しています。
private async void button1_Click(object sender, EventArgs e)
{
 await DoSomethingAsync();
 MessageBox.Show("完了");
}
これを実行中にUIを操作して、次の処理の準備ができたら(実行する内容はDoSomethingAsync)
button1を押して予約し、実行中の処理が終わったら引き続き実行させたいです。(並列ではなく)
また、「完了」は登録されたタスクが全て終わったときに出したいです。
どのように書くのが一般的なのでしょうか?

初回実行時にすべての実行すべきタスクがわかっている場合は
そのタスクのリストを作ってWhenAllする みたいなのはググったら出てきたんですが
ContinueWithを使うのかなと思ったのですが、書き方がわかりませんでした

928:デフォルトの名無しさん
19/02/24 11:58:25.65 u2ta9zSf0.net
Queue<T>を使えば良いんじゃね

929:デフォルトの名無しさん
19/02/24 12:36:22.83 cR8EPyISM.net
>>902
最後に追加したTaskを覚えておいてContinueWithで繋ぐとかできなくはないけど、
そんな変なハックをするくらいなら素直に別スレッド立てて順番にバックグラウンド実行したほうがいい
Producer-Consumerでググれ

930:デフォルトの名無しさん
19/02/25 11:09:41.10 a5srEHrc0.net
c#のフォームで、タイルマップエディタのようなものを作りたいのですが、どのような情報を調べたらいいでしょうか
また、そのような目的に適したフォームはありますか?
そもそもC#が適切なのかわからないのですが

931:デフォルトの名無しさん
19/02/25 11:41:19.60 2iFL+VGx0.net
>>90結局Unityになるんやろなあ

932:デフォルトの名無しさん
19/02/25 12:13:30.45 kHS+5sOB0.net
VisualStudioでデバッグ実行した時だけプログラムがフリーズしてしまうのですがこういう時はどういった原因が考えられるでしょうか?
WinFormを使用していてフォームが立ち上がったらバックグラウンドで色々するって感じの処理なのでどこかでUIスレッドをブロックしているのかとも思いましたがConfigureAwait(false)の設定し忘れは無さそうでした
VisualStudioを通さずに直接実行した場合は正常に動作しています

933:デフォルトの名無しさん
19/02/25 13:05:26.46 fW706uYI0.net
とりあえずフリーズした時に「すべて中断」して
どこでブレイクされるか確認
ついでにスレッド一覧を見てみる

934:デフォルトの名無しさん
19/02/25 13:15:34.63 O8+i9ARHp.net
>>908
それを試そうとしたのですが全て中断しても中断出来ない状況です
中断押すとVS自体もフリーズしてタスクマネージャーからプログラムを終了しないと復帰出来なくなります

935:デフォルトの名無しさん
19/02/25 15:41:31.91 stIKiSPsF.net
最前面じゃなくて後ろ面にアクティブウィンドウがポップアップされてるんじゃね

936:デフォルトの名無しさん
19/02/25 19:11:52.07 ERkCIkZda.net
>>902
単純にボタンをクリックした回数だけ非同期メソッドを実行したいだけなら
これでいいような気が
private bool mBusy = false;
private int mRepeatCount = 0;
private async void button1_Click(object sender, EventArgs e)
{
  mRepeatCount += 1;
  if (mBusy) return;
  mBusy = true;
  for (int i = 0; i < mRepeatCount; i++)
    await DoSomethingAsync();
  mBusy = false; mRepeatCount = 0;
  MessageBox.Show("全部終わった");
}

937:デフォルトの名無しさん
19/02/25 19:17:48.39 61uBElrFd.net
>>907
俺はエディタでヒント表示させただけで落ちるけど。Blendなら使えてる。

938:デフォルトの名無しさん
19/02/26 06:14:33.14 hTJo4mxi0.net
URLリンク(i.imgur.com)
c#をデバッグするとこのようなエラーが出るのですが、どこを改善すればいいかヒントをください

939:デフォルトの名無しさん
19/02/26 06:21:28.31 byKZhMZS0.net
>>913
dllのパス

940:デフォルトの名無しさん
19/02/26 07:34:07.95 hTJo4mxi0.net
↑ありがとうございます
.NET Core Launch (console)
というデバッガを使っているので、
"program": "${workspaceFolder}/bin/Debug/<insert-target-framework-here>/<insert-project-name-here>.dll",
という部分を修正するのだと思いますが、どう修正するんでしょうか?
実行したいプログラムを{workspaceFolder}/Program.csと指定してもエラーになります

941:デフォルトの名無しさん
19/02/26 07:53:17.80 U5FDQ2yTd.net
>>915
いやだからcsじゃなくてdllだってば

942:デフォルトの名無しさん
19/02/26 07:54:10.15 U5FDQ2yTd.net
ログにもちゃんと出てるはず

943:デフォルトの名無しさん
19/02/26 08:00:35.55 H+xdnOpD0.net
>>915
プログラミングするなら英語は必須だから、「何だか分からないこと言ってる!」とか思わずにちゃんと読みな。

944:デフォルトの名無しさん
19/02/26 08:41:24.11 hTJo4mxi0.net
>>916
c#なのにDLLなんですか?
このDLLのパスは何をしてるんですか?

945:デフォルトの名無しさん
19/02/26 08:50:05.00 UlQR9ttEM.net
普通にVisualStudio(Codeじゃないやつ)ダウンロードして知識付けてから挑戦しろよ
邪魔だよ

946:デフォルトの名無しさん
19/02/26 09:40:46.12 7RJrl9MrM.net
小学校でプログラミング教育でも受けてろ

947:デフォルトの名無しさん
19/02/26 09:54:59.60 s7Q5fSFO0.net
>>909
そうなるともう新しいプロジェクトに今のを段階的に移していってどこで再現するか確認するかなぁ

948:デフォルトの名無しさん
19/02/26 10:57:10.09 s7Q5fSFO0.net
>>919
とりあえずエクスプローラなりコンソールなりvscodeとは別に開いて
プロジェクトフォルダのbinフォルダの配下を確認
どこかにビルド結果のdllが作られてるから
うちはいつの間にかPlatformって環境変数が定義されてたせいで
HPDとかいうフォルダが1個挟まってたぞ

949:デフォルトの名無しさん
19/02/26 10:58:52.43 RV1beKRS0.net
こっちへどうぞ
Visual Studio Code / VSCode Part5
スレリンク(tech板)

950:デフォルトの名無しさん
19/02/26 11:47:10.27 7Gbx8Ae00.net
>>922
ありがとうございます
とりあえず特定のメソッドを呼ばなければ大丈夫ということがわかったのでデバッグモードでは呼ばないようにして対策することにしました

951:デフォルトの名無しさん
19/02/26 11:58:57.74 hTJo4mxi0.net
>>923
デバッグできました 余計なフォルダが挟まっていました
指定してやらないといけないんですね ありがとうございました

952:デフォルトの名無しさん
19/02/26 12:16:54.99 vuJi7+izd.net
どういたしまして

953:デフォルトの名無しさん
19/02/26 12:29:03.14 CYrridvRd.net
>>923
それDELLやろ

954:デフォルトの名無しさん
19/02/26 12:29:38.62 CYrridvRd.net
>>924
そっちはスレチ

955:デフォルトの名無しさん
19/02/28 00:37:24.74 weUa1N+o0.net
setterメソッドで文字列が8文字以下ならname変数に引数を代入する文を書きたいんですけど
どのように書けばいいんでしょうか?

956:デフォルトの名無しさん
19/02/28 00:51:58.07 ucEMLrR20.net
private string name;
public void SetName( string name )
{
 if ( name.Length <= 8 )
 {
  this.name = name;
 }
}

957:デフォルトの名無しさん
19/02/28 00:55:51.76 ucEMLrR20.net
セッターよりもプロパティで良い気がする
private string name;
public string Name
{
 set
 {
  if ( value.Length <= 8 )
  {
   this.name = value;
  }
 }
 get
 {
  return this.name;
 }
}

958:デフォルトの名無しさん
19/02/28 01:05:38.31 weUa1N+o0.net
>>931
ありがとうございますー
lengthを使うとint型とstringをオペランドに比較が使えるんですね
覚えておきます

959:デフォルトの名無しさん
19/02/28 08:14:05.87 3CdGs56rM.net
>>933
> lengthを使うとint型とstringをオペランドに比較が使えるんですね
言いたいことはなんとなくわかるけどほんとに理解してるのか不安になる文章だな

960:デフォルトの名無しさん
19/02/28 12:10:16.83 2lomOid8M.net
8文字越えた場合や
検証属性の話をと思ったけど自重

961:デフォルトの名無しさん
19/02/28 19:23:03.02 owSMuOWF0.net
Windows.Forms の質問です。
TextBox 数個と MenuStrip に サブメニューのない MenuItem を追加したFormで
Altキーでメニューを選択すると、
カーソルキーの上下でTextBoxのフォーカスが移動するのですが
どういった理由でしょうか?

962:デフォルトの名無しさん
19/02/28 20:29:09.92 1IHH1hzPa.net
>>936
Menuに反応してるのでは?

963:936
19/02/28 20:50:40.99 DAgKUWMjM.net
うーん
ショートカットキーの設定ができるので
ツールバーの代わりに使おうと思ったんですが
予想外のキモい動きで躊躇してます

964:デフォルトの名無しさん
19/02/28 21:20:30.71 560qka060.net
ドロップダウンしないのは想定してないだろう

965:デフォルトの名無しさん
19/03/01 12:58:28.41 ozM8zBQ90.net
この本おすすめですか?
URLリンク(www.amazon.co.jp)

966:デフォルトの名無しさん
19/03/01 19:45:05.46 MA7hbDcR0.net
JS
hoge([[1,2,3], [4,5,6]]);
C#
hoge(new int[,] {{ 1,2,3 }, { 4,5,6 }});
javascriptみたいにnew付けないで渡せないですか?
paramでは2次元がだめでした。

967:デフォルトの名無しさん
19/03/01 21:07:24.70 tVNocw1h0.net
サイドバーについてなんですが、例えばgimpというソフトがあるのですが、両サイドにツールやレイヤーが表示されています
このように領域を分けるコントロールを教えてください
win form c#です
これはもう1つフォームを追加してるんでしょうか?

968:デフォルトの名無しさん
19/03/01 21:59:18.22 ORsij5/P0.net
>>942
フォームの枠の中に配置・移動させるのならVisual Studioでデザイナ画面+ツールボックスの「コンテナー」のカテゴリの好きなものを
フォームの枠の外やはみ出して使いたいものには別のフォームを割り当て、というのが基本じゃないかな
GimpはCだからどうやっているかは知らないけど

969:デフォルトの名無しさん
19/03/02 05:28:46.45 QccNqZJQ0.net
別フォーム使った場合でもドッギングなど可能ですか?
だとすれば分けたほうが作業しやすそうですが

970:デフォルトの名無しさん
19/03/02 10:41:05.28 29oPzrI/0.net
GTKでやればいいじゃない

971:デフォルトの名無しさん
19/03/02 11:00:56.30 +L4gK20KF.net
>>940
超初心者か池沼向け
普通の人はwebで充分

972:デフォルトの名無しさん
19/03/02 11:02:23.80 +L4gK20KF.net
GTKは糞

973:デフォルトの名無しさん
19/03/02 11:07:40.19 QccNqZJQ0.net
>>945
win formではドッギングや分離はできないのですか?
また、別フォームと同じフォームでやるのとではどちらが都合がよいでしょうか

974:デフォルトの名無しさん
19/03/02 11:11:23.26 PVVyhIVEM.net
>>948
出来るよ。

975:デフォルトの名無しさん
19/03/02 11:12:34.80 PVVyhIVEM.net
>>948
URLリンク(dobon.net)

976:デフォルトの名無しさん
19/03/02 11:22:59.87 Flko+1Y10.net
市販のinfragisticsのドッキングウインドウが楽チンだったわ

977:デフォルトの名無しさん
19/03/02 18:42:16.44 QccNqZJQ0.net
Form1からForm2を呼び出すとき、こういう記述をしますが、変数の型がどうしてForm2なんでしょか?varじゃエラーです
Form2 form2 = new Form2();
form2.Show();

978:デフォルトの名無しさん
19/03/02 19:06:17.17 QSGa9wbhp.net
そのform2クラスは君が作ったんじゃないのか?

979:デフォルトの名無しさん
19/03/02 19:09:49.50 euLZafKS0.net
取り敢えずエラーの内容を読めよ

980:デフォルトの名無しさん
19/03/02 23:01:13.05 XIaahVa70.net
学習のために、確保した変数がスタックかヒープかどっちにあるのか知りたいんだけどさあ
簡単にチェックする手段ってないんかな?

981:デフォルトの名無しさん
19/03/02 23:08:52.67 20MtSIx6a.net
メモリダンプ系のツール使えばいいよ
昔の話だがメモリ上のオブジェクトグラフを可視化してGC絡みのバグをデバッグした事がある

982:デフォルトの名無しさん
19/03/02 23:10:49.78 nONug4XP0.net
"変数が"ってことなら変数の型が参照型か値型か
要はコンパイルの時点で判断できる
IntelliSenseでclassかstructを見れば良い話に思えるが

983:デフォルトの名無しさん
19/03/02 23:19:19.07 20MtSIx6a.net
box

984:デフォルトの名無しさん
19/03/02 23:33:08.46 D0+5Vwwl0.net
>>953
ワロタ

985:デフォルトの名無しさん
19/03/03 02:27:49.98 6iGgKGSXa.net
>>957
それは違うと思うw

986:デフォルトの名無しさん
19/03/03 03:54:21.90 uu9okAeO0.net
>>953
Form2というプロジェクトを作りましたが、これがクラスになるんですか?
この変数型はどういう意味ですが

987:デフォルトの名無しさん
19/03/03 07:00:37.71 cg06QXcyM.net
>>957
w

988:デフォルトの名無しさん
19/03/03 07:50:47.21 +cu7OMqU0.net
>>961
一回チュートリアルなり
入門書とか入門サイトなりやってみろと

989:デフォルトの名無しさん
19/03/03 08:42:41.37 uu9okAeO0.net
winformでノードエディタは作れますか

990:デフォルトの名無しさん
19/03/03 08:49:23.89 +cu7OMqU0.net
>>964 いいからForm2わかったのかよ



992:デフォルトの名無しさん
19/03/03 08:57:36.29 2YvY5qRC0.net
>>964
クラスがなんなのかわかっていないお前には無理
上にも同じ事書かれてるけどまず入門書を読め

993:デフォルトの名無しさん
19/03/03 09:55:03.51 uu9okAeO0.net
↑入門サイトで勉強してます

994:デフォルトの名無しさん
19/03/03 11:33:30.33 lodoh91K0.net
>>967
もしかして、ろくに経験もなく基礎も理解しないまま作りたいものを作り始めて、わからないときだけサイトで情報拾ってどうにかなると思ってないか?
ある程度基礎ができているか理解力のある奴ならそれでもいいが、君には無理だ。
ちゃんと金出して真っ当な入門書を買って、面倒がらずに順を追って基礎から身に付けてこい。

995:デフォルトの名無しさん
19/03/03 12:00:57.01 fal7gHDn0.net
質問した人は回答にフィードバックくらいしろよ
質問スレでフィードバックせずに次の質問って論外

996:デフォルトの名無しさん
19/03/03 12:07:11.30 +cu7OMqU0.net
いいや
そいつのクソレスなどいらん
入門サイトやら入門書を1ページでも前へ進めろ

997:デフォルトの名無しさん
19/03/03 13:48:10.30 Nfj27eon0.net
そうだな。独習3版でも一回読み切る事をお勧めするよ

998:デフォルトの名無しさん
19/03/03 18:14:45.95 7I/UY/410.net
>>964
ファイラー作るとか言ってた人だよね
コピペ以外で何か作ることはできたの?
作れずに諦めて次できそうなもの見つけて質問するの繰り返しでしょ

999:デフォルトの名無しさん
19/03/03 23:49:50.24 DRmEmwqA0.net
君の作ったプロジェクトの内容なんて分からんよ。
プロジェクト内のソースを探せばForm2クラスを宣言してるんじゃないの?
Visual Studioは色々自動生成して、色々隠蔽してるからオプジェクト指向が理解し難い。
一旦動いたら、全てのソースファイルをメモ帳で開いて動きを解析してみる。
全ては一度には理解できないから、オプジェクト指向の説明本を読む。
やっぱり理解できないけど、ソースを読み解くって繰り返すと段々理解できてくる。

1000:デフォルトの名無しさん
19/03/03 23:50:45.69 DRmEmwqA0.net
アンカー忘れた。
>>961さんへ

1001:デフォルトの名無しさん
19/03/04 19:07:44.29 RIX3InQp0.net
WinXPのスタートメニューのように、ContextMenuStripのToolStripItemにDrag&Dropって出来ますか?
ToolStripItemのAllowDropをTrueにしても、ToolStripItemのDragEnterイベントが発生しないのですが。
VC++2008を使用しているのですが、ToolStripItemのプロパティ窓にはAllowDropもDrag関連のイベントも 表示されていないので、コードで記述しているのですが、もともとサポートしていない?

1002:デフォルトの名無しさん
19/03/04 20:54:01.14 +WeHVjLY0.net
>>975
試してないけどdocsには
URLリンク(docs.microsoft.com)
DragDrop ユーザーが項目をドラッグし、マウス ボタンを離したとき (つまり、項目がドロップされたとき) に発生します。 (Inherited from ToolStripItem)
URLリンク(docs.microsoft.com)
DragDrop ドラッグ アンド ドロップ操作が完了したときに発生します。 (Inherited from Control)
ってなっているからContextMenuStripのは期待通り動作しそうだけどToolStripItemのは項目自体のものだから単独では無理かと
どうしてもやるのならContextMenuStripのほう使ってMouseMoveか何かでカーソルと項目の位置確認しながらやるとか
その前にContextMenuStripがFocusの移動とかで閉じないようにClosingのイベントの設定なども当然必要
もう一回書くけど試してないし試す気もないので責任も取らないw

1003:デフォルトの名無しさん
19/03/06 20:50:34.30 nLVidvZ50.net
来月からASP.Net初めて触るんだけど
何から始めればいいの?
MVCとかそういう単語と理論とか??

1004:デフォルトの名無しさん
19/03/06 21:09:43.18 oLv4eGw30.net
>>977
ASP.NETにもいろいろあるんだけど…
とりあえずテンプレートをビルドして動かしてみるところから

1005:デフォルトの名無しさん
19/03/06 21:11:48.41 1+PBsWw4M.net
>>977
君が業務ドカタなら、たぶん君がやることになるのはASP.NET MVCでもASP.NET CoreでもなくClassic ASP.NET(WebForms)
Webの知識皆無でも最低限形だけでもWebアプリを作れるようにしたフレームワークで、
WinFormsでメモ帳モドキくらい作ったことがあれば楽勝だから何も心配いらない

1006:デフォルトの名無しさん
19/03/06 21:15:44.81 oLv4eGw30.net
>>979
ASP.NET MVCなんじゃね?
知らんけど

1007:デフォルトの名無しさん
19/03/06 21:26:05.38 1+PBsWw4M.net
>>980
MVCの意味も知らない子が投入されるような現場でASP.NET MVCなんか使ってるかねえ
まあ物好きな前任者が一人で作ってたシステムだったりするとあるかもね

1008:デフォルトの名無しさん
19/03/06 21:26:41.18 D2mtoqngM.net
逃げる心配はしてもいいかも

1009:デフォルトの名無しさん
19/03/06 21:43:37.08 xU8Jrq3Z0.net
>>981
前やった40画面くらいの小規模プロジェクトがMVCでしたわ
メンバーのほとんどがjs?css?c#?LINQ?な素人で激アツだった

1010:デフォルトの名無しさん
19/03/06 21:52:08.74 MehlFqwY0.net
Webは覚えることが多すぎて禿げちゃうから
学習コストが低いらしいBlazorに期待してる

1011:デフォルトの名無しさん
19/03/06 23:01:29.39 wF9IXRdCr.net
asp.net core使って開発したいがまだまだ実用レベルではないんだろうな
そう思うと開発頓挫しそうで使えない

1012:デフォルトの名無しさん
19/03/06 23:15:31.66 b1gJEqu2a.net
普通に使えるよ
英語読めないジャップにとっては永遠に実用にはならないだろうけど

1013:デフォルトの名無しさん
19/03/06 23:19:16.57 07omsi5cM.net
〇〇Coreはバージョンアップで平気で互換性切ってくるから、受託開発では使っちゃいけない代物
ソースを手放さずいつでも自己責任で弄れる事業形態向け

1014:デフォルトの名無しさん
19/03/07 01:08:41.43 tnYmqFtJ0.net
>>985
もう既に実運用してるけど
そろそろ3年だしさすがにね

1015:デフォルトの名無しさん
19/03/07 01:09:12.20 tnYmqFtJ0.net
>>987
おじいちゃんはずっとCOBOL使ってればいいと思うよ

1016:デフォルトの名無しさん
19/03/07 01:28:00.03 rQAOToBLM.net
>>989
こればっかりは老害とかそういう話じゃなくて業界構造の問題だからね
米国のシステム開発は内製が主流であり、基本的に自己責任だから改修のハードルが低いの
それに合わせてMSの開発者向けプロダクトも変化を許容する方向へ変わってきていて、
もはや日本のSIには全く適さないものになってしまってるんだよ

1017:デフォルトの名無しさん
19/03/07 01:59:57.04 1eeIEHnS0.net
OSSとか向こうから来るもんは全部そうだね
人身売買なんかやってたら理解できない文化ばっかり

1018:デフォルトの名無しさん
19/03/07 05:24:03.06 rQAOToBLM.net
OSSに対する考え方は顕著な例だね
受託開発においてOSSのライセンスを受ける主体は開発会社じゃなくてユーザー会社だから、
当然、開発会社が使用したOSSは全てユーザー会社に把握させてユーザー会社自身が承認しなければならない
これは事業形態上完全に正当で必須なプロセスであり、時代遅れとかそういう問題ではない
NuGetやNPMなどのパッケージマネージャで依存関係として勝手に入ってくるOSS全てに対してこのプロセスを適用するのは事実上不可能

1019:デフォルトの名無しさん
19/03/07 06:32:35.38 6L3KEJfe0.net
次スレが立ってないようなので立ててくる

1020:デフォルトの名無しさん
19/03/07 06:36:57.49 6L3KEJfe0.net
次スレ
スレリンク(tech板)
msdnのリンクはdocsに変更しといた

1021:デフォルトの名無しさん
19/03/07 07:20:20.11 Zl7f22uA0.net
>>986
日本に住んでるなら日本語使えや、英語なんて翻訳すりゃあいいんだよ。フランス人を見習え

1022:デフォルトの名無しさん
19/03/07 07:51:25.69 KDtWvu+2a.net
>>995
英語出来ない言い訳ww

1023:デフォルトの名無しさん
19/03/07 08:33:12.38 AIEkzJHxd.net
>>990
Googleと比べてみ

1024:デフォルトの名無しさん
19/03/07 08:51:22.28 p9S7AU5B0.net
インターネット創世記の頃は情報共有とか甘い言葉が飛び交ったが
最近ではやっぱスキルやノウハウといった知的財産情報は
対価を払って手に入れるべきだと思うようになった
ネットでただで手に入れたいなら英語くらい読めよって話だな

1025:デフォルトの名無しさん
19/03/07 09:10:26.28 0euQyoSb0.net
1000

1026:デフォルトの名無しさん
19/03/07 09:10:41.65 0euQyoSb0.net
1000!

1027:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 81日 22時間 3分 34秒

1028:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch