1 名前:デフォルトの名無しさん mailto:sage [2019/07/16(火) 15:36:23.74 ID:i1fbuZ/pM.net] !extend:checked:vvvvv:1000:512 次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為) 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■関連スレ C#, C♯, C#相談室 Part95 https://mevius.5ch.net/test/read.cgi/tech/1508168482/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■前スレ ふらっと C#,C♯,C#(初心者用) Part143 https://mevius.5ch.net/test/read.cgi/tech/1558002486/ ■情報源 https://docs.microsoft.com/ja-jp
411 名前:デフォルトの名無しさん [2019/08/22(木) 16:50:43.33 ID:xQsiKIbM0.net] 出来るけど利用規約読め API経由だとセーフで API経由しないと逮捕とか書いてあるから
412 名前:デフォルトの名無しさん [2019/08/22(木) 16:57:22.84 ID:erkZnaOI0.net] >>402 https://elaws.e-gov.go.jp/search/elawsSearch/elaws_search/lsg0500/detail?lawId=411AC0000000128
413 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 17:10:49.32 ID:NpAwFZ6qM.net] >>404 条文ぐらい示してやれよ
414 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 17:59:59.30 ID:90PkXrDL0.net] 色んなところで迷惑なヤローだな
415 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 21:54:01.43 ID:rNXeNA230.net] >>402 非公開だろうがクライアント側で処理してるのには変わりないんだから お前が本当にブラウザになり切れればやれるよ 単純に能力と手間の問題だ
416 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 22:05:00.16 ID:yaxmcT7W0.net] この質問結構前からいたるところで見る気がするんだけどただのマルチ?
417 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 23:55:52.03 ID:W1llczT4d.net] >>400 >>401 とりあえず自力でできたのでソース抜粋 1 // Form1 呼び出し側 private void CountDownBtn_Click(object sender, EventArgs e){ var countDownForm = new MYCountDownForm(7); countDownForm.ZeroReached += OnCounterZeroCallBack; countDownForm.Show(); } // コールバック private void OnCounterZeroCallBack(Object sender, DestReachedEventArgs e){ // UI 更新 }
418 名前:デフォルトの名無しさん mailto:sage [2019/08/23(金) 00:00:27.51 ID:RwBPjFxxd.net] ソース抜粋 2 // MYCountDownForm private System.Windows.Forms.Timer countDownTimer; public int timeLeft; public delegate void ZeroReachedEventHandler(Object sender, ZeroReachedEventArgs e); public event ZeroReachedEventHandler ZeroReached; void Timer_Tick(object sender, EventArgs e){ if (timeLeft >= 1){ timeLabel.Text = this.timeLeft.ToString(); timeLeft--; } else if (this.timeLeft <= 0){ timeLabel.Text = this.timeLeft.ToString(); var args = new ZeroReachedEventArgs(); args.TimeReached = DateTime.Now; OnDestReached(args); this.Close(); } } // END Timer_Tick protected virtual void OnZeroReached(ZeroReachedEventArgs e){ var handler = ZeroReached; if (handler != null){ handler(this, e); } } } public class ZeroReachedEventArgs : EventArgs { // コンストラクタないけどいいの? public DateTime TimeReached { get; set; } }
419 名前:デフォルトの名無しさん [2019/08/24(土) 00:16:35.07 ID:EZ15JXYo0.net] アホな質問ばっかですいません 光速の計算をしたいんですが、doubleでは無理ですか? decimalは使いません お願いします。小数点以下が信用できません。
420 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 00:22:03.18 ID:ka7Yl/470.net] >>411 お前さんが使おうとしている計算方法や欲しい精度とか示さんと答えられんだろうよ
421 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 01:21:02.23 ID:g8XGZa5Z0.net] >>411
422 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 08:41:25.65 ID:VP6gB9DD0.net] 質問いいですか、クラスの処理の途中経過をTextboxのコントロールに送りたいのです public partial class Form1 : Form { Class1 class1 = new Class1(); } class Class1 { public Class1() { Form1.Textbox1.AppendText("Class1を実行しています"); } } このようにしてもForm1のインスタンスがないから実行できません みなさんはクラスのログなどをテキストボックスに送るとき、どう書かれてますか?
423 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 09:03:40.17 ID:BNVmeU2m0.net] >>414 public partial class Form1 : Form { public TextBox Textbox1; Class1 class1 = new Class1(this); } class Class1 { public Class1(Form1 fm) { fm.Textbox1.AppendText("Class1を実行しています"); } } またはFom1のなかに public void appenttext(string st) { Textbox1.AppendText(st); } としてClass1から呼び出す
424 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 15:23:44.45 ID:VP6gB9DD0.net] >>415 レスさんくすです 上の方法でうまくいきました クラスからコントロールを操作ってあまり使わない、というか推奨されてないのかな?
425 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 15:40:00.64 ID:glPHIee0p.net] コントロールは何かを操作する為の機能なんだから、 普通はその操作する何かを直接操作するだろ?
426 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 15:45:48.43 ID:BNVmeU2m0.net] >>416 インスタンスをどう指定していいかわからないんじゃなかったのか 親子関係にあるウィンドウでの操作はいろんなアプリで普通にあるし C#だけにしても「C# 別のフォームのコントロール」でググればやっているところはいっぱい出てくる
427 名前:デフォルトの名無しさん [2019/08/24(土) 15:56:01.09 ID:dsz+mirUa.net] >>416 非推奨というか、普通はやりたいと思わないね。 何かの参照を握るってことはそれに依存してしまうってことだから。 Class1は本来はForm1の参照を持つ設計にしたことで、 事実上そのプログラム専用の他で流用できないコードになってる 他で使う予定ないからそれで問題ないと思うかもしれないが(以下略
428 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 19:37:50.96 ID:VP6gB9DD0.net] >>417 確かにコントロールというぐらいだし >>418 さんくす、実際にやる方法もわからなかったし、教えてもらったのはわかりやすかった 考え方を標準っぽいやり方に寄せたいのです >>419 さんくす、なるほどパーツとして完成してないですね 汎用性の低いコードは改善しないと、でも今回はこれでいきます logの取り方考えないと
429 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 21:52:23.83 ID:PMKXSgkW0.net] 処理側に出力するだけの意味しかないデリゲートでも渡してやれば? 受け側はコントロールを操作とか意識しなくて済むけど public partial class Form1 : Form { : Class1 class1 = new Class1((string s) => { this,Textbox1.AppendText(s); }) ; } class Class1 { delegate void output_delegate(string s); output_delegate output = (string s) => { Console.WriteLine(s); }; //デフォルト出力先はコンソール : Class1(output_delegate _output) { output = _output; } : }
430 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 22:59:49.50 ID:sQirZTQZ0.net] よく答えられるな なにをしようとしてるのかすらわからんわ
431 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 23:07:54.21 ID:VP6gB9DD0.net] >>421 レスさんくすです でもしかし、半分ぐらいしか理解できませんでした、スイマセン 〜解読中〜
432 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 23:11:33.91 ID:XZUr8QhOa.net] refやout, in引数のないdelegateなら 自分で定義せずにSystem.ActionやSystem.Funcを使う手もあるよ
433 名前:デフォルトの名無しさん [2019/08/24(土) 23:15:15.44 ID:dsz+mirUa.net] >>423 理解しなくていいよw デリゲートを直で受け渡しなんかせず、素直にイベントの方を使いましょう。
434 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 23:54:17.30 ID:GocaxRhS0.net] >>422 さすがにそれはお前がアホやで
435 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 23:56:09.98 ID:4OMYNXZ10.net] 使う手もあるというか余程じゃなければActionかFuncでは
436 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 00:04:50.89 ID:dkxX1jtZ0.net] 俺もActionを推す
437 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 00:26:08.77 ID:DAHO6xPV0.net] MethodInvoker(´・ω・`)ボクも忘れないでね
438 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 06:55:23.52 ID:Jlb1UCj1M.net] >>414 こういうのってbindingでどうにかするものじゃないの?
439 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 07:21:22.29 ID:UfI3Un4o0.net] 可変長の戻り値って実現できませんか?もしくは可変長のタプル これを public void hoge<T>(List<T> list, Func<T, string[]> selector) { ... } hoge(list, listItem => new string[2] { listItem.A, listItem.B }); hoge(list, listItem => new string[3] { listItem.A, listItem.B, listItem.C }); ↓ public void hoge<T>(List<T> list, Func<T, params string[]> selector) { ... } hoge(list, listItem => (listItem.A, listItem.B)); hoge(list, listItem => (listItem.A, listItem.B, listItem.C)); こんな風に書けたらいいのにって感じです
440 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 09:33:25.01 ID:NieUwdLz0.net] >>424 さんくす、スマートに書けそうですね、他の人もさんくす、ただ考え中 >>425 今回はイベントで、ただデリゲート勉強するいいちゃんす >>429 さんくす、ググったら実現したいことをピンポイントっぽい >>430 さんくす、binding、さらにむずい、今までと違うアプローチっぽい
441 名前:デフォルトの名無しさん [2019/08/25(日) 13:39:47.35 ID:aNsJH+ura.net] >>431 何言ってるのか理解するのに5分かかったw ラムダ式の右辺(?)の評価方法をジェネリックの型パラメータを確定する場面で指定するとか 普通に無理筋でしょう hoge(list, listItem => new[] { listItem.A, listItem.B }); が hoge(list, listItem => (listItem.A, listItem.B)); と書けたところでたいして嬉しいと思えんけど
442 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 14:04:21.51 ID:UfI3Un4o0.net] >>433 おお、new[]で推論してくれるの忘れてました new[]で十分スマートですねこれで問題ないです、ありがとうございました
443 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 22:03:25.03 ID:4LqybIGY0.net] Formのプログラムで普通に動作してたOpenFormDialogを使ってる箇所が突然フリーズしてしまいます。 一旦そうなるとWindows自体が不安定になり、他のプログラムで恐らくOpenFormDialogを使ってる所が全てフリーズしOSの再起動が必要になります。 どんな要因が考えられるでしょうか。 プログラムはかんたんなグラフィックエディタで矩形やテキストを移動したり変形する程度です
444 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 22:12:11.72 ID:hYfvTIib0.net] OpenFormDialog? OpenFileDialogじゃなくて? OpenFileDialogならフリーズの話はあるから検索して 騒がれたのもう結構前だからまだ残ってるともあんまり思えないけど
445 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 22:13:53.33 ID:hYfvTIib0.net] あ、残ってるってのはフリーズするバグを残してる環境の話ね
446 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 00:35:03.80 ID:D54D8pf80.net] >>436 OpenFileDialogでした cymon.sysの件は見つけましたけど家のPCにはありませんでした 地道にバグを見つけます
447 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 01:40:22.77 ID:YZSrPKBs0.net] List<Employee> のIDとList<int> の一致するEmployeeを取得したいです。 List<int>をforeach、その中でList<Employee>をFirstOrDefaultで探して 新たなList<Employee>にAddする方法はできました。 これのforeachを撲滅して簡潔に書きたいのですがいい方法はありますか?
448 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 01:54:35.76 ID:XYz1A7/c0.net] var employees = new List<Employee>(); var ids = new List<int>(); ・・・・ var hitEmployees = employees.Where(employee => ids.Where(id => id == employee.id).Any()).ToList();
449 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 05:09:56.54 ID:d+oJYvyp0.net] employees.Join(ids, _emp => _emp.ID, _id => _id, (_emp, _id) => _emp) joinはクエリ構文の方が読みやすいな from emp in employees join id in ids on emp.ID equals id select emp
450 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 06:09:07.86 ID:LiZWIy1C0.net] Find
451 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 07:20:31.54 ID:H4cvWJOz0.net] employees.FindAll(emp => ids.Contains(emp.ID))
452 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 08:56:15.22 ID:WqA3OufOM.net] EnumSetってEnumの値を2のベキにすればいいから存在しないの?
453 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 11:40:26.35 ID:Rhz6dR8od.net] イベントハンドラのいなづまアイコンってどういう意味なの? 気になって開発が手につきません。
454 名前:デフォルトの名無しさん [2019/08/26(月) 12:01:50.23 ID:EHOEsFfWa.net] 地下鉄漫才かよw
455 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 16:00:24.81 ID:7fzFkpCMr.net] execute 神がいかずちをもって手を下す 的な
456 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 22:32:00.17 ID:YZSrPKBs0.net] >>440-443 どれもなるほど!と勉強になりました ありがとうございます 今回はシンプルな>>443 さんのでいきます!
457 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 07:54:15.38 ID:wbq0Lfqra.net] おお、なるほど。LINQのクイズ集があれば面白そうだな。
458 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 08:59:40.07 ID:S6vHFDx3d.net] 443はlinqじゃないぞ 2.0の頃からあるListクラスのメソッドだけだ
459 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 10:18:31.48 ID:AUeyxvTx0.net] >>450 ラムダ式が使えるようになったのはC#3.0から
460 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 11:47:29.33 ID:S6vHFDx3d.net] >>451 そうそう。なのでデリゲート使って書く必要はあるけど
461 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 19:15:36.40 ID:4aKZbpn00.net] 次のようなことをしたいのですが、どうすればいいでしょうか。 async、awaitを使えばいいようにも思えたのですが、クラス内のループが止まらず・・・ 1.ボタン押下でとある処理をするクラスのインスタンスを生成し、クラス内で処理を無限ループ 2.ボタン押下でクラス内のループを停止
462 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 19:21:08.99 ID:a3Zgv65M0.net] >>453 ループさせているクラス内に止めるメソッド付けてボタン押したときにそれ呼び出せばいいだけでは イベントメソッドは別のクラスでもできるから直にボタンのイベントに追加してもいいし
463 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 20:10:30.11 ID:2XS9VBdia.net] CancellationTokenSourceを使うのが比較的妥当なやり方かな 2でボタンを押したらcancellationTokenSource.Cancel() 無限ループ側の処理では適宜cancellationToken.ThrowIfCancellationRequested()
464 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 20:56:45.60 ID:LqXN8ItS0.net] 低レベルな実装だと終了フラグの参照を渡しておくとか
465 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 21:11:30.63 ID:fYPVnhP50.net] >>455 単純なループ処理でキャンセル例外が必要なければ CancellationToken.IsCancellationRequestedをチェックするのでも良いね
466 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 21:12:50.98 ID:4aKZbpn00.net] 皆さん、ご回答ありがとうございます。 >>454 停止メソッドにより、ループ条件から外れるフラグを立てて 処理停止させるイメージでしょうか。 >>455 CancellationTokenSource初めて聞きました。 便利ですね! >>456 すみません。フラグでの終了処理しか思いつきませんでした・・・ もう少しマシな実装になるとどうなるのでしょうか。 教えてもらえると助かります。
467 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 21:26:09.47 ID:4aKZbpn00.net] >>457 そういった方法もあるのですね。ありがとうございます。
468 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 22:06:20.98 ID:GZd8Fc/Qp.net] 無限ループなんか組むな。
469 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 22:40:07.64 ID:4aKZbpn00.net] すみません・・・ あるフォルダにファイルが保管されたときに そのファイルを処理したくて監視に無限ループを使ってしまいました。 他に良い方法があれば、お教え願えないでしょうか。
470 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 22:43:30.90 ID:4WMOl80S0.net] >>461 System.IO.FileSystemWatcher
471 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 22:46:14.03 ID:4WMOl80S0.net] もしくは、win32ApiのFindFirstChangeNotification()か
472 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 22:46:46.91 ID:4aKZbpn00.net] >>462 そんな便利なものまであるんですね!びっくりしました! 全然C#のこと知らなくて恥ずかしいです・・・ 教えてくださってありがとうございました。
473 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 09:31:28.37 ID:jmHHdju80.net] 自分はC#といえば当たり前のようにWindowsFormでやってたけど みんなは何使ってるの?
474 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 11:09:54.59 ID:xlt6w80MM.net] >>465 特に必要なければwinform というか、初期のブレンドが使い物にならなかったので、WPFやUWP?は必要になるまで覚えないことにした
475 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 11:18:52.44 ID:kf58t1t/0.net] WinformからUWP APIを呼び出すことも出来るしな
476 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 12:01:00.80 ID:nq/8XfUOM.net] WPFでやってるけど誰かにお勧めしたことはないしとてもお勧めできない
477 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 12:10:35.61 ID:biFO59Yua.net] >>465 Winformなプロジェクトだが、XAMLでのレイアウトが好きだから自分の担当画面はWPF使ってる
478 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 12:29:45.46 ID:XsRrDAKXd.net] >>465 ASP.NET Core
479 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 12:34:32.95 ID:in2U0t2Ud.net] >>465 WinFormsやらWPFやらXamarin
480 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 14:05:53.46 ID:xlt6w80MM.net] >>465 アンカーやドック追加してくれたのが嬉しすぎて、他に浮気してまで新たに覚える気にならないってのもあるかな
481 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 20:18:04.95 ID:h4zgSqGZd.net] [DllImport("user32.dll")] static extern IntPtr GetForegroundWindow(); アクティブウィンドウのクライアント領域を取得するにはどうすればいいでしょうか? 上のメソッド使えば行けそうなんだけど、行き詰まってます。
482 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 20:23:25.50 ID:7/MPDbwD0.net] C#関係ない
483 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 20:39:43.87 ID:j6ZvHlbE0.net] >>473 それはアクティブになっているウインドウのハンドルを返すだけのもの https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getclientrect RECTの構造体は自分で用意して上のURLではポインタが引数になっているけどC#なら [DllImport("user32.dll")] private static extern int GetClientRect(IntPtr hwnd, ref RECT Rect); みたいに構造体をrefかoutで指定したらそこに戻ってくる
484 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 23:28:13.40 ID:1vTqziPj0.net] c#楽しいね 直感ですぐGUIアプリ作れるからプログラミング覚えたいけど特に目標がないって人にはc#一択だと思う
485 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 23:50:51.61 ID:RWMmexzc0.net] >>475 ほぼそのまんまのサンプルを見つけて問題はとりあえず解決しました。 https://ja.stackoverflow.com/questions/21328/c-processで指定した別プロセスのウインドウを-クライアント領域のみキャプチャしたい アクティブウィンドウのクライアント領域の取得は、 c# + netframework ではできないのですか?
486 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 00:27:03.61 ID:yP1vALXb0.net] できるよ お前には一週間早い
487 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 01:19:09.27 ID:wYLP5dcN0.net] 次はListViewの要素の長方形を得たいとかかな 結局.netからは離れていきそう
488 名前:デフォルトの名無しさん [2019/08/29(木) 01:53:51.70 ID:KY//KYCr0.net] TreeViewの表示を標準の 項目1 ┗項目2 ┣項目3 ┗項目4 から、 項目1━項目2┳項目3 ┗項目4 にするにはどうすればよいでしょうか?
489 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 01:59:31.63 ID:AZY1Uw460.net] owner draw
490 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 02:11:15.91 ID:HoxlVuhE0.n
] [ここ壊れてます]
491 名前:et mailto: 普通にカスタムコントロールを作った方が早そう [] [ここ壊れてます]
492 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 07:51:27.50 ID:JXiDsy0oa.net] >>473 GetActiveWindow()って無かったっけ?
493 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 07:52:24.70 ID:JXiDsy0oa.net] ↑ああ、早とちり
494 名前:デフォルトの名無しさん [2019/08/30(金) 21:10:43.61 ID:euEksp6k0.net] ドラッグアンドドロップで拡張子を.txt→.jsonに変更するプログラムのコードをください
495 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 21:15:43.51 ID:a95S+czO0.net] batでやったほうが早そうなレベルだけど fileをrenameするだけでしょ?
496 名前:デフォルトの名無しさん [2019/08/30(金) 21:18:37.15 ID:euEksp6k0.net] renameするだけですね どうしてもC♯でやりたいんです
497 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 21:30:48.63 ID:m5yHWiCc0.net] >>487 拡張子の書き換えは System.IO.Path.ChangeExtension(filepath, extension) ここはコードを代わりに書くスレじゃないのでキーワードはあるのだから後はググってください
498 名前:デフォルトの名無しさん [2019/08/30(金) 21:39:06.95 ID:euEksp6k0.net] 一日ググってもわからなかったので聞きに来ました
499 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 22:13:39.42 ID:LYP1s7Gj0.net] 誰が一日ググれば聞いていいって言ったんだよ ひと月はググれ
500 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 22:15:07.21 ID:gOJh05ROp.net] >>488 それだけじゃ変数領域にあるファイル名しかリネームされてない予感
501 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 22:16:45.05 ID:5knN0MFU0.net] むしろググる以外のことをしろ 一日やったらわかったこととわからんとこぐらいあるだろ
502 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 22:17:38.29 ID:a95S+czO0.net] どこがわからなかったのかくらい書いてくれないと説明できんよ ドラッグアンドドロップの受け取り方? 拡張子の変え方? コンソールアプリなの?デスクトップアプリなの?
503 名前:デフォルトの名無しさん [2019/08/30(金) 22:22:42.01 ID:euEksp6k0.net] https://www.ipentec.com/document/csharp-accept-drag-and-drop-from-explorer https://dobon.net/vb/dotnet/file/changeextension.html ここの二つのサイトを参考にして組み合わせれないかと色々やってみたんですけどうまくいかないんですよね それぞれ片方ずつならうまく動きます
504 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 22:27:14.34 ID:a95S+czO0.net] 上手く行かないとは何かを説明して コンパイルできない?エラーが出る?例外が出る? 実はmoveできてるけど別のフォルダに作ってるとかないよね?
505 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 22:27:46.98 ID:Eq4lHDlT0.net] 答えが出てるから色々試そうぜ あと1日試してやり方がわからないのなら >>1 にある >■コードを貼る場合は↓を使いましょう。 >ideone.com/ >https://dotnetfiddle.net/ にコードを張ってここからどうやれば良いかを聞いてくれ
506 名前:デフォルトの名無しさん [2019/08/30(金) 22:47:12.10 ID:euEksp6k0.net] ideone.com/4eJIcv これで貼れてますか?フォームアプリケーションです。 ここの57行目のファイルのパスをドラッグアンドドロップして得たパスに変更したいんですけどうまくいかないんですよね
507 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 22:58:41.75 ID:m5yHWiCc0.net] >>497 private void Form1_DragDrop(object sender, DragEventArgs e) { string[] files = (string[])e.Data.GetData(DataFormats.FileDrop, false); for (int i = 0; i < files.Length; i++) { string fileName = files[i]; textBox1.Text += fileName + "\r\n"; System.IO.File.Move(fileName, System.IO.Path.ChangeExtension(fileName, "bak")); } } これでいいでしょ ボタンクリックでやりたいのならフィールドでファイルパス持たないと
508 名前:デフォルトの名無しさん [2019/08/30(金) 23:12:12.27 ID:euEksp6k0.net] >>498 できました、ありがとうございます こんな簡単だったんですね・・・・・・
509 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 23:59:42.45 ID:Nv4TyFgP0.net] >>498 重箱の隅で本質とは関係ないけど、 "\r\n"はEnvironment.NewLineの方が良いな
510 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 00:15:27.52 ID:yACTwzu40.net] テキストボックスのテキストも環境の影響受けるんか? おれは環境によらず出力一定のほうが安心する
511 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 00:24:05.20 ID:8S6g8PTE0.net] どちらかと言うと定義済みの定数としてだな