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

■ このスレッドは過去ログ倉庫に格納されています
2019/05/16(木) 19:28:06.27ID:s+6oZKe00
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

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

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part93
http://mevius.5ch.net/test/read.cgi/tech/1492818720/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part142
https://mevius.5ch.net/test/read.cgi/tech/1551908141/

■情報源
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/
-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2019/06/07(金) 14:30:40.52ID:ZpgeSWQ/0
FormLoad時に、DataGridViewに何もDataSoureを割り当てていませんが
からの1行が表示されてしまっています。

これは、何が原因でしょうか?

画像とボタンの列があります。初めて使うのですが、これが原因でしょうか???
2019/06/07(金) 14:43:54.47ID:ZpgeSWQ/0
自己解決しました。
2019/06/07(金) 18:39:19.47ID:zRuFxC25M
私にはすべてが見えていました
2019/06/08(土) 09:09:33.88ID:ctcrb20I0
var list = new List<int>
list.Max();
のようなnullデータにリンクメソッドをチェーンするとエラーになりますが、nullデータの場合は無視するという記述は出来るでしょうか
2019/06/08(土) 09:12:48.20ID:rnAwjmmK0
>>360
>>110-114
2019/06/08(土) 09:30:34.63ID:ctcrb20I0
>>361
同スレで既出と気付きませんでした
参考になります
ありがとうございます
2019/06/08(土) 09:44:30.27ID:2mGSrtdCa
>>360
nullデータというよりも空リスト、空シーケンスなどと表現したほうがいいかな
Max()メソッドそのものが空リストの場合はInvalidOperationExceptionをthrowするんだけど
Nullable版のMax()を使えば空リストの場合はthrowするのでなくnullを返すようになる
var list = new List<int>();
int? elem = list.Cast<int?>().Max();
if (elem == null) { Console.WriteLine("空"); }
else { Console.WriteLine(elem.Value); }
2019/06/09(日) 23:07:07.34ID:xU4n/JWt0
ガッツリ動作が仕様に絡むとこまでお手軽に記述したがる感覚ってわからんな
2019/06/09(日) 23:21:14.22ID:1L6M6LAR0
#me too
2019/06/10(月) 02:33:24.81ID:c/9rL5aT0
独立性拡張性が失われちゃう
2019/06/10(月) 10:46:09.39ID:tveaGfmTp
なんだっけ、MVCモデルだっけ?
あんなん崇拝するから日本人の作るアプリは操作性最悪なんだけどね。
2019/06/10(月) 11:09:25.95ID:QmsKOsl+0
レッテル貼り乙
2019/06/10(月) 11:24:14.99ID:qkVPdWMn0
やっぱMVVMだよね
2019/06/10(月) 11:42:49.78ID:PIG+DB1Sd
設計モデルとユーザー操作性に因果関係あんの?
2019/06/10(月) 12:16:49.56ID:PMN6sAhZa
昔はよくウィザードが例に出されたけど、
設計が伴わないと実現が難しいUIというのは確かにあると思うよ
2019/06/10(月) 12:30:25.19ID:VMXLuCX0d
>>367
日本人はむしろMVCすら使えないやつが多いんじゃね?知らんけど
2019/06/10(月) 12:46:04.73ID:OnQgNCpHp
>>367
こういう設計思想もろくにしらん馬鹿がITにかかわるから操作性が無視されたアプリができるんだと思う
2019/06/10(月) 16:25:53.91ID:0NZRWrrl0
>>373
禿銅
2019/06/10(月) 18:16:01.01ID:j15NsR7HM
共通部分を増やせば増やすほど
コピペが難しくなって工数が増大していく
画面数300とか行くとさ
画面をまたいだ共通箇所って邪魔で邪魔で
しかたねーよ
2019/06/10(月) 19:30:29.84ID:0NZRWrrl0
抽象化しろや
2019/06/10(月) 19:41:59.07ID:MrgpB0NP0
>>376
一番邪魔なやつだそれ
実際の処理がソースで追えなくて
実行してブレークポイントで止めてステップ実行しないと
本当の処理がわからない欠陥品
ぶっ飛ばしてやりてぇ
2019/06/10(月) 19:43:24.33ID:+AzPxr5na
追わなくてよくなるんだよ
追うなテストしろ
2019/06/10(月) 19:46:43.72ID:MrgpB0NP0
>>378
意味わからん
コピペするのにどの処理持ってくりゃいいんだよ
こっちの処理は分岐なんかしねーんだよ
2019/06/10(月) 19:47:25.12ID:aFtuMg1K0
DataGridViewの中にボタン列を追加しました。
ぐぐってますが、DataGridView上のボタンを非活性に
する事はできないのでしょか?

