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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 1e7b-qjLW)
垢版 |
2019/10/07(月) 20:16:17.93ID:9eyAES450
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part144
https://mevius.5ch.net/test/read.cgi/tech/1563258983/
■関連スレ
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・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
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2019/10/24(木) 08:41:52.53ID:vvI6h2Gc0
あるソフト使ってて、これ使いたいなって機能があるんだけど、なんて検索かけたらいいのか分からないので知っている人いたら教えてください。
WindowsフォームアプリでVisualStudio2015で開発しています。


[欲しい機能]
例えばWindow内が横3段に分かれいるとすると

------------△---------------

みたいに境界が表示されててそこをクリックすると部分的に隠したり、表示させたりできる機能



今作ってるアプリが監視系で画面上に常駐するので、出来るだけWindow内の邪魔なボタンとかは隠しておきたいのでこの機能が欲しいです。
知ってる方いたらよろしくお願いします。
2019/10/24(木) 09:07:13.70ID:1uX6E7L9M
>>238
> 追加と参照のみならいいが、削除や途中への挿入があるとインデックスがほとんど意味を持たなくなってしまう
それマルチスレッドじゃなくても起きるだろ
2019/10/24(木) 09:13:17.80ID:EafWDMiv0
>>239
折りたたみできるpanel とかそんな感じ?
2019/10/24(木) 09:20:52.19ID:/Cd29/CTM
>>240
程度問題だよ
マルチスレッドなら尚更問題になるのは明らかだろ
結局、インデックスに依存する一連の操作の単位で外部ロックを取る必要があるから、concurrentである意味がない
2019/10/24(木) 09:51:08.72ID:1uX6E7L9M
>>242
バカなの?
インデックス使って途中挿入削除されたら問題なるのはマルチスレッドには関係ない
そもそも挿入削除してるのにインデックスで処理するのがおかしいと気づけ
2019/10/24(木) 10:07:31.16ID:/Cd29/CTM
>>243
シングルスレッドでの同期処理ならプログラマが意図しないタイミングで変更が加えられる可能性は少ないだろう
そもそも途中挿入しないならConcurrentBagでいいよね
自分で答え出てるじゃん
2019/10/24(木) 10:16:49.04ID:1uX6E7L9M
本質を理解できない馬鹿に説明しても無駄なことがよくわかるなw
2019/10/24(木) 10:31:37.86ID:/Cd29/CTM
同意するわw
2019/10/24(木) 10:50:43.90ID:8vd5prrh0
>>239
SplitContainer
248デフォルトの名無しさん (アウアウウー Sa27-AEvr)
垢版 |
2019/10/24(木) 10:58:17.20ID:xs21harXa
>>239
XPの時代のエクスプローラーのタスクパネルみたいなUIだと思うけど
たぶん標準では存在しない

折り畳みできるコンテナを自分で作れば、それを別のPanelの中に入れ子にして
AnchorとDockをうまく設定すれば似たようなことは一応できると思う。

PanelじゃなくてFlowLayoutPanelを使ってもいいかもしれないが、
たぶんかえって使いづらくなりそう
2019/10/24(木) 10:58:42.47ID:ey5VOEQr0
>>241
そうそう折りたたみって言葉がしっくりきます。


試しに「折りたたみ panel」あたりで検索したらやりたい事が出来そうなサイトが見つけられました。
SplitContainerとクリックイベントを使ってどうにか出来そうです。

また、境界部分にも三角形△などの目印を付けるやり方が載ってるサイトも見つかりました。


いいヒントになりました、ありがとうございます^^
2019/10/24(木) 10:59:35.93ID:mB9UhJoj0
>>247
>>248
ありがとうございます!
251デフォルトの名無しさん (ワイーワ2 FFdf-Tlcr)
垢版 |
2019/10/24(木) 11:57:49.13ID:ABhN6CSmF
>>239
Collapse
Accordion
2019/10/24(木) 21:14:55.46ID:00cf/jHw0
頭に0個の参照って表示されてる関数が無数にあるんですが、これ要するに全く使われてないってことですよね
全部消してしまいたい……と思ったのですが実行する中でその関数が呼び出されるような可能性ってあったりするんでしょうか
2019/10/24(木) 21:35:06.52ID:VqWeglU2r
リフレクションとかで呼べば参照カウントされないんじゃない
2019/10/24(木) 21:45:06.56ID:B+sGouls0
なんかのライブラリとかで、publicで公開してるやつとかか?
2019/10/24(木) 22:06:02.66ID:Eph2jaDU0
複数のパネルをドラッグドロップできるようにしたんだけど
マウスが別のパネルに重なったときにパネルがいれかわってしまうんだけど
これを防ぐにはどうしたらいい?
2019/10/24(木) 22:14:48.43ID:yaJ1dO+n0
>>255
「パネル」をドラッグドロップしている?
一番上または必要なパネル以外のドラッグドロップを受け付けないようにしたら
2019/10/24(木) 22:17:00.79ID:WLXJ5XGy0
>>255
マウスダウンで「掴む」じゃん
マウスドラッグで「移動」するじゃん
マウスアップで「置く」じゃん

