ふらっと C#,C♯,C#(初心者用) Part143at TECH
ふらっと C#,C♯,C#(初心者用) Part143 - 暇つぶし2ch921:デフォルトの名無しさん
19/07/11 20:37:17.03 xCkJ5LaR0.net
侍エンジニア塾は、マンツーマンだから高い!
70~80万円かかる!

922:デフォルトの名無しさん
19/07/11 20:48:11.97 tSRqKlWG0.net
++C++だけでじゅうぶん

923:デフォルトの名無しさん
19/07/11 22:35:54.58 BgPDMp8z0.net
dapperでupdateクエリを実行する時、変更された箇所を自動的に判別して更新してくれる機能はありますか?
イメージ的には以下のような感じです。
//読み込み
var model = con.Query<Model>("SELECT * FROM table");
//ここでmodelが持ってるプロパティを編集
//編集されたプロパティのみを自動判別してupdateしてくれる。
con.Execute("UPDATE table *");

924:デフォルトの名無しさん
19/07/11 22:41:20.48 MabNatKwa.net
WPFのMaterial Design Tool Kitを使ってみたのですが、このコントロールの例えばボタンの大きさとかを変えたりすることは出来たりするのでしょうか

925:デフォルトの名無しさん
19/07/11 22:46:41.40 vUv4mdDMM.net
>>910
そんなものは無い
贅沢な機能が欲しいならEF使え
まあDapperで全カラムを更新するのとEFで一部だけ更新するのとでは、殆どの場合において圧倒的に前者の方が速いだろうけどね

926:デフォルトの名無しさん
19/07/11 22:48:21.28 BgPDMp8z0.net
>>912
ありがとうございます!スッキリしました!

927:デフォルトの名無しさん
19/07/11 22:52:23.88 Y+auxo+p0.net
>>911
普通にコントロールのサイズを変えるだけでは?

928:デフォルトの名無しさん
19/07/11 23:27:09.99 D+McUDWk0.net
リアクティブなプロパティを使ってゴニョればできるけど
EF使う方が楽

929:デフォルトの名無しさん
19/07/12 00:37:29.52 Qe/C8AfS0.net
別にsetのときに何か判定してるでもないのにプロパティ全部getsetいちいち書いて1000行とか使ってるコードに出会った
ぜ、全部消したい……客先のコードじゃなかったら……

930:デフォルトの名無しさん
19/07/12 00:39:59.43 XU4SChRd0.net
稀に見るJava土方の臭いがするコード

931:デフォルトの名無しさん
19/07/12 06:36:27.03 l82xLe+v0.net
C#の#ってどれ使えばいいんですか

932:デフォルトの名無しさん
19/07/12 08:54:37.42 wF3EiDpw0.net
>>916
Bindingも無し?

933:デフォルトの名無しさん
19/07/12 10:04:54.95 1Y9Zea5/M.net
そんな悪いか?
自動プロパティ使ってないってことでしょ?

934:デフォルトの名無しさん
19/07/13 01:01:25.85 WXtjREf70.net
datagridviewのカラムヘッダーをクリックすると、勝手に1行目のレコードが選択されてしまうのですが、
これを防ぐにはどうすればよいでしょうか。
また、可能であれば、カラムヘッダーのMouseDownイベント自体をキャンセルしたいのですが、どうすればよいでしょうか。

935:デフォルトの名無しさん
19/07/13 01:06:34.80 iqubl+0xa.net
>>914
ありがとう
調べてみた結果、出来ないっぽいから自作のコントロールでなんとかそれらしくしようと思います

936:デフォルトの名無しさん
19/07/13 01:14:28.07 QBUcodiM0.net
>>887
これ逆にDBから取得しない方がいいケースってあるん?
DBから取得するパターンしかしらんわ

937:デフォルトの名無しさん
19/07/13 01:16:55.65 snyK+LfD0.net
>>922
質問内容を俺が理解できてないのかな?
↓のページではサイズの異なるボタンが表示されてるけどそういうことではない?
URLリンク(neue.cc)