Visual Studio2017を使用しています。
2019/06/10(月) 19:48:38.10ID:bMUfCd/90
だから手でテストしてんだろw

この涼しいのに沸いてるのw?
2019/06/10(月) 19:50:13.10ID:bMUfCd/90
>>380
https://docs.microsoft.com/ja-jp/dotnet/framework/winforms/controls/disable-buttons-in-a-button-column-in-the-datagrid
2019/06/10(月) 19:52:29.65ID:MrgpB0NP0
>>381
テストまでいってねっつのアホなん?
2019/06/10(月) 19:55:32.78ID:MrgpB0NP0
抽象化されたソースから追えないゴミカスコードをどうやってコピペしたらいいですか?

インターフェース同じやつ片っ端から貼りまくればいいですか?
36っこありますね
→ウンコですね New!
2019/06/10(月) 19:59:23.27ID:+AzPxr5na
コピペできないって悩むってことはやっぱり抽象化が正解なのか
いかに下っ端コーダーにコピペをさせないかがプロジェクト成功の鍵だからな
2019/06/10(月) 20:07:55.28ID:MrgpB0NP0
>>385
バカじゃん
まるごとコピペして名前だけ変えて放置だっつの
こんなキタネェコード付き合ってらんねーよ
1クラス1ファイルで書いてあるけどこんなゴミにこんなファイル数いらねーよ
Xxx.csに全部ツッコんでやった
まとめてゴミ箱だw
アンチパターン「マトリョーシカ」「たけのこの皮」「玉ねぎの皮」「マズイミルフィーユ」とか名付けたい
くだんねー薄皮クラス全部いんねっつーの
2019/06/10(月) 20:09:50.35ID:+AzPxr5na
>>386
はいリジェクト
ばいばい
2019/06/10(月) 20:37:44.89ID:MrgpB0NP0
逃げたか
2019/06/10(月) 22:36:29.43ID:aFtuMg1K0
>>382
そこまでしないと実装できないんですね。
Enabled=False
でできればよかったのですが、うーんどうしよう。
2019/06/10(月) 23:01:39.91ID:mjEnv2YNd
>>389
サンプルの
DataGridViewDisableButtonCell
をコピペで持ってきたらいいだけじゃん
2019/06/10(月) 23:28:43.62ID:MrgpB0NP0
でも正直なんでこんな面倒臭いの?ってぐらい作ったやつのセンスが悪いよね
2019/06/10(月) 23:40:05.50ID:ZWxvLRT60
C#は Visual Studio のサポート機能が無いと、コード書ける気しないわな。
2019/06/10(月) 23:57:56.14ID:aFtuMg1K0
>>390
それすら面倒だけどやってみます。

MSが普通にEnable実装しておけば、俺たちは True Falseの設定だけでできたのに。
2019/06/10(月) 23:58:17.24ID:s/X+Cj/I0
>>392
最近よくVisual Studio Codeで書いてるよ
2019/06/11(火) 00:20:18.49ID:eYjHCkmz0
>>393
お前が何を必要としてるかまでMSは知らないから仕方なくね
2019/06/11(火) 00:27:16.57ID:KO5Z5H7da
WinFormsのコントロール全般だけど、MSとしては>>390程度のことは
自前で継承して作り込んで使ってくれっていうスタンスだからなあ
(MSDNのドキュメントもそれ前提の書かれ方だし)
作りこむのが面倒であればGrapeCityとかが売ってる高機能なコンポーネントを使えばいいわけだし
2019/06/11(火) 00:29:30.86ID:VMcLTapW0
>>395
ちょっとでも使われ方の検討したのかよ
ってレベルじゃね?これ
2019/06/11(火) 01:03:45.60ID:8NPGWhvc0
>>395
そういう問題じゃなくて、ボタンにEnable False True入れるなんて常識だろ。
それ位実装しとけよ。くそMSって話。
2019/06/11(火) 01:12:02.27ID:fTJbh9kM0
>>398
こいつWebアプリ開発させられたら発狂しそう
400デフォルトの名無しさん (アウアウエー Sa93-dZrz)
垢版 |
2019/06/11(火) 01:38:08.73ID:ogrGMDt8a
今日のNGはこれか
VMcLTapW0
真っ赤にして待ってろ
2019/06/11(火) 01:45:34.19ID:VMcLTapW0
なんか普通のことが普通にできなくなって開発者からそっぽ向かれてない?

