トップページ > プログラム > 2017年04月24日 > zwb7nwH/

書き込み順位&時間帯一覧

3 位/143 ID中時間01234567891011121314151617181920212223Total
書き込み数0121000000000000000000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net

書き込みレス一覧

C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
19 :デフォルトの名無しさん[sage]:2017/04/24(月) 01:58:20.59 ID:zwb7nwH/
フォームのRadioButtonのCheckedChangedイベントの順って、
外れた方→新たに選択された方であることを昔(.NET2.0)から保証されてるよね?

今こちらの環境(.NET3.5と.NET2.0の両方)で上記順であることは確認したのだけど、
コメントに「逆だからこうした」あり、逆順を期待するコードがあって???となってる。
Web漁ってみたが、MSDNには明記されてない。
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.radiobutton.checkedchanged(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2
MSDNやStackOverflow含めたほとんどのサイトのサンプルコードは
someRadioButon.Checked==true を見てるからあってるはずだけど、
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.radiobutton(v=vs.110).aspx
http://stackoverflow.com/questions/11493845/radio-button-checked-changed-event-fires-twice
中には逆を書いているところもある。
http://yan-note.blogspot.jp/2008/12/radiobutton-checkedchanged.html

保証されてないって事はないよね?昔から変わったとも思えないのだけど。
(こちらの実装ミスであることを確認したい)
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
21 :デフォルトの名無しさん[sage]:2017/04/24(月) 02:07:44.75 ID:zwb7nwH/
ちなみにここにはfalse->trueの順(>>19の通り)と書いてあるが、
これって準仕様書の扱いになる?
(URLは長すぎて切りましたので1行に繋いでください)

https://books.google.co.jp/books?id=sygW0iEw2zkC&pg=PA217&lpg=PA217&dq=.NET+
radiobutton+CheckedChange+event+order&source=bl&ots=A3ndItBpMH&sig=BHLCZLbBQIkAq_Gzq37viy_nGW8&hl=
ja&sa=X&ved=0ahUKEwjTx4zLhrvTAhVLabwKHaQ-AoMQ6AEIYzAH#v=onepage&q=.NET%20radiobutton%20CheckedChange%20event%20order&f=false
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
22 :デフォルトの名無しさん[sage]:2017/04/24(月) 02:17:02.23 ID:zwb7nwH/
>>20
いや普通はAutoCheckはtrueで使うだろ。規定値もそうだし。
順に依存しないコードにも出来るが、
これまで順が保証されていたつもりで書いているから
全RadioButtonのハンドラを確認しないといけないんだな。
(というかこのコメントだと逆順のところが大量にありそうな気がして怖い)

とりあえず確認したいのは、「順が保証されているか」「昔からか」だね。
ダメならダメで書き直すけど。
一般的に(他環境でも)RadioButtonのイベント順は保証されている(と俺は思っている)ので、
特に悪い使い方でもないとは思うのだが。
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
24 :デフォルトの名無しさん[sage]:2017/04/24(月) 03:02:34.76 ID:zwb7nwH/
>>23
いやそれは君の方がおかしいよ。

RadioButtonは「一つしか選択されない」というものだから。
というか、UIとしてはそういう使い方しかしてはいけない。
だからそれを自動的にやらせるプロパティがデフォでONになってる。
そして通常はイベント順が決まっているので、
サンプルコードでもCheckedを見ろ、ということになっている。
それを手動でやることも出来るけど、コードの無駄でしょ。
MVC原理主義的には認められないのかもしれないけど。
君はテキストボックスの入力文字も
xterm等のターミナルみたいにモデルと通信すべきだとか言うのかい?
それはいくら何でもやりすぎでしょ。
ラジオボタンのAutoCheckもそれだよ。

多分、AutoCheckを切る使い方の方が少ないと思うよ。
HTML(JavaScript)ではそもそも切れないし。(俺が知らないだけかもしれんが)
.NETは機能が多いけど、使いもしない機能が多いのも事実。
なおJavaも多分AutoCheckに該当する物はないと思うが、
いかんせんドキュメントが見にくくてよく分からん。
https://docs.oracle.com/javase/jp/6/api/javax/swing/JRadioButton.html

ただ、良い悪いはさておき、仕様として順を保証してないんだったら修正するしかない。
.NETの仕様書ってMSDNだよね?
書いてないって事は保証無しなのかな?
まあ知ってる人居たらお願いします。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。