[過去ログ] ふらっと C#,C♯,C#(初心者用) Part154 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
208:  (ワッチョイ f1ac-aQ/O) 2022/03/15(火)07:49 ID:FHh5bEnc0(1) AAS
 いえいえ 
209(2):  (スップ Sda2-/hws) 2022/03/16(水)17:05 ID:KL1RQagld(1) AAS
 formsでスケーリング変えると部品の位置がズレたりするんだけど、 
 是正する定番の方法あったら教えてたもれ 
210:  (ワッチョイ 7ea7-cs1e) 2022/03/16(水)17:51 ID:sDB+P2C+0(1) AAS
 >>209 
 フォームのサイズが変更されたとき? 
  
 サイズ変更についてなら「サイズが変更された」ときのイベント内で再計算するか、Panel系クラスを利用して表示するかだと思う 
  
 フォームの大きさを小さくしたら下に回り込むようなやつならFlowLayoutPanelで、HTMLでいうテーブルならTableLayoutPanelとか 
  
 Panel系にDockをFillにしたりすれば再計算はプログラムがやってくれる 
211:  (ワッチョイ b901-SA89) 2022/03/16(水)18:39 ID:3Hj+1jHn0(1) AAS
 スケーリング変えた時、だろ 
212(1):  (ワッチョイ 8279-Peks) 2022/03/16(水)18:55 ID:IT+0ZBM10(1/2) AAS
 >>209 ですが、 
 色気を出して最初にSetProcessDPIAware()を呼んでたので、これ呼ぶのをやめたらズレは直りました。 
 これはフォントがボヤンとするいわゆるDPI仮想化状態ですね。 
 ただこれだと座標取得関係に難ありだったと記憶してるので、 
 SetProcessDPIAware()を呼び出しつつ、 
 form1.AutoScaleMode = AutoScaleMode.Dpi; 
 にするとコントロールのズレは収まりました。フォントの大きさの再調整は必要ですがこれが良さそうです。 
 一旦問題を整理してみます。 
213:  (ワッチョイ 012d-8qwV) 2022/03/16(水)19:24 ID:gx2+2oye0(1) AAS
 >>212 
 スケーリングに対応する場合は、フォントはBMPを含まないメイリオやYu Gothic UI等を使うと良いよ 
214:  (ワッチョイ e979-s6It) 2022/03/16(水)19:46 ID:qedjxSBq0(1) AAS
 グリッドレイアウト 
  
 でググると参考になるかもしれん 
  
 もちろんGuiがおおっぴらにサポートしているわけではないが 
 どうしたいかの参考になると思う 
215:  (ワッチョイ 8279-Peks) 2022/03/16(水)21:22 ID:IT+0ZBM10(2/2) AAS
 コントロールのフォントを自動調節するやつできたんでとりあえず解決しました。 
 void AutoFitFontControl(Control ctl, string fontname, int maxpoint) { 
   var g = System.Drawing.Graphics.FromHwnd(ctl.Handle); 
   var point = maxpoint; 
   for (;;) { 
     SizeF sf = g.MeasureString(ctl.Text, new Font(fontname, point)); 
     if (ctl.Width < (int)(sf.Width) || ctl.Height < (int)(sf.Height)) { 
       point -= 2; 
     } else { 
       break; 
     } 
   } 
   ctl.Font = new Font(fontname, point); 
 } 
216(1):  (ワッチョイ 6936-dw4a) 2022/03/17(木)09:57 ID:8n4FcalY0(1/3) AAS
 C#勉強中で分からない点があるので質問です 
 テキストボックスをデータバインドしていてViewModel側はstringでSetPropertyで双方向としていて 
 テキストボックスでキー入力されてもコード上でstringの値を代入等で変えても画面に表示されている値と内部で保持している値が一致するようにしています 
  
 これをstringから独自のクラス、例えば電話番号クラスとかにするとテキストボックスにキー入力しても内部で保持している値に書き換わってしまうのですがこれって何に原因があるのでしょうか? 
  
 View側の処理 
 TelephoneTextBox.DataBindings.Add("Text", viewModel, nameof(ViewModel.Telephone)); 
  
 ViewModel側の処理 
 public TelephoneValue Telephone 
 { 
   get => _telephone; 
   set => SetProperty(ref _telephone, value); 
 } 
  
 TelephoneValueは内部にstringを持っていてToString()でstringを返しています 