ドラッグ中の処理は移動なのにどうしてマウスダウンで掴んだやつ
以外が動いちゃうん?
2019/10/24(木) 23:01:06.74ID:yaJ1dO+n0
マウスがパネルに触れた時点でフォーカス変わったりしているとかだろ
最低限の動きするミニマムコード使って検証する方がここで聞くより解決しやすいと思うがね
そこでわからなかったらそのミニマムコード出してまた質問したらここの人も答えやすい
2019/10/24(木) 23:02:09.24ID:00cf/jHw0
>>253
あーなるほどでもそんな上等な書き方出来る人が作ったわけじゃないからなさそうですね

>>254
他の似たようなソフト作る時に使ったソースコードそのまま組み込んだっぽいですね見た感じ
2019/10/25(金) 14:57:42.75ID:V0o5IG+qM
>>252
まあ普通はコメントにするよね
261デフォルトの名無しさん (ワッチョイ cf2d-KmKR)
垢版 |
2019/10/25(金) 22:28:16.88ID:7rgagi6Z0
List<(string, int)> list;があった場合、listの中からlist.item2が最大の要素(string, int)を得るにはどうすればいいのですか?
var l = list.Max(x=>x.Item2);みたいにしたいのですが、int型が帰ってきてしまいます
2019/10/25(金) 23:07:56.88ID:GWerdevt0
OrderByDescending.FirstOrDefault
2019/10/25(金) 23:14:44.18ID:5pdqBhsBa
>>262だと計算量のオーダーが増える
先に Max で最大のItem2 (maxItem2)を求めておいて list.First(x => x.Item2 == maxItem2) のほうがマシ
2019/10/25(金) 23:23:22.26ID:6061P7ry0
何度も呼ぶときウゼーから関数にしろよ
2019/10/25(金) 23:42:07.16ID:5pdqBhsBa
経験上、こういう汎用的すぎるユーティリティ関数を自作して多用するのはお勧めしない
個人開発ならいいけど、多人数での開発になると新しいメンバーとの間で記述方法に差異を有む原因になり、結果的に負債化していくんだよ
ダサくてもこういうのは毎回ベタに書いたほうがいい
2019/10/25(金) 23:48:20.10ID:FLPxIKHC0
最大値持ってるタプルが複数あったら?
2019/10/25(金) 23:50:57.19ID:j4bjfcPpd
>>266
逆にどうして欲しいの?
2019/10/26(土) 00:25:28.36ID:ZMkO6rZZ0
>>267
知らんがな
269デフォルトの名無しさん (ワッチョイ cf2d-KmKR)
垢版 |
2019/10/26(土) 00:58:09.61ID:rff7tW+R0
>>262-265
どの方法も一見正攻法ではないように見えるため、人に教えてもらわないことには勇気を出して書けませんでした
ありがとうございます
2019/10/26(土) 12:56:29.17ID:D4rlG2Pr0
>>265
計算量のオーダー気にしてんだろ?
他の奴が違う書き方して増えたら大変じゃん
あ、どうでもよかった?
2019/10/26(土) 13:18:11.26ID:sfokePbj0
素直に
int max = list.Max(tuple => tuple.Item2);
var maxValueItems = list.Where(tuple => tuple.Item2 == max);
でいいじゃん
int に重複がない前提なら Dictionary 化した方が捗る
2019/10/26(土) 14:40:36.29ID:+20I9h0L0
なんかいいロガー知らない?
3つのテキストに警告・注意・情報がそれぞれ安全に吐けるロガー
2019/10/26(土) 17:56:57.99ID:sACMcUDLd
nlog
2019/10/26(土) 18:00:30.69ID:8i+xjfAMM
>>272
最近は ASP.NET Core の Microsoft.Extensions.Logging を使うのがMS推奨の最先端
公式に拘らないならSerilogなんかも流行り
2019/10/27(日) 06:36:34.10ID:xM0noxLs0
>>261