938:デフォルトの名無しさん
19/07/13 01:22:16.58 snyK+LfD0.net
>>923
xml、json等のテキストファイルやxlsxで設定ファイルみたいなの作るとか?
変更することが無いような項目ならコード内に埋め込むとか
要件次第で何が良いかは変わると思うからDB一択とはならんと思うけど

939:デフォルトの名無しさん
19/07/13 01:38:48.66 Zpl1rRtL0.net
>>92


940:1 ヘッダの位置に透明なパネルを置くのが一番早いかもしれない 勝手に一番目のCellが選択されるのはCurrentCell=nullのときにはFirstDisplayedCellで示されたCellが必ず選択されるから あとはDataGridViewを継承してMouseDownイベントを無くしたものを作れるかもしれないけどそっちはわからない



941:デフォルトの名無しさん
19/07/13 01:41:03.71 iqubl+0xa.net
>>924
ありがとう
ツールで提供されてる丸ボタンとかを使いたいんだけど、それらは提供されたボタンのスタイルで決まってて領域を広げてもボタン自体のサイズは変更出来ないような感じなんだけど
実際はアニメーションを使った丸型のトグルボタンを丸ボタンのサイズと同じにしたかったので似たようなことを考えた人がいればと思い質問してみました

942:デフォルトの名無しさん
19/07/13 07:48:45.74 4NawiDim0.net
>>926
透明なパネルって作れたっけ?
やるんならDrawToBitmapでヘッダ部分をキャプチャして
グリッドのヘッダに重ねたコントロールに描画するのがいいと思う

943:デフォルトの名無しさん
19/07/13 13:12:36.40 NDmMB+Lma.net
いい手法とはまったく思えないけど透明で常に最前面のトップレベルウィンドウなら作れるね

944:デフォルトの名無しさん
19/07/13 17:42:32.06 4NawiDim0.net
>>921
URLリンク(ideone.com)
DataGridViewのソースを覗いてみたけどWndProcをいじる以外に方法が無さげ

945:デフォルトの名無しさん
19/07/13 18:11:32.06 k49AlHPTp.net
透明なパネルなんて詐欺サイトかチートツールじゃ重宝されそうだな。

946:デフォルトの名無しさん
19/07/13 18:42:46.89 tImovYMga.net
意味不明すぎるw

947:>>926
19/07/13 19:50:41.36 qsxihLOz0.net
>>921
覆うのは良くないなと思ってはいたけど継承でできたわ
public class DataGridViewEX : System.Windows.Forms.DataGridView
{
protected override void OnMouseDown(System.Windows.Forms.MouseEventArgs e)
{//列ヘッダでのMouseDownで勝手に先頭のCellが選択されないようにする。ResizeとSort可
bool b = this.CurrentCell == null && this.HitTest(e.Location.X, e.Location.Y).Type == System.Windows.Forms.DataGridViewHitTestType.ColumnHeader;
base.OnMouseDown(e);
if (b) this.CurrentCell = null;
}
}
または
public class DataGridViewEX : System.Windows.Forms.DataGridView
{
protected override void OnMouseDown(System.Windows.Forms.MouseEventArgs e)
{//列ヘッダでのMouseDownを全て無効にする
if (this.HitTest(e.Location.X, e.Location.Y).Type == System.Windows.Forms.DataGridViewHitTestType.ColumnHeader) return;
base.OnMouseDown(e);
}
}
下は>>930と同じような使い勝手になるはず。MouseEventArgsだからクリックボタンによる処理もメソッドの中に組み込める
勝手に先頭のCellが選択されるのはFocus()やSelect()実行しても起こるけど、まず使わないだろうしそのあとにDataGridView.CurrentCell = nullを入れてもいい
列のResizeでCell選択されるの前に悩んでいてFirstDisplayedCellとFocusまで調べていたけど見た目だけの問題だし面倒だから諦めていた
その質問のおかげで改めて調べる気になったから逆に感謝w
>>928
例えばDataGridViewの子コントロールとして用意して(datagridview.Controls.Add(panel))、BackColorをTransparentにするだけ。特別なことはいらなかったはず