217(1):  (スプッッ Sd01-nn6q) 2022/03/17(木)12:22 ID:Mvnns9V0d(1) AAS
 >>216 
 あなたがどっかで定義したTelephoneValue型はxamlが理解できるものじゃない 
  
 TelephoneValueを1引数のstringで構築できるかもしれんがそんなことは知ったこっちゃない 
 (Converterを自作すればなんとかなるかもしれんが) 
218:  (スプッッ Sd02-nn6q) 2022/03/17(木)12:37 ID:0cmWCmO7d(1) AAS
 おそらくXaml側でBindingエラーが出てる 
 アプリが落ちるわけじゃないから気付きにくいが 
  
 Visual Studio環境なら出力ウインドウとバインディングエラーのウインドウにエラーメッセージが出てるはず 
219:  (テテンテンテン MMe6-rsxS) 2022/03/17(木)13:52 ID:i4B2mw3zM(1) AAS
 すいません使ってるのはWFPでは無いです 
 formで書いてます 
  
 ただ>>217が言ってるようにそうなる理由はset時に型を理解できない為と思います、テキストボックスからの文字列は文字列であり独自の型に入れられないから上記のような挙動に見える 
 エラーは出てなかった様に思いますが帰ったら確かめます 
  
 これって独自の型を定義してその型でバインドした物と双方向する事はそもそも出来ないんでしょうか? 
 intにしろDateTimeとか文字列への型変換が出来るので出来そうに思えるのですが 
220(1):  (ラクッペペ MMe6-AsxV) 2022/03/17(木)14:00 ID:AolyjzvfM(1) AAS
 文字列から変換できなきゃ意味ない 
 telephone = "でんわ" 