list.Aggregate( (result, next) => result.Item2 > next.Item2 ? result : next );

O(n) で一度しか走査しない。
ただし、複数該当しても 1 つしか返さないし、Aggregate メソッドは LINQ to Entities 非対応。
2019/10/27(日) 10:39:45.76ID:5GZQ4gBgM
質問はこっちでいいんかな?
webviewってWebBrowserのGetElementのような事ってできないんですかね?
テキストに入力したりボタン押したりしたいんですけど、検索してもなかなか見つからないんです
誰か教えてください!
2019/10/27(日) 11:48:23.64ID:wTKueZfvr
c# web 自動ログイン当たりでいっぱい記事が出てくるんじゃないの?
2019/10/27(日) 11:58:52.66ID:4R5ODGS40
>>276
できるよ
前にtwitterにログインする処理作ったわ
2019/10/27(日) 12:18:06.59ID:X9y8gFH7a
WebBrowserのHtmlElementみたいなオブジェクトは用意されてない
webView.InvokeScriptAsync("実行したい処理をすべてJavaScriptで記述")
みたいな書き方で地道にやるしかないんんじゃ
2019/10/27(日) 12:19:39.05ID:16xcb+hDa
GUIに組み込む必要が無いんならSelenium使えば
2019/10/27(日) 13:12:11.70ID:4R5ODGS40
>>276 >>279
https://www.atmarkit.co.jp/ait/articles/0904/02/news116.html
コレじゃダメか?
2019/10/27(日) 13:46:09.61ID:5GZQ4gBgM
なるほど、JavaScript書けば操作できるわけですね
やってみます!
ありがとうございます

>>281
WebBrowserだと、なぜかjQuery使ってるサイトでエラー出るんですよね
レジストリ加えてie11で動くようにはしてるんですけどjQueryで引っかかるんです
でWebViewでと思って質問した次第なんです
2019/10/27(日) 13:49:25.37ID:4R5ODGS40
ああごめん、webviewか
webbrowserと勘違いしてたわスマン
284デフォルトの名無しさん (ワッチョイ cf2d-KmKR)
垢版 |
2019/10/27(日) 15:37:26.99ID:gq/FPXPl0
>>275
ありがとう
これ、SQLの感覚とはえらい違うのね・・・・
2019/10/27(日) 16:55:40.03ID:wqPA/VYQ0
RDBは集合論を基にしてるから違う部分も多いよね
2019/10/28(月) 00:02:42.79ID:v/KXS9HC0
>>284
これよりクエリ式のLINQはもっと酷いと思う
2019/10/28(月) 12:34:46.66ID:YtBichaU0
ASP初心者だけど
がっつり学べるオススメの本とかありますか?
2019/10/28(月) 12:39:56.10ID:7cJN6Sp0M
ASP.NET Coreのことなら日本語のまともな本はない
Classic ASP.NETやMVCのことなら.NET5で廃止されるから今から始めるのはお勧めできない
2019/10/28(月) 12:49:21.49ID:QZbVsCgAr
coreなら「プログラミングASP.NET Core」一択でしょ。
2019/10/28(月) 13:00:58.66ID:YtBichaU0
>>288
Classic ASP.NETってこの下のこと?
https://i.imgur.com/91aU39j.png
2019/10/28(月) 19:48:32.67ID:m1OgNht9r
そもそもがASP.NET Coreなんか学んでどうすんの?と思うおじさんであった…
2019/10/28(月) 23:37:11.76ID:ivkrvCvud
>>291
それを使ってるプロジェクトにアサインされたら仕方ないだろ
2019/10/29(火) 00:09:10.29ID:KPb5GGNr0
ASP.NET Coreは.NET縛りでWebアプリケーション作れ言われたら一番マシな選択肢じゃないのか
2019/10/29(火) 00:36:14.21ID:dJZjQrr+0
linux+nginx+ケストレル+asp.net coe+ef+postgresql
もはやデフォルトスタンダード()だろ

最安でシステムができる
2019/10/29(火) 06:46:27.32ID:QfXeXsOvM
>>294 + Visual Code が一番安定
2019/10/29(火) 08:27:45.10ID:Epxsajcc0
デフォルトスタンダード
なんだろう?
297デフォルトの名無しさん (オッペケ Sr47-A5aQ)
垢版 |
2019/10/29(火) 11:13:54.66ID:RhfnzEGer
ぶっちゃけC#の未来ってどうなの?
来年の.NET 5でクロスプラットフォーム化が加速するようだが
2019/10/29(火) 11:42:47.50ID:xrysW0K8a
VSありきの言語ってイメージしかない
299デフォルトの名無しさん (アウアウウー Sa27-AEvr)
垢版 |
2019/10/29(火) 12:03:29.65ID:xV/7zc0Da
クロスプラットフォーム化だのcoreだのは将来投資あるいは保険みたいなものじゃないの?
本気でそっちの方にいく将来像を持っているわけではないと思う。

