!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part145
https://mevius.5ch.net/test/read.cgi/tech/1570446977/
■関連スレ
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#(初心者用) Part146
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9f0b-Fgt1)
2019/12/11(水) 22:12:11.28ID:d09CciDz0605デフォルトの名無しさん (アウアウウー Sa4b-2gyN)
2020/01/26(日) 02:46:23.95ID:1Qgc/rXOa 過去に散々既出だと思うけどdelegate自体がもともと重いんだろうね。
単なる関数ポインタとは違うから
単なる関数ポインタとは違うから
606デフォルトの名無しさん (アウアウウー Sa4b-kxbL)
2020/01/26(日) 07:42:07.62ID:oZpGD5h+a607デフォルトの名無しさん (オッペケ Sr7b-V1vN)
2020/01/26(日) 10:32:12.87ID:aeprKMLHr enumの実装が書けたら違うことになってるかもな
でも今はいらない
でも今はいらない
608デフォルトの名無しさん (アウアウウー Sa4b-FkkX)
2020/01/28(火) 19:46:47.61ID:eMbEeMz/a609デフォルトの名無しさん (アウアウウー Sa4b-FkkX)
2020/01/28(火) 19:48:39.10ID:eMbEeMz/a610デフォルトの名無しさん (ワッチョイ 0763-Lndp)
2020/01/28(火) 20:37:03.72ID:WmWS3LeK0611デフォルトの名無しさん (アウアウウー Sa4b-FkkX)
2020/01/28(火) 20:54:23.00ID:eMbEeMz/a >>610
何で?ググるの面倒なので
何で?ググるの面倒なので
612デフォルトの名無しさん (ワッチョイ 5f52-zhKY)
2020/01/28(火) 20:56:03.48ID:ciqR13vi0 >>609
もうID変わってるだろうけど>>589なのだが、皮肉のつもりで言ったのが通じてないようだ。
switchの用途として>>583みたいなのでいいのではなんて言うのは圧倒的に経験が少ない証拠だろう。ちょっと慣れて自分でコードを書けるようになればそんなバカな発想はしなくなるよ。
そんな段階で>>609みたいな文法にケチつける前に、なんでその文法が必要なのか、何でそういう形式になってるのか理解する努力をしなよ。
C#のような後発の言語が生まれる過程では、君みたいな初心者が考えるようなことはとっくの昔に議論済みでそれらを踏まえた上で今の形がある。疑問を持つのは多いに結構だけど、往々にして言語の仕様が悪いのではなく、単に自分が無知なだけだから。
もうID変わってるだろうけど>>589なのだが、皮肉のつもりで言ったのが通じてないようだ。
switchの用途として>>583みたいなのでいいのではなんて言うのは圧倒的に経験が少ない証拠だろう。ちょっと慣れて自分でコードを書けるようになればそんなバカな発想はしなくなるよ。
そんな段階で>>609みたいな文法にケチつける前に、なんでその文法が必要なのか、何でそういう形式になってるのか理解する努力をしなよ。
C#のような後発の言語が生まれる過程では、君みたいな初心者が考えるようなことはとっくの昔に議論済みでそれらを踏まえた上で今の形がある。疑問を持つのは多いに結構だけど、往々にして言語の仕様が悪いのではなく、単に自分が無知なだけだから。
613デフォルトの名無しさん (ワッチョイ bf8c-vjh7)
2020/01/28(火) 20:58:55.67ID:gjKbUoJM0 そもそもシリアライズするにしても=なんかつかいたかねえ
614デフォルトの名無しさん (ワッチョイ 0763-Lndp)
2020/01/28(火) 21:06:37.92ID:WmWS3LeK0615デフォルトの名無しさん (ワッチョイ 47a7-zUmo)
2020/01/28(火) 21:06:53.68ID:q5l9JsKl0 最近の言語の傾向見てると
どっかの言語が導入すると移植のために?かどうかはわからんが
良し悪しに関わらず他の言語も実装される感じ
どっかの言語が導入すると移植のために?かどうかはわからんが
良し悪しに関わらず他の言語も実装される感じ
616デフォルトの名無しさん (ワッチョイ 47a7-zUmo)
2020/01/28(火) 21:23:16.25ID:q5l9JsKl0 JavaScriptとPHPに慣れたら多次元連想配列無い言語がオワコンに見えるようになった
しかし
var obj = getExExBigData();
↑超絶巨大データ(フォーマット・ドキュメント不明)
勘弁してくれよってのも事実
c#の未来はどうなるのか?
しかし
var obj = getExExBigData();
↑超絶巨大データ(フォーマット・ドキュメント不明)
勘弁してくれよってのも事実
c#の未来はどうなるのか?
617デフォルトの名無しさん (ワッチョイ 7dda-mRwA)
2020/01/29(水) 04:42:05.41ID:9DDwBhYq0 DataGridViewで、Cellに不正な値が入力された場合はフォーカスの移動を禁止するようにしたいのですが、
以下の方法では、移動してしまいます。
移動させないようにするにはどうすればよいでしょうか。
private void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
if (String.IsNullOrEmpty(this.dataGridView[e.ColumnIndex, e.RowIndex].Value as string))
{
e.Cancel = true;
}
}
以下の方法では、移動してしまいます。
移動させないようにするにはどうすればよいでしょうか。
private void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
if (String.IsNullOrEmpty(this.dataGridView[e.ColumnIndex, e.RowIndex].Value as string))
{
e.Cancel = true;
}
}
618デフォルトの名無しさん (ワッチョイ a5a7-UGOI)
2020/01/29(水) 07:14:46.75ID:hzNdq+pG0 >>617
具体的に何入力して移動したん?
具体的に何入力して移動したん?
619デフォルトの名無しさん (ドコグロ MM12-CWn9)
2020/01/29(水) 07:26:15.27ID:M9CckfF9M620デフォルトの名無しさん (アウアウウー Sa21-4r/6)
2020/01/29(水) 07:51:31.42ID:wu2AIlA1a >>617
CellChangingみたいな選択セル変更前のイベントが無かったっけ?
CellChangingみたいな選択セル変更前のイベントが無かったっけ?
621デフォルトの名無しさん (ワッチョイ 667b-UZ8j)
2020/01/29(水) 17:28:02.98ID:HGA4G3kr0 >>617
この人だけじゃないけど、まずこういうところに質問投げる前に分岐がきちんと機能しているか確かめた方がいい
それの場合は this.dataGridView[e.ColumnIndex, e.RowIndex].Value as stringの内容確認
直接の回答としてはhttp://dobon.net/vb/dotnet/datagridview/cellvalidating.htmlを参考にして書き直せ
解説を入れると
DataGridViewでセルに直接値を入力した場合はフォーカスが変わるか.EndEdit()などしないと入力された値が反映されない
そのイベント自体そのために用意されているはず
だからそのメソッドの中で「dataGridView[e.ColumnIndex, e.RowIndex].Value」は入力する前のセルの値で
入力された値を参照したかったら「e.FormattedValue」を見ないといけない
この人だけじゃないけど、まずこういうところに質問投げる前に分岐がきちんと機能しているか確かめた方がいい
それの場合は this.dataGridView[e.ColumnIndex, e.RowIndex].Value as stringの内容確認
直接の回答としてはhttp://dobon.net/vb/dotnet/datagridview/cellvalidating.htmlを参考にして書き直せ
解説を入れると
DataGridViewでセルに直接値を入力した場合はフォーカスが変わるか.EndEdit()などしないと入力された値が反映されない
そのイベント自体そのために用意されているはず
だからそのメソッドの中で「dataGridView[e.ColumnIndex, e.RowIndex].Value」は入力する前のセルの値で
入力された値を参照したかったら「e.FormattedValue」を見ないといけない
622デフォルトの名無しさん (アウアウウー Sa21-0Ybi)
2020/01/29(水) 20:53:31.76ID:2z1gsFLxa >>612
この言語って文字列操作に特化してるからテキストを利用するのって
全然普通だと思いますけどね。
後0<input&&input<10じゃないとだめなのは、何となくですが
数式はポーランド記法によって処理されることに関係しますか?
分かりませんけど。
この言語って文字列操作に特化してるからテキストを利用するのって
全然普通だと思いますけどね。
後0<input&&input<10じゃないとだめなのは、何となくですが
数式はポーランド記法によって処理されることに関係しますか?
分かりませんけど。
623デフォルトの名無しさん (ワッチョイ 0a1b-jgyw)
2020/01/29(水) 21:21:21.50ID:7ZbwpcWy0624デフォルトの名無しさん (ワッチョイ 9e8c-FwRn)
2020/01/29(水) 21:32:07.46ID:3Ec+y/7b0 いや構文解析での段階の話(要は3項演算的な)だろうかなそれは関係ないと思う
まあ文字列操作に特化は意味不明だけど
まあ文字列操作に特化は意味不明だけど
625デフォルトの名無しさん (ワッチョイ ad90-xN1s)
2020/01/29(水) 21:36:40.28ID:xfBLmZ140 それ関係ないと思う
626デフォルトの名無しさん (ワッチョイ ad90-xN1s)
2020/01/29(水) 21:39:08.32ID:xfBLmZ140 かぶった。関係ないっていったのは演算子オーバーロードのことね。
627デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/29(水) 21:45:33.03ID:Bye/BSTsa >>623
それは出来ない理由にはなってないんじゃないの?
あんまり自信はないが、
評価結果が数値 < 評価結果が数値
評価結果が数値 < 評価結果が数値 < 評価結果が数値
両者を別の演算として区別することはやってできないことはないはず。
それは出来ない理由にはなってないんじゃないの?
あんまり自信はないが、
評価結果が数値 < 評価結果が数値
評価結果が数値 < 評価結果が数値 < 評価結果が数値
両者を別の演算として区別することはやってできないことはないはず。
628デフォルトの名無しさん (ワッチョイ 4a52-G6DY)
2020/01/29(水) 21:59:18.87ID:iDUguYS70 >>627
既存のルールに新たに3値を並べて比較する構文を追加するとしたら、既存のルールを維持したまま、新たなルールに伴う考えうる様々な組み合わせについて明確で一貫性や完全性のあるルールを作らなければならないが、かなり複雑なものになるだろう。
やってやれないことはないにしても、デメリット(手間と複雑さや混乱)に見合うメリットがないから、ほとんどの人に望まれていないし、言語仕様として追加されることもないだろう。
既存のルールに新たに3値を並べて比較する構文を追加するとしたら、既存のルールを維持したまま、新たなルールに伴う考えうる様々な組み合わせについて明確で一貫性や完全性のあるルールを作らなければならないが、かなり複雑なものになるだろう。
やってやれないことはないにしても、デメリット(手間と複雑さや混乱)に見合うメリットがないから、ほとんどの人に望まれていないし、言語仕様として追加されることもないだろう。
629デフォルトの名無しさん (ワッチョイ a5a7-UGOI)
2020/01/29(水) 22:17:11.48ID:hzNdq+pG0 こんなの簡単だろ
でもやっても凄いって言われないから
実装されないだろうな
でもやっても凄いって言われないから
実装されないだろうな
630デフォルトの名無しさん (アウアウウー Sa21-0Ybi)
2020/01/29(水) 22:18:04.76ID:2z1gsFLxa <・・・小文字だからC#の言語に従う
<・・・大文字なので特別に数学的記法とみなす
これでどうだろう
<・・・大文字なので特別に数学的記法とみなす
これでどうだろう
631デフォルトの名無しさん (ブーイモ MM8e-YgEg)
2020/01/29(水) 22:31:04.06ID:Fd2iU5f0M if(a < x < b)
実はこれは言語機能をいじらなくても自作型で再現できる
実はこれは言語機能をいじらなくても自作型で再現できる
632デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/01/29(水) 22:34:17.30ID:PCXIkBj+0 >>628
python で実現してるのに何を言ってるんだよw
python で実現してるのに何を言ってるんだよw
633デフォルトの名無しさん (アウアウウー Sa21-0Ybi)
2020/01/29(水) 22:34:24.68ID:2z1gsFLxa >>631
#defineか?
#defineか?
634デフォルトの名無しさん (ワッチョイ 0a1b-jgyw)
2020/01/29(水) 22:39:08.64ID:7ZbwpcWy0635デフォルトの名無しさん (ワッチョイ 4a52-G6DY)
2020/01/29(水) 22:41:27.05ID:iDUguYS70 >>630
そんな見にくい&醜いのはやめてくれ
そんな見にくい&醜いのはやめてくれ
636デフォルトの名無しさん (ワッチョイ a5a7-UGOI)
2020/01/29(水) 22:46:36.64ID:hzNdq+pG0 >>634
どうでもいいだろそんなん
どうでもいいだろそんなん
637デフォルトの名無しさん (ブーイモ MM0a-YgEg)
2020/01/29(水) 22:56:00.32ID:PvehEt0vM >>633
基本的な演算子定義だけで出来る
基本的な演算子定義だけで出来る
638デフォルトの名無しさん (ワッチョイ 9e8c-FwRn)
2020/01/29(水) 22:56:01.11ID:3Ec+y/7b0 どうしてもやりたいなら$"3<{x}<5".Predicate()みたいなライブラリ作ればいいんじゃね
639デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/29(水) 23:06:16.31ID:Bye/BSTsa >>634
文脈依存キーワードと何も違わないと思うよ
文脈依存キーワードと何も違わないと思うよ
640デフォルトの名無しさん (ワッチョイ 7d4f-unxX)
2020/01/29(水) 23:16:52.10ID:tkk/tPU50 a < x の値を独自クラスのインスタンスにできるならあとの < b はどうにでもなるだろうけど
そもそも前者って可能なんだっけ?
そもそも前者って可能なんだっけ?
641デフォルトの名無しさん (アウアウウー Sa21-0Ybi)
2020/01/29(水) 23:24:37.56ID:2z1gsFLxa642デフォルトの名無しさん (ワッチョイ 0a1b-jgyw)
2020/01/29(水) 23:27:24.25ID:7ZbwpcWy0643デフォルトの名無しさん (ワッチョイ 7d4f-unxX)
2020/01/29(水) 23:36:35.98ID:tkk/tPU50 a b x の型が int だったりしたとき、それオーバーロードできるんだっけ?
644デフォルトの名無しさん (ワッチョイ 6abd-0Ybi)
2020/01/29(水) 23:57:35.84ID:fVMIrPAj0 C#のターゲットフレームワークってどういう仕様なんでしょうか?
わかりやすいサイト教えてもらえると助かります。
exe 4.5 dll 3.5
→ ビルドできるからok?
exe 3.5 dll 4.5
→ コンパイルエラー
ただし動的に読み込んだ場合は動いてるっぽい?
わかりやすいサイト教えてもらえると助かります。
exe 4.5 dll 3.5
→ ビルドできるからok?
exe 3.5 dll 4.5
→ コンパイルエラー
ただし動的に読み込んだ場合は動いてるっぽい?
645デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/01/30(木) 01:31:07.75ID:N/97jNZ60646デフォルトの名無しさん (ワッチョイ 6dda-mRwA)
2020/01/30(木) 05:02:06.68ID:CgdKR7K00 んんんんんんh
647デフォルトの名無しさん (ワッチョイ 5942-unxX)
2020/01/30(木) 14:25:04.44ID:XrVMMkZO0 visual studio2019 30日たったら使えなくなったんだけど
無料じゃないの?
PC替えるまで以前のバージョンはずっと使えてたんだけど
2019は違うの?
無料版使い方おしえてください
無料じゃないの?
PC替えるまで以前のバージョンはずっと使えてたんだけど
2019は違うの?
無料版使い方おしえてください
648デフォルトの名無しさん (ワッチョイ 3d2d-XhTL)
2020/01/30(木) 14:27:27.39ID:UIStC4VF0 ログインすれば無料のまま使えるよ
649デフォルトの名無しさん (ワッチョイ 5942-unxX)
2020/01/30(木) 14:30:14.48ID:XrVMMkZO0 更新したら使えました
ありがとう
ありがとう
650デフォルトの名無しさん (アウアウエー Sa52-/fp1)
2020/01/31(金) 03:22:54.75ID:A50vozAla ボタンを押すと計算開始して結果をテキストボックスに表示する処理(数十秒かかります)
まずボタンを押してその処理がまだ終わってないうちに、またボタンを押すと次の処理がどんどん溜まっていくのですが、
これを防止する方法はないでしょうか
(例えばついボタンをダブルクリックをしてしまった時に1回表示してからまた同じ処理に入ってしまう)
ボタン押したら結果が表示されるまで全部のボタンのenabledをfalseにする処理入れてみたのですがこれではうまく回避できませんでした
まずボタンを押してその処理がまだ終わってないうちに、またボタンを押すと次の処理がどんどん溜まっていくのですが、
これを防止する方法はないでしょうか
(例えばついボタンをダブルクリックをしてしまった時に1回表示してからまた同じ処理に入ってしまう)
ボタン押したら結果が表示されるまで全部のボタンのenabledをfalseにする処理入れてみたのですがこれではうまく回避できませんでした
651デフォルトの名無しさん (オイコラミネオ MMb5-FwRn)
2020/01/31(金) 03:40:35.08ID:PzD8ZwF3M lock使う
652デフォルトの名無しさん (ワッチョイ 6a61-2iSl)
2020/01/31(金) 04:08:48.51ID:sTuegRNa0 メインスレッドには実際にボタンを無効化する作業をしてもらわないといけないので
計算はasync/await等を使って別スレッドで行う
計算はasync/await等を使って別スレッドで行う
653650 (アウアウエー Sa52-/fp1)
2020/01/31(金) 06:01:04.44ID:A50vozAla >>651-652
正直まだ難しそうですががんばってみます。ありがとうございました。
正直まだ難しそうですががんばってみます。ありがとうございました。
654デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/01/31(金) 07:46:03.52ID:EEAl6aZb0655デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 13:16:14.42ID:59NEldNla >>653
何も難しくないよw
>ボタンのenabledをfalseにする処理入れてみたのですがこれではうまく回避できません
これは「重い処理」の後にそれをやってるからそうなる
ボタンのイベントハンドラで真っ先にEnabled = falseにすればそんなことは起こらない。
何も難しくないよw
>ボタンのenabledをfalseにする処理入れてみたのですがこれではうまく回避できません
これは「重い処理」の後にそれをやってるからそうなる
ボタンのイベントハンドラで真っ先にEnabled = falseにすればそんなことは起こらない。
656デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/01/31(金) 14:04:57.33ID:EEAl6aZb0657デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 14:58:26.86ID:59NEldNla >>656
はいはい頭悪そうワロタw
はいはい頭悪そうワロタw
658デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 15:16:23.75ID:59NEldNla なぜかコードが貼れないので割愛するけど、実際にやって>>655が正しいことを確認した
当たり前の話だがw
当たり前の話だがw
659デフォルトの名無しさん (ドコグロ MMb1-CWn9)
2020/01/31(金) 15:20:18.74ID:La68B+L1M660デフォルトの名無しさん (ドコグロ MMb1-CWn9)
2020/01/31(金) 15:22:19.46ID:La68B+L1M >>658
当たり前の話だが負荷かけてテストしてるよな?
当たり前の話だが負荷かけてテストしてるよな?
661デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 15:25:15.63ID:59NEldNla つくづく馬鹿な奴w
偉そうに他人様に命令する前に自分は実際にコード書いて確認したのかとw
まあ普通こんなレベルの話は確認するまでもないけどね
偉そうに他人様に命令する前に自分は実際にコード書いて確認したのかとw
まあ普通こんなレベルの話は確認するまでもないけどね
662デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 15:41:48.86ID:59NEldNla どうでもいいけど
(1) Thread.Sleep
(2) Task.Delay
(3) ビジーループ
いずれのダミーを使ってもイベントハンドラの頭でEnabled = falseとすることで
ボタン連打によるイベントハンドラへの意図しない「再入」を抑止できることを確認した
(1) Thread.Sleep
(2) Task.Delay
(3) ビジーループ
いずれのダミーを使ってもイベントハンドラの頭でEnabled = falseとすることで
ボタン連打によるイベントハンドラへの意図しない「再入」を抑止できることを確認した
663デフォルトの名無しさん (ワッチョイ 3d2d-XhTL)
2020/01/31(金) 15:43:04.01ID:xcV7YFLC0 イベントを呼び出すのが毎回同じスレッドなんだから、>>655の方法で完璧に止まると思うけどな
664デフォルトの名無しさん (ワッチョイ 5d2f-KoMo)
2020/01/31(金) 16:25:21.45ID:6LQhDtiB0 >>662
>(例えばついボタンをダブルクリックをしてしまった時に1回表示してからまた同じ処理に入ってしまう)
再入が問題じゃないって気づけよ
タイミングによってクリックイベントが2回キューイングされることがあるのが問題なんだよ
>(例えばついボタンをダブルクリックをしてしまった時に1回表示してからまた同じ処理に入ってしまう)
再入が問題じゃないって気づけよ
タイミングによってクリックイベントが2回キューイングされることがあるのが問題なんだよ
665デフォルトの名無しさん (ワッチョイ 6663-3Mgd)
2020/01/31(金) 16:55:17.80ID:rVrHfFzc0 ガイジに何を気付けって?
お前も方面が違うだけで同じガイジだな
お前も方面が違うだけで同じガイジだな
666デフォルトの名無しさん (ワッチョイ 667b-UZ8j)
2020/01/31(金) 17:43:12.90ID:Wmzh3pBZ0 >>650
イベント処理に入る前にイベントハンドラを外しておくといい。button1.Click-=button_Clickみたいな感じで
ただValueChangedとかならともかくボタンで普通はやらないと思う。「enabledをfalse」になっているボタンでイベントが実行されるのはおかしい
計算処理を非同期に渡して計算が終わらないうちにEnabledを復帰させるとか変なことやっていないか?
EnabledでなくVisibleをfalse->trueに変えてみて確認したら?
動作に関しては他の人がいろいろ言っているようだけど一度ミニマムコード作って自分で動作確認するのが一番確実
イベント処理に入る前にイベントハンドラを外しておくといい。button1.Click-=button_Clickみたいな感じで
ただValueChangedとかならともかくボタンで普通はやらないと思う。「enabledをfalse」になっているボタンでイベントが実行されるのはおかしい
計算処理を非同期に渡して計算が終わらないうちにEnabledを復帰させるとか変なことやっていないか?
EnabledでなくVisibleをfalse->trueに変えてみて確認したら?
動作に関しては他の人がいろいろ言っているようだけど一度ミニマムコード作って自分で動作確認するのが一番確実
667デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/01/31(金) 18:37:18.25ID:y3M2GGQ20 private void button1_Click(object sender, EventArgs e) {
button1.Enabled = false;
//重い処理
button1.Enabled = true;
}
上のコードでもユーザーが最初のクリックをしてから
イベントハンドラが呼ばれてEnabled = falseが設定されて
さらにそれからクリックできなくなるまでの間に
複数回のクリックが発生する可能性がある
(Windowメッセージのキューに溜まる)
だからEnabled = trueに戻す前に
溜まったクリックイベントを流してやる必要がある
button1.Enabled = false;
//重い処理
button1.Enabled = true;
}
上のコードでもユーザーが最初のクリックをしてから
イベントハンドラが呼ばれてEnabled = falseが設定されて
さらにそれからクリックできなくなるまでの間に
複数回のクリックが発生する可能性がある
(Windowメッセージのキューに溜まる)
だからEnabled = trueに戻す前に
溜まったクリックイベントを流してやる必要がある
668デフォルトの名無しさん (ラクッペ MM6d-3Mgd)
2020/01/31(金) 19:04:25.31ID:AyZqOEveM 難しすぎて分かんねえよ兄貴
669デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/01/31(金) 19:05:05.53ID:EEAl6aZb0670デフォルトの名無しさん (ワントンキン MM7a-FwRn)
2020/01/31(金) 19:14:36.51ID:oeaCTmz/M イベント流すってどうするんですか?
671デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 19:29:46.30ID:59NEldNla >>667
そんな必要ないってば...
君がOSのコード書く立場になってよく考えてよ。
君はメッセージをエンキューする時にウィンドウが無効化されているかどうか
ノールックでやっちゃうような間抜けなコード書くの?w
そんなのありえへん
そんな必要ないってば...
君がOSのコード書く立場になってよく考えてよ。
君はメッセージをエンキューする時にウィンドウが無効化されているかどうか
ノールックでやっちゃうような間抜けなコード書くの?w
そんなのありえへん
672デフォルトの名無しさん (ワッチョイ 667b-oe7i)
2020/01/31(金) 19:30:59.97ID:BjcNa1EE0 ここ初心者スレだろ
673デフォルトの名無しさん (ワッチョイ 5d2f-KoMo)
2020/01/31(金) 19:34:11.53ID:6LQhDtiB0 いやだから、無効化されるまでに2回以上キューにたまる可能性があるって話なんだが...
674デフォルトの名無しさん (オッペケ Srbd-Y6bJ)
2020/01/31(金) 19:34:38.34ID:J9WtEN9Ir よくわからんけど痛い人が大声で独演会をやっています
675デフォルトの名無しさん (ワッチョイ 6d7b-0ef2)
2020/01/31(金) 19:47:15.52ID:EQPJwN2a0676デフォルトの名無しさん (オッペケ Srbd-Y6bJ)
2020/01/31(金) 20:12:38.30ID:J9WtEN9Ir 今日も仕事で新型コロナウイルスなんて騒ぎすぎだという老人の独演会を30分聞かされた
対策も必要ない死ぬ人は死ぬでいいじゃないかと言う話
老害しなないかな
対策も必要ない死ぬ人は死ぬでいいじゃないかと言う話
老害しなないかな
677デフォルトの名無しさん (ワッチョイ 3d2d-XhTL)
2020/01/31(金) 20:19:21.81ID:xcV7YFLC0 キューが溜まる派は、button1.Enabled = false;なし、かつ、非同期処理なしにすれば簡単に再現コードができるんだろう
でも現実には再現しないから困ってんだろうな
でも現実には再現しないから困ってんだろうな
678デフォルトの名無しさん (ワッチョイ 3d2d-XhTL)
2020/01/31(金) 20:19:22.13ID:xcV7YFLC0 キューが溜まる派は、button1.Enabled = false;なし、かつ、非同期処理なしにすれば簡単に再現コードができるんだろう
でも現実には再現しないから困ってんだろうな
でも現実には再現しないから困ってんだろうな
679デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 20:31:30.36ID:59NEldNla ちなみに念のためこんなのもやってみたが
//button1をクリックした後button2を連打せよ
private void button1_Click(object sender, EventArgs e)
{
Thread.Sleep(5000);
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("Button Clicked !");
}
Win32に詳しくないので理由を与えることが出来ないけど、
この場合もメッセージボックスは1度しか表示されない
//button1をクリックした後button2を連打せよ
private void button1_Click(object sender, EventArgs e)
{
Thread.Sleep(5000);
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("Button Clicked !");
}
Win32に詳しくないので理由を与えることが出来ないけど、
この場合もメッセージボックスは1度しか表示されない
680デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 20:46:38.12ID:59NEldNla >>676
完全スレ違いだけどそれはその老害の言ってることの方がただしいw
専門家はたいしたリスクないから騒ぎすぎだと言ってるのに
どっかの怪しいネットde真実クンの被害妄想を真に受ける奴がどうかしてるよ
こういうの認知バイアスって言うんだけどさ
完全スレ違いだけどそれはその老害の言ってることの方がただしいw
専門家はたいしたリスクないから騒ぎすぎだと言ってるのに
どっかの怪しいネットde真実クンの被害妄想を真に受ける奴がどうかしてるよ
こういうの認知バイアスって言うんだけどさ
681デフォルトの名無しさん (オッペケ Srbd-Y6bJ)
2020/01/31(金) 21:00:47.10ID:J9WtEN9Ir 一流の専門家wとWHOと各国の対応見る限り
誰かの方が認知バイアスかかってると思う
世の中でこういわれてるけど逆の方に○○と言うのを言って俺スゲーしたいのが老害
誰かの方が認知バイアスかかってると思う
世の中でこういわれてるけど逆の方に○○と言うのを言って俺スゲーしたいのが老害
682デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 21:06:43.84ID:59NEldNla >>679
いや待て、ひょっとしてMessageBoxがフォーカスを奪うのが関係しているのかと思って
Console.WriteLine("Button Clicked !");
に変えてみたらなんと複数回表示されるなww
何てこったw
この現象は以下のコードで回避できた
private void button2_Click(object sender, EventArgs e)
{
if (button2.Enabled)
{
button2.Enabled = false;
Console.WriteLine("Button Clicked !");
}
Application.DoEvents();
button2.Enabled = true;
}
いや待て、ひょっとしてMessageBoxがフォーカスを奪うのが関係しているのかと思って
Console.WriteLine("Button Clicked !");
に変えてみたらなんと複数回表示されるなww
何てこったw
この現象は以下のコードで回避できた
private void button2_Click(object sender, EventArgs e)
{
if (button2.Enabled)
{
button2.Enabled = false;
Console.WriteLine("Button Clicked !");
}
Application.DoEvents();
button2.Enabled = true;
}
683デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/01/31(金) 21:08:40.75ID:EEAl6aZb0684デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 21:09:59.26ID:59NEldNla >>681
WHOは声明で過剰反応するなと言ってる。
多くの伝染疾患の専門家の意見も同じ
各国政府の対応はよく言えば安全牌、悪く言えば役人や政治家の保身だね
テールリスクとしてはヤバいことになる可能性は確かにゼロではない。
その場合に誰も批判されたくないしね。
費用負担するのは納税者であって役人でも政治家でもないし
WHOは声明で過剰反応するなと言ってる。
多くの伝染疾患の専門家の意見も同じ
各国政府の対応はよく言えば安全牌、悪く言えば役人や政治家の保身だね
テールリスクとしてはヤバいことになる可能性は確かにゼロではない。
その場合に誰も批判されたくないしね。
費用負担するのは納税者であって役人でも政治家でもないし
685デフォルトの名無しさん (ワッチョイ ea02-L01+)
2020/01/31(金) 21:15:06.28ID:0h4Mv/T00 でも新型ウイルスで色々と未知だから警戒するに越したことはないと思う
686蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ b501-KoMo)
2020/01/31(金) 21:23:40.30ID:r/XM8LG10 メッセージボックスはボタンかキーボードが押されるまで待つ。
ダイアログの一種。
ダイアログの一種。
687デフォルトの名無しさん (ワッチョイ 39da-KENp)
2020/01/31(金) 21:59:54.58ID:XKSM3aqP0 >>670
Postする
Postする
688デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/01/31(金) 22:34:59.12ID:y3M2GGQ20 >>670
1. Application.DoEvents()
2. PeekMessage()
3. await Task.Delay()
Task.Delay()使ってthrottle/debounceする高階関数を作っておくと毎回書かずにすむ
1. Application.DoEvents()
2. PeekMessage()
3. await Task.Delay()
Task.Delay()使ってthrottle/debounceする高階関数を作っておくと毎回書かずにすむ
689デフォルトの名無しさん (ワッチョイ 6a59-/fp1)
2020/01/31(金) 23:16:44.01ID:1nDsQqma0 引数でリスト渡すけど要素を変更して欲しくない時って結局どうすりゃいいの?
Immutableは使えない環境の場合
ReadOnlyCollectionは引数の型としては想定してないみたいだけど、キャスト防ごうと思ったらこれしかないよね?
Immutableは使えない環境の場合
ReadOnlyCollectionは引数の型としては想定してないみたいだけど、キャスト防ごうと思ったらこれしかないよね?
690デフォルトの名無しさん (ワッチョイ 3de7-ol1H)
2020/01/31(金) 23:27:33.43ID:mtUYlnXN0691デフォルトの名無しさん (ブーイモ MM8e-YgEg)
2020/01/31(金) 23:43:34.80ID:BFU5CNzNM >>689
Deep Copy
Deep Copy
692デフォルトの名無しさん (ワッチョイ 6a59-/fp1)
2020/02/01(土) 00:38:43.88ID:1j1iFXRs0 拡張メソッドにしろクラスをシリアライズするの面倒じゃん
693デフォルトの名無しさん (ワッチョイ 6ab9-ol1H)
2020/02/01(土) 01:36:17.36ID:XuRc8/EP0 質問お願いいたします。
カスタム日時書式指定文字列を使って、
例えば DateTime.Now.ToString("M月") と書けば、
今なら "2月" という文字列が受け取れます。
しかし、DateTime.Now.ToString("M") と書いても
"2" という文字列ではなく "2月1日" という文字列が返ってきてしまいます。
これは "M" という文字列が(カスタムでなく)標準の日時書式指定文字列と
解釈されてしまっているからのようなのですが、
DateTime.Now.ToString(...) のような書き方で
"2" という文字列を受け取ることは可能でしょうか。
もちろん DateTime.Now.Month.ToString() と書けば
"2" を得ることはできますが、IFormattable インターフェース経由で
文字列を取得したいという事情があり、
Month プロパティを使う方法は避けたいと考えております。
もし何かおわかりのことがあればご教授いただけると幸いです。
どうぞよろしくお願いいたします。
カスタム日時書式指定文字列を使って、
例えば DateTime.Now.ToString("M月") と書けば、
今なら "2月" という文字列が受け取れます。
しかし、DateTime.Now.ToString("M") と書いても
"2" という文字列ではなく "2月1日" という文字列が返ってきてしまいます。
これは "M" という文字列が(カスタムでなく)標準の日時書式指定文字列と
解釈されてしまっているからのようなのですが、
DateTime.Now.ToString(...) のような書き方で
"2" という文字列を受け取ることは可能でしょうか。
もちろん DateTime.Now.Month.ToString() と書けば
"2" を得ることはできますが、IFormattable インターフェース経由で
文字列を取得したいという事情があり、
Month プロパティを使う方法は避けたいと考えております。
もし何かおわかりのことがあればご教授いただけると幸いです。
どうぞよろしくお願いいたします。
694デフォルトの名無しさん (ワッチョイ 7938-egZw)
2020/02/01(土) 01:40:32.15ID:BvtANEfa0 あとから月消すのは無し?
695デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/02/01(土) 01:54:56.01ID:EnxAFhi/0696デフォルトの名無しさん (ワッチョイ e5ad-8P7z)
2020/02/01(土) 01:55:14.57ID:HxAAP4sW0 control.Enabled=true/falseって即時処理されるのか?
WM_ENABLEメッセージをキューにPostするだけなのでは。
WM_ENABLEメッセージをキューにPostするだけなのでは。
697デフォルトの名無しさん (ワッチョイ 6ab9-ol1H)
2020/02/01(土) 02:05:13.79ID:XuRc8/EP0698デフォルトの名無しさん (ワッチョイ 7938-egZw)
2020/02/01(土) 02:14:03.96ID:BvtANEfa0 >>697
正規の方法がすぐ解って良かったね
正規の方法がすぐ解って良かったね
699デフォルトの名無しさん (ワッチョイ b501-5BC/)
2020/02/01(土) 05:24:11.96ID:156Woc/f0 >>696
否定はできんけど、そんなことになってたらおそロシア
否定はできんけど、そんなことになってたらおそロシア
700デフォルトの名無しさん (ワッチョイ a5b0-x1ET)
2020/02/01(土) 08:01:32.31ID:22BQCiJ60 しょーもない質問なんですが
起動時、必要なファイル(iniとか)を探して、無ければ起動しないというプロセスは
Form1_Load()にifでApplication.Exit()書いて強制終了にしてしまえば良いのでしょうか?
Form1_Load()の途中で強制終了はwindows的に無問題でしょうか?
起動時、必要なファイル(iniとか)を探して、無ければ起動しないというプロセスは
Form1_Load()にifでApplication.Exit()書いて強制終了にしてしまえば良いのでしょうか?
Form1_Load()の途中で強制終了はwindows的に無問題でしょうか?
701デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/02/01(土) 08:02:52.31ID:iBA7Xa3w0702デフォルトの名無しさん (ワッチョイ 39da-KENp)
2020/02/01(土) 08:15:21.41ID:a0E2Gls+0 >>700
program.cs オススメ
program.cs オススメ
703デフォルトの名無しさん (ワッチョイ 7502-unxX)
2020/02/01(土) 08:17:35.37ID:dIJ1vCV90704デフォルトの名無しさん (ワッチョイ a5b0-x1ET)
2020/02/01(土) 10:09:48.17ID:22BQCiJ60■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 【山形】クマ駆除で誤射した猟友会隊員に町が1663万円請求へ...弾当たり男性大けが2023年 小国町 [nita★]
- トランプ、G7に代わるcore 5を発表 [805596214]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- この時間のケンモメン、軽く11人以上はおるな [989870298]
- 性欲強すぎてほぼ毎日会社のオフィスでシコってるんやけど、これって病気なん?