221(1):  (アウアウウー Sac5-I38D) 2022/03/17(木)14:39 ID:rF5KH7cwa(1) AAS
 こんなにすれば内部で保持してるのとuiとで双方向できるし 
 内部→ui、ui→内部、どっちかだけ片方bindもできる 
  
 class telephone 
 { 
  int a,b=0; 
  public string tel 
  { 
  set{ var d = value.split('-');a=int.parse(d[0]);b=int.parse(d[1]); 
  get{ return $"{a}-{b}"; 
 } 
222(1):  (スップ Sd02-aWWA) 2022/03/17(木)14:46 ID:LzLa9LO7d(1) AAS
 System.ComponentModel.TypeConverter? 
223(1):  (ワッチョイ 822c-lWiN) 2022/03/17(木)16:15 ID:euNpZQ+M0(1) AAS
 そのTelephoneValueクラスがstring型のTextValueプロパティを持ってるとして、 
 .DataBindings.Add("Text", vm, "Telephone.TextValue") 
 とすればいける 
224:  (ワッチョイ 6936-dw4a) 2022/03/17(木)20:21 ID:8n4FcalY0(2/3) AAS
 >>220-223 
 色々ヒントありがとうございます。後程色々試してみて報告できそうな結果ならしたいと思います 
 また分からなかったら聞くかもです 
 最初、代入演算子かstringformat以降をごにょごにょする?か最悪テキストボックス側をいじる、いやUIはさすがにいじりたくない 
 とかですが"Telephone.TextValue"な書き方もできるんですね目から鱗です 
 TypeConverterは調べてみます 
  
 最終的にやりたいのはテキストボックスのマスクの動的判定 
 例えば06と打てば06-、続けて6を打てば06-6、4なら064-みたく表示(実装済み) 
 かつデータベースに書き込むのはハイフンなしにして書き込み、読み込む時はハイフン付けてテキストボックスに表示(生のstringでは検証済み) 
 これを整合性合わせてしたいが生のstringを使いたくなかったのが理由 
 まぁテキストボックスいじる方がよっぽど気持ちが悪いのですが 
  
 取り合えず上記アドバイス試してみますありがとうございます 
225:  (ワッチョイ 4de6-AsxV) 2022/03/17(木)23:08 ID:RdQIwXxN0(1) AAS
 市外局番ルールってどっかに計算式あるの? 
 まあ同じ市外局番でも省略すると繋がらないとかふざけた地域も多いしトンキンオオサカだけでもいいか 
226:  (ワッチョイ 6936-rsxS) 2022/03/17(木)23:26 ID:8n4FcalY0(3/3) AAS
 私は総務省にこんなんある事知って上記の話はそれらしく実装した 
 外部リンク[html]:www.soumu.go.jp 
 厳密にやろうとするとクソ面倒なのであくまでそれっぽくしただけだけど一応区切り位置とかのルールは存在する 
227:  (ワッチョイ c666-lWiN) 2022/03/18(金)10:15 ID:exJrGo4o0(1) AAS
 Socket.IO (SocketIoClientDotNet) を利用し、下記コードでメッセージの購読は出来たのですが 
  
 this.socket = IO.Socket("外部リンク:localhost"); 
 this.socket.On("new-message", (jo) => 
 { 
     this.RecvNewMessage(jo as JObject); 
 }); 
  
 購読を終了する方法が解りませんでした。 
 どのようにすれば終了できるでしょうか?よろしくお願いします。 
228:  (ワッチョイ 822c-lWiN) 2022/03/18(金)10:42 ID:GLaoxLmQ0(1) AAS
 OnしたんならOffすればいいんじゃね 知らんけど 
229:  (ワッチョイ ed2f-K4Xb) 2022/03/18(金)15:59 ID:Fy/f5KFA0(1) AAS
 コメントアウトはVSCodeのようにCtrl+/でやりたいんだけど 
 設定で変更できるよね? 
 なぜ最初からそうなっていないの? 
 Ctrl+k,cは面倒極まりない。 
230:  (ワッチョイ 8dd2-FsHI) 2022/03/18(金)16:13 ID:NghzuPCe0(1/4) AAS
 頬杖つきながらマウスで選択してツールバーでポチっとするだけだから。 
 20年遅れてるUNIX開発環境に合わせろと言われも困ります。 
231:  (アウアウウー Sac5-I38D) 2022/03/18(金)16:17 ID:/Q6fnTiGa(1/3) AAS
 ツールバーのボタン標準で表示されてるんだな。初めて知った 
 だがむしろデフォルトをkc、kuで統一しろよ 
232(1):  (ワッチョイ 8224-glZq) 2022/03/18(金)16:23 ID:cx5y3qmg0(1) AAS
 ロジのマウスすぐチャタるから俺もPC操作はできる限りキーボードで行いたい派 
233:  (スッップ Sda2-nn6q) 2022/03/18(金)16:32 ID:r5cg+x+od(1) AAS
 プログラム開発でクソAIMやると切れそうになるからマウス使いたくない 
234:  (ワッチョイ 7d02-WCXV) 2022/03/18(金)16:46 ID:Ukh28wt40(1) AAS
 ショートカット変えれるんだから変えろよ 
235:  (アウアウウー Sac5-I38D) 2022/03/18(金)16:48 ID:/Q6fnTiGa(2/3) AAS
 >>232 
 捨てろよ。もしくは頻繁に接点復活スプレー 
236:  (ワッチョイ 8dd2-FsHI) 2022/03/18(金)16:50 ID:NghzuPCe0(2/4) AAS
 UNIXなんてのは太古の昔から市場の片隅で生きてきた絶滅危惧種だったのに 
 使ってるアホどもは世界の中心だと思ってるから厄介。 
237:  (ワッチョイ 8dd2-FsHI) 2022/03/18(金)16:51 ID:NghzuPCe0(3/4) AAS
 マウスイベント監視してチャタリング無効化するだけ。 
上下前次1-新書関写板覧索設栞歴
あと 765 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.028s