wpfなんかこんなののオンパレードだし俺ら工場のおっさん向けアプリ作ってるだけなんに
必要のない変な機能多すぎ
その割にこんな簡単な機能は未実装って
未完成ってレベルじゃないよね
2019/06/11(火) 01:48:32.42ID:p0Xp2yNy0
>>401
そんなに同意して欲しいなら同意してやるからもう寝なよ
2019/06/11(火) 01:51:14.95ID:VMcLTapW0
>>402
むしろお前こそ言いたいことがあるならハッキリ言うべき
無言でユーザだけ減ってる状態に苦労してると思うぞmsは
2019/06/11(火) 02:17:35.18ID:FGV57sZTd
>>403
言いたいことはお前が無能ってことだよ
2019/06/11(火) 02:19:21.88ID:AmszXiFy0
お前みたいな馬鹿が尻の穴嘗めてくれるからウハウハだぞバカ
2019/06/11(火) 02:28:30.43ID:VMcLTapW0
多分、日本はwindowsで作った資産があるけど
そうでない国はお金がないからわざわざWindowsを使わない
そんな状態が続いたもんだからlinuxの資産が貯まってしまって
お金を持っても今度はWindowsには移行できない
そんな事情のある最近のlinuxに寄り添ってる理由だろ
昔はその作りやすさから王者だったけど
最近そーでもねーのが致命的になってんじゃねーのか?と
2019/06/11(火) 02:33:30.92ID:mh1wU8omM
クソ長文書いてねえで寝ろクズ
2019/06/11(火) 03:14:41.06ID:aZcuYhl50
HTML のボタンには、disabled 属性もある
2019/06/11(火) 07:09:30.30ID:nARElikq0
もうwebオンリーで行くかなと思ったけどバーコード使いたいと言われるとFormeアプリ使わんとダメだよね
XAMLは流行る予感がしないから触る事ないな
2019/06/11(火) 08:52:13.44ID:eYjHCkmz0
Webでバーコード扱えるけど
2019/06/11(火) 10:34:45.11ID:q+xysia0d
Shape Detection APIな。
PCのChromeでも動けば動作検証楽なのになぁ、あれ。
2019/06/11(火) 14:05:54.20ID:6dm7scj8M
リーダーをUSBに差せばWebでも使えるやで
2019/06/11(火) 14:08:24.54ID:8NPGWhvc0
ふぅーDataGridViewのボタンの非活性できた。

MSはその程度実装しておけよ
2019/06/11(火) 14:27:25.63ID:irqLdUAC0
CheckBox も同様だけど、Visible と Enable くらいは実装しとけよ、って思うよなぁ
WinForms に対しては全くやる気ないみたいだけど
2019/06/11(火) 14:41:17.27ID:8NPGWhvc0
>>414
実装もそこまで時間かかるとは思えないんだよな
なんか詰めが甘いというか・・・

