X



ふらっと C#,C♯,C#(初心者用) Part147
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (エムゾネ FF9f-HF0o)
垢版 |
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
0213デフォルトの名無しさん (アウアウウー Sae9-1s42)
垢版 |
2020/04/03(金) 18:30:10.60ID:ytDWP9uSa
>>209
親のMenuStripのAllowMerge = falseだね
デフォでマージされないはずだと思ってたけど勘違いだった
0214デフォルトの名無しさん (ワッチョイ 4d61-sbZV)
垢版 |
2020/04/03(金) 18:40:10.41ID:UoNKEVCn0
>>213
親Formの AllowMerge を falseにするということは、どんなMDIに対しても
影響が及ぼされてしまうんですね。
一部のMDI Chileだけは個別にメニュー付きで、他のMDI Childは、親のメニューにMerge、という具合には出来ないんですか。
0215デフォルトの名無しさん (エムゾネ FF43-8H9x)
垢版 |
2020/04/03(金) 18:46:29.17ID:VVxcL9MvF
そこまでこだわるなら floating menu 造って子ウィンドウに載せろ
0216デフォルトの名無しさん (アウアウウー Sae9-1s42)
垢版 |
2020/04/03(金) 18:51:31.33ID:ytDWP9uSa
>>214
そういうヘンテコなUIはどうかと思うけど、
マージしたくない子のMenuStripのAllowMerge = falseでいけるみたい

っていうかこれぐらい自分で試そうよw
0220デフォルトの名無しさん (ワッチョイ 4d61-sbZV)
垢版 |
2020/04/04(土) 17:22:20.79ID:9nDXuupl0
VS2019のメニューを見ていると、MFCと同様に、無効な項目は
グレイ表示されています。
MFCの場合は、Merge方式ではない代わりに、ActiveなChildWndが
ハンドラを実装していない場合には自動的にグレイ表示になっていたのですが、
WinFormsの場合は、どうやれば良いのでしょうか?
0221デフォルトの名無しさん (アウアウウー Sae9-1s42)
垢版 |
2020/04/04(土) 19:04:00.44ID:UFbKis4ca
>>220
1年前にも似たような質問があった気が。
MFCは知らないのであれだけど、多分MFCに近いやり方は用意されてないかと。

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

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

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

まと、コンピューターオタクには人権はないので、実験により貴重な人命が損なわれることもない。
0229デフォルトの名無しさん (アウウィフ FFe9-8H9x)
垢版 |
2020/04/06(月) 10:17:13.45ID:TxMJ3ToxF
>>224
先生そういう宗教的な分野はMacとかSwiftとかの方が適していると思います
0230デフォルトの名無しさん (ワッチョイ e307-Gpp1)
垢版 |
2020/04/06(月) 11:37:10.89ID:O7BKGhOT0
>>225
c# プログラマにベータ版ワクチンをインストールしてもらいデバッグするんですよ。
バグのないワクチンとソフトウェアはありません。

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

だから、MacBook とかに Windows をインストールしてる人は、デバッグと実験の対象になりますが、完成したワクチンの提供は対象外となります。
0231デフォルトの名無しさん (ワッチョイ b501-bVUD)
垢版 |
2020/04/07(火) 17:59:28.45ID:Fz3MtvZy0
visualstudioで
フォームアプリに追加したクラスライブラリにclass1.csとclass2,csがあるんですけど
class2の方にコントロールを継承してもツールボックスに表示されないのはなぜでしょうか
class1だと表示されました
0232デフォルトの名無しさん (ワッチョイ 55b0-CuPJ)
垢版 |
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となっており
次の行でエラーが発生しています。

どなかたお助けください。よろしくお願いいたします。
0235デフォルトの名無しさん (アウウィフ FFe9-8H9x)
垢版 |
2020/04/07(火) 18:42:39.03ID:G5F9VLMpF
>>232
var driveService = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "MyApplicationName",
});

使ってない?
0236デフォルトの名無しさん (アウウィフ FFe9-8H9x)
垢版 |
2020/04/07(火) 18:55:57.94ID:G5F9VLMpF
あとは
var fileMetadata = new Google.Apis.Drive.v3.Data.File(){
Name="test.png",MimeType="image/png",};
にしてみるとか
他にはstreamがbinaryになってるかどうかとか