UWPもぜんぜん普及しないし、
建前はともかく実態的には.NET Frameworkと一心同体という状態が
今後も続くんじゃないのかな

知らんけど
2019/10/29(火) 12:25:51.30ID:88a8kq8wM
最早coreのほうがmsにとっては主軸だよ
microsoftはwindowsよりazureの方に重きをおいてるし
2019/10/29(火) 12:52:07.86ID:MOVznBn90
仕事でiPhoneやAndroid開発するときはC#使うことが多くなってきた
2019/10/29(火) 13:37:45.92ID:4pCfui+V0
人脈が出来たのかね?
2019/10/29(火) 19:08:56.52ID:YCAuRgWur
,net coreを主軸にしたばかりにMSの製品が沈没していく未来しか見えない
2019/10/29(火) 19:23:30.70ID:EZlHupH7d
米国国防省の案件、Azureに決定したね
2019/10/29(火) 19:27:34.78ID:fnWDg3A7M
米国だと内製が主流だから、受託じゃ怖くて使えないようなものも自己責任で比較的カジュアルに使える開発現場が多いんだよ
.NETの先端は、もはやOSS利用にいちいち申請が必要だったりするようなジャップ企業には縁のないものになってしまった
2019/10/29(火) 19:31:53.69ID:fnWDg3A7M
>>304
Azureねえ
仕事で2年使い込んだけど、二度と使いたくないわ
C#に魂を捧げる覚悟ならいいけど、それ以外も使う予定があるのなら絶対に選んではいけない
2019/10/29(火) 19:35:59.47ID:YCAuRgWur
魂をささげてはないけどほぼC#しか使ってない
異常に効率が悪いが仕方ない

どうしても必要ならpythonやTS(JS)使うけど
2019/10/29(火) 19:53:14.69ID:Ey119aTKd
>>306
俺はAWSよりAzureを選択した国防省の判断の方が信用できると思うわ
2019/10/29(火) 20:01:15.15ID:fnWDg3A7M
>>308
MSはちゃんとアメリカに税金払ってるし、クラウドプロバイダによるOSSタダ乗り問題に対する姿勢などについてもMSは比較的真摯であり、そういう意味では確かに信用できる
しかしAWS, Azure両方を実業務において一年以上使った上で、サービスとしてはあらゆる面においてAWSの方が遥かに上だ
2019/10/29(火) 20:03:06.68ID:YCAuRgWur
サービスとして新しいものが作られてるのはAWSという感じがする
ポリシーが一貫してる気もする
2019/10/29(火) 20:16:08.34ID:fnWDg3A7M
>>310
AWSは一貫性が高いし、一度作ったサービスは責任を持って継続的に統合し続けるよね
Azureは思いつきのように低品質で他サービスともロクに統合されていないサービスを出してすぐに廃止したり「v2」が出てリプレースされるケースが多い
本当に馬鹿らしくなる
2019/10/29(火) 21:30:28.45ID:K5Mf7W6aM
>>301
ザマリンですよね?
あれってJavaと比べて速度どうです?
あんまり変わらないです?
2019/10/29(火) 21:44:45.41ID:X/vnAmwN0
俺もXamarin使ってるけど、起動時だけちょっとモタつく印象かな。
Android。
314デフォルトの名無しさん (オッペケ Sr47-A5aQ)
垢版 |
2019/10/29(火) 21:46:56.72ID:RhfnzEGer
C#ってTwitterでの検索が困難だな
#が無視されてしまう
2019/10/29(火) 22:57:33.41ID:JauTHN340
yahooのリアルタイム検索ならC#でも検索可能
2019/10/30(水) 01:02:29.23ID:8axnQjcP0
デザインパターンって何見て知ればいいんですか?
おすすめの本とかありますか
2019/10/30(水) 01:09:01.92ID:eibhOM1C0
formをスクロールバーでちょっと下にスクロールしてから
パネルを追加するとLocationのポイントが下にずれてしまいます
panel.Location = new Point(30, 60)
これがスクロールした画面を基準にしたポイントになるので
yの60がずれてしまいます
これを防ぐにはどうすればいいでしょうか
2019/10/30(水) 01:23:32.15ID:R3qwPM+Q0
>>316
GOF
2019/10/30(水) 01:27:43.91ID:eibhOM1C0
自己解決しました
一旦this.Autoscroll=false;
にしてから描写がおわってからtrueにすればいけました
もし他にいい方法あったら教えて下さい
2019/10/30(水) 16:54:56.13ID:B18oTG+D0
ワイPG、ASP案件にアサインされ無事WebFormsで強行することに成功する
いきなりCSHTMLとか言われてもわからん
2019/10/30(水) 17:38:01.28ID:wxyKPRO+0
view engineは選べるやろ

つっても1日もあれば理解できる内容だから
既存のviewを使い回すわけじゃなければ素直にRazor使ったほうが楽
2019/10/30(水) 17:58:18.14ID:B18oTG+D0
>>321
RazorってMVCとセットってイメージだが違うのか
Razorの判断は今週末にどれほど理解できるかで判断してみます
2019/10/30(水) 18:10:55.61ID:rIzUEbvfM
Razor自体は何も難しくないがHTMLやJavaScriptの経験が必須だぞ
2019/10/30(水) 18:13:54.26ID:B18oTG+D0
>>323
やっぱりか
昨日コレ買ってRazorが一切出てこないから残念です
https://i.imgur.com/3TrHnT5.jpg
2019/10/30(水) 20:38:29.06ID:wxyKPRO+0
>>322
MVCならWeb Form用のview engineでもRazorでも簡単に変更可能って話
ASP.NET Web Formsの場合はたぶん無理、できたとしてもハードル高いと思う
326デフォルトの名無しさん (ワッチョイ 6fda-UUC+)
垢版 |
2019/10/30(水) 23:28:43.02ID:RGy19TUC0
>>85
じゃあマックはダメですね
2019/10/31(木) 08:29:06.57ID:CJAalL950
質問なんですが
ゴミ箱に送る方法で簡単な方法ないの?VisualBasicを参照するしかないの?
C#使ってる人はゴミ箱に移動するって使わないのだろうか?
2019/10/31(木) 08:43:39.37ID:xsQI7t5kd
使わないね
利用したいケースも思い浮かばない
そもそもファイル削除は極力しない
329デフォルトの名無しさん (ブーイモ MM27-ANgw)
垢版 |
2019/10/31(木) 09:20:44.08ID:SMoJlzw2M
OSが勝手にやるもんだろ
2019/10/31(木) 09:43:24.92ID:4PHfFAnra
そもそもC#の用途として、今時デスクトップアプリを作ってる人自体が絶滅危惧種だろう
WebアプリやUnityゲームでゴミ箱が必要だと思う?
2019/10/31(木) 09:47:58.08ID:JXLI+jKB0
>>327
shell32.dll
2019/10/31(木) 10:41:56.01ID:OU1pcY6zM
winformなんだけど
ひたすら流れてくるログを表示してくれる
フォームに埋め込めるコンソールウインドウみたいな
コントロールってないだろうか
折り返しとか最大保持行数とか設定できるやつ
2019/10/31(木) 12:06:11.16ID:XKICkbS40
>>327
そのVBのアセンブリは.NET Frameworkに標準で入ってるもんなんだから十分簡単な方法では
2019/10/31(木) 12:26:42.29ID:0MmH5OlL0
ファイラー作ってる人は
ゴミ箱に入ってもらわないと困るかもな
エクスプローラーのゴミ箱からもとに戻す

その一点だな
335デフォルトの名無しさん (アウアウウー Sa2f-jEuW)
垢版 |
2019/10/31(木) 12:28:32.03ID:mFefkbxQa
>>332
ないと思うけど、そんなのTextBoxでもRichTextBoxでも
新しい行を追加する時に既に「行数 ≧ 最大値」だったら
先に先頭行削除してから追加するだけと違うの?

何も難しくない気が
2019/10/31(木) 13:06:24.26ID:JXLI+jKB0
>>332
ConsoleControlってのでできそうだけど
ListView使って自分でやったほうが早そう

>>335
先頭行削除するときに先頭行以外の部分をコピーする必要があるから
ログの量とか速度が速いと困るかもしれない
2019/10/31(木) 13:19:49.51ID:XLWT8Z580
リスト系はリスト系で1行目の途中から2行目の途中まで選択してコピーとかできなくなったり
2019/10/31(木) 13:21:02.81ID:OjoTTwqB0
>>335
行数が増えると速度的に破綻する
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況