しかもVS2017になっても未実装って
2019/06/11(火) 15:25:57.49ID:irqLdUAC0
x64 のときは Form_Load の中での例外はスルーするバグも絶賛放置
(x86 だったら、ちゃんと例外を捕捉する)
2019/06/11(火) 15:57:17.26ID:dpi3ASg30
Windows Formなんてとっくに見捨てられてるからね。メンテナンスフェーズかも知れん。WPFですら10年前だし。ということでUPF使え。
…ってMSは思ってるかもだが、Formなにかと楽なんだよなあ
2019/06/11(火) 16:23:20.80ID:8NPGWhvc0
俺がゲイツなら首にするわ
2019/06/11(火) 18:42:14.00ID:a3rgTFI7d
.NET Core3.0リリース後にちゃちゃっとPR書けば?そんなに簡単なら
2019/06/11(火) 20:32:19.05ID:3Y+SR7BCM
悪いけど、FullFx版のWinFormsとの互換性を損なうようなコミットは全部リジェクトだと思うよ
forkして弄るのは勝手だけど
2019/06/11(火) 20:58:05.88ID:fTJbh9kM0
>>420
.NET Core3.0後にどうなるかはまだ不透明
現状はそうだけどね
2019/06/11(火) 21:10:59.72ID:HH9jnqHSa
どのみちMS自身が今後WinFormsに機能追加をすることはありえないんだから、縛りのきつい公式リポジトリに拘る意味がないでしょ
WinFormsをクロスプラットフォーム化するコミュニティプロジェクトは必ず立ち上がるから、それに参加したらいい
2019/06/11(火) 21:15:40.32ID:GAHoXfWar
>>422
WinFormsのクソな部分がそのまま移植されるとは思わないから別物になると思う

汎用的な部分だけ移植なら整合性が合わなくなるからそもそも新しいの作るだろ
2019/06/11(火) 21:40:49.66ID:HH9jnqHSa
>>423
残念ながらベタ移植だよ
ほとんどのソースはオリジナルからコピーしてきてヘッダコメントを変えただけ
WinFormsをCoreでビルドできるように手直ししただけの代物だ
WPFなんかC++/CLIにべったり依存してるからもっと酷くて、
WPFをビルドするためだけにVCのコンパイラに限定的なCoreサポートを追加して無理矢理ビルドしてる
そんな不毛なことするくらいならネイティブ部分を書き直せと批判されてしばしばissueが炎上してるが、MSはガン無視
2019/06/12(水) 09:44:54.85ID:jI3pneRO0
DataGridView_hoge.AllowUserToResizeColumns = false;

列幅変更出来ない様にしたつもりですが、普通にドラッグしてサイズ変更出来てしまいます。
何が原因でしょうか???
2019/06/12(水) 10:24:07.46ID:0xThtXZC0
行ヘッダ列はAllowUserToResizeColumnsじゃなくてRowHeadersWidthSizeModeで設定しないといけないけど
それ以外の列ってことなら何か変なことやってるんじゃないのとしか言えないなぁ
2019/06/12(水) 10:29:24.57ID:jI3pneRO0
>>426
RowHeadersWidthSizeMode
ためしてみます。
2019/06/12(水) 21:10:32.82ID:MR/XkF+FM
なんかWindowsアップデートで動かなくなったりするから
Windowsやめようぜって方向になってるぞ
2019/06/12(水) 21:27:03.90ID:1sqooHn/0
どうぞ
2019/06/12(水) 23:03:21.43ID:AKIxT99i0
どうぞどうぞ
2019/06/12(水) 23:30:47.47ID:uj0EyW6pd
バイバーイ(^.^)/~~~
2019/06/13(木) 12:45:58.94ID:jjdzM/JQd
WPFの将来性ってどうですか?
今から勉強する価値ありますかね
2019/06/13(木) 15:02:14.86ID:5cAqIW1CM
>>432
将来性はない
勉強する価値もない
2019/06/13(木) 17:22:47.41ID:7q1+HOWFa
たぶん現状のまま放置されるって意味では将来性ないけど
Silverlightみたいに事実上使えなくなることは恐らくないから
勉強して無駄になることもないと思うよ