948:デフォルトの名無しさん
19/07/13 21:21:56.19 J0SpyLLfa.net
>>933
子コントロールの背景色を透明にしても
最上位のコンテナ(つまりForm)の背景が透けて見えるだけじゃなかったかと

949:デフォルトの名無しさん
19/07/13 21:32:23.61 qsxihLOz0.net
>>934
じゃあ気が付いてない何か特別なことが必要なのかな
DataGridViewじゃなければ過去に何度もやっているしDataGridViewに重ねるのも確認してから書き込んだのだけど

950:デフォルトの名無しさん
19/07/14 10:27:51.44 /gKQotNU0.net
メソッド定義の場面でメソッド名の後にコロンが付いているのを初めて見ました
>protected PizzaStore() : this(new BaseIngredients()){} // 動画内24行目 URLリンク(youtu.be)
このコロンはどういう意味の文法なんですか?

951:デフォルトの名無しさん
19/07/14 10:43:27.29 1ykVpntz0.net
>>936
それコンストラクタだぞ
引数なしのコンストラクタが引数付きのコンストラクタに引数を付けて呼び出してる

952:デフォルトの名無しさん
19/07/14 10:50:14.89 /gKQotNU0.net
>>937
そういうことなんですか、一見パッとわかりませんでした
ありがとうございます

953:デフォルトの名無しさん
19/07/14 11:29:43.66 1V0xuz/f0.net
string str_test = ""aaaaaaaaaaaaa;
txt_word.Text = str_test; // ←デバッグをすすめるとこのコードの実行になぜかフリーズします。
これは何が原因なのでしょうか?

954:デフォルトの名無しさん
19/07/14 12:20:15.77 67ABvZrhM.net
txt_wordクラスのTextプロパティのセッターが
文字列セットするとフリーズする実装になってるんでしょ

955:デフォルトの名無しさん
19/07/14 12:22:02.89 BItK59/l0.net
>>939
""aaaaaaaaaって何が入るの?

956:デフォルトの名無しさん
19/07/14 12:25:09.72 cixPwHFXp.net
そりゃ転記ミスやろ。
コンテクスト違うってエラーが出てるんじゃね?

957:デフォルトの名無しさん
19/07/14 12:27:14.57 VKB+2jBS0.net
>>939
TextChangedイベントを確認しましょ

958:デフォルトの名無しさん
19/07/14 13:09:01.62 1V0xuz/f0.net
>>941
"aaaaaa" です。

>>940 >>943 
TextChangeイベントも設定されていません。
もともとこのプロジェクトは、VS2010で作ったものです。
現在は、それをVS2017でメンテナンスをしようとしています。
アップグレードに伴う、VS側のバグでしょうかね???
一から作り直すのめんどくさいし・・・あーあー
VS2017で作成した新規プロジェクトでは、Textboxへの値の設定では
当然フリーズしません。

959:デフォルトの名無しさん
19/07/14 13:31:47.51 TL4T/r3+a.net
>>944
そもそもtxt_wordの型が書かれてないんだけどTextBox型なの?
デバッグ実行中にフリーズする箇所で「一時停止」したら
コールスタックに実行中のメソッドが出るけどどこでフリーズする?

960:デフォルトの名無しさん
19/07/14 13:36:10.50 1ykVpntz0.net
>>944
VS2017のバージョンは、最新(15.9.14)になってる?

961:デフォルトの名無しさん
19/07/14 13:56:27.70 KJvjECGRF.net
最初の質問観ただけで
面倒臭い人(質問じゃなくて人)だと判る

962:デフォルトの名無しさん
19/07/14 14:15:44.45 1V0xuz/f0.net
>>945
間違いなくTextbox型です。
>>946
Version 15.9.14
になっています。
念の為にVSをアップデートしました。

963:デフォルトの名無しさん
19/07/14 14:22:56.02 1V0xuz/f0.net
呼び出し元でTextboxに値を入れる分はすぐでした。
呼び出し先のメソッドの中でのデバッグでだけ
遅くなっている様です。
解決できそうです!

964:デフォルトの名無しさん
19/07/14 14:25:17.32 vFmjWtsga.net
解決したらどういうことだったか残しといて