https://gist.github.com/LindaLawton/ead22e44bf88c3afa60753de0445eddf
この人もnullって言ってるな
0238デフォルトの名無しさん (アウウィフ FFe9-8H9x)
垢版 |
2020/04/07(火) 19:00:30.98ID:G5F9VLMpF
っていうか
DriveService.Scope.DriveReadonly
じゃだめな気がする
0243デフォルトの名無しさん (ワッチョイ 06e3-AglQ)
垢版 |
2020/04/08(水) 22:55:22.95ID:t+YdRhnM0
ググればToDataReaderの拡張メソッドヒットするからそれ参考に実装すればいいんじゃね
俺社環でライブラリの拡張メソッド禁止されているから、IDataReaderで作ったけど
0244デフォルトの名無しさん (ワッチョイ df01-aZ/i)
垢版 |
2020/04/09(木) 07:09:54.80ID:9rfBAHbp0
>>243
知らない知識なので参考にさせて頂きます
しかしバルクコピーのメソッドがdatatableという古い技術で実装させる時点で、そもそもバルクコピー自体が古い技術で別の最新技術があるのかなと疑っております
色々な角度で調べてみるつもりです
0246デフォルトの名無しさん (ワッチョイ 431d-slfm)
垢版 |
2020/04/09(木) 08:44:51.87ID:lA8JDzIo0
win10において
・ネットワークとインターネット設定→プロキシのセットアップスクリプトを使う設定のON/OFF切り替え
・ネットワーク接続のインターネットプロトコルバージョン4のプロパティの
IPアドレスを自動的に取得すると、次のIPアドレスを使うの切り替えと入力
DNSサーバー・・・と次のDNSサーバーのアドレスを使うの切り替えと入力
これをC#アプリで実現できますか?どのようなクラスを使えばいいでしょうか?
0252デフォルトの名無しさん (ワイーワ2 FFfa-zfCe)
垢版 |
2020/04/09(木) 12:41:32.88ID:kpg/tOgGF
>>248
ほんそれ +1
0253デフォルトの名無しさん (ワッチョイ 6ff1-Xgk8)
垢版 |
2020/04/09(木) 12:48:40.23ID:XKMcLRnY0
x ほんそれ
o ほんとそれ

正しい日本語で
0255デフォルトの名無しさん (ワッチョイ d701-jz5X)
垢版 |
2020/04/09(木) 21:32:00.67ID:ezz+hw670
ハンソロ
0260245 (オッペケ Sr5f-q7V1)
垢版 |
2020/04/10(金) 09:43:04.90ID:Rte1PrgOr
あーそういや気付けばdapperばっか使ってたわ
あいえにゅめにゃんにゃんが便利やしなあ
0262デフォルトの名無しさん (ワイーワ2 FFfa-zfCe)
垢版 |
2020/04/10(金) 11:00:45.18ID:nz1tlAhXF
DataTableでうわぁっってなるひとはJSONでくぇぇっってならんのまじで?
0269デフォルトの名無しさん (ワッチョイ 6777-AglQ)
垢版 |
2020/04/10(金) 15:28:01.76ID:SuSUfgJ80
Chartコントロールで横のスクロールバーを表示させる方法を教えてください。
サンプルプログラムは↓のをほぼそのまま使いました。( i < 5のところを i < 500に変えて数だけ増やしています)
チャートは普通に表示されるのですが、いろいろ探してもスクロールバーの出し方が全然わかりません。

https://qiita.com/Aki_mintproject/items/02e98173eb8eee74fc5b
0275デフォルトの名無しさん (ワッチョイ 8eda-JB1h)
垢版 |
2020/04/11(土) 02:58:17.93ID:EYr99YyX0
よぉ〜しよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよし
0277デフォルトの名無しさん (ワッチョイ c62d-kdbN)
垢版 |
2020/04/12(日) 16:27:59.95ID:WBJoN6ah0
if(条件A && !条件B){}
みたいなことをしたいのですが、&&と!をまとめてきれいに書く方法はありますか?
0282デフォルトの名無しさん (ワッチョイ a201-vZv9)
垢版 |
2020/04/12(日) 19:13:16.89ID:tx1YNXXn0
if (foo.IsEnabled && !bar.IsEnabled) を
if (foo.IsEnabled && bar.IsDisabled) にすることはある

単語の頭につけるエクスクラメーションマークは
見落としやすいから可読性がやや低い

>>278のパターンで変数にすることはあんまりないけど関数化するのもよくやる
0284デフォルトの名無しさん (ワッチョイ c62d-kdbN)
垢版 |
2020/04/12(日) 19:43:51.07ID:WBJoN6ah0
一発で書けるのかなと、すごく疑問に思ってたよ
ありがとう!
0285デフォルトの名無しさん (アウアウウー Sabb-KL7n)
垢版 |
2020/04/12(日) 21:05:32.57ID:0dL6T2+Wa
一発で書けた
if (b ? false : a) {...}

一発で書けた
if (!(!a || b)) {...}

一発で書けた
Func<bool, bool, bool> ippatu = (x, y) => x && !y;
if (ippatu(a, b)) {...}
0289デフォルトの名無しさん (ワッチョイ cb5f-zfCe)
垢版 |
2020/04/13(月) 10:34:31.41ID:xWnIwwwl0
>>286
カルノー図描いて観ろ
0292デフォルトの名無しさん (ワッチョイ 6207-O/Sq)
垢版 |
2020/04/13(月) 17:03:53.08ID:wlUJ1QGb0
SSH.net使った事ある人います?
フォワードポイント設定後、Startしてプログラムは通ってるんですけど、なぜかポートが開かないので困ってます
RloginというフリーのSShソフト使うと同じポートが開くので、SSH.net側かVS側が原因と考えてます
ネットの先人たちの知恵を拝見して同じようにしてるんですけど、なぜか上手くいきません