そいうや、何年か前にWin32を廃止する計画を読んだ記憶があるけど
例によって軌道に乗ってるように思えんねw
2019/06/13(木) 18:14:02.25ID:EM2pYCLsp
>>434
win32廃止したら、Windowsじゃ無くなるじゃん
2019/06/13(木) 22:23:06.18ID:tGgsvZyOd
>>435
win64 APIのみにするってことでしょ
2019/06/13(木) 22:27:30.58ID:dTdyRg7kM
ARM使い「そうか」
2019/06/14(金) 09:46:05.42ID:v6Wc7xsI0
>>436
Windowsから互換性取ったらMacとの優位性が崩れてしまうわ。
2019/06/14(金) 10:19:55.42ID:Qm4arTEGM
う互換性
2019/06/14(金) 13:28:36.75ID:Js4PARtC0
GDIとかいつまで残ってんだろ
2019/06/14(金) 13:36:31.53ID:Io9qelQj0
APIとしてはWindowsがある限り残るだろ
内部的に別の仕組みの描画フレームワークに渡すだけになる将来はあるかもしれんが
2019/06/14(金) 19:05:00.84ID:B1OfNWTta
独自OSはやめてLinux M$ディストリになったら最高なんだけどね
443デフォルトの名無しさん (ワッチョイ f368-hVo2)
垢版 |
2019/06/15(土) 00:33:09.29ID:8CcGi59t0
while(i<=1000000)
{
i++;
}

こういうお手製のループって結局invokeと同じ機能なんですかね?
待つという意味では
444デフォルトの名無しさん (ワッチョイ be05-/zb+)
垢版 |
2019/06/15(土) 02:59:58.42ID:h/MXyyEj0
質問です。
JSONシリアライズなんですけど
{ "foo": "bar" }
としたいのに、DataContractJsonSerializerに
Dictionaryをシリアライズさせると
{ "key": "foo", "value":"bar" }
となってしまいます。
何かいい方法ないですか?
どういうキーワードでググればいいかも分からなくて。
2019/06/15(土) 06:29:12.34ID:izWNJzhX0
>>443
何のinvokeの話なのか知らないけど
ほとんどのInvokeメソッドとは全く違うんじゃないかな

>444
DataContractJsonSerializerSettings.UseSimpleDictionaryFormat
2019/06/15(土) 07:12:02.05ID:+UtdpkHU0
ConcurrentDictionary<Guid, ConcurrentDictionary<int, string>>
のようなデータ構造で、Value部の付け外しにlock機構って必要ですか??

var cd = new ConcurrentDictionary<Guid, ConcurrentDictionary<int, string>>();

lock(_lockObj)
{
 if(!cd.TryGetValue ・・・)
 {
  var child = ConcurrentDictionary<int, string>();
  cd.TryAdd(Guid.NewGuid(), child);
 }
}

2つのスレッドがほぼ同時にアクセスしたとき、
最初に追加したValue部(ConcurrentDictionary<int, string>)を潰したくないです。

lock使うなら、普通にDictionaryでいいんですかね・・ 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
2019/06/15(土) 07:35:12.58ID:IMLKv0k+0
getとaddが不可分操作じゃないから要る
2019/06/15(土) 09:17:07.61ID:6PSH/Imja
>>446
TryAddがfalseを返したら処理を最初からやり直せばいい
それならロックは不要
楽観的排他制御ってやつだ
2019/06/15(土) 14:37:59.48ID:qro2r2SGM
HttpClientもWebClientもHttpWebRequestもまともじゃないのは一体なんなんだ
2019/06/15(土) 14:47:05.46ID:hWID9DJjM
>>449
具体的には?
2019/06/15(土) 14:49:08.14ID:2Fwz82J/0
>>449
HttpClientはstaticなインスタンスでセッション使い回し。
このくらいの注意点は知ってるけどどう駄目なのか参考に教えてよ
2019/06/15(土) 15:37:24.10ID:CD9ImjzWM
>>449
KWSK
453デフォルトの名無しさん (ワッチョイ be05-bHsE)
垢版 |
2019/06/15(土) 15:42:35.91ID:h/MXyyEj0
>>445
ありがとうございます!
2019/06/15(土) 18:51:55.25ID:Tm2el/yWa
>>449
これを使っている限りバグが出る可能性が排除できない
まともな設計で作り直してほしい
2019/06/15(土) 19:28:03.88ID:hWID9DJjM
>>454
具体的には?
2019/06/15(土) 19:39:46.98ID:2Fwz82J/0
具体的なことは言えないレベルでなんとなく否定してるに1票
2019/06/15(土) 20:17:44.79ID:p9QrGiGS0
まあHttpClientFactory使えってなるよね、最近は
■ このスレッドは過去ログ倉庫に格納されています