ふらっと C#,C♯,C#(初心者用) Part147

■ このスレッドは過去ログ倉庫に格納されています
2020/02/19(水) 17:25:41.55ID:IsrGexiaF
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part146
https://mevius.5ch.net/test/read.cgi/tech/1576069931/
■関連スレ
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
2020/03/12(木) 23:53:50.67ID:jAjbL2IrM
>>132
それは明確に間違いだね
Monoは元々MSとは無関係の会社による.NET Frameworkの非公式かつ独自な互換実装で、.NET Frameworkとはソースを共有していない
based on かなんかを誤訳したんじゃね
134デフォルトの名無しさん (ワッチョイ 0135-0jaE)
垢版 |
2020/03/13(金) 00:04:41.45ID:1UhKFURs0
テクノロジーを基盤してるって書いてるだけじゃん
ライブラリがおかしい
2020/03/13(金) 07:54:41.51ID:/kxy81/Ad
>>133
今はだいぶ本家のを使ってるよ。Monoも。
本家がMITになったからね。
136デフォルトの名無しさん (アウアウウー Sac5-cOBK)
垢版 |
2020/03/13(金) 12:12:59.24ID:1Ll5zbJna
毎度のことだけど用語の定義のあいまいさからくる混乱だろうね

>>132の引用部分を書いた人は「NET FrameworkをVS2002とかの時代の意味で使ってるんでしょ。
当時は仮想OSみたいに言われてた

