「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part133
http://mevius.5ch.net/test/read.cgi/tech/1510056685/
■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
ふらっと C#,C♯,C#(初心者用) Part134
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん (ワッチョイ 0f9a-KsIq)
2017/11/29(水) 19:23:58.05ID:GNLsbK4F0851デフォルトの名無しさん (ワッチョイ f7e3-uppE)
2018/02/03(土) 00:58:38.87ID:S/Wa3aFw0 >>850
いや、今のルーチンはコメントの削除からやってるのよ
いや、今のルーチンはコメントの削除からやってるのよ
852デフォルトの名無しさん (ワッチョイ b781-j4Dg)
2018/02/03(土) 01:03:27.72ID:OVqIgYtY0 コメントも文字列も先に始まったほうが勝つからどうしょうもない
853デフォルトの名無しさん (ブーイモ MMfb-+DFt)
2018/02/03(土) 01:06:21.86ID:PxR3gYBlM 質問しといて聞かないパターン=成長しない初心者パターン
854デフォルトの名無しさん (アウアウエー Sadf-Og17)
2018/02/03(土) 01:12:38.71ID:xyf2cJ8Ka ただ悩みを聞いて欲しかったんじゃないですか
女の相談事みたいなw
まあ、どうせ人も減ってるしそれもありでしょう
女の相談事みたいなw
まあ、どうせ人も減ってるしそれもありでしょう
855デフォルトの名無しさん (ワッチョイ f7e3-uppE)
2018/02/03(土) 01:24:32.23ID:S/Wa3aFw0856デフォルトの名無しさん (ワッチョイ 9fc3-Z3C6)
2018/02/03(土) 08:34:38.62ID:WhjNgY2U0857デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 09:02:44.63ID:LvTBogUR0 swich() { case xxxx: ~
xxxxに変数をつかいたいのだが、switchに変わるものってなに?
xxxxに変数をつかいたいのだが、switchに変わるものってなに?
858デフォルトの名無しさん (ワッチョイ d780-lEY8)
2018/02/03(土) 09:33:50.59ID:NdjAbgSB0 if
859デフォルトの名無しさん (ワッチョイ 9f60-w+Fq)
2018/02/03(土) 09:53:42.04ID:nKXUpnsB0 >>857
xxxが数値か文字列なら変数だろうと使えたはずです。オブジェクトの場合、同値の判定が基本型のように単純じゃないから無理。
xxxが数値か文字列なら変数だろうと使えたはずです。オブジェクトの場合、同値の判定が基本型のように単純じゃないから無理。
860デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 10:50:39.85ID:LvTBogUR0 switchi( (button)sender) ){
case Button1: ~
case Button2:~
case Button3:~
}
こんな感じのことがしたい。
〜はMethod()でいいので、
void switch_tb()= {
{Button1, Method1}
{Button2, Method2}
{Button3, Method3}
}
switch_suru((button)sender);
こんなことできんか?
case Button1: ~
case Button2:~
case Button3:~
}
こんな感じのことがしたい。
〜はMethod()でいいので、
void switch_tb()= {
{Button1, Method1}
{Button2, Method2}
{Button3, Method3}
}
switch_suru((button)sender);
こんなことできんか?
861デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 10:52:21.97ID:LvTBogUR0 C#はメソッドの中のローカルメソッドってできへんの?
862デフォルトの名無しさん (ワッチョイ fffa-K3c3)
2018/02/03(土) 11:00:14.66ID:VOrllN0n0 >>860
素直にButtonのNameプロパティ使え
素直にButtonのNameプロパティ使え
863デフォルトの名無しさん (ワッチョイ ffc9-wbgk)
2018/02/03(土) 11:01:41.64ID:Ns10a1iN0 >>861
C#7で出来るようになったよ
C#7で出来るようになったよ
864デフォルトの名無しさん (ワッチョイ f783-j4Dg)
2018/02/03(土) 11:41:19.78ID:ZFgrbY8z0 糞化が止まらないのか。
865デフォルトの名無しさん (アウアウウー Sa5b-+DFt)
2018/02/03(土) 12:15:40.34ID:7uT3RC1La メソッド内メソッドは無くてもいい機能
メンバー封じ込めの方法はいくらでもあるし
ないほうがエラー見つけやすいと個人的には思う
メンバー封じ込めの方法はいくらでもあるし
ないほうがエラー見つけやすいと個人的には思う
866デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 12:24:29.31ID:LvTBogUR0 いい方法をみーつけ
867デフォルトの名無しさん (オッペケ Srcb-ggKF)
2018/02/03(土) 12:24:59.79ID:ROxRBp/zr バグだろwなにちょっと誤魔化そうとしてんのw
868デフォルトの名無しさん (スッップ Sdbf-uiFW)
2018/02/03(土) 12:29:16.06ID:0dr4TWncd >>864
言語の変化についていけないやつの糞化な
言語の変化についていけないやつの糞化な
869デフォルトの名無しさん (ワッチョイ 9f60-w+Fq)
2018/02/03(土) 12:30:20.78ID:nKXUpnsB0870デフォルトの名無しさん (アウアウウー Sa5b-+DFt)
2018/02/03(土) 12:31:12.90ID:7uT3RC1La メソッド内メソッドはjavaでずっと使ってたけど
クラスを小さくしていくと使う場面は限られていく
クラスを小さくしていくと使う場面は限られていく
871デフォルトの名無しさん (ワッチョイ 1705-CU+w)
2018/02/03(土) 12:33:37.55ID:Iq/kHIZ+0 初心者っぽくていいじゃん
「この機能が存在する意味が分からないんですけど、何の役に立つんですか?」
って定番の質問じゃん
「この機能が存在する意味が分からないんですけど、何の役に立つんですか?」
って定番の質問じゃん
872デフォルトの名無しさん (ワッチョイ f783-j4Dg)
2018/02/03(土) 12:40:45.58ID:ZFgrbY8z0 使ってる奴も糞ばっかになったな。新しい機能一つ覚えただけでマウンティングしだすアホとか。
なぜその機能が糞かが理解できない脳みそ。取り巻きからして残念な言語になってしまった。
なぜその機能が糞かが理解できない脳みそ。取り巻きからして残念な言語になってしまった。
873愛知人
2018/02/03(土) 12:41:41.35 あらら、怒っちゃった(笑)
874デフォルトの名無しさん (ワッチョイ ff9a-HmOu)
2018/02/03(土) 12:43:15.80ID:8oBsvnpG0875デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 12:45:57.31ID:DOsYwXsiM 今後も言語仕様はどんどん拡張されるよ
他の言語の有名なのどんどん取り入れてってカオスになっていく
個人的には範囲指定が欲しい
1..5か1:5みたいなの
他の言語の有名なのどんどん取り入れてってカオスになっていく
個人的には範囲指定が欲しい
1..5か1:5みたいなの
876愛知人
2018/02/03(土) 12:50:20.68 Enumerable.Rangeじゃだめなん?
877デフォルトの名無しさん (ワッチョイ 7717-j4Dg)
2018/02/03(土) 12:51:56.63ID:8eNVn+fl0 >>874
せめてnameof使って書けよ
せめてnameof使って書けよ
878デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 12:56:57.86ID:DOsYwXsiM foreach(var i in Enumerable.Range(1,5))
foreach(var i in 1..5)
どっちがいい?
foreach(var i in 1..5)
どっちがいい?
879デフォルトの名無しさん (ワッチョイ 7717-j4Dg)
2018/02/03(土) 12:58:29.57ID:8eNVn+fl0 圧倒的に上
880デフォルトの名無しさん (ワッチョイ d79b-CNA0)
2018/02/03(土) 13:02:13.44ID:kCPWN5tp0 >>860
ButtonのTagにやりたいこと突っ込んどけ
ButtonのTagにやりたいこと突っ込んどけ
881デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 13:06:02.52ID:DOsYwXsiM いい方法
buttun1.Click=>{Method1();};
buttun1.Click=>{Method1();};
882デフォルトの名無しさん (ワッチョイ f783-j4Dg)
2018/02/03(土) 14:17:08.45ID:ZFgrbY8z0 どう書いたらいいか分からないのが糞言語の証左。
883デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 15:26:42.67ID:LvTBogUR0884デフォルトの名無しさん (スッップ Sdbf-Ismr)
2018/02/03(土) 15:30:37.45ID:d68F6UhId885デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 15:33:25.80ID:LvTBogUR0 var aa = ((Button)sender).Equals(button1) ? func1() :
((Button)sender).Equals(button2) ? func2() :
func2();
これどう?
((Button)sender).Equals(button2) ? func2() :
func2();
これどう?
886デフォルトの名無しさん (ワッチョイ ff9a-HmOu)
2018/02/03(土) 15:34:12.79ID:8oBsvnpG0 >>884
ButtonのName変更ってどんな実装に必要なんだよ・・・
ButtonのName変更ってどんな実装に必要なんだよ・・・
887デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 15:39:26.04ID:LvTBogUR0 >ButtonのName変更ってどんな実装に必要なんだよ・・・
最初はBUtton1だろ。出来上がって綺麗に整理するときにbtnSetParamとか分かりやすく書き換える。
最初はBUtton1だろ。出来上がって綺麗に整理するときにbtnSetParamとか分かりやすく書き換える。
888デフォルトの名無しさん (ワッチョイ ff9a-HmOu)
2018/02/03(土) 15:40:26.14ID:8oBsvnpG0 >>885
それならEqualsじゃなくてsender==button1?でいいよ。キャストもいらない
それならEqualsじゃなくてsender==button1?でいいよ。キャストもいらない
889デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 15:40:45.84ID:LvTBogUR0 Button.Nameをつかうくらいなら、Tagに書き込んだ方がまし。
890デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 15:41:39.80ID:LvTBogUR0 >888
あ、そうなん?
あ、そうなん?
891デフォルトの名無しさん (スッップ Sdbf-Ismr)
2018/02/03(土) 15:43:31.84ID:d68F6UhId 実装後にスペルミスに気付いた、他の画面との兼ね合いで名称を統一することになった、仮の名前をちゃんとした名前に置き換えた、とか色々あるだろ
リフレクションでデータ取得する方針のせいでガチガチに名前が決められている画面を作らされたときの面倒さったらなかったわ
リフレクションでデータ取得する方針のせいでガチガチに名前が決められている画面を作らされたときの面倒さったらなかったわ
892デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 15:43:52.16ID:LvTBogUR0 キャストしないとインテリセンスがでないから、キャストしたほうがいいよ。
893デフォルトの名無しさん (アウアウエー Sadf-Og17)
2018/02/03(土) 16:57:11.29ID:Rh9ysymEa こんなの考えたが、
public class CaseAction
{
public CaseAction(object @object, Action action)
{
Object = @object; Action = action;
}
public Action Action { get; private set; }
public object Object { get; private set; }
}
public static class Extensions
{
public static void Switch(this object o, params CaseAction[] caseActions)
{
caseActions.FirstOrDefault(x => x.Object == o)?.Action();
}
}
やっぱり使いづらそうだなw
ところで書いててちょっと思ったけど、==演算子の動作って隠蔽(new)と同じように変数の型に
依存するのか、それともオーバーライドと同じようにオブジェクトの型に依存ずるのか、どっちだっけ?
public class CaseAction
{
public CaseAction(object @object, Action action)
{
Object = @object; Action = action;
}
public Action Action { get; private set; }
public object Object { get; private set; }
}
public static class Extensions
{
public static void Switch(this object o, params CaseAction[] caseActions)
{
caseActions.FirstOrDefault(x => x.Object == o)?.Action();
}
}
やっぱり使いづらそうだなw
ところで書いててちょっと思ったけど、==演算子の動作って隠蔽(new)と同じように変数の型に
依存するのか、それともオーバーライドと同じようにオブジェクトの型に依存ずるのか、どっちだっけ?
894デフォルトの名無しさん (ワッチョイ 9f60-w+Fq)
2018/02/03(土) 20:30:42.15ID:nKXUpnsB0 ふと思ったが、ふつうにそれぞれのボタンのイベントに実装したらダメなの
895デフォルトの名無しさん (ワッチョイ 9fb3-mP5N)
2018/02/03(土) 20:34:51.83ID:Zh144c7Y0 >>894
ほとんど共通でボタン毎にちょっとだけ処理が違うとかじゃね
ほとんど共通でボタン毎にちょっとだけ処理が違うとかじゃね
896デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 21:11:27.96ID:LvTBogUR0 グループボックスにボタンを貼り付けて、それをコピーして貼り付けると、イベントが同じところになるだろ。
だからエディット都合だな。
イベントで分けるのが一番いい方法かもしれない。w
だからエディット都合だな。
イベントで分けるのが一番いい方法かもしれない。w
897デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 21:13:35.51ID:LvTBogUR0 再表示するために tabPage1.Controls.Add(grp);で追加したgrpだけをクリアするにはどうしたらいいの?
tabPage1.Controls.Clear(); やるとボタンが消えてしまう。
tabPage1.Controls.Clear(); やるとボタンが消えてしまう。
898デフォルトの名無しさん (ワッチョイ 9f60-w+Fq)
2018/02/03(土) 21:27:16.93ID:nKXUpnsB0 Controlsプロパティの型はControl.ControlCollectionで
そのクラスのドキュメントを見ましょう。
Remove(Control)というのがあったのでそれで削除できそうです。
そのクラスのドキュメントを見ましょう。
Remove(Control)というのがあったのでそれで削除できそうです。
899デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 21:35:57.81ID:LvTBogUR0 Removeを使うのはわかるんだが、要するになにがしたいのかというと
Linqを使ってControlsにAddしたGroupBoxだけを選択して、クリアしたいということ。
その書き方がわからない。ということ。
Linqを使ってControlsにAddしたGroupBoxだけを選択して、クリアしたいということ。
その書き方がわからない。ということ。
900デフォルトの名無しさん (アウアウエー Sadf-Og17)
2018/02/03(土) 21:39:38.95ID:SzFJuxtQa 再表示とかクリアとか俺様な用語法されても何言ってるのか分からないよw
901デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 21:46:23.78ID:LvTBogUR0 tabPage1に貼り付けたコントロール群をLinqを使って選択的に消去したいということ。これでもわからん?
902デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 21:49:30.86ID:DOsYwXsiM903デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 21:52:32.07ID:DOsYwXsiM 煽って悪かったけど
その書き方じゃ誰にもつたわらないよ
意味がわからないけどgrpを消したいならgrpをどこかに記録しておけばいい
終わり
はい次の方〜
その書き方じゃ誰にもつたわらないよ
意味がわからないけどgrpを消したいならgrpをどこかに記録しておけばいい
終わり
はい次の方〜
904デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 21:54:28.34ID:LvTBogUR0 解決した。w
905デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 21:55:50.09ID:DOsYwXsiM906デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 21:57:07.86ID:LvTBogUR0 >903
Keyになる言葉の意味がわからないと解らないと思うよ。それが解る人にはわかる。
Keyになる言葉の意味がわからないと解らないと思うよ。それが解る人にはわかる。
907デフォルトの名無しさん (ワッチョイ 9fd2-uiFW)
2018/02/03(土) 21:59:39.27ID:bTwAHw5A0 なんでこいつこんなに偉そうなの?
908デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 22:00:08.72ID:DOsYwXsiM 小学生だから
909デフォルトの名無しさん (アウアウエー Sadf-Og17)
2018/02/03(土) 22:08:58.48ID:SzFJuxtQa var toRemove = tabPage1.Controls.Cast<Control>().FirstOrDefault( .... );
if (toRemove != null)
tabPage1.Controls.Remove(toRemove);
これを1行にしたいってことだったのかな?
拡張メソッド使ってControl側に自分を包含するコンテナのControlCollectionを
引数に撮るメソッドを定義しないとできない気がする
何でもいいけど、冗長でもいいから分かるように書いて欲しいよね
if (toRemove != null)
tabPage1.Controls.Remove(toRemove);
これを1行にしたいってことだったのかな?
拡張メソッド使ってControl側に自分を包含するコンテナのControlCollectionを
引数に撮るメソッドを定義しないとできない気がする
何でもいいけど、冗長でもいいから分かるように書いて欲しいよね
910デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 22:13:41.72ID:LvTBogUR0 そんな書き方しかでけん?
911デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 22:16:15.65ID:DOsYwXsiM912デフォルトの名無しさん (アウアウエー Sadf-Og17)
2018/02/03(土) 22:23:57.61ID:SzFJuxtQa 無理矢理だなあ
Action<Control> removeMe = x => x?.Parent?.Controls.Remove(x);
removeMe(
tabPage1.Controls.Cast<Control>().FirstOrDefault( .... )
);
Action<Control> removeMe = x => x?.Parent?.Controls.Remove(x);
removeMe(
tabPage1.Controls.Cast<Control>().FirstOrDefault( .... )
);
913愛恥人
2018/02/03(土) 22:34:23.85 最初のレスだけで理解できる俺は天才なのか
914デフォルトの名無しさん (アウアウエー Sadf-Og17)
2018/02/03(土) 22:38:53.52ID:SzFJuxtQa むしろエスパー
915デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 22:43:30.44ID:DOsYwXsiM そして明後日の方向のレスに食いついてる
916デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 22:54:26.09ID:LvTBogUR0 private void button3_Click(object sender, EventArgs e)
{
var grps = tabPage1.Controls.Cast<Control>().Where(c => c is GroupBox );
foreach (var grpB in grps)
{
tabPage1.Controls.Remove(grpB);
}
}
これで一回で消えないのは何故だろう? grpsには全部のグループボックスが
入っている。しかしforeachでところどころ飛ばしてしまう。
{
var grps = tabPage1.Controls.Cast<Control>().Where(c => c is GroupBox );
foreach (var grpB in grps)
{
tabPage1.Controls.Remove(grpB);
}
}
これで一回で消えないのは何故だろう? grpsには全部のグループボックスが
入っている。しかしforeachでところどころ飛ばしてしまう。
917デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 23:19:59.77ID:LvTBogUR0 あっ、謎がとけた。けっこう落とし穴だな。
918デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 23:32:01.66ID:LvTBogUR0 ケツから消していくとうまくいくんだろきっと。
まえからでもこうやるとうまく行く。
private void button3_Click(object sender, EventArgs e)
{
var grps = tabPage1.Controls.Cast<Control>().Where(c => c is GroupBox );
List<GroupBox> gg = new List<GroupBox>();
foreach (var grp in grps)
{
gg.Add(grp);
}
foreach (var grpB in gg)
{
tabPage1.Controls.Remove(grpB);
}
}
まえからでもこうやるとうまく行く。
private void button3_Click(object sender, EventArgs e)
{
var grps = tabPage1.Controls.Cast<Control>().Where(c => c is GroupBox );
List<GroupBox> gg = new List<GroupBox>();
foreach (var grp in grps)
{
gg.Add(grp);
}
foreach (var grpB in gg)
{
tabPage1.Controls.Remove(grpB);
}
}
919デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 23:33:46.33ID:LvTBogUR0 さて、原理は分ったが、これを1行で書くにはどうするのか?
920愛恥人
2018/02/03(土) 23:40:30.32 逆にグループボックス以外を抽出してからパネルの中身全消去からの追加とかはどうかな(>_<)
921デフォルトの名無しさん (ワッチョイ f7e3-uppE)
2018/02/03(土) 23:40:55.06ID:OIRW+vs20 >>919
改行全部消せばいいじゃん
改行全部消せばいいじゃん
922デフォルトの名無しさん (ワッチョイ bf7f-qlLX)
2018/02/03(土) 23:43:21.17ID:pHRpw+FT0923デフォルトの名無しさん (ワッチョイ f7e3-uppE)
2018/02/03(土) 23:43:41.06ID:OIRW+vs20924デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 23:49:22.30ID:LvTBogUR0 >920 それ、俺もちょっと考えた。
>921 それは最終手段にとっておいたのに。
Reverse()ってあるんか? それだ!!
>921 それは最終手段にとっておいたのに。
Reverse()ってあるんか? それだ!!
925デフォルトの名無しさん (アウアウエー Sadf-Og17)
2018/02/04(日) 00:42:43.56ID:OrIb/jt1a もう気が済んだかもしれんけど、無理に何でもインラインで書こうとして
可読性落とすなんて愚の骨頂で、普通にメソッドに外だし(別に拡張メソッドじゃなくてもいいけど)
した方がいいと思うけどね
public static class Extensions
{
public static void RemoveChildren(this Control control, Func<Control, bool> predicate)
{
var controls = control.Controls;
controls.Cast<Control>().Where(predicate).ToList().ForEach(x => controls.Remove(x));
}
}
可読性落とすなんて愚の骨頂で、普通にメソッドに外だし(別に拡張メソッドじゃなくてもいいけど)
した方がいいと思うけどね
public static class Extensions
{
public static void RemoveChildren(this Control control, Func<Control, bool> predicate)
{
var controls = control.Controls;
controls.Cast<Control>().Where(predicate).ToList().ForEach(x => controls.Remove(x));
}
}
926デフォルトの名無しさん (ワッチョイ f7f7-NsDz)
2018/02/04(日) 05:54:59.74ID:vxeWu10H0 https://qiita.com/taigaaa2/items/7f05ad950a57033892ae
この方法で値を保存しているのですが
cドライブに保存されている様でプログラムを他のPCに移すなどすると値が保持されていません
どうすれば他のPCでも記憶した値を使える様になるでしょうか
この方法で値を保存しているのですが
cドライブに保存されている様でプログラムを他のPCに移すなどすると値が保持されていません
どうすれば他のPCでも記憶した値を使える様になるでしょうか
927デフォルトの名無しさん (ワッチョイ ff81-CU+w)
2018/02/04(日) 06:23:40.03ID:ldOBh/kr0 ファイルをコピーする
928デフォルトの名無しさん (ワッチョイ ff81-CU+w)
2018/02/04(日) 06:38:53.27ID:ldOBh/kr0 真面目に答えるならサーバーやクラウドストレージのSettingsを読み書きするSettingsProviderを自作することだが
初心者にはひと月ふた月かかるだろうしはっきり言って時間の無駄
初心者にはひと月ふた月かかるだろうしはっきり言って時間の無駄
929デフォルトの名無しさん (ワッチョイ 7703-skLA)
2018/02/04(日) 08:14:14.99ID:ge7PbLBn0 真面目な答の方が愚策という変な人、というかおそらくバカ
930デフォルトの名無しさん (ワッチョイ ffc9-wbgk)
2018/02/04(日) 08:55:21.88ID:qZv4HzKZ0 >>926
ユーザー共通になっちゃうけど、スコープをユーザーからアプリケーションに変更すればexeと同じディレクトリに保存するよ
ユーザー共通になっちゃうけど、スコープをユーザーからアプリケーションに変更すればexeと同じディレクトリに保存するよ
931愛恥人
2018/02/04(日) 10:35:42.99 >>762でユーザーにしたら動いた原因はなに?
932デフォルトの名無しさん (ワッチョイ 9f19-iu0y)
2018/02/04(日) 12:47:08.55ID:+N3aAgKo0 例えば.net 4.7で作られたプログラムを4.5しか入ってないPCで動かすとどうなりますか?
933デフォルトの名無しさん (ワッチョイ 9fd2-uiFW)
2018/02/04(日) 13:40:36.37ID:zMXPgQ7i0 うごかない
934デフォルトの名無しさん (ワッチョイ 9fd2-uiFW)
2018/02/04(日) 13:41:03.95ID:zMXPgQ7i0 てか4.5とかサポート切れだから論外だし
935デフォルトの名無しさん (ワッチョイ 179d-jn1r)
2018/02/04(日) 13:48:00.41ID:HudK1GnQ0 >ユーザー共通になっちゃうけど、スコープをユーザーからアプリケーションに変更すればexeと同じディレクトリに保存するよ
アプリケーションじゃ動かんかったな。動くこともあるんだろうな。意味がわらかんし、マニュアル読んでも書いてないし
それにビルドで設定値が消えるから、、、最初から打ち直し。w
こんな意味の解らん機能はつかわない方がいい。JSON.NET使った方が遥かに楽。というのが俺の感想だ。
アプリケーションじゃ動かんかったな。動くこともあるんだろうな。意味がわらかんし、マニュアル読んでも書いてないし
それにビルドで設定値が消えるから、、、最初から打ち直し。w
こんな意味の解らん機能はつかわない方がいい。JSON.NET使った方が遥かに楽。というのが俺の感想だ。
936デフォルトの名無しさん (ワッチョイ bf7f-qlLX)
2018/02/04(日) 14:04:22.94ID:CmrmETVT0937デフォルトの名無しさん (ワッチョイ 179d-jn1r)
2018/02/04(日) 14:13:13.77ID:HudK1GnQ0 public static void RemoveChildren(this Control control, Func<Control, bool> predicate)
{
var controls = control.Controls;
controls.Cast<Control>().Where(predicate).ToList().ForEach(x => controls.Remove(x));
}
これは非常にスマートだという感じだが意味わからんなー。
predicate: 対象となるコントロールの場合はTrueを返す関数?
ToList() :predicateで判定したコントロールのListを作る。
ForEach:ToListからひとつづつコントロールをとりだしてxにセット、Removeする。
という意味だろうか?
Funcって初めて見た。いま調べてみるとよく使う標準デリゲートらしい。であれば
controls.Cast<Control>().Where(ラムダ式).ToList().ForEach(x => controls.Remove(x));
で一行でできる筈だな。
つまり
controls.Cast<Control>().Where(x=>x is GroupBox).ToList().ForEach(x => controls.Remove(x));
で実験してみると
tabPage1.Controls.Cast<Control>().Where(c => c is GroupBox).ToList().ForEach(x => tabPage1.Controls.Remove(x));
わーいうまく行ったぞ。
{
var controls = control.Controls;
controls.Cast<Control>().Where(predicate).ToList().ForEach(x => controls.Remove(x));
}
これは非常にスマートだという感じだが意味わからんなー。
predicate: 対象となるコントロールの場合はTrueを返す関数?
ToList() :predicateで判定したコントロールのListを作る。
ForEach:ToListからひとつづつコントロールをとりだしてxにセット、Removeする。
という意味だろうか?
Funcって初めて見た。いま調べてみるとよく使う標準デリゲートらしい。であれば
controls.Cast<Control>().Where(ラムダ式).ToList().ForEach(x => controls.Remove(x));
で一行でできる筈だな。
つまり
controls.Cast<Control>().Where(x=>x is GroupBox).ToList().ForEach(x => controls.Remove(x));
で実験してみると
tabPage1.Controls.Cast<Control>().Where(c => c is GroupBox).ToList().ForEach(x => tabPage1.Controls.Remove(x));
わーいうまく行ったぞ。
938デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/04(日) 14:22:22.77ID:2sg7PnbOM 日記はちらしのうらにでm…
939デフォルトの名無しさん (ワッチョイ 9fd2-uiFW)
2018/02/04(日) 14:22:36.96ID:zMXPgQ7i0940デフォルトの名無しさん (ワッチョイ 179d-jn1r)
2018/02/04(日) 14:24:43.87ID:HudK1GnQ0 Castを無くすために
tabPage1.Controls.OfType<GroupBox>().ToList().ForEach(x => tabPage1.Controls.Remove(x));
これでも動くのに、
tabPage1.Controls.OfType<GroupBox>().ForEach(x => tabPage1.Controls.Remove(x));
これは動かないのはなぜ?
tabPage1.Controls.OfType<GroupBox>().ToList().ForEach(x => tabPage1.Controls.Remove(x));
これでも動くのに、
tabPage1.Controls.OfType<GroupBox>().ForEach(x => tabPage1.Controls.Remove(x));
これは動かないのはなぜ?
941デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/04(日) 14:26:44.56ID:2sg7PnbOM 実装してないものが使えるわけないだろ
魔法じゃないから
魔法じゃないから
942デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/04(日) 14:30:00.97ID:2sg7PnbOM そもそも列挙してる最中のものを削ると列挙に失敗する可能性が高い
最初から何番目の要素を取り出す
次はそれプラス1の要素としてるのに
1番目から消すと何番目というのがずれるだろ?
一番目を取り出すそれを消す
○×▼
↓
×▼
二番目を取り出すそれを消す
×▼
↓
×
三番目は取り出せない
最初から何番目の要素を取り出す
次はそれプラス1の要素としてるのに
1番目から消すと何番目というのがずれるだろ?
一番目を取り出すそれを消す
○×▼
↓
×▼
二番目を取り出すそれを消す
×▼
↓
×
三番目は取り出せない
943デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/04(日) 14:31:09.88ID:2sg7PnbOM ずっと一番目を消すと全部消える
944デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/04(日) 14:34:48.14ID:2sg7PnbOM ToList()で控えを作る
できたList ○×▼ をみて対象を消していく
こちらは消し終わってList内容はそのまま
できたList ○×▼ をみて対象を消していく
こちらは消し終わってList内容はそのまま
945デフォルトの名無しさん (ワッチョイ 179d-jn1r)
2018/02/04(日) 14:35:11.95ID:HudK1GnQ0 >>941
いやまあそうなんだが、疑問というのは
var grps = tabPage1.Controls.OfType<GroupBox>();
varじゃわからないのだが、この型は何なの? Listじゃないよね。
いやまあそうなんだが、疑問というのは
var grps = tabPage1.Controls.OfType<GroupBox>();
varじゃわからないのだが、この型は何なの? Listじゃないよね。
946デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/04(日) 14:36:12.24ID:2sg7PnbOM947デフォルトの名無しさん (ワッチョイ 9fd2-uiFW)
2018/02/04(日) 14:36:23.56ID:zMXPgQ7i0 >>945
メモ帳で開発してんの?
メモ帳で開発してんの?
948デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/04(日) 14:37:00.62ID:2sg7PnbOM 可能性が高いと書いたのは列挙の方法がちがうかもしれないから
949デフォルトの名無しさん (ワッチョイ ffc9-wbgk)
2018/02/04(日) 14:37:31.37ID:qZv4HzKZ0 >>945
Enumerable.OfType<TResult> メソッド
https://msdn.microsoft.com/ja-jp/library/bb360913(v=vs.110).aspx
Enumerable.OfType<TResult> メソッド
https://msdn.microsoft.com/ja-jp/library/bb360913(v=vs.110).aspx
950デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/04(日) 14:38:10.32ID:2sg7PnbOM ここは個別指導スレじゃないだろ
いい加減にわきまえろ
質問じゃなくて誰かに教えてもらいたいなら金を払って個人指導受けろ
いい加減にわきまえろ
質問じゃなくて誰かに教えてもらいたいなら金を払って個人指導受けろ
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否★6 [夜のけいちゃん★]
- 「厚かましい挑発的発言だ」中国国連大使が高市首相発言に強く反発 日本の常任理事国入りに明確に反対 [ぐれ★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 ★3 [蚤の市★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★5 [蚤の市★]
- 自民、経済対策で子ども1人に2万円給付へ 児童手当に上乗せ 所要額は約4000億円 [ぐれ★]
- 解体ごみ約2.3トンを山に不法投棄か トルコ国籍解体工を逮捕 埼玉 [どどん★]
- 【緊急】高市早苗 月内辞任か [695089791]
- 僕たちが子供の頃に通い詰めた本屋、ゲームショップ、レンタルCD・ビデオ屋、思い出とともにこの国から消え去ってしまう… [452836546]
- 【速報】中国、水産物輸入停止 [527893826]
- 【高市悲報】官房長官「局長がペコペコしてる画像が拡散しているが日本は承知しとらん😡中国に申し入れした!」🤔 [359965264]
- 【悲報】高市早苗さん、たった一人で日本を崩壊へ導く [714769305]
- 【悲報】「やったー!こだわりまくった洋館仕立ての家を建てたぞ!」➡「「離婚したんで住まずに売ります……」 [158478931]