965:デフォルトの名無しさん
19/07/14 16:50:39.75 1V0xuz/f0.net
原因はわかりませんが、とりあえずスムーズに流れる方法が
わかったのでメモしておきます。
もともと①でしたが②に変えたらフリーズしなくなりました。。。
なぜだろう。。。

入っている文字列ですが正確には
string str_test = "aaa\r\nbbb\r\nccc\r\nddd\r\neee\r\n";
でした。

txt_word.Text = str_test.TrimEnd('\r').TrimEnd('\n');

txt_word.Text = str_test;

966:デフォルトの名無しさん
19/07/14 17:21:41.77 eBBABYSj0.net
末尾の改行消したいなら str_test.TrimEnd('\r', '\n'); か str_test.TrimEnd('\n').TrimEnd('\r'); じゃ?

967:デフォルトの名無しさん
19/07/14 17:22:25.76 7jVc1wv20.net
確実に利用者側の問題なのにVS側の不具合を疑う時点でどうかと思う
そもそもフリーズってどんな状況よ



968:正確な単語使われて情報も部分的にしか出さないでなんでも解決できると思わないでね IDE使ってんだからbreakしてステップ実行しなよ



969:デフォルトの名無しさん
19/07/14 19:13:36.27 REnBzl1eM.net
俺みたいにおちょくっておくのが正解だと言うのに

970:デフォルトの名無しさん
19/07/14 19:24:25.41 1V0xuz/f0.net
>>954
お前ははなから相手にしてない
雑魚が

971:デフォルトの名無しさん
19/07/14 20:16:20.63 FOkW4A9fr.net
>>955
>>1 も読めない人はもう来ないでね

972:デフォルトの名無しさん
19/07/14 20:31:52.63 REnBzl1eM.net
生ゴミに雑魚とか言われちゃったよ(苦笑)

973:デフォルトの名無しさん
19/07/15 00:13:59.24 Pf4bLsx9a.net
アカン質問者なのはわかってたけど豹変面白すぎ

974:デフォルトの名無しさん
19/07/15 15:45:33.24 RYqQ15uW0.net
Dapperでクエリを書く時、SetParameterと補間文字列、どっちがいいですか?
SetParameterが普通っぽいんですが、下のように、補間文字列でもそう不便しなさそうなんですが・・・
string sql = $"INSERT INTO table(name, chk) VALUES('{textBox1.Text}', '{checkBox1.Checked}')";

975:デフォルトの名無しさん
19/07/15 15:55:18.36 /B6zOkBad.net
>>959
SQLインジェクション

976:デフォルトの名無しさん
19/07/15 16:08:29.30 0Vwmqj+cM.net
>>959
もしあなたが職業プログラマで、信頼できない人間がアクセスする可能性のあるソフトウェアの開発に携わったことがあるなら、
今すぐ関係者に連絡してSQLインジェクション脆弱性がないか確認してもらいなさい
誇張ではなくマジで危険

977:デフォルトの名無しさん
19/07/15 16:52:51.84 BwPtgrfc0.net
最近自分で私事でサーバー運営の練習してるんだけど、外部からのアタックってけっこうくるのね。大量の謎のアクセスがあって片っ端からURI試されてる。
>>959
ということでセキュリティには絶対気を付けるべき

978:デフォルトの名無しさん
19/07/15 16:59:54.96 3kssHGHNF.net
アタックに対して堅牢性があっても
糞アクセスのせいでログファイル肥大化して
disk full でシステムダウンとか
DOS攻撃でネットワーク飽和してダウンとか
セキュリティ対策と言っても奥が深い
糞アクセスがあっても安全だからって放置せずに
糞アクセスしてくる相手は片っ端からフィルタで切断した方が良い

979:デフォルトの名無しさん
19/07/15 17:28:08.54 BwPtgrfc0.net
とりあえずアタックというものは本当にあるんだ、ということが伝えたかった。

980:デフォルトの名無しさん
19/07/15 17:46:03.68 eJKhhqkr0.net
>>962
つ Nikto
先ずはチェックを