その定義だと.NET Coreも.NET Frameworkになっちゃうので(以下略
2020/03/14(土) 03:14:07.89ID:+KBSM6L30
C#の正規表現についてですが...

new Regex(@"^a").IsMatch("abc",0) → true : 納得。
new Regex(@"^a").IsMatch("abc",1) → false : 納得。
new Regex(@"^b").IsMatch("abc",0) → false : 納得。
new Regex(@"^b").IsMatch("abc",1) → false : 納得...できん!!

第2引数が1なら、^で示す入力文字列の先頭が2文字目になってて欲しいじゃん!?
MSDNとか、この挙動について何か書いてある?見つけられなかったわ。
substringとかしたくないんだよな...

なんでこういう挙動になるか、ご存じの方いますか。
2020/03/14(土) 03:47:52.84ID:eoDNI2O30
こういう理由らしい
https://stackoverflow.com/questions/5884922/regex-match-startat-and-start-of-string
2020/03/14(土) 03:55:38.88ID:eoDNI2O30
第二引数は探索の開始位置を指定するのであって検索範囲をどうこうするためのもんじゃないってことかな?
でもその理屈だと二つ目がfalseである説明にならんし流し読みだから解釈間違ってるかもしれないわ
2020/03/14(土) 04:35:36.35ID:eoDNI2O30
139は間違いっぽいので忘れて
IsMatch("abc",0) → abcを探索
IsMatch("abc",1) → bcを探索

リンク先を見るに^は行頭を表すもんでbは行頭ではないのでfalse
aは探索外なので二つ目もfalseってことかな

https://docs.microsoft.com/en-us/dotnet/standard/base-types/anchors-in-regular-expressions
2020/03/14(土) 09:39:43.32ID:S+o/zRAGa
new Regex()するときにRegexOptions.Multilineを指定して『^』『$』の意味づけを変更・・・しても駄目そうだね
日本語のほうで
https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/regular-expression-options?view=netframework-4.8#multiline-mode
を読んだけど、
あくまで『^』は入力文字列全体(>>137のなら"bc"ではなく"abc")の先頭、MultiLine指定時は\nを行区切りとした行頭についてのみマッチするんだろう
2020/03/14(土) 11:29:21.74ID:+KBSM6L30
>>138-141
ありがとう!
俺だけではそれらの情報を見つけられなかったわ。

いったん \G を使用することで何とかなりました。
というか \G の仕様(影響範囲)もよくわからん。
最終のマッチってRegexのインスタンスに保存されるのかな?
そうだと思うけど、今一つ確証が持てない。

あと、 \A が正しいんじゃないか、って思いましたが、\Aは「文字列の先頭」でしかないんだね。
Singlelineの場合は^と同じみたい。
2020/03/17(火) 10:51:26.76ID:phFjovqc0
プログラムではなくライセンスについての質問なのですが、NAudioというライブラリを使いたくてプロジェクトに導入したのですがMs-PLライセンスとなっていて、この場合著作権表示等は具体的にどう表示すればいいのでしょうか。
著作権表示自体がいまいち分かりません。ライセンスの文書(LICENSE.txt等)とは別なのでしょうか。
調べているのですが具体的な表記方法が書かれている記事が無く分かりません。
ご教示お願いします。
2020/03/21(土) 13:43:45.29ID:/FH0o/RH0
相談させてください。
以下のような MyClass1 クラスを作ると、
「IDE0054 複合代入を使用」というメッセージが表示されます。

class MyClass1 {
  int MyProperty { get; set; } = 0;
  public void IncreaseMyProperty(int x)
    => MyProperty = MyProperty + x; // ここでメッセージ
}

まあそりゃそうでしょうということで以下の MyClass2 のように直すと、今度は
「IDE0052 C# プライベート プロパティ は、
 その get アクセサーが呼び出されることがないため、メソッドに変換できます。」
というメッセージが表示されてしまいます。

class MyClass2 {
  int MyProperty { get; set; } = 0; // ここでメッセージ
  public void IncreaseMyProperty(int x)
    => MyProperty += x;
}

なんだそりゃと思いつつ言われたとおり以下の MyClass3 のように直せば
メッセージは表示されなくなるのですが、こんな直し方でいいのでしょうか。

class MyClass3 {
  int _MyProperty = 0;
  void SetMyProperty(int value) => _MyProperty = value;
  public void IncreaseMyProperty(int x)
    => SetMyProperty(_MyProperty + x);
}

ご意見をお聞かせいただけると幸いです。よろしくお願いいたします。
2020/03/21(土) 18:45:34.77ID:qqrYKjlY0
MyPropertyが本当に自動実装プロパティなら
そもそもフィールドでいいんでは?
2020/03/21(土) 19:30:58.03ID:zN2aQcNta
最近のIDEは賢いから定義されてるけど使用されないことが明らかなプロパティやメソッドが見つかったら警告が出るようになってる
>>144のは文法等のお勉強でてきとうなソースを書いてるんだと思うけど、MyClass2なら
MyPropertyをpublicなプロパティにするか、MyPropertyを参照するような処理をちゃんと書けば警告解消するはず
ToString()あたりをオーバーライドして override string ToString() => MyProperty; とか書いてもいいかもね
2020/03/21(土) 20:37:06.12ID:/FH0o/RH0
>>145
レスありがとうございます。
説明が不十分で申し訳ありません。
実際には、以下の様な感じにしていまして、
できればプロパティを使いたいと考えております。

class MyClass4 {
  int _MyProperty = 0;
  event EventHandler MyPropertyChanged;
  int MyProperty
  {
    get => _MyProperty;
    set {
      if (value != _MyProperty) {
        _MyProperty = value;
        MyPropertyChanged?.Invoke(
          this, EventArgs.Empty);
      }
    }
  }
  public void IncreaseMyProperty(int x)
    => MyProperty += x;
}
2020/03/21(土) 20:37:42.93ID:/FH0o/RH0
>>146
レスありがとうございます。
おっしゃるとおりなのですが、MyProperty += x; で
MyProperty の get アクセサーが参照されていることに
ならないため困ってしまっています。
C# の文法的に、自動実装プロパティでなければ

int _MyProperty = 0;
int MyProperty { set => _MyProperty; }

のような書き方も許されているようなのですが、
MyClasss2 の MyProperty の定義をこのように書き換えると、

MyProperty += x;

のところでエラーが出てしまうのです。
2020/03/21(土) 20:45:29.55ID:rK+/4ZiL0
警告とエラーを混同しないで
+=オペレータがget使ってないだけでしょ
開発中で今後使う予定がありまだ未実装なら警告はスルーすればいい
2020/03/21(土) 21:05:47.28ID:zN2aQcNta
いやだからIDEからは「結局MyPropertyってインクリメントで更新はしてるけどどこからも参照されてないんでしょ、無駄なんじゃない?」と怒られてるわけで
他のC#ソースなりXAMLなりでMyPropertyが参照されてればそのメッセージは出ないはずだけど
例示されてるソースであればMyPropertyだけでなくインクリメントする処理も意味のない無駄な処理だから削ればいいし
GUI側etcのソースがまだ書けてないのであれば中途半端な書きかけソースで警告が出るのは当たり前のお話

というかそもそもでいえば、VisualStudioの設定がデフォルトならそのメッセージは
「コンパイルエラー」でも「警告」でもないただの注意喚起なメッセージでしかないから開発にも実行にも一切支障がないので
とりあえずほっとけばいいと思うんだけど
2020/03/22(日) 09:23:59.74ID:knoRzRG7r
classをpublicにと言う話ではなく?
2020/03/22(日) 15:10:18.53ID:aFZi4Cdad
>>147
MyPropatyをSetメソッドにして、インクリメント_MyPropaty+xを渡せばいいんじゃないの?

これでいいんでしょうか?って内容通りだけど単に値を入れるだけならフィールド直接やればって感じだけど追加作業あるならメソッドでやるのは普通だと思う
2020/03/24(火) 22:53:25.92ID:7FKkbPj60
読んでる入門書の練習問題にアクセサのGetNameメソッドで八文字以下の文字列が渡された場合だけname変数に代入するプログラムを書きなさい
というのがあるんですが、どうやって書けばいいのでしょうか?文字数を判定するプログラムは習ってないので困ってます
2020/03/24(火) 22:59:57.52ID:0+ccCJA90
>>153
stringクラスのメンバーを見てみよう
2020/03/24(火) 23:01:03.36ID:Q5H6MOZK0
>>153
文字数を判定=String.Lengthで判定
https://docs.microsoft.com/ja-jp/dotnet/api/system.string.length?view=netframework-4.8
入門書ならその前の部分の内容で全部答えられるものしか無いはず。そうじゃないのならその入門書は捨てた方がいい
2020/03/24(火) 23:13:43.00ID:7FKkbPj60
>>155
ありがとうございます。とけました!
確かな力がつくC#超入門って本ですが見返してみても書いてないですね…
また良さげな本探してみます
2020/03/24(火) 23:41:48.49ID:lhWkdEvF0
「猫でもわかる」のほうが良いかも
158デフォルトの名無しさん (ワッチョイ 29f1-dbH2)
垢版 |
2020/03/24(火) 23:51:16.61ID:hJYqJTPr0
猫に分かるわけがない、こんな難しいものを。
「ハゲでもわかる」だろ、どう考えても。
2020/03/25(水) 04:47:11.72ID:LvLtJ7JB0
猫は誰でもできるということを比喩的に表している
じゃあハゲは?
160デフォルトの名無しさん (ワッチョイ b1f1-Go5d)
垢版 |
2020/03/25(水) 08:43:43.21ID:nn3rUaIL0
能力の劣る者でもできる
このハゲー、と言われるような者でも
2020/03/25(水) 09:09:57.70ID:IkumKzuJM
>>155
たまに「Stringのマニュアルを確認してどんなことができるか確認しておこう」みたいな初心者なめとんか的な項目があったりはする
たぶん説明するの面倒なのだと思う
2020/03/25(水) 10:06:03.74ID:tUU69eV70
>>153
てかなんでGetNameなんだ?SetNameじゃないの?
2020/03/26(木) 00:40:52.54ID:KtVIRudY0
>>162
主観の違いかと思ったけど、確かにセットですね
2020/03/27(金) 23:27:00.17ID:MpMbbGem0
プロポーショナル文字の場合に、画面上の文字の表示位置はどうやって求めるんでしょうか?
1文字ごとに(x,y)座標を計算して配列変数に記憶しておく、
文字を削除、挿入などして位置がずれたときにはすべて計算し直す
というような方法しか思いつきません
165デフォルトの名無しさん (アウアウウー Sacd-PYaq)
垢版 |
2020/03/28(土) 00:41:06.51ID:PEyzMklSa
>>164
↓のサンプルコードみたいな話?やったことないから知らんけど
https://docs.microsoft.com/ja-jp/dotnet/api/system.drawing.graphics.measurecharacterranges
2020/03/28(土) 01:33:04.22ID:7wRTqyNf0
そんな感じです
毎度毎度文字列の長さを測定するのもなあ〜と、ちょっと思ったもので質問しました
167デフォルトの名無しさん (ワッチョイ 0935-lv27)
垢版 |
2020/03/28(土) 01:43:01.14ID:ngUeRIaE0
削除・挿入した文字列のサイズを全体から足し引きする
2020/03/28(土) 06:08:44.57ID:k+10ZvFP0
フォントは左右は良いけど上下に謎のスペースが入って扱いづらい。フォント毎に仕様が違うので厄介
169デフォルトの名無しさん (エムゾネ FFb2-nBi6)
垢版 |
2020/03/28(土) 10:27:24.65ID:juOTiA3TF
オリンピックじゃないけどカーリング
2020/03/28(土) 11:24:58.10ID:+WXFsbEZ0
>>164
基本は再描画時に行頭から行末まで1文字つずつカウントアップ
2020/03/30(月) 07:25:35.74ID:h/V/0o0/0
http://www.wisdomsoft.jp/59.html
ここのコード1はなぜ8になるのでしょうか?
論理積の理屈はまあまあ分かったのですがビットがどうこうってのが分からないのですが
2020/03/30(月) 07:29:34.72ID:6/Nsoznj0
両方たっているのが1000bだから
2020/03/30(月) 07:32:55.44ID:X05REbKS0
>>171
2進数を理解したらわかるよ
2020/03/30(月) 07:45:18.96ID:h/V/0o0/0
>>173
0cと0aを2進数に直してもなぜそうなるのかわからないのですが…
沼に嵌りそうだから後回しにしたほうがいいかな・・
2020/03/30(月) 07:56:54.43ID:yPZuudvza
>>174
正しく2進数にできてないんじゃないか?いくつになると思ってる?
2020/03/30(月) 08:01:46.25ID:h/V/0o0/0
>>175
1010と1100と思います
それで論理積で評価してtrueが帰ってくるとなぜ13になるのかわからないです
177デフォルトの名無しさん (ワッチョイ 92ad-Lzc3)
垢版 |
2020/03/30(月) 08:04:27.51ID:aCqibAU/0
図2に書いてあるのが全てだが
8という数字ではなく結果が2^3と考える
各ビットについて
「ビットnが1同士=結果は1」を繰り返して全部の桁を足す
この場合ANDの結果が1なるのは4ビット目だけなので

2^3 x 1
+
2^2 x 0
+
2^1 x 0
+
2^0 x 0
の結果が8だ
2020/03/30(月) 08:13:24.87ID:h/V/0o0/0
>>177
かなり噛み砕いて説明ありがとうございます
・・・でもわからない;;^は排他的論理積の記号ですか?
2進数とビットをもっと勉強して出直してきます
179デフォルトの名無しさん (ワッチョイ 92ad-Lzc3)
垢版 |
2020/03/30(月) 08:22:46.27ID:aCqibAU/0
あ、C#には累乗演算子ないか
2^3は「2の3乗」の意味です
Math.Pow(2, 3);
2020/03/30(月) 08:23:27.68ID:h/V/0o0/0
>>177
ごめんなさい、理解できました
長々と付き合っていただきありがとうございました
2020/03/30(月) 22:26:07.20ID:fWO3XlZL0
ほっこりした
2020/03/31(火) 05:00:18.54ID:8jxewuXM0
◯っこりした
2020/03/31(火) 12:53:35.20ID:fWUbK/Ahd
マッコリした
2020/03/31(火) 14:59:25.16ID:zOJyTQkJ0
どうでもいいんだけど二乗でわざわざMath.Powを使う人の狙いって何?
普通にx*xで良いじゃん
185デフォルトの名無しさん (アウウィフ FFcd-MKsy)
垢版 |
2020/03/31(火) 15:02:22.73ID:uDSFrRRVF
i x i
2020/03/31(火) 15:05:29.08ID:iZe8wtQ40
累乗であることを明確にできるんでMath.Powのほうがいいような気がするなあ。
2020/04/01(水) 00:45:48.53ID:7LP+CGQA0
>>185
かわいくてほっこりするからアリ
2020/04/01(水) 03:52:03.60ID:lVwFrbjs0
あえてこじつけるなら仕様書通りの表現ができること
2乗の値をってなってるのが3乗の値に仕様変更された時差分で2が3に変わってる方がわかりやすい
2020/04/01(水) 07:47:41.17ID:MqGhAKfu0
>>184
同じこと繰り返したくない。
変数名がクソ長くてよく似た名前のが存在してたらMathPowの方が安心できる。その程度だぜ。速度的なことは知らんけど。
2020/04/01(水) 09:27:50.48ID:jWoZ64tYM
実数ならMath.Pow使うけど整数ならx * xにするな
2020/04/01(水) 10:40:40.89ID:Z3CDkAvT0
double x = p1.X - p2.X, y = p1.Y - p2.Y;
var dist2 = x * x + y * y;

var dist2 = Pow(p1.X - p2.X, 2) + Pow(p1.Y - p2.Y, 2);

結論:べき乗演算子欲しい
192デフォルトの名無しさん (ワイーワ2 FF93-8H9x)
垢版 |
2020/04/01(水) 11:03:28.91ID:5VJq6KKKF
var Dist2 = Func<double, double, double> (dx, dy)=> {return dx*dx+dy*dy;};
var dist2 = Dist2(p1.X - p2.X, p1.Y - p2.Y);
あほだな
var Dist2 = Func<Point, Point, double> (p1, p2)=> {return Pow(p1.X - p2.X, 2) + Pow(p1.Y - p2.Y, 2);};
var dist2 = Dist2(p1, p2);
いまいちだな
2020/04/01(水) 17:09:27.69ID:9jyTppa90
Point型にDistanceメソッドつけといてくれたらええのになあ
2020/04/01(水) 17:11:21.84ID:0oGZrVNR0
点に距離なんて無いだろうに
195デフォルトの名無しさん (ワッチョイ 851d-6nIr)
垢版 |
2020/04/01(水) 18:49:00.02ID:60SS71wY0
YouTuberは「最強の職業」である理由。
https://www.youtube.com/watch?v=XjV3Nb0-hgA
【事例付き】YouTuberは最強の副業である件について。
https://www.youtube.com/watch?v=wB8hNuNVoIw&;t=267s
【初心者向け】YouTubeの始め方・稼ぎ方を徹底解説!
https://www.youtube.com/watch?v=YEw-a8qlADM
「YouTubeなんていつか稼げなくなる」という主張を論破する。
https://www.youtube.com/watch?v=VatNILApW4U
収益化から丸1年!YouTubeでいくら稼いだか公開。
https://www.youtube.com/watch?v=-zQxuQqZ5eA&;t=103s
その動画で月商○○万!? YouTubeで稼ぐ裏技的アプローチ。
https://www.youtube.com/watch?v=7I4APU_6i9o&;t=433s
【貧者の工夫で戦え】ガラケーだっていい。YouTube始めるのにパソコンはいらない!
https://www.youtube.com/watch?v=jYdWfjjzD7Y
【第一回】SNS、YouTube、ブログで稼ぐ方法を、丁寧に解説します!
https://www.youtube.com/watch?v=erNiLOncDnY
196デフォルトの名無しさん (ワイーワ2 FF93-Wy2p)
垢版 |
2020/04/01(水) 18:53:16.96ID:86v82W0VF
System.Drawing Point Distance なし
System.Windows Point Distance なし
Xamarin.Forms Point Distance あり!!!
197デフォルトの名無しさん (アウアウウー Sae9-1s42)
垢版 |
2020/04/01(水) 19:50:46.55ID:ULM1+KSpa
描画面上の距離が必要になるケースってあんまりないような気はするね。

直交座標上の点を表すstructがあってそっちに付いてるなら分からんでもない。
.NETのライブラリって数学の名前空間がないんだよな。
MathってSystem直下のstaticクラスになってて、今となっては疑問を感じる設計だよね
2020/04/01(水) 19:51:14.57ID:o39i6dw+0
DistanceよりsqrMagnitudeの方が多用する
2020/04/01(水) 20:15:30.50ID:2fyvFTga0
割と知名度の低いSystem.Numerics
2020/04/02(木) 06:04:40.26ID:OVS0fpTc0
System.Numericsってなんだと思ってググったら、存在知らずにだいぶ前にこれと似たようなの(しかも劣化コピー)自作したぞ。
今ひどい黒歴史が出来たわ・・・・・
2020/04/02(木) 06:58:15.83ID:JxZO1Jli0
>>196
あるのかぁぁぁぁ!!!!!!
Xamarinてことはスマホアプリか。UI関係で使うんかな?
2020/04/03(金) 09:37:19.19ID:cBUAwFsBM
XamarinがMSに買収される前からあるんだろ?
零細企業のアホ社員がまともなコードレビューも受けないままリリースしちゃったんだろうな
2020/04/03(金) 09:38:38.79ID:lfI6G99C0
人脈が無いと使えないって言ってるでしょうに
204デフォルトの名無しさん (エムゾネ FF43-8H9x)
垢版 |
2020/04/03(金) 14:53:19.91ID:VVxcL9MvF
ちょまどさんがきっとなんとかしてくれる
2020/04/03(金) 17:02:10.10ID:UoNKEVCn0
WinForms で、MDI の場合、子フォームのメニューは親フォームにマージされるようですが、この動作を変更して、マージせずに子フォームのメニューバーの位置に直接メニューを表示することは可能でしょうか?
可能な場合、どうすればできますか?
2020/04/03(金) 17:11:49.46ID:blY/nayW0
>>205
https://dobon.net/vb/dotnet/form/mdiapplication.html#section5
2020/04/03(金) 17:26:05.29ID:j3QBAl3N0
>>205
子フォームのそれぞれにメニューバーが欲しいってこと?
すごく邪魔そうだけど…
208デフォルトの名無しさん (エムゾネ FF43-8H9x)
垢版 |
2020/04/03(金) 17:44:55.55ID:VVxcL9MvF
>>205
SDI
2020/04/03(金) 18:00:55.95ID:UoNKEVCn0
>>207
そうです。
子フォームも親フォームと同様にタイトルバーの下に独自のメニューバーを持たせたい場合の話です。
2020/04/03(金) 18:01:25.86ID:UoNKEVCn0
>>208
SDIではなく、複数の子ウィンドウを作りたいのです。
2020/04/03(金) 18:17:58.72ID:lfI6G99C0
SetParentで養子に出してしまえ
2020/04/03(金) 18:25:08.62ID:UoNKEVCn0
>>206
読んだんですが、該当する箇所は無いようです。
有れば教えてください。
213デフォルトの名無しさん (アウアウウー Sae9-1s42)
垢版 |
2020/04/03(金) 18:30:10.60ID:ytDWP9uSa
>>209
親のMenuStripのAllowMerge = falseだね
デフォでマージされないはずだと思ってたけど勘違いだった
2020/04/03(金) 18:40:10.41ID:UoNKEVCn0
>>213
親Formの AllowMerge を falseにするということは、どんなMDIに対しても
影響が及ぼされてしまうんですね。
一部のMDI Chileだけは個別にメニュー付きで、他のMDI Childは、親のメニューにMerge、という具合には出来ないんですか。
215デフォルトの名無しさん (エムゾネ FF43-8H9x)
垢版 |
2020/04/03(金) 18:46:29.17ID:VVxcL9MvF
そこまでこだわるなら floating menu 造って子ウィンドウに載せろ
216デフォルトの名無しさん (アウアウウー Sae9-1s42)
垢版 |
2020/04/03(金) 18:51:31.33ID:ytDWP9uSa
>>214
そういうヘンテコなUIはどうかと思うけど、
マージしたくない子のMenuStripのAllowMerge = falseでいけるみたい

っていうかこれぐらい自分で試そうよw
2020/04/03(金) 19:07:26.69ID:UoNKEVCn0
>>211
MDI Child Frame(?)の子として中に別の Window を入れるのでしょうか?
2020/04/04(土) 00:11:51.82ID:8ZllyE370
いくら初心者向けのスレッドっても少しは自分で試してみなよ
2020/04/04(土) 12:59:15.20ID:PIJg3gqB0
コードを変更しても反映されない
いきなり原因不明のエラーが出ると思ったら
Form1.Designer.csの中で勝手にプロパティ初期化してた
2020/04/04(土) 17:22:20.79ID:9nDXuupl0
VS2019のメニューを見ていると、MFCと同様に、無効な項目は
グレイ表示されています。
MFCの場合は、Merge方式ではない代わりに、ActiveなChildWndが
ハンドラを実装していない場合には自動的にグレイ表示になっていたのですが、
WinFormsの場合は、どうやれば良いのでしょうか?
221デフォルトの名無しさん (アウアウウー Sae9-1s42)
垢版 |
2020/04/04(土) 19:04:00.44ID:UFbKis4ca
>>220
1年前にも似たような質問があった気が。
MFCは知らないのであれだけど、多分MFCに近いやり方は用意されてないかと。

結果的に同じようなUIをなるべく簡単に実現するには、1年前にも書いたけど
MDI子に共通のメニューを持つFormをまず作って、
個々のMDI子はそれを継承するのがいいんじゃないかなあと
2020/04/04(土) 19:30:33.10ID:C11LX2Y60
>>221
それで、ハンドラを実装したくない継承クラスでは、その項目を disable にするという
わけですか。
223デフォルトの名無しさん (アウアウウー Sae9-1s42)
垢版 |
2020/04/04(土) 19:59:31.83ID:UFbKis4ca
そうそう。
継承後のフォームでもデザイナでコントロールのプロパティーの値を変更というか上書きできたはず
ついでに、MenuStripのVisible = falseにしておけば親にマージされている時以外メニューは表示されないみたい
2020/04/06(月) 03:12:51.01ID:O7BKGhOT0
ビル・ゲイツが私財でコロナのワクチン作る。
c# プログラマに一番最初にワクチンを供給してくれるとおもう。

安全性の確認できないワクチンや薬品をc#プログラマにぶち込めば開発効率が上がる。

人体実験を断ったら、msdn、マイクロソフトid を停止させるとかして、Windows 利用不可にすればいい。
c#コンピューターオタクは断ると当面お金を稼げなくなるから喜んで実験に参加してもらえるはず。

まと、コンピューターオタクには人権はないので、実験により貴重な人命が損なわれることもない。
2020/04/06(月) 07:14:18.13ID:GDVBsc7B0
MSが作るワクチンなんてバグだらけになってそうでこわひ
2020/04/06(月) 08:02:15.03ID:m5eAFRE+M
ワロタ
2020/04/06(月) 09:39:40.09ID:78vqHF1U0
弱毒化ミスりました。てへ
2020/04/06(月) 09:46:00.73ID:xLTmiL/Q0
そんなミスされたらゲイツの顔がブルースクリーンになっちゃう
229デフォルトの名無しさん (アウウィフ FFe9-8H9x)
垢版 |
2020/04/06(月) 10:17:13.45ID:TxMJ3ToxF
>>224
先生そういう宗教的な分野はMacとかSwiftとかの方が適していると思います
2020/04/06(月) 11:37:10.89ID:O7BKGhOT0
>>225
c# プログラマにベータ版ワクチンをインストールしてもらいデバッグするんですよ。
バグのないワクチンとソフトウェアはありません。

Macユーザーは完成後のワクチンは提供対象外。

だから、MacBook とかに Windows をインストールしてる人は、デバッグと実験の対象になりますが、完成したワクチンの提供は対象外となります。
2020/04/07(火) 17:59:28.45ID:Fz3MtvZy0
visualstudioで
フォームアプリに追加したクラスライブラリにclass1.csとclass2,csがあるんですけど
class2の方にコントロールを継承してもツールボックスに表示されないのはなぜでしょうか
class1だと表示されました
2020/04/07(火) 18:09:18.22ID:haJ3Gg0r0
GoogleドライブにファイルをアップをしたくてGoogleの下のサンプルを
参考に動かしてみたのですが、全くアップできず何が悪いのかさっぱりです・・・

https://developers.google.com/drive/api/v3/quickstart/dotnet
https://developers.google.com/drive/api/v3/manage-uploads

以下がコードです。
https://dotnetfiddle.net/4z2iZ4

ファイルのリストは、取得できているので認証はできていると思うのですが
「var file = request.ResponseBody」の行で、fileがnullとなっており
次の行でエラーが発生しています。

どなかたお助けください。よろしくお願いいたします。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況