!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/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part143
https://mevius.5ch.net/test/read.cgi/tech/1558002486/
■情報源
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/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part144
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ドコグロ MM2f-DHp5)
2019/07/16(火) 15:36:23.74ID:i1fbuZ/pM399デフォルトの名無しさん (ワッチョイ 31ad-gVUp)
2019/08/21(水) 00:27:12.96ID:7whQ/iRu0 あ、間違えた
× this.Invoke( (MethodInvoker)delegate {
〇 static1.form1.Invoke( (MethodInvoker)delegate {
(thisは自フォーム内のマルチスレッド部分のソースだった)
カウントダウンにマルチスレッドが必要とは限らんが
むしろモーダルだったり
でも「オブジェクトがあれば必ず「通知」できる」という方法は確立しといた方が、オブジェクト指向っぽい
クラスオブジェクト指向の前にメッセージオブジェクト指向があったので(Win32API)
メッセージ、つまり「通知」
× this.Invoke( (MethodInvoker)delegate {
〇 static1.form1.Invoke( (MethodInvoker)delegate {
(thisは自フォーム内のマルチスレッド部分のソースだった)
カウントダウンにマルチスレッドが必要とは限らんが
むしろモーダルだったり
でも「オブジェクトがあれば必ず「通知」できる」という方法は確立しといた方が、オブジェクト指向っぽい
クラスオブジェクト指向の前にメッセージオブジェクト指向があったので(Win32API)
メッセージ、つまり「通知」
400デフォルトの名無しさん (スププ Sd33-/7bP)
2019/08/21(水) 00:57:19.98ID:CGK7jfA0d >>392
解答どうもありがとうございます。
event かデリゲートで解決できそうです。
// Form1
private void CountDownBtn_Click(object sender, EventArgs e) {
var countdownForm = new MYCountDownForm();
// 4 3 2 1 0と表示してから、下に行きたいが、
// これだとカウント 0 を待たずにすぐ下に行く。
countdownForm.Show();
// このクラスのいろいろな処理
}
解答どうもありがとうございます。
event かデリゲートで解決できそうです。
// Form1
private void CountDownBtn_Click(object sender, EventArgs e) {
var countdownForm = new MYCountDownForm();
// 4 3 2 1 0と表示してから、下に行きたいが、
// これだとカウント 0 を待たずにすぐ下に行く。
countdownForm.Show();
// このクラスのいろいろな処理
}
401デフォルトの名無しさん (ワッチョイ 31ad-gVUp)
2019/08/21(水) 01:36:11.80ID:7whQ/iRu0402デフォルトの名無しさん (ワッチョイ bd63-5mn8)
2019/08/22(木) 16:28:36.46ID:tih7LC2d0 APIが公開されていなくてもスクレイピングして非公開websoketに接続したいのですが、
解析からトークンなど必要なheader情報取得すればできるものですか?
解析からトークンなど必要なheader情報取得すればできるものですか?
403デフォルトの名無しさん (ワッチョイ da47-9WLl)
2019/08/22(木) 16:50:43.33ID:xQsiKIbM0 出来るけど利用規約読め
API経由だとセーフで
API経由しないと逮捕とか書いてあるから
API経由だとセーフで
API経由しないと逮捕とか書いてあるから
404デフォルトの名無しさん (ワッチョイ 7aad-HwVO)
2019/08/22(木) 16:57:22.84ID:erkZnaOI0405デフォルトの名無しさん (アウアウクー MMc5-CbcL)
2019/08/22(木) 17:10:49.32ID:NpAwFZ6qM >>404
条文ぐらい示してやれよ
条文ぐらい示してやれよ
406デフォルトの名無しさん (ワッチョイ 2161-T8rO)
2019/08/22(木) 17:59:59.30ID:90PkXrDL0 色んなところで迷惑なヤローだな
407デフォルトの名無しさん (ワッチョイ d563-43Wh)
2019/08/22(木) 21:54:01.43ID:rNXeNA230408デフォルトの名無しさん (ワッチョイ 912c-cx4e)
2019/08/22(木) 22:05:00.16ID:yaxmcT7W0 この質問結構前からいたるところで見る気がするんだけどただのマルチ?
409デフォルトの名無しさん (スププ Sd9a-kbW9)
2019/08/22(木) 23:55:52.03ID:W1llczT4d >>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 更新
}
とりあえず自力でできたのでソース抜粋 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 更新
}
410デフォルトの名無しさん (スププ Sd9a-kbW9)
2019/08/23(金) 00:00:27.51ID:RwBPjFxxd ソース抜粋 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; }
}
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; }
}
411デフォルトの名無しさん (ワッチョイ 6568-CMhc)
2019/08/24(土) 00:16:35.07ID:EZ15JXYo0 アホな質問ばっかですいません
光速の計算をしたいんですが、doubleでは無理ですか?
decimalは使いません
お願いします。小数点以下が信用できません。
光速の計算をしたいんですが、doubleでは無理ですか?
decimalは使いません
お願いします。小数点以下が信用できません。
412デフォルトの名無しさん (ワッチョイ da52-6dAq)
2019/08/24(土) 00:22:03.18ID:ka7Yl/470 >>411
お前さんが使おうとしている計算方法や欲しい精度とか示さんと答えられんだろうよ
お前さんが使おうとしている計算方法や欲しい精度とか示さんと答えられんだろうよ
413デフォルトの名無しさん (ワッチョイ bda3-CbcL)
2019/08/24(土) 01:21:02.23ID:g8XGZa5Z0414デフォルトの名無しさん (ワッチョイ 4501-AdB2)
2019/08/24(土) 08:41:25.65ID:VP6gB9DD0 質問いいですか、クラスの処理の途中経過をTextboxのコントロールに送りたいのです
public partial class Form1 : Form
{
Class1 class1 = new Class1();
}
class Class1
{
public Class1()
{
Form1.Textbox1.AppendText("Class1を実行しています");
}
}
このようにしてもForm1のインスタンスがないから実行できません
みなさんはクラスのログなどをテキストボックスに送るとき、どう書かれてますか?
public partial class Form1 : Form
{
Class1 class1 = new Class1();
}
class Class1
{
public Class1()
{
Form1.Textbox1.AppendText("Class1を実行しています");
}
}
このようにしてもForm1のインスタンスがないから実行できません
みなさんはクラスのログなどをテキストボックスに送るとき、どう書かれてますか?
415デフォルトの名無しさん (ワッチョイ d67b-F52R)
2019/08/24(土) 09:03:40.17ID:BNVmeU2m0 >>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から呼び出す
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から呼び出す
416デフォルトの名無しさん (ワッチョイ 4501-AdB2)
2019/08/24(土) 15:23:44.45ID:VP6gB9DD0417デフォルトの名無しさん (ササクッテロ Sp05-LzRA)
2019/08/24(土) 15:40:00.64ID:glPHIee0p コントロールは何かを操作する為の機能なんだから、
普通はその操作する何かを直接操作するだろ?
普通はその操作する何かを直接操作するだろ?
418デフォルトの名無しさん (ワッチョイ d67b-F52R)
2019/08/24(土) 15:45:48.43ID:BNVmeU2m0 >>416
インスタンスをどう指定していいかわからないんじゃなかったのか
親子関係にあるウィンドウでの操作はいろんなアプリで普通にあるし
C#だけにしても「C# 別のフォームのコントロール」でググればやっているところはいっぱい出てくる
インスタンスをどう指定していいかわからないんじゃなかったのか
親子関係にあるウィンドウでの操作はいろんなアプリで普通にあるし
C#だけにしても「C# 別のフォームのコントロール」でググればやっているところはいっぱい出てくる
419デフォルトの名無しさん (アウアウウー Sa09-Aknt)
2019/08/24(土) 15:56:01.09ID:dsz+mirUa >>416
非推奨というか、普通はやりたいと思わないね。
何かの参照を握るってことはそれに依存してしまうってことだから。
Class1は本来はForm1の参照を持つ設計にしたことで、
事実上そのプログラム専用の他で流用できないコードになってる
他で使う予定ないからそれで問題ないと思うかもしれないが(以下略
非推奨というか、普通はやりたいと思わないね。
何かの参照を握るってことはそれに依存してしまうってことだから。
Class1は本来はForm1の参照を持つ設計にしたことで、
事実上そのプログラム専用の他で流用できないコードになってる
他で使う予定ないからそれで問題ないと思うかもしれないが(以下略
420デフォルトの名無しさん (ワッチョイ 4501-AdB2)
2019/08/24(土) 19:37:50.96ID:VP6gB9DD0421デフォルトの名無しさん (ワッチョイ 7a79-BXNL)
2019/08/24(土) 21:52:23.83ID:PMKXSgkW0 処理側に出力するだけの意味しかないデリゲートでも渡してやれば?
受け側はコントロールを操作とか意識しなくて済むけど
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;
}
:
}
受け側はコントロールを操作とか意識しなくて済むけど
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;
}
:
}
422デフォルトの名無しさん (ワッチョイ 2142-gQHD)
2019/08/24(土) 22:59:49.50ID:sQirZTQZ0 よく答えられるな
なにをしようとしてるのかすらわからんわ
なにをしようとしてるのかすらわからんわ
423デフォルトの名無しさん (ワッチョイ 4501-AdB2)
2019/08/24(土) 23:07:54.21ID:VP6gB9DD0424デフォルトの名無しさん (アウアウウー Sa09-QSEA)
2019/08/24(土) 23:11:33.91ID:XZUr8QhOa refやout, in引数のないdelegateなら
自分で定義せずにSystem.ActionやSystem.Funcを使う手もあるよ
自分で定義せずにSystem.ActionやSystem.Funcを使う手もあるよ
425デフォルトの名無しさん (アウアウウー Sa09-Aknt)
2019/08/24(土) 23:15:15.44ID:dsz+mirUa426デフォルトの名無しさん (ワッチョイ 0d22-Kr2K)
2019/08/24(土) 23:54:17.30ID:GocaxRhS0 >>422
さすがにそれはお前がアホやで
さすがにそれはお前がアホやで
427デフォルトの名無しさん (ワッチョイ 7a79-P0k6)
2019/08/24(土) 23:56:09.98ID:4OMYNXZ10 使う手もあるというか余程じゃなければActionかFuncでは
428デフォルトの名無しさん (ワッチョイ 0d22-Kr2K)
2019/08/25(日) 00:04:50.89ID:dkxX1jtZ0 俺もActionを推す
429デフォルトの名無しさん (ワッチョイ 912c-cx4e)
2019/08/25(日) 00:26:08.77ID:DAHO6xPV0 MethodInvoker(´・ω・`)ボクも忘れないでね
430デフォルトの名無しさん (ブーイモ MMf1-2l6c)
2019/08/25(日) 06:55:23.52ID:Jlb1UCj1M >>414
こういうのってbindingでどうにかするものじゃないの?
こういうのってbindingでどうにかするものじゃないの?
431デフォルトの名無しさん (ワッチョイ cdb0-lNpu)
2019/08/25(日) 07:21:22.29ID:UfI3Un4o0 可変長の戻り値って実現できませんか?もしくは可変長のタプル
これを
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));
こんな風に書けたらいいのにって感じです
これを
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));
こんな風に書けたらいいのにって感じです
432デフォルトの名無しさん (ワッチョイ 4501-AdB2)
2019/08/25(日) 09:33:25.01ID:NieUwdLz0433デフォルトの名無しさん (アウアウウー Sa09-Aknt)
2019/08/25(日) 13:39:47.35ID:aNsJH+ura >>431
何言ってるのか理解するのに5分かかったw
ラムダ式の右辺(?)の評価方法をジェネリックの型パラメータを確定する場面で指定するとか
普通に無理筋でしょう
hoge(list, listItem => new[] { listItem.A, listItem.B });
が
hoge(list, listItem => (listItem.A, listItem.B));
と書けたところでたいして嬉しいと思えんけど
何言ってるのか理解するのに5分かかったw
ラムダ式の右辺(?)の評価方法をジェネリックの型パラメータを確定する場面で指定するとか
普通に無理筋でしょう
hoge(list, listItem => new[] { listItem.A, listItem.B });
が
hoge(list, listItem => (listItem.A, listItem.B));
と書けたところでたいして嬉しいと思えんけど
434デフォルトの名無しさん (ワッチョイ cdb0-lNpu)
2019/08/25(日) 14:04:21.51ID:UfI3Un4o0435デフォルトの名無しさん (ワッチョイ baf9-RyRR)
2019/08/25(日) 22:03:25.03ID:4LqybIGY0 Formのプログラムで普通に動作してたOpenFormDialogを使ってる箇所が突然フリーズしてしまいます。
一旦そうなるとWindows自体が不安定になり、他のプログラムで恐らくOpenFormDialogを使ってる所が全てフリーズしOSの再起動が必要になります。
どんな要因が考えられるでしょうか。
プログラムはかんたんなグラフィックエディタで矩形やテキストを移動したり変形する程度です
一旦そうなるとWindows自体が不安定になり、他のプログラムで恐らくOpenFormDialogを使ってる所が全てフリーズしOSの再起動が必要になります。
どんな要因が考えられるでしょうか。
プログラムはかんたんなグラフィックエディタで矩形やテキストを移動したり変形する程度です
436デフォルトの名無しさん (ワッチョイ fa2c-QSEA)
2019/08/25(日) 22:12:11.72ID:hYfvTIib0 OpenFormDialog? OpenFileDialogじゃなくて?
OpenFileDialogならフリーズの話はあるから検索して
騒がれたのもう結構前だからまだ残ってるともあんまり思えないけど
OpenFileDialogならフリーズの話はあるから検索して
騒がれたのもう結構前だからまだ残ってるともあんまり思えないけど
437デフォルトの名無しさん (ワッチョイ fa2c-QSEA)
2019/08/25(日) 22:13:53.33ID:hYfvTIib0 あ、残ってるってのはフリーズするバグを残してる環境の話ね
438デフォルトの名無しさん (ワッチョイ baf9-RyRR)
2019/08/26(月) 00:35:03.80ID:D54D8pf80439デフォルトの名無しさん (ワッチョイ 3a89-lNpu)
2019/08/26(月) 01:40:22.77ID:YZSrPKBs0 List<Employee> のIDとList<int> の一致するEmployeeを取得したいです。
List<int>をforeach、その中でList<Employee>をFirstOrDefaultで探して
新たなList<Employee>にAddする方法はできました。
これのforeachを撲滅して簡潔に書きたいのですがいい方法はありますか?
List<int>をforeach、その中でList<Employee>をFirstOrDefaultで探して
新たなList<Employee>にAddする方法はできました。
これのforeachを撲滅して簡潔に書きたいのですがいい方法はありますか?
440デフォルトの名無しさん (ワッチョイ 0d22-XeeC)
2019/08/26(月) 01:54:35.76ID:XYz1A7/c0 var employees = new List<Employee>();
var ids = new List<int>();
・・・・
var hitEmployees = employees.Where(employee => ids.Where(id => id == employee.id).Any()).ToList();
var ids = new List<int>();
・・・・
var hitEmployees = employees.Where(employee => ids.Where(id => id == employee.id).Any()).ToList();
441デフォルトの名無しさん (ワッチョイ fa2c-QSEA)
2019/08/26(月) 05:09:56.54ID:d+oJYvyp0 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
joinはクエリ構文の方が読みやすいな
from emp in employees join id in ids on emp.ID equals id select emp
442デフォルトの名無しさん (ワッチョイ faad-Z4JX)
2019/08/26(月) 06:09:07.86ID:LiZWIy1C0 Find
443デフォルトの名無しさん (ワッチョイ 7a79-P0k6)
2019/08/26(月) 07:20:31.54ID:H4cvWJOz0 employees.FindAll(emp => ids.Contains(emp.ID))
444デフォルトの名無しさん (アウアウクー MMc5-CbcL)
2019/08/26(月) 08:56:15.22ID:WqA3OufOM EnumSetってEnumの値を2のベキにすればいいから存在しないの?
445デフォルトの名無しさん (スププ Sd9a-kbW9)
2019/08/26(月) 11:40:26.35ID:Rhz6dR8od イベントハンドラのいなづまアイコンってどういう意味なの?
気になって開発が手につきません。
気になって開発が手につきません。
446デフォルトの名無しさん (アウアウウー Sa09-Aknt)
2019/08/26(月) 12:01:50.23ID:EHOEsFfWa 地下鉄漫才かよw
447デフォルトの名無しさん (オッペケ Sr05-tuDN)
2019/08/26(月) 16:00:24.81ID:7fzFkpCMr execute
神がいかずちをもって手を下す
的な
神がいかずちをもって手を下す
的な
448デフォルトの名無しさん (ワッチョイ 3a89-lNpu)
2019/08/26(月) 22:32:00.17ID:YZSrPKBs0449デフォルトの名無しさん (アウアウウー Sa09-UUTf)
2019/08/27(火) 07:54:15.38ID:wbq0Lfqra おお、なるほど。LINQのクイズ集があれば面白そうだな。
450デフォルトの名無しさん (スフッ Sd9a-cx4e)
2019/08/27(火) 08:59:40.07ID:S6vHFDx3d 443はlinqじゃないぞ
2.0の頃からあるListクラスのメソッドだけだ
2.0の頃からあるListクラスのメソッドだけだ
451デフォルトの名無しさん (ワッチョイ 0d22-Kr2K)
2019/08/27(火) 10:18:31.48ID:AUeyxvTx0 >>450
ラムダ式が使えるようになったのはC#3.0から
ラムダ式が使えるようになったのはC#3.0から
452デフォルトの名無しさん (スフッ Sd9a-cx4e)
2019/08/27(火) 11:47:29.33ID:S6vHFDx3d >>451
そうそう。なのでデリゲート使って書く必要はあるけど
そうそう。なのでデリゲート使って書く必要はあるけど
453デフォルトの名無しさん (ワッチョイ 99b0-P0k6)
2019/08/27(火) 19:15:36.40ID:4aKZbpn00 次のようなことをしたいのですが、どうすればいいでしょうか。
async、awaitを使えばいいようにも思えたのですが、クラス内のループが止まらず・・・
1.ボタン押下でとある処理をするクラスのインスタンスを生成し、クラス内で処理を無限ループ
2.ボタン押下でクラス内のループを停止
async、awaitを使えばいいようにも思えたのですが、クラス内のループが止まらず・・・
1.ボタン押下でとある処理をするクラスのインスタンスを生成し、クラス内で処理を無限ループ
2.ボタン押下でクラス内のループを停止
454デフォルトの名無しさん (ワッチョイ d67b-F52R)
2019/08/27(火) 19:21:08.99ID:a3Zgv65M0455デフォルトの名無しさん (アウアウイー Sac5-DhPa)
2019/08/27(火) 20:10:30.11ID:2XS9VBdia CancellationTokenSourceを使うのが比較的妥当なやり方かな
2でボタンを押したらcancellationTokenSource.Cancel()
無限ループ側の処理では適宜cancellationToken.ThrowIfCancellationRequested()
2でボタンを押したらcancellationTokenSource.Cancel()
無限ループ側の処理では適宜cancellationToken.ThrowIfCancellationRequested()
456デフォルトの名無しさん (ワッチョイ 7a79-P0k6)
2019/08/27(火) 20:56:45.60ID:LqXN8ItS0 低レベルな実装だと終了フラグの参照を渡しておくとか
457デフォルトの名無しさん (ワッチョイ f15f-7nd5)
2019/08/27(火) 21:11:30.63ID:fYPVnhP50458デフォルトの名無しさん (ワッチョイ 99b0-P0k6)
2019/08/27(火) 21:12:50.98ID:4aKZbpn00459デフォルトの名無しさん (ワッチョイ 99b0-P0k6)
2019/08/27(火) 21:26:09.47ID:4aKZbpn00 >>457
そういった方法もあるのですね。ありがとうございます。
そういった方法もあるのですね。ありがとうございます。
460デフォルトの名無しさん (ササクッテロ Sp05-LzRA)
2019/08/27(火) 22:06:20.98ID:GZd8Fc/Qp 無限ループなんか組むな。
461デフォルトの名無しさん (ワッチョイ 99b0-P0k6)
2019/08/27(火) 22:40:07.64ID:4aKZbpn00 すみません・・・
あるフォルダにファイルが保管されたときに
そのファイルを処理したくて監視に無限ループを使ってしまいました。
他に良い方法があれば、お教え願えないでしょうか。
あるフォルダにファイルが保管されたときに
そのファイルを処理したくて監視に無限ループを使ってしまいました。
他に良い方法があれば、お教え願えないでしょうか。
462デフォルトの名無しさん (ワッチョイ 5d01-125u)
2019/08/27(火) 22:43:30.90ID:4WMOl80S0 >>461
System.IO.FileSystemWatcher
System.IO.FileSystemWatcher
463デフォルトの名無しさん (ワッチョイ 5d01-125u)
2019/08/27(火) 22:46:14.03ID:4WMOl80S0 もしくは、win32ApiのFindFirstChangeNotification()か
464デフォルトの名無しさん (ワッチョイ 99b0-P0k6)
2019/08/27(火) 22:46:46.91ID:4aKZbpn00465デフォルトの名無しさん (ワッチョイ 2142-gQHD)
2019/08/28(水) 09:31:28.37ID:jmHHdju80 自分はC#といえば当たり前のようにWindowsFormでやってたけど
みんなは何使ってるの?
みんなは何使ってるの?
466デフォルトの名無しさん (オイコラミネオ MMbd-tmze)
2019/08/28(水) 11:09:54.59ID:xlt6w80MM467デフォルトの名無しさん (ワッチョイ 99ae-atfx)
2019/08/28(水) 11:18:52.44ID:kf58t1t/0 WinformからUWP APIを呼び出すことも出来るしな
468デフォルトの名無しさん (ラクペッ MMed-43Wh)
2019/08/28(水) 12:01:00.80ID:nq/8XfUOM WPFでやってるけど誰かにお勧めしたことはないしとてもお勧めできない
469デフォルトの名無しさん (アウアウウー Sa09-y1iX)
2019/08/28(水) 12:10:35.61ID:biFO59Yua >>465
Winformなプロジェクトだが、XAMLでのレイアウトが好きだから自分の担当画面はWPF使ってる
Winformなプロジェクトだが、XAMLでのレイアウトが好きだから自分の担当画面はWPF使ってる
470デフォルトの名無しさん (スッップ Sd9a-6AzI)
2019/08/28(水) 12:29:45.46ID:XsRrDAKXd >>465
ASP.NET Core
ASP.NET Core
471デフォルトの名無しさん (スフッ Sd9a-Kr2K)
2019/08/28(水) 12:34:32.95ID:in2U0t2Ud >>465
WinFormsやらWPFやらXamarin
WinFormsやらWPFやらXamarin
472デフォルトの名無しさん (オイコラミネオ MMbd-tmze)
2019/08/28(水) 14:05:53.46ID:xlt6w80MM >>465
アンカーやドック追加してくれたのが嬉しすぎて、他に浮気してまで新たに覚える気にならないってのもあるかな
アンカーやドック追加してくれたのが嬉しすぎて、他に浮気してまで新たに覚える気にならないってのもあるかな
473デフォルトの名無しさん (スププ Sd9a-kbW9)
2019/08/28(水) 20:18:04.95ID:h4zgSqGZd [DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
アクティブウィンドウのクライアント領域を取得するにはどうすればいいでしょうか?
上のメソッド使えば行けそうなんだけど、行き詰まってます。
static extern IntPtr GetForegroundWindow();
アクティブウィンドウのクライアント領域を取得するにはどうすればいいでしょうか?
上のメソッド使えば行けそうなんだけど、行き詰まってます。
474デフォルトの名無しさん (ワッチョイ b117-P0k6)
2019/08/28(水) 20:23:25.50ID:7/MPDbwD0 C#関係ない
475デフォルトの名無しさん (ワッチョイ d67b-F52R)
2019/08/28(水) 20:39:43.87ID:j6ZvHlbE0 >>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で指定したらそこに戻ってくる
それはアクティブになっているウインドウのハンドルを返すだけのもの
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で指定したらそこに戻ってくる
476デフォルトの名無しさん (ワッチョイ 260d-bErd)
2019/08/28(水) 23:28:13.40ID:1vTqziPj0 c#楽しいね
直感ですぐGUIアプリ作れるからプログラミング覚えたいけど特に目標がないって人にはc#一択だと思う
直感ですぐGUIアプリ作れるからプログラミング覚えたいけど特に目標がないって人にはc#一択だと思う
477デフォルトの名無しさん (ワッチョイ 9a07-kbW9)
2019/08/28(水) 23:50:51.61ID:RWMmexzc0 >>475
ほぼそのまんまのサンプルを見つけて問題はとりあえず解決しました。
https://ja.stackoverflow.com/questions/21328/c-processで指定した別プロセスのウインドウを-クライアント領域のみキャプチャしたい
アクティブウィンドウのクライアント領域の取得は、
c# + netframework ではできないのですか?
ほぼそのまんまのサンプルを見つけて問題はとりあえず解決しました。
https://ja.stackoverflow.com/questions/21328/c-processで指定した別プロセスのウインドウを-クライアント領域のみキャプチャしたい
アクティブウィンドウのクライアント領域の取得は、
c# + netframework ではできないのですか?
478デフォルトの名無しさん (ワッチョイ 3163-CiQ8)
2019/08/29(木) 00:27:03.61ID:yP1vALXb0 できるよ
お前には一週間早い
お前には一週間早い
479デフォルトの名無しさん (ワッチョイ 1379-uxNz)
2019/08/29(木) 01:19:09.27ID:wYLP5dcN0 次はListViewの要素の長方形を得たいとかかな
結局.netからは離れていきそう
結局.netからは離れていきそう
480デフォルトの名無しさん (ワッチョイ d1da-ca7b)
2019/08/29(木) 01:53:51.70ID:KY//KYCr0 TreeViewの表示を標準の
項目1
┗項目2
┣項目3
┗項目4
から、
項目1━項目2┳項目3
┗項目4
にするにはどうすればよいでしょうか?
項目1
┗項目2
┣項目3
┗項目4
から、
項目1━項目2┳項目3
┗項目4
にするにはどうすればよいでしょうか?
481デフォルトの名無しさん (ワッチョイ 0101-W7g/)
2019/08/29(木) 01:59:31.63ID:AZY1Uw460 owner draw
482デフォルトの名無しさん (ワッチョイ 6bda-5xY+)
2019/08/29(木) 02:11:15.91ID:HoxlVuhE0 普通にカスタムコントロールを作った方が早そう
483デフォルトの名無しさん (アウアウウー Sa55-qt7j)
2019/08/29(木) 07:51:27.50ID:JXiDsy0oa >>473
GetActiveWindow()って無かったっけ?
GetActiveWindow()って無かったっけ?
484デフォルトの名無しさん (アウアウウー Sa55-qt7j)
2019/08/29(木) 07:52:24.70ID:JXiDsy0oa ↑ああ、早とちり
485デフォルトの名無しさん (ワッチョイ d101-drPI)
2019/08/30(金) 21:10:43.61ID:euEksp6k0 ドラッグアンドドロップで拡張子を.txt→.jsonに変更するプログラムのコードをください
486デフォルトの名無しさん (ワッチョイ 9963-n2vT)
2019/08/30(金) 21:15:43.51ID:a95S+czO0 batでやったほうが早そうなレベルだけど
fileをrenameするだけでしょ?
fileをrenameするだけでしょ?
487デフォルトの名無しさん (ワッチョイ d101-drPI)
2019/08/30(金) 21:18:37.15ID:euEksp6k0 renameするだけですね
どうしてもC♯でやりたいんです
どうしてもC♯でやりたいんです
488デフォルトの名無しさん (ワッチョイ eb7b-OHvC)
2019/08/30(金) 21:30:48.63ID:m5yHWiCc0 >>487
拡張子の書き換えは
System.IO.Path.ChangeExtension(filepath, extension)
ここはコードを代わりに書くスレじゃないのでキーワードはあるのだから後はググってください
拡張子の書き換えは
System.IO.Path.ChangeExtension(filepath, extension)
ここはコードを代わりに書くスレじゃないのでキーワードはあるのだから後はググってください
489デフォルトの名無しさん (ワッチョイ d101-drPI)
2019/08/30(金) 21:39:06.95ID:euEksp6k0 一日ググってもわからなかったので聞きに来ました
490デフォルトの名無しさん (ワッチョイ 3163-CiQ8)
2019/08/30(金) 22:13:39.42ID:LYP1s7Gj0 誰が一日ググれば聞いていいって言ったんだよ
ひと月はググれ
ひと月はググれ
491デフォルトの名無しさん (ササクッテロ Sp5d-qeiT)
2019/08/30(金) 22:15:07.21ID:gOJh05ROp >>488
それだけじゃ変数領域にあるファイル名しかリネームされてない予感
それだけじゃ変数領域にあるファイル名しかリネームされてない予感
492デフォルトの名無しさん (ワッチョイ eb63-kL5O)
2019/08/30(金) 22:16:45.05ID:5knN0MFU0 むしろググる以外のことをしろ
一日やったらわかったこととわからんとこぐらいあるだろ
一日やったらわかったこととわからんとこぐらいあるだろ
493デフォルトの名無しさん (ワッチョイ 9963-n2vT)
2019/08/30(金) 22:17:38.29ID:a95S+czO0 どこがわからなかったのかくらい書いてくれないと説明できんよ
ドラッグアンドドロップの受け取り方?
拡張子の変え方?
コンソールアプリなの?デスクトップアプリなの?
ドラッグアンドドロップの受け取り方?
拡張子の変え方?
コンソールアプリなの?デスクトップアプリなの?
494デフォルトの名無しさん (ワッチョイ d101-drPI)
2019/08/30(金) 22:22:42.01ID:euEksp6k0 https://www.ipentec.com/document/csharp-accept-drag-and-drop-from-explorer
https://dobon.net/vb/dotnet/file/changeextension.html
ここの二つのサイトを参考にして組み合わせれないかと色々やってみたんですけどうまくいかないんですよね
それぞれ片方ずつならうまく動きます
https://dobon.net/vb/dotnet/file/changeextension.html
ここの二つのサイトを参考にして組み合わせれないかと色々やってみたんですけどうまくいかないんですよね
それぞれ片方ずつならうまく動きます
495デフォルトの名無しさん (ワッチョイ 9963-n2vT)
2019/08/30(金) 22:27:14.34ID:a95S+czO0 上手く行かないとは何かを説明して
コンパイルできない?エラーが出る?例外が出る?
実はmoveできてるけど別のフォルダに作ってるとかないよね?
コンパイルできない?エラーが出る?例外が出る?
実はmoveできてるけど別のフォルダに作ってるとかないよね?
496デフォルトの名無しさん (ワッチョイ 0917-cRT5)
2019/08/30(金) 22:27:46.98ID:Eq4lHDlT0 答えが出てるから色々試そうぜ
あと1日試してやり方がわからないのなら
>>1にある
>■コードを貼る場合は↓を使いましょう。
>http://ideone.com/
>https://dotnetfiddle.net/
にコードを張ってここからどうやれば良いかを聞いてくれ
あと1日試してやり方がわからないのなら
>>1にある
>■コードを貼る場合は↓を使いましょう。
>http://ideone.com/
>https://dotnetfiddle.net/
にコードを張ってここからどうやれば良いかを聞いてくれ
497デフォルトの名無しさん (ワッチョイ d101-drPI)
2019/08/30(金) 22:47:12.10ID:euEksp6k0 http://ideone.com/4eJIcv
これで貼れてますか?フォームアプリケーションです。
ここの57行目のファイルのパスをドラッグアンドドロップして得たパスに変更したいんですけどうまくいかないんですよね
これで貼れてますか?フォームアプリケーションです。
ここの57行目のファイルのパスをドラッグアンドドロップして得たパスに変更したいんですけどうまくいかないんですよね
498デフォルトの名無しさん (ワッチョイ eb7b-OHvC)
2019/08/30(金) 22:58:41.75ID:m5yHWiCc0 >>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"));
}
}
これでいいでしょ
ボタンクリックでやりたいのならフィールドでファイルパス持たないと
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"));
}
}
これでいいでしょ
ボタンクリックでやりたいのならフィールドでファイルパス持たないと
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★2 [お断り★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★6 [ぐれ★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★4 [BFU★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 [ぐれ★]
- 【外交】前台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」 [1ゲットロボ★]
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪
- 【悲報】高市早苗さん、もう辞職しか選択肢がない… [271912485]
- 【岸田速報】山上妹、覚醒。「自慢の兄」「安倍晋三と統一教会は強固な関係性」「法の下では解決不能」 [559744496]
- 【高市悲報】「岡田のせいです」と父さんに説明して通用するはずないんだけど大丈夫なの?ガチでその方向で固めてない?怒られない? [213647114]
- ネトウヨ、ついに中国人相手に犯罪を犯す [805596214]
- 【ござる専🏡】風間🥷配信実況スレ🏯【風間いろは】