981:デフォルトの名無しさん
19/07/15 18:08:26.88 lZwtcGpud.net
結構アタックあるよね。アクセスログ見る習慣もつけたほうが良いと思う。

982:デフォルトの名無しさん
19/07/15 18:45:14.20 AVRTCka/0.net
ホワイトハウスにクラックするスーパークラッカーが世の中にいるんだよ
なので攻撃されたら絶対防げないからあきらめな。

なのでWEB系の基幹システムの開発だけは現役のころは
すべてさけてきた。
Windowsシステムなら最悪ローカルで被害がすむ

983:デフォルトの名無しさん
19/07/15 18:45:44.19 l/0rJj1+0.net
おじいちゃんこんにちは

984:デフォルトの名無しさん
19/07/15 18:52:00.43 jhuzVcKVM.net
>>962
SSHくらいやってるんだろうね?

985:デフォルトの名無しさん
19/07/15 20:59:32.14 BwPtgrfc0.net
>>965
丁度脆弱性診断の本買って勉強中です、Niktoというのも調べてみます。
>>969
むしろSSHかさくらの管理コンソール以外からのログインの仕方がわかりませぬ。

986:デフォルトの名無しさん
19/07/15 21:01:10.84 BwPtgrfc0.net
>>966
ある日を境にアクセス数グラフが爆発的に増えてビックリこきました。アクセスログ見たらそれっぽいURI叩かれまくってて感心してしまった。

987:デフォルトの名無しさん
19/07/15 21:32:51.08 eJKhhqkr0.net
>>970
Niktoは脆弱性診断ツール
良く知られている攻撃方法は一通りカバー
しているかと。
日本語の説明はあちこちにあるけど例えばコレとか
URLリンク(qiita.com)

988:デフォルトの名無しさん
19/07/15 22:05:37.33 BwPtgrfc0.net
>>972
ありがとうございます!
完全にスレチになってしまうのでこの辺にしておきます

989:デフォルトの名無しさん
19/07/16 09:21:03.27 X0DP0wW10.net
>>952
つまり、
txt_word.Text = str_test.TrimEnd('\r').TrimEnd('\n');
の右辺の最初の str_test.TrimEnd('\r') の部分で str_test の末尾に '\r' が
無いのでエラーが生じて例外が throw されていたという落ちですかね。

990:デフォルトの名無しさん
19/07/16 09:23:45.90 X0DP0wW10.net
>>974
仕様を見てみたらそういうわけでもないようですね。

991:デフォルトの名無しさん
19/07/16 09:25:36.76 TC9tlVhv0.net
そもそも例外出たってフリーズはせんだろ
何のためのIDEだ

992:デフォルトの名無しさん
19/07/16 09:30:32.77 X0DP0wW10.net
VSのバグだったら楽しいなwww

993:デフォルトの名無しさん
19/07/16 11:44:57.75 9jUYV4m+0.net
>>974 >>775
ほんと不思議な事象でした。
tyr catchでかこってもエラーには落ちてきませんでした。
ただ、時間がやたらかかるだけ

994:デフォルトの名無しさん
19/07/16 12:01:20.00 TC9tlVhv0.net
例外とエラーと処理に時間がかかるは全部別の事象
そら処理に時間がかかってるところにtry書いたって何の意味もないよ
一番不思議なのはそんな技術力でVSを疑う君だよ

995:デフォルトの名無しさん
19/07/16 12:47:20.40 i1fbuZ/pM.net
まあ自分以外を疑うのは初心者あるあるやね

996:デフォルトの名無しさん
19/07/16 14:07:27.08 cyuVEim50.net
改行されて文字が見えなくなってて、フリーズしたと思い込んでたんじゃない?

997:デフォルトの名無しさん
19/07/16 15:02:04.77 p80ojOpj0.net
画像ファイルを相対アドレスで指定してもデザイナが勝手にカレントディレクトリをWindows直下だと思ってフォルダが無いって言ってるのって何とかならないの?

998:デフォルトの名無しさん
19/07/16 15:21:01.19 CH30lzXT0.net
>>980
次スレはよ