開発環境
VS2017
Nugetより最新のSSH.netを入れてます

netstatコマンドでポートの確認したら、192.168.〜の所が開かず、[::]の所が開いてるようです
これはなんなんでしょう?
0295デフォルトの名無しさん (ワッチョイ 6207-O/Sq)
垢版 |
2020/04/13(月) 17:41:05.66ID:wlUJ1QGb0
>>293
>>294
返信ありがとうございます!
>>293さんのおっしゃる通りv6が開いてました
フリーソフトは両方開けてくれてたので、そこで勘違いしてました
こんな簡単な事でスレ汚してすいませんでした
ありがとうございました
0296デフォルトの名無しさん (ワッチョイ 36eb-AglQ)
垢版 |
2020/04/13(月) 19:23:38.52ID:o+L/gyE50
拡張メソッドがあるのに、拡張プロパティなどが無いのは何故でしょう?

多くの日本語解説サイトで DirectoryInfoではなくDirectoryを、EnumerateFilesでなくGetFilesを使ってるのは何故でしょう?
 (対応していないバージョンのC#を利用する人も、その方が高速・妥当なコードも稀だと思うのですが…)
0300デフォルトの名無しさん (ワッチョイ 36eb-AglQ)
垢版 |
2020/04/13(月) 20:26:56.25ID:o+L/gyE50
>>297,298
なるほど 確かにC#3.0に並んでるものと比べたら、優先度低くても全然不思議じゃないですね
将来的な実装を心待ちにしておきます ありがとう!

開発チームの内情というか現実的な部分の説明が面白かったw

>>299
言われてみれば、強力な反面 把握し辛い奇想天外なクソコードも書きやすくなりそうですね
0304デフォルトの名無しさん (ワッチョイ 6233-AglQ)
垢版 |
2020/04/13(月) 23:30:22.44ID:IBaPMQxT0
Taskとasync/awaitの使い方について質問です
await Task.Delay(100);

task.Wait();
を組み合わせるとデッドロックすると色々なページで書かれていますが

試したらデッドロックしませんでした
https://ideone.com/d6BWCC

ConfigureAwaitもよく分かっていません(コンテキストとかマーシャリングとかも・・・)
https://docs.microsoft.com/ja-jp/dotnet/api/system.threading.tasks.task.configureawait?view=netframework-4.8

なぜデッドロックしなかったのか教えてください
0306304 (ワッチョイ 6233-AglQ)
垢版 |
2020/04/14(火) 00:04:17.51ID:wwnZT3mo0
WPFで適当なボタン作ってクリックイベント内で同じようなことをしたらフリーズしました
GUIじゃなければ起きない、とかでしょうか
CUIだとフリーズせず実行できてしまいます
0307デフォルトの名無しさん (ワッチョイ 8eda-KRXG)
垢版 |
2020/04/14(火) 02:23:36.56ID:hp+6QaJX0
・UIスレッドは1つしかない
・GUIアプリの場合、await後は生成元のスレッドに戻ろうとする
・ところがUIスレッドはawaitしている
・お互い待ち合うことでデッドロック発生

CUIの場合はawait後に元のスレッドに戻らないのでデッドロックしない。
GUIでもAsync1、Async2のメソッド内で
await Task.Delay(100).ConfigureAwait(false);
とすればデッドロックしないが、Async1やAsync2でDelay後にUI部品触ると(ボタンのキャプション変えるとか)落ちる
0308304 (ワッチョイ 6233-AglQ)
垢版 |
2020/04/14(火) 09:01:56.56ID:wwnZT3mo0
なんとなくわかった気がしました

SynchronizationContext.Currentで取得できる同期コンテキストでawaitの動作が変わってるみたいで
CUIはもともとnull、WPFは
await Task.Delay(100).ConfigureAwait(false);
のあとはnullになるようです

一度nullにしてしまえば
await Task.Delay(100);
Async().Wait();
とやってもフリーズしませんでした
というかCUIと同じようにawait毎にスレッドがコロコロ変わるようになります

逆にCUIでも同期コンテキストを設定してしまえばデッドロックも起こせるみたいです
SynchronizationContext.SetSynchronizationContext(new WindowsFormsSynchronizationContext());
とやったらCUIでもフリーズしました

普通のnew SynchronizationContext()ではフリーズしないので、知らない仕掛けがありそうですが
同期コンテキストの作られ方によってawaitの動作が変わるから
デッドロックが起きたり起きなかったりする、という感じがしました
■ このスレッドは過去ログ倉庫に格納されています

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