!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
探検
ふらっと C#,C♯,C#(初心者用) Part145
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 1e7b-qjLW)
2019/10/07(月) 20:16:17.93ID:9eyAES450322デフォルトの名無しさん (ワッチョイ ff7d-mjLV)
2019/10/30(水) 17:58:18.14ID:B18oTG+D0323デフォルトの名無しさん (ドコグロ MMdf-wnNP)
2019/10/30(水) 18:10:55.61ID:rIzUEbvfM Razor自体は何も難しくないがHTMLやJavaScriptの経験が必須だぞ
324デフォルトの名無しさん (ワッチョイ ff7d-mjLV)
2019/10/30(水) 18:13:54.26ID:B18oTG+D0325デフォルトの名無しさん (ワッチョイ ff01-E1XV)
2019/10/30(水) 20:38:29.06ID:wxyKPRO+0326デフォルトの名無しさん (ワッチョイ 6fda-UUC+)
2019/10/30(水) 23:28:43.02ID:RGy19TUC0 >>85
じゃあマックはダメですね
じゃあマックはダメですね
327デフォルトの名無しさん (ワッチョイ 6b01-VuYh)
2019/10/31(木) 08:29:06.57ID:CJAalL950 質問なんですが
ゴミ箱に送る方法で簡単な方法ないの?VisualBasicを参照するしかないの?
C#使ってる人はゴミ箱に移動するって使わないのだろうか?
ゴミ箱に送る方法で簡単な方法ないの?VisualBasicを参照するしかないの?
C#使ってる人はゴミ箱に移動するって使わないのだろうか?
328デフォルトの名無しさん (スップ Sd8a-ORrh)
2019/10/31(木) 08:43:39.37ID:xsQI7t5kd 使わないね
利用したいケースも思い浮かばない
そもそもファイル削除は極力しない
利用したいケースも思い浮かばない
そもそもファイル削除は極力しない
329デフォルトの名無しさん (ブーイモ MM27-ANgw)
2019/10/31(木) 09:20:44.08ID:SMoJlzw2M OSが勝手にやるもんだろ
330デフォルトの名無しさん (アウアウウー Sa2f-xbEI)
2019/10/31(木) 09:43:24.92ID:4PHfFAnra そもそもC#の用途として、今時デスクトップアプリを作ってる人自体が絶滅危惧種だろう
WebアプリやUnityゲームでゴミ箱が必要だと思う?
WebアプリやUnityゲームでゴミ箱が必要だと思う?
331デフォルトの名無しさん (ワッチョイ 8a01-ODnH)
2019/10/31(木) 09:47:58.08ID:JXLI+jKB0 >>327
shell32.dll
shell32.dll
332デフォルトの名無しさん (ブーイモ MM27-w9lH)
2019/10/31(木) 10:41:56.01ID:OU1pcY6zM winformなんだけど
ひたすら流れてくるログを表示してくれる
フォームに埋め込めるコンソールウインドウみたいな
コントロールってないだろうか
折り返しとか最大保持行数とか設定できるやつ
ひたすら流れてくるログを表示してくれる
フォームに埋め込めるコンソールウインドウみたいな
コントロールってないだろうか
折り返しとか最大保持行数とか設定できるやつ
333デフォルトの名無しさん (ワッチョイ c322-GD6V)
2019/10/31(木) 12:06:11.16ID:XKICkbS40 >>327
そのVBのアセンブリは.NET Frameworkに標準で入ってるもんなんだから十分簡単な方法では
そのVBのアセンブリは.NET Frameworkに標準で入ってるもんなんだから十分簡単な方法では
334デフォルトの名無しさん (ワッチョイ 06de-kTP4)
2019/10/31(木) 12:26:42.29ID:0MmH5OlL0 ファイラー作ってる人は
ゴミ箱に入ってもらわないと困るかもな
エクスプローラーのゴミ箱からもとに戻す
その一点だな
ゴミ箱に入ってもらわないと困るかもな
エクスプローラーのゴミ箱からもとに戻す
その一点だな
335デフォルトの名無しさん (アウアウウー Sa2f-jEuW)
2019/10/31(木) 12:28:32.03ID:mFefkbxQa >>332
ないと思うけど、そんなのTextBoxでもRichTextBoxでも
新しい行を追加する時に既に「行数 ≧ 最大値」だったら
先に先頭行削除してから追加するだけと違うの?
何も難しくない気が
ないと思うけど、そんなのTextBoxでもRichTextBoxでも
新しい行を追加する時に既に「行数 ≧ 最大値」だったら
先に先頭行削除してから追加するだけと違うの?
何も難しくない気が
336デフォルトの名無しさん (ワッチョイ 8a01-ODnH)
2019/10/31(木) 13:06:24.26ID:JXLI+jKB0337デフォルトの名無しさん (ワッチョイ 4e7c-a7m8)
2019/10/31(木) 13:19:49.51ID:XLWT8Z580 リスト系はリスト系で1行目の途中から2行目の途中まで選択してコピーとかできなくなったり
338デフォルトの名無しさん (ワッチョイ 6f5f-qQ6b)
2019/10/31(木) 13:21:02.81ID:OjoTTwqB0 >>335
行数が増えると速度的に破綻する
行数が増えると速度的に破綻する
339デフォルトの名無しさん (アウアウウー Sa2f-jEuW)
2019/10/31(木) 13:37:40.30ID:mFefkbxQa340デフォルトの名無しさん (ブーイモ MM4f-DYHY)
2019/10/31(木) 14:29:54.26ID:k6XhP2jxM queueでどうにかならんの?
341デフォルトの名無しさん (ワッチョイ def2-EUGY)
2019/10/31(木) 18:31:07.11ID:3D7UQPAc0 中入れ中出し法
342デフォルトの名無しさん (ドコグロ MM0b-xbEI)
2019/10/31(木) 19:15:16.89ID:i5H6Qw2zM >>340
お前は問題を履き違えている
Stringのコピーなんか人間の体感スケールで見ればそれ自体は大したコストではない
問題は、Stringの再作成時にテキストボックスの内容全体を更新しなければならないこと
お前は問題を履き違えている
Stringのコピーなんか人間の体感スケールで見ればそれ自体は大したコストではない
問題は、Stringの再作成時にテキストボックスの内容全体を更新しなければならないこと
343デフォルトの名無しさん (アウアウウー Sa2f-jEuW)
2019/10/31(木) 19:39:52.83ID:mFefkbxQa いや、速度がどうとか言う人がいたんで、
逐次的な表示更新が間に合わないなら
最新n件をキューにためておいてUIの都合でおっとり更新したらいいんじゃないか、
って言いたかったのでは?
逐次的な表示更新が間に合わないなら
最新n件をキューにためておいてUIの都合でおっとり更新したらいいんじゃないか、
って言いたかったのでは?
344デフォルトの名無しさん (ブーイモ MM27-w9lH)
2019/10/31(木) 20:04:31.91ID:UUndQwtgM なんかいろいろすいません
テキスト系のコントロールだと全書き換えになって遅いし
List系だと折り返しがしづらいしで
表示だけに特化したコントロールはないかなと思ってました
表示と同時にログはファイルにも記録しているので
ドバッと来て追いきれない時はファイルでじっくり見ます
画面はあくまで気になるログが出ていないか
確認する程度のものです
テキスト系のコントロールだと全書き換えになって遅いし
List系だと折り返しがしづらいしで
表示だけに特化したコントロールはないかなと思ってました
表示と同時にログはファイルにも記録しているので
ドバッと来て追いきれない時はファイルでじっくり見ます
画面はあくまで気になるログが出ていないか
確認する程度のものです
345デフォルトの名無しさん (ワッチョイ af17-qV4/)
2019/10/31(木) 20:17:16.88ID:K3Up5Amy0 「c# log viewer」とかでググって出てきた奴を片っ端から試す
もし満足できるものが無かったら自分でコントロール作った方が手っ取り早いと思う
ログのパースが不要なら簡単にできるでしょ
もし満足できるものが無かったら自分でコントロール作った方が手っ取り早いと思う
ログのパースが不要なら簡単にできるでしょ
346デフォルトの名無しさん (ワッチョイ de7b-wZJI)
2019/10/31(木) 20:26:45.13ID:6sTRo/Hz0347デフォルトの名無しさん (ブーイモ MM27-w9lH)
2019/10/31(木) 21:03:08.53ID:mKy6l2+6M いやテキストは遅いしチラつくし…
コンソール見たいなログ表示ってやっぱり
作るしかないのかな
コンソール見たいなログ表示ってやっぱり
作るしかないのかな
348デフォルトの名無しさん (ワッチョイ de7b-wZJI)
2019/10/31(木) 21:12:56.64ID:6sTRo/Hz0349デフォルトの名無しさん (ワッチョイ 8a01-ODnH)
2019/10/31(木) 21:26:17.79ID:JXLI+jKB0350デフォルトの名無しさん (ブーイモ MM27-w9lH)
2019/10/31(木) 22:10:23.48ID:SVC1VZx2M351デフォルトの名無しさん (ワッチョイ 6b01-VuYh)
2019/10/31(木) 22:11:15.94ID:CJAalL950352デフォルトの名無しさん (ワッチョイ 4aa7-kTP4)
2019/10/31(木) 22:22:14.18ID:Ipg5PEVm0353デフォルトの名無しさん (ワッチョイ 4a2c-a7m8)
2019/10/31(木) 22:22:50.88ID:lmTBdfUq0 クロスプラットフォームというお題目に従えば
ゴミ箱はOS依存な機能であって基本的なことというわけでもないし…
ゴミ箱はOS依存な機能であって基本的なことというわけでもないし…
354デフォルトの名無しさん (ワッチョイ 4aa7-kTP4)
2019/10/31(木) 22:26:35.09ID:Ipg5PEVm0 ちなみにループの中なんかでラベルの表示を変えたいときは
label1.Update();
みたいにやらんと表示してくんないよ
そういうのはおk?
label1.Update();
みたいにやらんと表示してくんないよ
そういうのはおk?
355デフォルトの名無しさん (ブーイモ MM27-w9lH)
2019/10/31(木) 22:31:55.44ID:6PvVhxXlM >>352
何日も回しているとパンクしてしまう
何日も回しているとパンクしてしまう
356デフォルトの名無しさん (ブーイモ MM27-w9lH)
2019/10/31(木) 22:48:12.69ID:QvaaIFldM >>349
試してみたよ
ログを追加したときに最新行を表示してくれる機能がなかった
中身は結局RitchTextBoxみたいだね
ログはどんどん溜まっていく一方で、古いログを消す機能は実装されてないみたいだった
なかなかこれってものはないもんだなぁ…
試してみたよ
ログを追加したときに最新行を表示してくれる機能がなかった
中身は結局RitchTextBoxみたいだね
ログはどんどん溜まっていく一方で、古いログを消す機能は実装されてないみたいだった
なかなかこれってものはないもんだなぁ…
357デフォルトの名無しさん (ワッチョイ de7b-wZJI)
2019/10/31(木) 22:52:53.11ID:6sTRo/Hz0 >>350
ScrollToCaret使わなくても組み替えて最新の行をAppendTextで出力するだけでいい
そもそもスクロールしない行数にしたらいい。80行にしてあるのは「この程度では遅くならない」例のためだけ
>スクロールバーが激しく上下に移動して
表示が早いからだよねそれ
ScrollToCaret使わなくても組み替えて最新の行をAppendTextで出力するだけでいい
そもそもスクロールしない行数にしたらいい。80行にしてあるのは「この程度では遅くならない」例のためだけ
>スクロールバーが激しく上下に移動して
表示が早いからだよねそれ
358デフォルトの名無しさん (ワッチョイ 4aa7-kTP4)
2019/10/31(木) 23:04:24.71ID:Ipg5PEVm0 >>355
パンクの原因は?
パンクの原因は?
359デフォルトの名無しさん (アウアウウー Sa2f-jEuW)
2019/10/31(木) 23:07:55.77ID:mFefkbxQa 何を既に試して、その上でどういう要件が満たせないから困ってるのか、
最初から書いて欲しいよね
後出しで「それだとこういう不満がある」とか言われてもみんな気分悪くなるだけじゃないの
最初から書いて欲しいよね
後出しで「それだとこういう不満がある」とか言われてもみんな気分悪くなるだけじゃないの
360デフォルトの名無しさん (ワッチョイ 4aa7-kTP4)
2019/10/31(木) 23:18:32.99ID:Ipg5PEVm0 結局、ログがどうあったらいいかよくわかってないんだろ
そもそも「誰が」「どう使う」ためのログなのか?わかってなきゃ
この世に存在しない無敵のログ表示を求めて彷徨い歩くだけだ
そもそも「誰が」「どう使う」ためのログなのか?わかってなきゃ
この世に存在しない無敵のログ表示を求めて彷徨い歩くだけだ
361デフォルトの名無しさん (ワッチョイ b301-QvCK)
2019/10/31(木) 23:25:23.01ID:IK0T1jez0 WinTailでええやん
362デフォルトの名無しさん (ブーイモ MM27-w9lH)
2019/10/31(木) 23:48:40.87ID:IinI+zAtM 最初に言った通りコンソールウインドウみたいなのが欲しいんだよね
最新のログが一番下に表示されて、勝手にスクロールしていくような
ログが延々と流れてくるので保持行数は200行程度として
できるだけ軽いのが欲しいんだ
最新のログが一番下に表示されて、勝手にスクロールしていくような
ログが延々と流れてくるので保持行数は200行程度として
できるだけ軽いのが欲しいんだ
363デフォルトの名無しさん (ワッチョイ 6763-ORrh)
2019/10/31(木) 23:52:18.30ID:MkAQwKar0 200行程度ただのtextboxで十分では?
200万行の打ち間違い?それか1行数万文字あるの?
200万行の打ち間違い?それか1行数万文字あるの?
364デフォルトの名無しさん (ワッチョイ 0be7-0B+f)
2019/11/01(金) 01:18:38.34ID:IqjPKLBG0 TextBoxに1行100文字のn行の文字列を設定し、最下行を表示させるのにかかった時間
(@Ryzen 3700X)
2行:2[msec]
20行:4[msec]
200行:8[msec]
2,000行:60[msec]
20,000行:563[msec]
200,000行:5,624[msec]
2000,000行:測定不能(OutOfMemoryException)
備考
TextBoxに1万行設定した場合、設定にかかる時間はそんなでもないが、TextBoxを変形させる(ウィンドウサイズ変更に追従させる等)のに時間がかかる
5万行になるとまともに変形しない
(@Ryzen 3700X)
2行:2[msec]
20行:4[msec]
200行:8[msec]
2,000行:60[msec]
20,000行:563[msec]
200,000行:5,624[msec]
2000,000行:測定不能(OutOfMemoryException)
備考
TextBoxに1万行設定した場合、設定にかかる時間はそんなでもないが、TextBoxを変形させる(ウィンドウサイズ変更に追従させる等)のに時間がかかる
5万行になるとまともに変形しない
365デフォルトの名無しさん (アウアウエー Sac2-DYHY)
2019/11/01(金) 01:36:53.37ID:QWL8+9O3a 視認するデバッグコンソール程度で重いも軽いもないと思うが
骨董品レベルのPC使ってるのか?
リアルタイムで見るログならログレベルで絞ればいいのでは?
骨董品レベルのPC使ってるのか?
リアルタイムで見るログならログレベルで絞ればいいのでは?
366デフォルトの名無しさん (ワッチョイ caad-o2oR)
2019/11/01(金) 10:42:20.61ID:SS2XtcMO0 直近200行のリングバッファを表示するだけではダメなのか
2000,000行保持してまさか目視するわけじゃないよな
200行以前はファイルにでも吐いておけば
2000,000行保持してまさか目視するわけじゃないよな
200行以前はファイルにでも吐いておけば
367デフォルトの名無しさん (ワッチョイ 7b88-ORrh)
2019/11/01(金) 11:16:41.01ID:nKOXVm3I0 200行程度List<string>で保持して更新あるたびにaddとremoveして都度Textboxを更新でなんの問題も無いと思う
気になるならListをQueueにでもすればいい
ごちゃごちゃさせる程でもない単純な要件なんだから実装もそれに倣えばいい
気になるならListをQueueにでもすればいい
ごちゃごちゃさせる程でもない単純な要件なんだから実装もそれに倣えばいい
368デフォルトの名無しさん (ワッチョイ 8a01-ODnH)
2019/11/01(金) 12:45:55.78ID:zrbJp7o30 >>350
Double Bufferingでもチラつきが激しいなら
再描画を一旦停止してTextBox更新してから再開
https://dobon.net/vb/dotnet/control/beginupdate.html
>>358
AppendText使いつつ最大行数を超えた古いログ削除できる?
Double Bufferingでもチラつきが激しいなら
再描画を一旦停止してTextBox更新してから再開
https://dobon.net/vb/dotnet/control/beginupdate.html
>>358
AppendText使いつつ最大行数を超えた古いログ削除できる?
369デフォルトの名無しさん (アウアウウー Sa2f-jEuW)
2019/11/01(金) 18:49:44.29ID:oc3Xlll7a >>332の件、ちょっと気になったのでTextBoxで試してみた
(a) SelectedTextを空文字で上書きして先頭の行を削除、
その後AppendTextで新しいログを追記
(b) Linesを一旦List<string>にコピーして先頭行の削除と
新しいログの追加を行った後、Linesに書き戻しキャレットを末尾に
移動しScrollToCaret
(a)の方法でやると確かにスクロールバーがプルプルするw
(b)の方法ならそれはほとんど起こらない(完全ではないみたいだが)
(a)の方法でも、先頭行を削る時に一気に10行とか削れば
そこまで気にならない印象
(a) SelectedTextを空文字で上書きして先頭の行を削除、
その後AppendTextで新しいログを追記
(b) Linesを一旦List<string>にコピーして先頭行の削除と
新しいログの追加を行った後、Linesに書き戻しキャレットを末尾に
移動しScrollToCaret
(a)の方法でやると確かにスクロールバーがプルプルするw
(b)の方法ならそれはほとんど起こらない(完全ではないみたいだが)
(a)の方法でも、先頭行を削る時に一気に10行とか削れば
そこまで気にならない印象
370デフォルトの名無しさん (ワッチョイ de7b-wZJI)
2019/11/01(金) 20:09:54.53ID:BUUWKxub0 そもそも高速でログを流すのでなければ表示の切り替えはそんな目立たないと思うんだけど
>>369
(a) を参考に空文字で上書きするときにTextBoxからFocusを外してスクロールバーが動かないようにできないかと思ったけどうまくできなかったw
削除時にスクロール位置動かなければうまくいきそうだけど手段が他にすぐ思いつかない
他に思い付いたやり方は3つ
・AllocConsole()使ってコンソール画面を表示してそこにログを流す
コンソール画面閉じるとプロセスも閉じるのでその対策が必要
・348にRichTextBoxを2つ用意して交互にバックグラウンドでスクロールさせた後に表示する
・348で最新のログを一番上に追加していく
>>369
(a) を参考に空文字で上書きするときにTextBoxからFocusを外してスクロールバーが動かないようにできないかと思ったけどうまくできなかったw
削除時にスクロール位置動かなければうまくいきそうだけど手段が他にすぐ思いつかない
他に思い付いたやり方は3つ
・AllocConsole()使ってコンソール画面を表示してそこにログを流す
コンソール画面閉じるとプロセスも閉じるのでその対策が必要
・348にRichTextBoxを2つ用意して交互にバックグラウンドでスクロールさせた後に表示する
・348で最新のログを一番上に追加していく
371デフォルトの名無しさん (ワッチョイ 6bda-w9lH)
2019/11/02(土) 00:15:28.48ID:vBXbME0O0 そうなんだよ
意外と難しいんだよね
意外と難しいんだよね
372デフォルトの名無しさん (ワッチョイ 6763-ORrh)
2019/11/02(土) 01:17:56.03ID:gWk8WKKS0 いや、難しくしてるのは意味のない要件だって
細部まで詳細に思惑通りに動くコントロールが要求されるなら1から全部作るしか無い
TextBox等のすでに提供されてるコントロールを使うならそれに則った要件に変えればいいだけ
内部の動作ログを画面上に出してほしい要件はちょいちょいあるけど、俺個人はいつも上部を最新にするかスクロールさせないかの仕様を取る
何なら画面のチラツキなんて目を瞑ることもあるし最新行への追従をさせないこともある
楽に実装したいからそういうコントロール使ってるんだもん
どうしても要件変えられないなら低レベルAPI使って描画制御からやりゃほとんど対応できる
対応しただけのコストに見合うメリットがあるかは知らん
クライアントの強い要望とか言われたらするしか無いだろうけど
細部まで詳細に思惑通りに動くコントロールが要求されるなら1から全部作るしか無い
TextBox等のすでに提供されてるコントロールを使うならそれに則った要件に変えればいいだけ
内部の動作ログを画面上に出してほしい要件はちょいちょいあるけど、俺個人はいつも上部を最新にするかスクロールさせないかの仕様を取る
何なら画面のチラツキなんて目を瞑ることもあるし最新行への追従をさせないこともある
楽に実装したいからそういうコントロール使ってるんだもん
どうしても要件変えられないなら低レベルAPI使って描画制御からやりゃほとんど対応できる
対応しただけのコストに見合うメリットがあるかは知らん
クライアントの強い要望とか言われたらするしか無いだろうけど
373デフォルトの名無しさん (ワッチョイ 6710-Dc2t)
2019/11/02(土) 07:08:12.27ID:Cj9wzs8u0374デフォルトの名無しさん (ワッチョイ 0bad-Cnwx)
2019/11/02(土) 11:38:27.23ID:NJrq0tm30 そういえば昔、グリッドだかリストコントロール+それとは別のコントロールとして縦スクロールバーをつけて
擬似的にスクロール可能な全行表示コントロールを作ったことあった。
実際としてはグリッド・リストに一部のデータを表示しているだけってヤツね。
経験としては割に合わないからやめといた方がいいと思う。
擬似的にスクロール可能な全行表示コントロールを作ったことあった。
実際としてはグリッド・リストに一部のデータを表示しているだけってヤツね。
経験としては割に合わないからやめといた方がいいと思う。
375デフォルトの名無しさん (ワッチョイ 4f7f-DbiX)
2019/11/02(土) 18:26:30.67ID:qC4ArJrD0 zedgraph以外で使いやすいグラフ描画ライブラリをご存知ないでしょうか。
376デフォルトの名無しさん (ワッチョイ af17-qV4/)
2019/11/02(土) 18:34:46.73ID:mWOhcCZL0 何が良くて何が悪いのか、それがわからないと提案できないぞ
377デフォルトの名無しさん (ワッチョイ 8a01-ODnH)
2019/11/02(土) 18:59:15.75ID:t8MMHk4t0 >>350
>>348の試してみたけど
新しいTextを設定する時に描画を停止してやれば普通に使える
描画を一旦停止させる方法は>>368のリンク
private void texroll(string st)
{
roll.Add(st);
if (roll.Count > 300) roll.RemoveRange(0, 100);
using (new SuspendRedraw<RichTextBox>(log))
{
log.Text = string.Join("\n", roll.ToArray());
}
log.SelectionStart = log.Text.Length;
log.Focus();
log.ScrollToCaret();
Application.DoEvents();
}
>>348の試してみたけど
新しいTextを設定する時に描画を停止してやれば普通に使える
描画を一旦停止させる方法は>>368のリンク
private void texroll(string st)
{
roll.Add(st);
if (roll.Count > 300) roll.RemoveRange(0, 100);
using (new SuspendRedraw<RichTextBox>(log))
{
log.Text = string.Join("\n", roll.ToArray());
}
log.SelectionStart = log.Text.Length;
log.Focus();
log.ScrollToCaret();
Application.DoEvents();
}
378デフォルトの名無しさん (オッペケ Sr03-aDcy)
2019/11/02(土) 19:24:06.82ID:FxhpmPNyr もうimage上じゃなくpictureboxに直接描画したほうがよくないかなw
379デフォルトの名無しさん (ブーイモ MM4f-DbiX)
2019/11/02(土) 19:58:05.88ID:tC3aEWNnM 開発終了してるからかな
380デフォルトの名無しさん (ワッチョイ c322-GD6V)
2019/11/02(土) 20:07:37.11ID:OgO2q3L50 >>379
imageが?
imageが?
381デフォルトの名無しさん (ワッチョイ ff42-aDcy)
2019/11/02(土) 20:51:31.59ID:hxKOcIYY0382デフォルトの名無しさん (ブーイモ MM27-xSsB)
2019/11/02(土) 21:24:35.05ID:fQnnj5XsM >>377
DoEventsは無くしたいな
DoEventsは無くしたいな
383デフォルトの名無しさん (ワッチョイ ded8-8pfq)
2019/11/03(日) 23:16:11.35ID:b9fr0VVV0 関数ポインタの配列的なことをマネージコードでやるにはどうすればいいの?
384デフォルトの名無しさん (ワッチョイ 5f38-VZ3I)
2019/11/03(日) 23:24:57.20ID:85zZlWEV0 FuncやらActionを配列で持つとかとか
385デフォルトの名無しさん (ブーイモ MMea-W7VG)
2019/11/03(日) 23:53:36.44ID:alptGm0wM 普通に足せない?
386デフォルトの名無しさん (アウアウウー Sa2f-xbEI)
2019/11/04(月) 00:33:22.52ID:B36l93jfa イベントハンドラ以外にマルチキャストを使うのはお勧めしない
古臭い黴の生えた機能だよ
古臭い黴の生えた機能だよ
387デフォルトの名無しさん (ワッチョイ 67d8-8pfq)
2019/11/04(月) 14:50:52.31ID:ZZvILvvT0 >>383,384,385
arrayから取り出して実行するところのコーディングが分かりません
void(*ptf[n])(void);
ptf[0] = func1;
ptf[1] = func2;
ptf[2] = func3;
...
(*ptf[i])();
こういうのをメゾットでやるには、マネージコードではどうすればいいんだろう?
arrayから取り出して実行するところのコーディングが分かりません
void(*ptf[n])(void);
ptf[0] = func1;
ptf[1] = func2;
ptf[2] = func3;
...
(*ptf[i])();
こういうのをメゾットでやるには、マネージコードではどうすればいいんだろう?
388デフォルトの名無しさん (ワッチョイ 1b63-zSOU)
2019/11/04(月) 14:59:46.62ID:l0Xu1LFS0389デフォルトの名無しさん (ワッチョイ 6f5f-qQ6b)
2019/11/04(月) 15:03:14.57ID:NxU2aGbZ0 >>387
var funcs = new Action[] { Func1, Func2, Func3 };
funcs[ 0 ]();
とか
var func = funcs[ 1 ];
func();
var funcs = new Action[] { Func1, Func2, Func3 };
funcs[ 0 ]();
とか
var func = funcs[ 1 ];
func();
390デフォルトの名無しさん (ワッチョイ 8a01-ODnH)
2019/11/04(月) 15:03:42.47ID:KBcuTkU10 C#で関数を値として受け渡すためにはデリゲートっていう型を使う
391デフォルトの名無しさん (JP 0H4f-pjCs)
2019/11/04(月) 17:43:23.21ID:zS6JGUgFH マネージコードってなんや?
392デフォルトの名無しさん (ドコグロ MM02-xbEI)
2019/11/04(月) 17:47:38.02ID:hOMB8BsXM >>391
「マネージコード」は「馬鹿でもわかる」と読み替えればだいたい間違いない
「マネージコード」は「馬鹿でもわかる」と読み替えればだいたい間違いない
393デフォルトの名無しさん (ワッチョイ 6bda-tz1I)
2019/11/04(月) 19:02:59.97ID:v9WRziqL0 palallelで同じbyte[]を読み書きしてみたら
思ったより処理が早くないんだけど
排他処理とかで重くなっていたりとかある?
思ったより処理が早くないんだけど
排他処理とかで重くなっていたりとかある?
394デフォルトの名無しさん (ワッチョイ ca79-qV4/)
2019/11/04(月) 19:05:28.08ID:95x+Uktm0 何でも非同期にしたら速くなるわけではない
理由は排他制御とかTaskの生成コストとか色々
高速化するにはうまくやる必要がある
理由は排他制御とかTaskの生成コストとか色々
高速化するにはうまくやる必要がある
395デフォルトの名無しさん (ワッチョイ 6761-cRjf)
2019/11/04(月) 19:32:49.51ID:kKuYGgew0 スレッドプール使うといっても生成コストは結構高いので一瞬で終わる処理だと逆効果
396デフォルトの名無しさん (ワッチョイ 8a01-ODnH)
2019/11/04(月) 23:18:45.02ID:KBcuTkU10 Parallelは処理の分割とかスレッドプールの管理はしてくれるけど
排他制御はしてくれんやろ?
排他制御はしてくれんやろ?
397デフォルトの名無しさん (ワッチョイ 6bda-tz1I)
2019/11/04(月) 23:49:11.75ID:v9WRziqL0 やっぱそうか…単純に単純に処理が重いんだね
見直してみますありがとう
見直してみますありがとう
398デフォルトの名無しさん (ワッチョイ ce0d-+mOG)
2019/11/05(火) 00:36:50.60ID:bHrgVvs60 structをpublicにしても各メンバーは一括でpublic扱いにならないのなんでなん?親分がpublicなら子分も暗黙的にpublicやろがいと思いまして。
399デフォルトの名無しさん (ブーイモ MM27-W7VG)
2019/11/05(火) 00:37:22.81ID:+pU68px4M せやな
400デフォルトの名無しさん (ワッチョイ 4aa7-kTP4)
2019/11/05(火) 01:08:31.06ID:OkDX2sfL0 >>398
誰に対するpublicなのか勘違いしてね?
誰に対するpublicなのか勘違いしてね?
401デフォルトの名無しさん (ワッチョイ ff61-bJgw)
2019/11/05(火) 05:42:15.86ID:jgE+3/q30 >>398
全部publicつけるように習慣づけとけばいいよ。
全部publicつけるように習慣づけとけばいいよ。
402デフォルトの名無しさん (ワッチョイ ea52-LcJH)
2019/11/05(火) 06:23:16.40ID:Qdu0k3JA0 >>398
お前の親が知人にお前のことを紹介するとき、お前の机の中のエロ本やパソコン内のエロ画像フォルダを勝手に公開されたら困るだろ
お前の親が知人にお前のことを紹介するとき、お前の机の中のエロ本やパソコン内のエロ画像フォルダを勝手に公開されたら困るだろ
403デフォルトの名無しさん (JP 0H4f-pjCs)
2019/11/05(火) 06:42:35.89ID:NkD1Ww44H >>396
lookするだけちゃうの?
lookするだけちゃうの?
404デフォルトの名無しさん (ブーイモ MMea-LRXq)
2019/11/05(火) 07:41:50.89ID:Dk7Gl9zXM 見て!
405デフォルトの名無しさん (ワッチョイ 5f38-VZ3I)
2019/11/05(火) 10:36:58.27ID:mW5ea4am0 >>402
この説明したことあるわw
この説明したことあるわw
406デフォルトの名無しさん (ワッチョイ 6bda-tz1I)
2019/11/05(火) 14:36:36.98ID:5/2Yewwy0 WPF始めたばかりでThumbを使ってドラッグでコントロールを移動をしたかったんだけど
これってそもそも中にラベルやボタンを置けない仕様なのかな…?
とりあえずtemplateを使って無理矢理borderとbuttonを置いてみたけど
今度はborderからはDragStartedもDragDeltaもThumbに届くのに、buttonからは届かない
Thumbってどういう風に使うものなんですかね…
ウインドウのタイトルバー的な感じに置くものなのでしょうか
これってそもそも中にラベルやボタンを置けない仕様なのかな…?
とりあえずtemplateを使って無理矢理borderとbuttonを置いてみたけど
今度はborderからはDragStartedもDragDeltaもThumbに届くのに、buttonからは届かない
Thumbってどういう風に使うものなんですかね…
ウインドウのタイトルバー的な感じに置くものなのでしょうか
407デフォルトの名無しさん (ワッチョイ 4e7c-a7m8)
2019/11/05(火) 14:46:13.23ID:F/FN86RY0 他のUI要素の部品として使われることを想定してるもんだからね
408デフォルトの名無しさん (ワッチョイ 6bda-tz1I)
2019/11/05(火) 14:55:03.31ID:5/2Yewwy0 例えばラベルにThumbの機能を持たせようとするとどうしたらいいんだろう?
thumbのテンプレートにラベルを置いたとして、ラベルのテキストやbackgroundプロパティを
tumbのプロパティとして定義することはできるのかな…?
thumbのテンプレートにラベルを置いたとして、ラベルのテキストやbackgroundプロパティを
tumbのプロパティとして定義することはできるのかな…?
409デフォルトの名無しさん (ワッチョイ 4e7c-a7m8)
2019/11/05(火) 15:07:10.27ID:F/FN86RY0 Thumbの機能ってのはよく分からんが、「ラベルにThumbの機能を持たせる」のに
Thumbにラベルの機能持たせるとか主客転倒してるように思える
Thumbにラベルの機能持たせるとか主客転倒してるように思える
410デフォルトの名無しさん (ワッチョイ 4e7c-a7m8)
2019/11/05(火) 15:12:25.39ID:F/FN86RY0 基本的にThumbってのは「マウスのドラッグで操作する」ことを表すもので
そのドラッグにどう意味づけするかはThumbではなくてThumbを持っている要素が決めるもの
スクロールバーならドラッグをスクロールとして扱うし
スライダーなら値の増減を表す
そのドラッグにどう意味づけするかはThumbではなくてThumbを持っている要素が決めるもの
スクロールバーならドラッグをスクロールとして扱うし
スライダーなら値の増減を表す
411デフォルトの名無しさん (ワッチョイ 6bda-tz1I)
2019/11/05(火) 15:29:08.42ID:5/2Yewwy0 もしかして俺の理解がおかしいのかな
普通のウインドウみたいにタイトルバーをドラッグしてコントロールを動かしたい場合って
<dockpanel>
<thumb>
<label>
みたいにするものなのかな、それとも
<dockpanel>
<label>
<thumb>
が正しい?
本当は
<thumb>
<dockpanel>
<label>
みたいにしてdockpanelのボタンとか以外の場所は
ドラッグ移動可能にしたいのだけど…
普通のウインドウみたいにタイトルバーをドラッグしてコントロールを動かしたい場合って
<dockpanel>
<thumb>
<label>
みたいにするものなのかな、それとも
<dockpanel>
<label>
<thumb>
が正しい?
本当は
<thumb>
<dockpanel>
<label>
みたいにしてdockpanelのボタンとか以外の場所は
ドラッグ移動可能にしたいのだけど…
412デフォルトの名無しさん (ブーイモ MM76-W7VG)
2019/11/05(火) 15:50:59.23ID:Ai05n3QGM DTD見ろ
413デフォルトの名無しさん (ワッチョイ 4e7c-a7m8)
2019/11/05(火) 15:58:11.06ID:F/FN86RY0 正直全然説明が理解できんが
DockPanelをルートとしたウィンドウ内ウィンドウ的なのが存在してて
それのタイトルバー的なのをマウスで掴んで動かしたいってことでいいのか
まあThumbの出番は無いだろうな
DockPanelをルートとしたウィンドウ内ウィンドウ的なのが存在してて
それのタイトルバー的なのをマウスで掴んで動かしたいってことでいいのか
まあThumbの出番は無いだろうな
414デフォルトの名無しさん (ブーイモ MM27-tz1I)
2019/11/05(火) 16:02:31.08ID:E+44QmotM415デフォルトの名無しさん (ワッチョイ 4e7c-a7m8)
2019/11/05(火) 16:27:06.76ID:F/FN86RY0 ドラッグできる部分をBorderとかで定義して
そいつのMouseLeftButtonDown/MouseMove/MouseLeftButtonUpイベントでDockPanelを動かすコードを書く
そいつのMouseLeftButtonDown/MouseMove/MouseLeftButtonUpイベントでDockPanelを動かすコードを書く
416デフォルトの名無しさん (ワッチョイ 0b6e-ANgw)
2019/11/05(火) 19:01:21.35ID:R3NaIBm20 public class Person
{
string name;
int age;
public read()
{
// ファイルを読み込んでnameとageに入れる
}}
こんなクラスがあるとします。1クラスに1役割ということでここからPersonクラスとPersonReaderクラスに分けることを考えます。
そのときPersonReaderは以下の2種類ってどちらがベターでしょうか
public class PersonReader
{
private Person person;
public PersonReader(Person person)
{
this.person = person;
}
public read()
{
// ファイルを読み込む処理
person = 〜
}}
Public class PersonReader
{
public Read(Person person)
{
// ファイルを読み込む処理
person = 〜
}}
readに引数無いほうがきれいな気がするんですけど、readerにもオブジェクトの参照持たせるのは不味いような気もします。
よろしくおねがいします
{
string name;
int age;
public read()
{
// ファイルを読み込んでnameとageに入れる
}}
こんなクラスがあるとします。1クラスに1役割ということでここからPersonクラスとPersonReaderクラスに分けることを考えます。
そのときPersonReaderは以下の2種類ってどちらがベターでしょうか
public class PersonReader
{
private Person person;
public PersonReader(Person person)
{
this.person = person;
}
public read()
{
// ファイルを読み込む処理
person = 〜
}}
Public class PersonReader
{
public Read(Person person)
{
// ファイルを読み込む処理
person = 〜
}}
readに引数無いほうがきれいな気がするんですけど、readerにもオブジェクトの参照持たせるのは不味いような気もします。
よろしくおねがいします
417デフォルトの名無しさん (アウアウウー Sa2f-jEuW)
2019/11/05(火) 19:19:02.37ID:Ra2VTEEXa >>416
あんまり教条主義的に考えない方がいいのでは?
特に事情がない限り
// ○○ファイを読み込んでこのインスタンスのフィールドとプロパティーを更新する
public void Load(string path)
{
....
}
とか、
// 〇〇ファイルから新しいインスタンスを作成
public static Person FromFile(string path)
{
....
}
こんなの方が使いやすいのでは?
あんまり教条主義的に考えない方がいいのでは?
特に事情がない限り
// ○○ファイを読み込んでこのインスタンスのフィールドとプロパティーを更新する
public void Load(string path)
{
....
}
とか、
// 〇〇ファイルから新しいインスタンスを作成
public static Person FromFile(string path)
{
....
}
こんなの方が使いやすいのでは?
418デフォルトの名無しさん (ワッチョイ 1bda-rLHV)
2019/11/05(火) 19:19:34.94ID:6X5avhuH0 win32apiをc#から呼ぶのは色々大変です
少し調べたらVanara.PInvokeのnugetがありました
日本語の記事が余り無いようですがどんなもんなんでしょうか?
少し調べたらVanara.PInvokeのnugetがありました
日本語の記事が余り無いようですがどんなもんなんでしょうか?
419デフォルトの名無しさん (ワッチョイ 3a2d-DXXI)
2019/11/05(火) 20:06:06.04ID:HWawPKHc0420デフォルトの名無しさん (ワッチョイ 0b6e-ANgw)
2019/11/05(火) 21:59:36.96ID:R3NaIBm20 >>417
あーまぁ今回の例だとそうかもしれないですね。
ただ実際の開発だとxmlを読み込むんですけどちょっと処理が膨大で。読み込む先、今回で言うところのPersonクラスも相当でかいので分けないといかんだろと
あーまぁ今回の例だとそうかもしれないですね。
ただ実際の開発だとxmlを読み込むんですけどちょっと処理が膨大で。読み込む先、今回で言うところのPersonクラスも相当でかいので分けないといかんだろと
421デフォルトの名無しさん (ワッチョイ 8a01-ODnH)
2019/11/05(火) 22:21:14.48ID:rzC/SdAh0 >>416
正直どっちも勘弁してって感じ
インスタンス生成の責務をファクトリに割り当てる頻出パターンなので
ファクトリやファクトリメソッドのキーワードでググればいいと思う
ファクトリクラスはusing Personしても参照を持つ必要はない
正直どっちも勘弁してって感じ
インスタンス生成の責務をファクトリに割り当てる頻出パターンなので
ファクトリやファクトリメソッドのキーワードでググればいいと思う
ファクトリクラスはusing Personしても参照を持つ必要はない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【芸能】デヴィ夫人「日本では犬猫は器物。動物保護を何とか立法化したい」 人と動物が共生を力強く訴え [冬月記者★]
- 【画像】TOKIO山口達也に「いいべ」された当時のJK、性加害の反動であたしこグラドルにwww [779857986]
- 寒さしのげる場所があって食べ物も豊富にあるなら熊は冬眠しないの?
- 声優・矢尾一樹の妻「治療の影響で思う様に話せない彼に、近くで仕事をしてきた人が、かっこ悪い!もう辞めなよと言った。私は許さない」 [594040874]
- 気象庁・高市内閣「この後311級の地震の可能性があります。北海道〜関東の人は1週間は地震が来てもすぐ逃げられる格好をしてください」 [597533159]
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