999:デフォルトの名無しさん
19/07/16 15:37:30.60 i1fbuZ/pM.net
>>983
すまん、うっかりしてたわ
立てたのでよろしく
ふらっと C#,C♯,C#(初心者用) Part144
スレリンク(tech板)

1000:デフォルトの名無しさん
19/07/16 16:06:39.66 X0DP0wW10.net
VSにバグが有るだけじゃないんですかいな。
実際、手元でVS 2019で C++ を試していたら、メニュー・エディタが
ハングアップしたりシングルコアでのCPUが100%になって一分以上待たされたり
何回もした。

1001:デフォルトの名無しさん
19/07/16 16:08:57.60 9jUYV4m+0.net
多分vsのバグだと思う
だけど、このスレッドでは初心者に問題がある、と押し付けるdqnがいるのです。

1002:デフォルトの名無しさん
19/07/16 16:09:42.20 X0DP0wW10.net
昔からMSはバグが多いことで知られていて、Win95でもすぐにおかしくなっていた。VSだけは割りと安定していたのだが、最近はVSもMS標準品質になっただけかもしれない。
別に Win95 時代じゃなくても、Officeだっておかしくなるし。
ページ番号がずれてめちゃくちゃに成って直せなく成ったりとか、表を編集中にキャレットが別のカラムに勝手に移って何度やっても思ったカラムに入力できないとか、そんなん物凄くあった。

1003:デフォルトの名無しさん
19/07/16 16:13:10.50 X0DP0wW10.net
>>986
昔のVC++のころのVSは、問題になるような重大バグは気付かなかったんだけど、今のVSはそんな重大バグがあるんだろうか。
遅いことだけは間違いない。自分の環境だと起動に何十秒(1分?)もかかる。

1004:デフォルトの名無しさん
19/07/16 16:54:27.52 9jUYV4m+0.net
>>988
もっといいマシンかおうぜ

1005:デフォルトの名無しさん
19/07/16 17:16:52.20 X0DP0wW10.net
>>989
速いマシンっていうが、どの程度のマシンでどの程度の速度で起動する?
5秒以下になるか?

1006:デフォルトの名無しさん
19/07/16 17:25:07.83 HGJeyF2e0.net
vs2010を2008R2で動かすと高確率で
ハングして閉口したよ

1007:デフォルトの名無しさん
19/07/16 17:38:23.73 SYYZ7oiM0.net
>>939
こんな再現できないコード貼って他人が解決できるって発想が理解できない
ミニマムコード要求すらせずに相手する方もおかしい
>>982
C#じゃないOSの仕様で、Windows直下に設定したのはお前じゃね
>>984
たておつ

1008:デフォルトの名無しさん
19/07/16 19:28:02.88 CUl4yCEGa.net
>>984
スレ建て乙

1009:デフォルトの名無しさん
19/07/16 22:16:31.67 9jUYV4m+0.net
>>990
Corei7-8700CPU 3.20Ghz 3.19Ghz
48GB
G-GEAR eX.computer Gaming Service
ゲーミングマシン使ってるから早い。

1010:デフォルトの名無しさん
19/07/16 23:05:46.24 NtL9T2Il0.net
なんだよ48GBって。
中途半端に買い足さないで男らしく64GBいけや

1011:デフォルトの名無しさん
19/07/16 23:24:36.19 DnEfEKUpF.net
>>995
どうでもいい難癖乙

1012:デフォルトの名無しさん
19/07/16 23:26:05.36 9jUYV4m+0.net
なんくせやな。
動画編集しながら、VS立ち上げながら、ゲームしても余裕っす
もちろんVSごときサクサクっすわ

1013:デフォルトの名無しさん
19/07/17 01:18:46.85 ANbj1oMn0.net
今どきシングルコアのPCで開発ってある?
5年前のPCでもそんなの無い気がすんだけど

1014:デフォルトの名無しさん
19/07/17 01:20:25.68 fz/PHEHW0.net
VM上で開発してるのかもしれない

1015:デフォルトの名無しさん
19/07/17 01:56:35.78 rBzTe21k0.net
ふんっ1000ゲット

1016:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 61日 6時間 28分 29秒

1017:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch