「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part136
http://mevius.5ch.net/test/read.cgi/tech/1520057345/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part137
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ドコグロ MM07-2FKJ)
2018/04/06(金) 17:40:19.48ID:oKXVP34zM274デフォルトの名無しさん (ワッチョイ b3eb-cUH7)
2018/04/28(土) 02:32:39.82ID:fiFvLr6Y0 >>273
Xamarin.Formsで使っています
Xamarin.Formsで使っています
275デフォルトの名無しさん (ワントンキン MMad-kOUo)
2018/04/28(土) 07:22:01.22ID:bL+b5OsrM >>272
XML解析とリフレクション
XML解析とリフレクション
276デフォルトの名無しさん (ワッチョイ 112d-c97c)
2018/04/28(土) 12:46:33.34ID:5pWODy2i0 ここでいいのかわかりませんが、質問させてください。
C#でフレームワーク ASP.Net MVCで作っています。
テーブルのフォームをPOSTしたいのですが、
動的に作成した行をどのようにサーバー側で受け取ればよいのかわかりません。
<td>
<input class="form-control" id="no1" name="no2" type="text" value="" />
</td>
<td>
<input class="form-control" id="no2" name="no2" type="text" value="" />
</td>
このように、複数行があって、noの後ろの数値は、行を追加したら増えるように
javascriptで制御しています。
サーバー側の処理として、引数を
(string no1, string no2, ・・・)と列挙してすべて書けば、
POSTデータを受け取れることは確認済みです。
ただ、ユーザーの操作で行を何行追加するかもわからず、あらかじめ想定する
最大数の引数を列挙するのも現実的ではありません。
すべてのフォームデータを一挙に受け取って、
サーバー内部のロジックで処理する方法はないでしょうか。
C#でフレームワーク ASP.Net MVCで作っています。
テーブルのフォームをPOSTしたいのですが、
動的に作成した行をどのようにサーバー側で受け取ればよいのかわかりません。
<td>
<input class="form-control" id="no1" name="no2" type="text" value="" />
</td>
<td>
<input class="form-control" id="no2" name="no2" type="text" value="" />
</td>
このように、複数行があって、noの後ろの数値は、行を追加したら増えるように
javascriptで制御しています。
サーバー側の処理として、引数を
(string no1, string no2, ・・・)と列挙してすべて書けば、
POSTデータを受け取れることは確認済みです。
ただ、ユーザーの操作で行を何行追加するかもわからず、あらかじめ想定する
最大数の引数を列挙するのも現実的ではありません。
すべてのフォームデータを一挙に受け取って、
サーバー内部のロジックで処理する方法はないでしょうか。
277デフォルトの名無しさん (ワッチョイ 93d2-/ky+)
2018/04/28(土) 13:53:59.42ID:Jn+S73+O0278デフォルトの名無しさん (アウアウウー Sa45-fo8q)
2018/04/28(土) 14:50:29.57ID:X/1aPQ6Ma どうせJavaScript書いてるんならJavaScript側でJSONの配列に纏めてからAJAXでポストするのもアリ
279デフォルトの名無しさん (ワッチョイ 71b3-luqG)
2018/04/28(土) 21:58:22.96ID:4vnB69wL0 [[[ ][ ]]]\[[]] [[[]]]],[[[ [][] ]
280デフォルトの名無しさん (ワッチョイ 419f-YWv5)
2018/04/28(土) 22:36:40.95ID:vp8gWtwG0 Entity FrameworkでDBへのselectとかのリトライしたい場合ってどのようにすべきでしょうか
一時的なエラーだったりしたらもう一回トライとかしたいのです
例外全キャッチするのも無駄なのかなぁと思いまして
一時的なエラーだったりしたらもう一回トライとかしたいのです
例外全キャッチするのも無駄なのかなぁと思いまして
281デフォルトの名無しさん (ブーイモ MMb3-fo8q)
2018/04/28(土) 23:02:28.71ID:8LDPRSMfM 普通のRDBなら一時的なエラーなんか滅多にないだろ
400でいいよそんなもん
400でいいよそんなもん
282デフォルトの名無しさん (ワッチョイ 2bc9-luqG)
2018/04/28(土) 23:05:27.66ID:yGhXA9la0 Azure相手だと普通にあるで
283デフォルトの名無しさん (ワッチョイ 93d2-SiOx)
2018/04/28(土) 23:08:01.89ID:E8vnEfND0 >>280
DbExecutionStrategy
DbExecutionStrategy
284デフォルトの名無しさん (ワッチョイ 419f-YWv5)
2018/04/28(土) 23:33:01.91ID:vp8gWtwG0285デフォルトの名無しさん (ワッチョイ 71b3-luqG)
2018/04/29(日) 20:34:09.03ID:My7UiDyw0 [[[ []]]]*[[ [][] ][] } } {} [[[
286デフォルトの名無しさん (ワッチョイ a1d7-AYWH)
2018/05/02(水) 19:00:22.89ID:As5kU4Fr0 とりあえず、連休ぐらいゆっくりな
オマエラ
オマエラ
287デフォルトの名無しさん (アウアウウー Sacf-pRpi)
2018/05/03(木) 10:44:28.97ID:9ar3mEaia 連休は機械学習でずっと計算させる予定
人間は休む
人間は休む
288デフォルトの名無しさん (ブーイモ MMef-+yEv)
2018/05/03(木) 13:02:24.11ID:Nqnp2049M 人間はILコードを覚えてハンドアセンブル出きるようになるべき
289デフォルトの名無しさん (ワッチョイ bf9e-DJjQ)
2018/05/03(木) 13:26:57.92ID:YEWKmWCr0 winformの左辺や上辺をドラッグするとフォームのサイズが変わらずにフォームが移動してしまいますが
サイズを変更するように設定するプロパティなどはありますでしょうか
コードを書く必要がありますか?
サイズを変更するように設定するプロパティなどはありますでしょうか
コードを書く必要がありますか?
290デフォルトの名無しさん (ワッチョイ aa60-pRpi)
2018/05/03(木) 14:32:14.37ID:hvfEvXXP0291デフォルトの名無しさん (ブーイモ MMef-+yEv)
2018/05/03(木) 14:41:33.60ID:Nqnp2049M >>290
情報処理試験のCASLとかも?
情報処理試験のCASLとかも?
292デフォルトの名無しさん (ワッチョイ aa60-pRpi)
2018/05/03(木) 14:46:31.58ID:hvfEvXXP0293デフォルトの名無しさん (ブーイモ MMef-hPxN)
2018/05/03(木) 14:47:30.87ID:1IvMgmqBM 次元が違うだろ
ILは高級なオブジェクト指向言語
そもそも機械語に似せることを意図されていない
ILは高級なオブジェクト指向言語
そもそも機械語に似せることを意図されていない
294デフォルトの名無しさん (ワッチョイ aa60-pRpi)
2018/05/03(木) 14:51:41.82ID:hvfEvXXP0 >>293
ハードウェアマシン語とプログラム言語との間に、なぜ仮想マシンと仮想的な言語(IL/JVM)が採用されるようになったのか?そこが今でも判然としないのです…
ハードウェアマシン語とプログラム言語との間に、なぜ仮想マシンと仮想的な言語(IL/JVM)が採用されるようになったのか?そこが今でも判然としないのです…
295デフォルトの名無しさん (ワッチョイ 53b3-EG9I)
2018/05/03(木) 15:42:16.53ID:+UDEH62l0 >>294
ドライバは何故存在するの?つってる様なもんだぞそれ
ドライバは何故存在するの?つってる様なもんだぞそれ
296デフォルトの名無しさん (ワッチョイ aa60-pRpi)
2018/05/03(木) 15:45:53.15ID:hvfEvXXP0297デフォルトの名無しさん (ワッチョイ 53b3-EG9I)
2018/05/03(木) 16:06:28.64ID:+UDEH62l0 仮想マシンに焦点を絞るなら、ハードウェアの差異を吸収する為では
(.netはJavaVMほどあちこちに移植されてないというだけで)
ILに関して言えば、複数の言語(C#、VB.net、F#、他)を共通のフレームワーク上で動かせる様にする為
(.netはJavaVMほどあちこちに移植されてないというだけで)
ILに関して言えば、複数の言語(C#、VB.net、F#、他)を共通のフレームワーク上で動かせる様にする為
298デフォルトの名無しさん (ワッチョイ 0a5d-N4mI)
2018/05/03(木) 16:13:17.79ID:ioUmuI6x0 >>297
それならハードウェアや言語の統一を目指したほうが建設的なのでは?
それならハードウェアや言語の統一を目指したほうが建設的なのでは?
299デフォルトの名無しさん (ワッチョイ 53b3-EG9I)
2018/05/03(木) 16:19:16.65ID:+UDEH62l0 >>298
不可能だろう
収斂進化により表面上似た様な機能を搭載する事はあっても、内部構造は特許なり権利なり絡んで来るから同じに出来ないし
JavaScript+CSS3ですらブラウザベンダ間で足並み揃えられないのに、言語の統一なんて出来る訳が無い
不可能だろう
収斂進化により表面上似た様な機能を搭載する事はあっても、内部構造は特許なり権利なり絡んで来るから同じに出来ないし
JavaScript+CSS3ですらブラウザベンダ間で足並み揃えられないのに、言語の統一なんて出来る訳が無い
300デフォルトの名無しさん (ワッチョイ aa60-pRpi)
2018/05/03(木) 16:37:31.89ID:hvfEvXXP0 現状、中間言語側でも少なくとも JVM/.net framework にわかれちゃっているからねえ…
301デフォルトの名無しさん (ワッチョイ bb65-f8tT)
2018/05/03(木) 18:59:07.03ID:OyWVOyw+0 >>300
LLVMの中間コードをご存知でない?
LLVMの中間コードをご存知でない?
302デフォルトの名無しさん (ワッチョイ aa60-pRpi)
2018/05/03(木) 19:06:23.30ID:hvfEvXXP0 >>301
LLVM はコンパイラの中で完結しているのではないかな?
LLVM はコンパイラの中で完結しているのではないかな?
303デフォルトの名無しさん (ワッチョイ 03c3-m5Zl)
2018/05/03(木) 19:12:34.62ID:R63QgqLH0 ?
304デフォルトの名無しさん (ワッチョイ bb65-f8tT)
2018/05/03(木) 19:15:49.37ID:OyWVOyw+0 >>302
コンパイラ開発者はとりあえずLLVM-IRに変換すればいいし最終段で機械語に変換するか直接実行するか他の言語のコードに変換するかは自由
というか最初と最後だけ作ればいいわけだから寧ろLLVM-IRが中心
コンパイラ開発者はとりあえずLLVM-IRに変換すればいいし最終段で機械語に変換するか直接実行するか他の言語のコードに変換するかは自由
というか最初と最後だけ作ればいいわけだから寧ろLLVM-IRが中心
305デフォルトの名無しさん (ワッチョイ aa60-pRpi)
2018/05/03(木) 19:22:47.84ID:hvfEvXXP0306デフォルトの名無しさん (ワッチョイ 03c3-m5Zl)
2018/05/03(木) 19:24:37.99ID:R63QgqLH0 すまん、途中から意味分からん
307デフォルトの名無しさん (アウアウウー Sacf-pRpi)
2018/05/03(木) 19:27:41.50ID:kS9rU1V5a .netは仮想マシンなんかつかってないじゃん
308デフォルトの名無しさん (ワッチョイ aa60-pRpi)
2018/05/03(木) 19:42:37.77ID:hvfEvXXP0 >>307
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA_(%E5%85%B1%E9%80%9A%E8%A8%80%E8%AA%9E%E5%9F%BA%E7%9B%A4)
仮想マシン VES は定義されているようだ
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA_(%E5%85%B1%E9%80%9A%E8%A8%80%E8%AA%9E%E5%9F%BA%E7%9B%A4)
仮想マシン VES は定義されているようだ
309デフォルトの名無しさん (ワッチョイ 1e81-fCfW)
2018/05/03(木) 19:45:56.40ID:Vq5AVdhm0 おい!初心者の内容じゃねーぞw
310デフォルトの名無しさん (アウアウウー Sacf-pRpi)
2018/05/03(木) 20:04:38.77ID:kS9rU1V5a >>308
VESは最終段階のコンパイラだよ
VESは最終段階のコンパイラだよ
311デフォルトの名無しさん (ワッチョイ bb65-f8tT)
2018/05/03(木) 20:12:05.92ID:OyWVOyw+0 JITコンパイルはVMとしては認めない派閥が存在することは認める
312デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/03(木) 20:31:23.35ID:GKu15pasa https://www.slideshare.net/ufcpp/ss-34533225
このスライドの67枚目の「良い例」のコードってこれで本当にいいの?
MSDNのParallel.Forの解説には
---
localFinally デリゲートはスレッドごとに 1 回呼び出され、各スレッドのローカル状態に対して最後の操作を行います。 このデリゲートは、同時に複数のスレッドで呼び出される可能性があります。したがって、共有変数へのアクセスを同期する必要があります。
---
と書いてあるから、countはアトミックに操作しないとまずい気がするんだけど
https://msdn.microsoft.com/ja-jp/library/dd783299(v=vs.100).aspx
このスライドの67枚目の「良い例」のコードってこれで本当にいいの?
MSDNのParallel.Forの解説には
---
localFinally デリゲートはスレッドごとに 1 回呼び出され、各スレッドのローカル状態に対して最後の操作を行います。 このデリゲートは、同時に複数のスレッドで呼び出される可能性があります。したがって、共有変数へのアクセスを同期する必要があります。
---
と書いてあるから、countはアトミックに操作しないとまずい気がするんだけど
https://msdn.microsoft.com/ja-jp/library/dd783299(v=vs.100).aspx
313デフォルトの名無しさん (ワッチョイ 1ec9-XJxX)
2018/05/03(木) 21:13:05.22ID:L6Rknns90314デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/03(木) 21:46:41.74ID:GKu15pasa315デフォルトの名無しさん (ワンミングク MMfa-p2tH)
2018/05/03(木) 21:48:43.65ID:ygisZEFQM そうだねだからどうしたの
資料公開してる本人に言えばいいんじゃないの
資料公開してる本人に言えばいいんじゃないの
316デフォルトの名無しさん (ワッチョイ 1fe3-jSAq)
2018/05/03(木) 22:02:53.69ID:nzAwdXFB0 大して変わんねーよ
そんなに処理分けたきゃ
別exeにしてキックしろよ
後はできるならOSがうまくやるし
OSがうまくできなかったらそりゃできないんだろうよw
そんなに処理分けたきゃ
別exeにしてキックしろよ
後はできるならOSがうまくやるし
OSがうまくできなかったらそりゃできないんだろうよw
317デフォルトの名無しさん (ワッチョイ 1e81-IfVY)
2018/05/03(木) 22:05:27.65ID:WY9OnNQR0 どうした発作か
318デフォルトの名無しさん (ワッチョイ 1ec9-XJxX)
2018/05/03(木) 23:06:32.43ID:L6Rknns90319デフォルトの名無しさん (ワッチョイ 2f03-eBll)
2018/05/03(木) 23:38:41.22ID:aADwc6210 おバカwebを鵜呑みにしない有望な>>312なんやからもう少し優しくレスしてやれよw
320デフォルトの名無しさん (アウアウウー Sacf-hPxN)
2018/05/04(金) 00:16:38.85ID:Xm9CVOioa この例だとForよりAggregate使ったほうがいいな
321デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/04(金) 00:37:22.14ID:pvqh60Bra322デフォルトの名無しさん (ワッチョイ 53b3-An5J)
2018/05/04(金) 02:08:40.41ID:DbHU5BaK0 C♯でJavaScriptで生成されてるチャットサイトからコメントビューアを作りたいのですが、JavaScriptが生成したHTMLを取得するのに適したライブラリってどれでしょうか?
Formアプリで作る予定ですが
webBrowserコントロールが一番手軽でしょうか?
Formアプリで作る予定ですが
webBrowserコントロールが一番手軽でしょうか?
323デフォルトの名無しさん (ワッチョイ 53b3-An5J)
2018/05/04(金) 02:10:39.64ID:DbHU5BaK0324デフォルトの名無しさん (ワンミングク MMfa-p2tH)
2018/05/04(金) 02:53:44.45ID:JYHlDWX6M javascriptで生成といっても生成元になるデータを何処かでリクエストしてる筈
そっちを解析して直接的にHttpClientでgetしたほうがええよ
そっちを解析して直接的にHttpClientでgetしたほうがええよ
325デフォルトの名無しさん (ワッチョイ 53b3-An5J)
2018/05/04(金) 04:15:13.73ID:DbHU5BaK0 ありがとうございます
単純にセッションが必要っぽそうだったのでHttpClientでもいけそうです
使い方調べ直します
単純にセッションが必要っぽそうだったのでHttpClientでもいけそうです
使い方調べ直します
326デフォルトの名無しさん (ワッチョイ 0aa6-N4mI)
2018/05/04(金) 16:58:55.69ID:wDfbuSiA0 おバカwebと言えば↓みたいに日本語と英語で全く逆のことが書いてあったりする
基本的にwebに書いてあることは疑ってかかったほうが良さそうね
日本語
https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/best-practices-strings#recommendations_for_string_usage
> 比較のために文字列を正規化する場合は、String.ToUpperInvariant メソッドではなく String.ToLowerInvariant メソッドを使用します。
英語
https://docs.microsoft.com/en-us/dotnet/standard/base-types/best-practices-strings#recommendations_for_string_usage
> Use the String.ToUpperInvariant method instead of the String.ToLowerInvariant method when you normalize strings for comparison.
(グーグル翻訳) 比較のために文字列を正規化するときは、String.ToLowerInvariantメソッドの代わりにString.ToUpperInvariantメソッドを使用します。
基本的にwebに書いてあることは疑ってかかったほうが良さそうね
日本語
https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/best-practices-strings#recommendations_for_string_usage
> 比較のために文字列を正規化する場合は、String.ToUpperInvariant メソッドではなく String.ToLowerInvariant メソッドを使用します。
英語
https://docs.microsoft.com/en-us/dotnet/standard/base-types/best-practices-strings#recommendations_for_string_usage
> Use the String.ToUpperInvariant method instead of the String.ToLowerInvariant method when you normalize strings for comparison.
(グーグル翻訳) 比較のために文字列を正規化するときは、String.ToLowerInvariantメソッドの代わりにString.ToUpperInvariantメソッドを使用します。
327デフォルトの名無しさん (スフッ Sdaa-xC2/)
2018/05/04(金) 17:22:00.73ID:0gwAiFk4d328デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/04(金) 19:43:22.77ID:RYlEGIXb0 グラフィックの扱いについて教えてください
panelに複数の画像イメージを貼り付けたいと思います
(トランプのカードを任意の枚数置くような感じです)
WidthとHeightをpanelのサイズに合わせて、Bitmapオブジェクトを
作ってそこに必要な画像を貼り付けて、最後にPaintイベントでその
ビットマップを Graphics.DrawImage で表示すれば良さそうだ、という
認識です
問題はBitmapオブジェクトに画像を貼り付けることで、メソッドを
調べても、Bitmapオブジェクトの任意の場所に任意のイメージを
貼り付けるものはなさそうです
そもそも用意した画像は Image.FromFile で準備しているのですが、
Imageオブジェクトを貼り付けられるのは Graphics.DrawImage
メソッドになるので、そもそも Bitmap オブジェクトを用意すると
いう発想が間違っているような気もします
多分いろいろ間違って認識しているので、どこから考え直せばよいか
教えていただけると嬉しいです
panelに複数の画像イメージを貼り付けたいと思います
(トランプのカードを任意の枚数置くような感じです)
WidthとHeightをpanelのサイズに合わせて、Bitmapオブジェクトを
作ってそこに必要な画像を貼り付けて、最後にPaintイベントでその
ビットマップを Graphics.DrawImage で表示すれば良さそうだ、という
認識です
問題はBitmapオブジェクトに画像を貼り付けることで、メソッドを
調べても、Bitmapオブジェクトの任意の場所に任意のイメージを
貼り付けるものはなさそうです
そもそも用意した画像は Image.FromFile で準備しているのですが、
Imageオブジェクトを貼り付けられるのは Graphics.DrawImage
メソッドになるので、そもそも Bitmap オブジェクトを用意すると
いう発想が間違っているような気もします
多分いろいろ間違って認識しているので、どこから考え直せばよいか
教えていただけると嬉しいです
329デフォルトの名無しさん (ワッチョイ 1e9a-XJxX)
2018/05/04(金) 19:54:32.04ID:EvkA5vHv0 >>328
ベースの画像のいくつかの任意の位置に画像を貼り付ける描画ならそれで間違っていないけど
https://msdn.microsoft.com/ja-jp/library/system.drawing.graphics.drawimage(v=vs.110).aspx
https://msdn.microsoft.com/ja-jp/library/558kfzex(v=vs.110).aspx
どこを勘違いして悩んでいるのかいまいちわからない
とりあえずBitmap オブジェクトはImageオブジェクトの一種
他にMetaFileとかあるから
そしてGraphics.DrawImageメソッドを使って貼り付けてもベースのBitmap オブジェクトはBitmap オブジェクトのまま
ベースの画像のいくつかの任意の位置に画像を貼り付ける描画ならそれで間違っていないけど
https://msdn.microsoft.com/ja-jp/library/system.drawing.graphics.drawimage(v=vs.110).aspx
https://msdn.microsoft.com/ja-jp/library/558kfzex(v=vs.110).aspx
どこを勘違いして悩んでいるのかいまいちわからない
とりあえずBitmap オブジェクトはImageオブジェクトの一種
他にMetaFileとかあるから
そしてGraphics.DrawImageメソッドを使って貼り付けてもベースのBitmap オブジェクトはBitmap オブジェクトのまま
330デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/04(金) 20:25:52.55ID:RYlEGIXb0 >>329
私の認識は、最終的に描画したいビットマップを用意して、それを Paint イベントで
描画するというものです
Panel1_Paint(object sender, PaintEventArgs e) {
e.Graphics.DrawImage(canvas, 0, 0);
}
で、上記の例で Bitmap canvas; とでもして用意したビットマップに、任意の画像を
貼り付ける方法を知りたいのです
例えば256x256ピクセルのサイズで用意したビットマップに、32x32ピクセルの
画像を3個位貼り付けた canvas を用意したいというものです
「そうではなくて、最終的に描画したいものはGraphicsオブジェクトで用意して、
Paintイベントで毎回描画するのだ」というのが正なのかもしれません
Panel1_Paint(省略) {
e.Graphics.DrawImage(image_1, image_1_x, image_1_y);
e.Graphics.DrawImage(image_2, image_2_x, image_2_y);
...
}
といった感じで
でもなんだか、毎回Paintイベントハンドラに描画処理を全部書くのは変な感じがして、
描画したい画像を用意するのと、実際に描画するのは別の処理ではないかと思っている
次第です
私の認識は、最終的に描画したいビットマップを用意して、それを Paint イベントで
描画するというものです
Panel1_Paint(object sender, PaintEventArgs e) {
e.Graphics.DrawImage(canvas, 0, 0);
}
で、上記の例で Bitmap canvas; とでもして用意したビットマップに、任意の画像を
貼り付ける方法を知りたいのです
例えば256x256ピクセルのサイズで用意したビットマップに、32x32ピクセルの
画像を3個位貼り付けた canvas を用意したいというものです
「そうではなくて、最終的に描画したいものはGraphicsオブジェクトで用意して、
Paintイベントで毎回描画するのだ」というのが正なのかもしれません
Panel1_Paint(省略) {
e.Graphics.DrawImage(image_1, image_1_x, image_1_y);
e.Graphics.DrawImage(image_2, image_2_x, image_2_y);
...
}
といった感じで
でもなんだか、毎回Paintイベントハンドラに描画処理を全部書くのは変な感じがして、
描画したい画像を用意するのと、実際に描画するのは別の処理ではないかと思っている
次第です
331デフォルトの名無しさん (ワッチョイ bbb5-MrO9)
2018/05/04(金) 20:30:54.11ID:Ad2tmUBO0 描画したい画像を用意するのと、それを描画するのは当然別の処理だ。
でもアニメーションさせたいとか画像の変更を即座に描画に反映させたいとかなら、用意した足で再描画させるしかないだろ?
でもアニメーションさせたいとか画像の変更を即座に描画に反映させたいとかなら、用意した足で再描画させるしかないだろ?
332デフォルトの名無しさん (ワッチョイ 1e9a-XJxX)
2018/05/04(金) 20:36:30.50ID:EvkA5vHv0 >>330
何でイベントでやるのか知らないけど複数の描画を同時にやるメソッドはなかったと思うよ
https://dobon.net/vb/dotnet/graphics/index.html
Bitmap canvas=new Bitmap(x,y);
Graphics g = Graphics.FromImage(canvas);
Graphics.DrawImage(image_1, image_1_x, image_1_y);
Graphics.DrawImage(image_2, image_2_x, image_2_y);
何でイベントでやるのか知らないけど複数の描画を同時にやるメソッドはなかったと思うよ
https://dobon.net/vb/dotnet/graphics/index.html
Bitmap canvas=new Bitmap(x,y);
Graphics g = Graphics.FromImage(canvas);
Graphics.DrawImage(image_1, image_1_x, image_1_y);
Graphics.DrawImage(image_2, image_2_x, image_2_y);
333デフォルトの名無しさん (ワッチョイ 1e9a-XJxX)
2018/05/04(金) 20:38:50.67ID:EvkA5vHv0 あ、ごめん
Graphics g = Graphics.FromImage(canvas);
g.DrawImage(image_1, image_1_x, image_1_y);
g.DrawImage(image_2, image_2_x, image_2_y);
だった
Graphics g = Graphics.FromImage(canvas);
g.DrawImage(image_1, image_1_x, image_1_y);
g.DrawImage(image_2, image_2_x, image_2_y);
だった
334デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/04(金) 20:49:55.24ID:RYlEGIXb0 >>331
アニメーションさせたいとか、そういう意図はないです
単に、描画したい画像を用意するのに、Bitmapオブジェクトにさらに画像を
貼り付ける方法がわからなくて悩んでいます
>>332
イベントでやってるのは、単に参考にしたサイトで「Paintイベントハンドラで
処理する」と書いてあったので、それを鵜呑みにしただけです
https://dobon.net/vb/dotnet/graphics/drawimage.html
これを見て気づきましたが、そもそもパネルに直接描こうとするのが間違いで、
パネルにPictureBoxを貼り付けた上でそこに置けば良いのかな?
アニメーションさせたいとか、そういう意図はないです
単に、描画したい画像を用意するのに、Bitmapオブジェクトにさらに画像を
貼り付ける方法がわからなくて悩んでいます
>>332
イベントでやってるのは、単に参考にしたサイトで「Paintイベントハンドラで
処理する」と書いてあったので、それを鵜呑みにしただけです
https://dobon.net/vb/dotnet/graphics/drawimage.html
これを見て気づきましたが、そもそもパネルに直接描こうとするのが間違いで、
パネルにPictureBoxを貼り付けた上でそこに置けば良いのかな?
335デフォルトの名無しさん (ワッチョイ 1e9a-XJxX)
2018/05/04(金) 20:54:32.05ID:EvkA5vHv0 >>334
どっちでも同じだと思う
Graphics g = Graphics.FromImage(panel1.BackGroundImage);
でやれば直接パネルに書き込めるし
ただ大きい画像を表示して画像の表示位置をスクロールさせたいのならパネルの上にPictureBoxが基本
とりあえず書いて動かしてみたら
どっちでも同じだと思う
Graphics g = Graphics.FromImage(panel1.BackGroundImage);
でやれば直接パネルに書き込めるし
ただ大きい画像を表示して画像の表示位置をスクロールさせたいのならパネルの上にPictureBoxが基本
とりあえず書いて動かしてみたら
336デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/04(金) 21:05:17.61ID:aP3h8uSia337デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/04(金) 21:11:39.38ID:RYlEGIXb0 >>336
実現したいことは、「任意の画像を任意の場所に配置したイメージを、panelに描画したい」です
これは明確で、それを実装するための方法でどう悩んでいるかが正しく伝わらないと、答える方も
こちらのレベルがわからなくて困るかと思ってました
実現したいことがちゃんと伝わっていませんでしたか
それ以前の問題でしたね。。。
実現したいことは、「任意の画像を任意の場所に配置したイメージを、panelに描画したい」です
これは明確で、それを実装するための方法でどう悩んでいるかが正しく伝わらないと、答える方も
こちらのレベルがわからなくて困るかと思ってました
実現したいことがちゃんと伝わっていませんでしたか
それ以前の問題でしたね。。。
338デフォルトの名無しさん (ササクッテロラ Sp23-MrO9)
2018/05/04(金) 21:43:04.80ID:pJ6Zbbxdp ファイル読んでバインドするだけちゃうのか?
339デフォルトの名無しさん (ワッチョイ 1fe3-jSAq)
2018/05/04(金) 22:52:54.89ID:IMcj9GIN0 >>337
dobon.netにあるじゃん
dobon.netにあるじゃん
340デフォルトの名無しさん (ワッチョイ 1ee8-XJxX)
2018/05/05(土) 01:53:47.84ID:US1Viqbq0 bmp1が配置先のイメージ、
bmp2がbmp1に配置したいイメージだとしたら以下になる
Graphics g = Graphics.FromImage(bmp1);
g.DrawImage(bmp2, x, y); // bmp1の(x, y)にbmp2を書き込む
g.Dispose();
pictureBox1.Image = bmp1;
これだけでパネルにbmp1が表示される
bmp2がbmp1に配置したいイメージだとしたら以下になる
Graphics g = Graphics.FromImage(bmp1);
g.DrawImage(bmp2, x, y); // bmp1の(x, y)にbmp2を書き込む
g.Dispose();
pictureBox1.Image = bmp1;
これだけでパネルにbmp1が表示される
341デフォルトの名無しさん (ワッチョイ 1ee8-XJxX)
2018/05/05(土) 01:54:36.93ID:US1Viqbq0 あ、パネルにPictureBox貼ってる前提ね
342デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/05(土) 05:38:36.94ID:LRJiKh0v0 >>340
ありがとうございます
思っていることが問題なく実現できました
できるようになってみると、一体何を悩んでいたのか、自分でもわからなくなってしまいました
多分、DrawImage で書き込む先がVRAMだと思い込んでいたのでしょう
ありがとうございます
思っていることが問題なく実現できました
できるようになってみると、一体何を悩んでいたのか、自分でもわからなくなってしまいました
多分、DrawImage で書き込む先がVRAMだと思い込んでいたのでしょう
343デフォルトの名無しさん (ワッチョイ bf9e-DJjQ)
2018/05/06(日) 01:21:02.23ID:dl2mQyCb0 private void Form1_ResizeBegin(object sender, EventArgs e)
{
leftEdge = this.Left;
rightEdge = this.Right;
topEdge = this.Top;
bottomEdge = this.Bottom;
}
private void Form1_ResizeEnd(object sender, EventArgs e)
{
if ((rightEdge < this.Right) && (topEdge > this.Top))
{
// 処理に入らない
}
}
このコードでフォームを右上にドラッグして拡大した場合に処理に入らないのですがどこがおかしいでしょうか
{
leftEdge = this.Left;
rightEdge = this.Right;
topEdge = this.Top;
bottomEdge = this.Bottom;
}
private void Form1_ResizeEnd(object sender, EventArgs e)
{
if ((rightEdge < this.Right) && (topEdge > this.Top))
{
// 処理に入らない
}
}
このコードでフォームを右上にドラッグして拡大した場合に処理に入らないのですがどこがおかしいでしょうか
344デフォルトの名無しさん (ワッチョイ abd2-7y2u)
2018/05/06(日) 01:31:51.93ID:HfMj07lt0 右上にってことは事後の方が top の値が小さくなってるからじゃないの?
345デフォルトの名無しさん (ワッチョイ abd2-7y2u)
2018/05/06(日) 01:32:20.44ID:HfMj07lt0 ああ、そう書いてあるのか。失礼。
346デフォルトの名無しさん (ワッチョイ 1e9a-XJxX)
2018/05/06(日) 01:40:54.74ID:LGFxrhOP0 >>343
イベント有効になっている?
Form1_ResizeEndのメソッドに処理が入っているかそこから確認
int leftEdge, rightEdge,topEdge ,bottomEdge;
public Form1()
{
InitializeComponent();
this.ResizeBegin += Form1_ResizeBegin;
this.ResizeEnd += Form1_ResizeEnd;
}
private void Form1_ResizeBegin(object sender, EventArgs e)
{
this.Text = "start";
leftEdge = this.Left;
rightEdge = this.Right;
topEdge = this.Top;
bottomEdge = this.Bottom;
}
private void Form1_ResizeEnd(object sender, EventArgs e)
{
this.Text = String.Format("{0}:{1}", (rightEdge < this.Right), (topEdge > this.Top));
if ((rightEdge < this.Right) && (topEdge > this.Top))
{
this.Text = "OK";
}
}
これで動いた
イベント有効になっている?
Form1_ResizeEndのメソッドに処理が入っているかそこから確認
int leftEdge, rightEdge,topEdge ,bottomEdge;
public Form1()
{
InitializeComponent();
this.ResizeBegin += Form1_ResizeBegin;
this.ResizeEnd += Form1_ResizeEnd;
}
private void Form1_ResizeBegin(object sender, EventArgs e)
{
this.Text = "start";
leftEdge = this.Left;
rightEdge = this.Right;
topEdge = this.Top;
bottomEdge = this.Bottom;
}
private void Form1_ResizeEnd(object sender, EventArgs e)
{
this.Text = String.Format("{0}:{1}", (rightEdge < this.Right), (topEdge > this.Top));
if ((rightEdge < this.Right) && (topEdge > this.Top))
{
this.Text = "OK";
}
}
これで動いた
347デフォルトの名無しさん (ワッチョイ 7bd6-pRpi)
2018/05/06(日) 01:45:28.35ID:mBsERy4z0 private void DataGridViewFilter()
{
BindingSource objBind;
DataTable objData;
string strFilter;
objData = (DataTable)DataGridView1.DataSource;
if (IsNothing(objData) == false)
{
objBind = new BindingSource();
objBind.DataSource = objData;
strFilter = "Color like '%" + txt_Condition.Text + "%'";
objBind.Filter = strFilter;
}
}
{
BindingSource objBind;
DataTable objData;
string strFilter;
objData = (DataTable)DataGridView1.DataSource;
if (IsNothing(objData) == false)
{
objBind = new BindingSource();
objBind.DataSource = objData;
strFilter = "Color like '%" + txt_Condition.Text + "%'";
objBind.Filter = strFilter;
}
}
348デフォルトの名無しさん (ワッチョイ bf9e-DJjQ)
2018/05/06(日) 02:05:39.13ID:dl2mQyCb0 >>346
ご回答ありがとうございます
イベントは有効です
左や上や左上への拡大縮小ドラッグは正常なのですが左下や右上がおかしいです
提供していただいたコードを試したのですが、何故かは分からないのですが rightEdge < this.Right がfalseになっています
もう少し調べてみます
ご回答ありがとうございます
イベントは有効です
左や上や左上への拡大縮小ドラッグは正常なのですが左下や右上がおかしいです
提供していただいたコードを試したのですが、何故かは分からないのですが rightEdge < this.Right がfalseになっています
もう少し調べてみます
349デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/06(日) 02:22:41.56ID:xovvhFEya 申し訳ないけど、問題を再現できるそのまんまのコードを提示していない時点で
確実に原因はあなたの勘違いにあると断言できる
確実に原因はあなたの勘違いにあると断言できる
350デフォルトの名無しさん (ワッチョイ 8a98-XJxX)
2018/05/06(日) 05:58:39.10ID:CBGkbUql0 Listを値渡しすべき所が参照渡しになってたせいで
くっそハマったんだけど
こういうのって、C#の解説本1冊読めば
注意しろって書いてあるもんなの?
参照渡し云々って単語はかろうじて知ってて
↓のサイトをたまたま見つけて、偶然解決出来たけど
https://webbibouroku.com/Blog/Article/list-copy
エラーや例外にならないバグが怖すぎる・・・
くっそハマったんだけど
こういうのって、C#の解説本1冊読めば
注意しろって書いてあるもんなの?
参照渡し云々って単語はかろうじて知ってて
↓のサイトをたまたま見つけて、偶然解決出来たけど
https://webbibouroku.com/Blog/Article/list-copy
エラーや例外にならないバグが怖すぎる・・・
351デフォルトの名無しさん (ワッチョイ 0a1e-lX4z)
2018/05/06(日) 06:08:47.32ID:994JP5I00 そんなものここで聞けば3秒で解決するし
352デフォルトの名無しさん (ワッチョイ 1fe3-jSAq)
2018/05/06(日) 08:39:03.59ID:j24ysXtO0 c#って物体X(?)は全部参照渡しになるよね
353デフォルトの名無しさん (ワッチョイ faa1-XFQU)
2018/05/06(日) 08:48:15.69ID:6gN3mvyQ0 >>350
それ値渡しじゃない
それ値渡しじゃない
354デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 09:09:18.32ID:9GXSG5IC0 イメージの配置はできるようになりましたが、いろいろ触っていると、チラツキが
気になるようになってきました
テストしてみたところ、下記のレベルでもチラツキが発生します
private void timer1_Tick(object sender, EventArgs e)
{
Graphics g = Graphics.FromImage(canvas);
g.FillEllipse(bg_brush, x, y, radius, radius);
x += 5;
g.FillEllipse(fg_brush, x, y, radius, radius);
count++;
g.Dispose();
pictureBox1.Image = canvas;
if (count == 10)
{
count = 0;
timer1.Stop();
}
}
timer1.Intervalは100msにしてあります
チラつきを押さえるには、フォームの DoubleBufferd を true にすると良いと見ましたが、
true にしても false にしても変わりないようです
そもそも PictureBox は内部処理でダブルバッファリングを行っているとも見ました
まだなにかできることはあるのでしょうか
気になるようになってきました
テストしてみたところ、下記のレベルでもチラツキが発生します
private void timer1_Tick(object sender, EventArgs e)
{
Graphics g = Graphics.FromImage(canvas);
g.FillEllipse(bg_brush, x, y, radius, radius);
x += 5;
g.FillEllipse(fg_brush, x, y, radius, radius);
count++;
g.Dispose();
pictureBox1.Image = canvas;
if (count == 10)
{
count = 0;
timer1.Stop();
}
}
timer1.Intervalは100msにしてあります
チラつきを押さえるには、フォームの DoubleBufferd を true にすると良いと見ましたが、
true にしても false にしても変わりないようです
そもそも PictureBox は内部処理でダブルバッファリングを行っているとも見ました
まだなにかできることはあるのでしょうか
355デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 09:36:21.79ID:9GXSG5IC0 書いてませんでしたが、bg_brushは背景色の、fg_brushは前景色のブラシです
Brush bg_brush = new SolidBrush(SystemColors.Control);
Brush fg_brush = new SolidBrush(Color.Black);
で定義しています
Brush bg_brush = new SolidBrush(SystemColors.Control);
Brush fg_brush = new SolidBrush(Color.Black);
で定義しています
356デフォルトの名無しさん (ワッチョイ 1ee8-XJxX)
2018/05/06(日) 09:54:38.21ID:RTzVBomo0 canvasはどんな風に設定しているの?
357デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 10:06:54.11ID:9GXSG5IC0 canvas = new Bitmap(pictureBox1.Width, pictureBox1.Height);
として定義しています
として定義しています
358デフォルトの名無しさん (ワッチョイ 1ee8-XJxX)
2018/05/06(日) 10:36:38.03ID:RTzVBomo0 DoubleBufferdとか触らずともこっちではちらつかないけどなあ
ちらつくってのはどういうふうに見えることを言ってるの?
panelやpictureBoxのサイズやradiusの値もさらしてみては?
ちらつくってのはどういうふうに見えることを言ってるの?
panelやpictureBoxのサイズやradiusの値もさらしてみては?
359デフォルトの名無しさん (ワッチョイ 7fd3-jSUp)
2018/05/06(日) 10:50:11.40ID:IbwjU9Qn0 どこで何やってんの不明瞭だから当てずっぽうだが
下手に自前描画してるチラつくなら大体OnPaintBackgroundのせい
下手に自前描画してるチラつくなら大体OnPaintBackgroundのせい
360デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 10:55:03.54ID:9GXSG5IC0 https://ideone.com/s4ddqO
これが全コードです
空のWindowsフォームアプリケーションで生成されたフォームに、ボタンとパネル、
PictureBoxを配置しただけの状態です
パネルとPictureBoxは、DockをFillにしてウィンドウサイズに合わせてあります
これが全コードです
空のWindowsフォームアプリケーションで生成されたフォームに、ボタンとパネル、
PictureBoxを配置しただけの状態です
パネルとPictureBoxは、DockをFillにしてウィンドウサイズに合わせてあります
361デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 10:56:51.16ID:9GXSG5IC0 これで、timer1のIntervalを50msにすると、はっきり分かる程度にちらつきます
362デフォルトの名無しさん (ワッチョイ bbb5-MrO9)
2018/05/06(日) 13:14:55.43ID:gzoDeGmX0 垂直同期しろ。
363デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/06(日) 13:31:21.62ID:o/aLqSU5a364デフォルトの名無しさん (アウアウウー Sacf-pRpi)
2018/05/06(日) 15:35:36.42ID:MOQB+J+Ha 解決のヒントにはならないだろうけど
ちらつきって何かということについて
すでに表示されてるものが一瞬透明に見えるから表示がおかしく見えること
たとえば半径100の円が横に5ドット動くとする
普通に考えたらほとんどの円に背景は隠れたままだけど何も考えないで適当にやると
背景が一瞬見えてしまう
一度円を消してなにもない状態を表示して
次に円を書いてるから問題がある
何もない状態を表示しなければいい
ちらつきって何かということについて
すでに表示されてるものが一瞬透明に見えるから表示がおかしく見えること
たとえば半径100の円が横に5ドット動くとする
普通に考えたらほとんどの円に背景は隠れたままだけど何も考えないで適当にやると
背景が一瞬見えてしまう
一度円を消してなにもない状態を表示して
次に円を書いてるから問題がある
何もない状態を表示しなければいい
365デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 18:19:28.93ID:9GXSG5IC0366デフォルトの名無しさん (ワッチョイ bbb5-MrO9)
2018/05/06(日) 18:22:22.08ID:gzoDeGmX0 だからハードの違いだって言ってんだろw
367デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/06(日) 18:25:15.44ID:w10wIaHya368デフォルトの名無しさん (ワッチョイ bbb5-MrO9)
2018/05/06(日) 18:30:35.56ID:gzoDeGmX0 アホばっかり。
369デフォルトの名無しさん (ワッチョイ 03c3-XJxX)
2018/05/06(日) 18:55:10.27ID:9GXSG5IC0 >>367
カクカクした動きとチラつきを同一視しているわけではありません
>>364
が書いたように、今回の例だと黒い円が一瞬消えているような感じがします
移動量の x += 10; をもっと少なくすれば目立たなくなりますが、それでも
なんとなく嫌な感じがします
でも言葉で説明するのは難しいですね
低フレームレートの認識を誤解していたようですが、インターバルを100msとか
50msとかだとディスプレイのリフレッシュレート(あるいは人間の認識力)に比べて
低すぎるので、かえって目立ってしまうということでしょうか?
確かに、インターバルを思い切って5msとかにしてみると、チラつきは軽減されてきた
気がします
カクカクした動きとチラつきを同一視しているわけではありません
>>364
が書いたように、今回の例だと黒い円が一瞬消えているような感じがします
移動量の x += 10; をもっと少なくすれば目立たなくなりますが、それでも
なんとなく嫌な感じがします
でも言葉で説明するのは難しいですね
低フレームレートの認識を誤解していたようですが、インターバルを100msとか
50msとかだとディスプレイのリフレッシュレート(あるいは人間の認識力)に比べて
低すぎるので、かえって目立ってしまうということでしょうか?
確かに、インターバルを思い切って5msとかにしてみると、チラつきは軽減されてきた
気がします
370デフォルトの名無しさん (ワッチョイ 1e9a-XJxX)
2018/05/06(日) 19:33:59.43ID:7/UIZFPx0 ちょっと改変して逆にチラツキをわかるようにしてみた
https://ideone.com/3X8oJh
WinFormプロジェクトを新規で作って元のソースを全部消したうえで、このソースを既存の項目として追加
上がPictureBoxで下がPanel
>>369
PictureBoxのダブルバッファがデフォルトで有効なのは知っているのを確認したので
その上でPanelはデフォルトでダブルバッファが有効だというのを念頭に入れてコードを実行してほしい
同じオブジェクトの動きだが、うちで確認する限りは下はあきらかにチラツキがあって上は目立たない
>>364
>何もない状態を表示しなければいい
というわけで先に描画して動いた部分だけを消すという動作を実現してみたつもり
だったんだけど、移動量を大きくするとカクツキがどうしても目立ってしまってうまくいかない。ギブアップw
>>369
もっとGDI+の動作を把握するとかゲームなどでの実装方法を探すかした方がいいと思う
残念ながら俺の知識ではここまで
https://ideone.com/3X8oJh
WinFormプロジェクトを新規で作って元のソースを全部消したうえで、このソースを既存の項目として追加
上がPictureBoxで下がPanel
>>369
PictureBoxのダブルバッファがデフォルトで有効なのは知っているのを確認したので
その上でPanelはデフォルトでダブルバッファが有効だというのを念頭に入れてコードを実行してほしい
同じオブジェクトの動きだが、うちで確認する限りは下はあきらかにチラツキがあって上は目立たない
>>364
>何もない状態を表示しなければいい
というわけで先に描画して動いた部分だけを消すという動作を実現してみたつもり
だったんだけど、移動量を大きくするとカクツキがどうしても目立ってしまってうまくいかない。ギブアップw
>>369
もっとGDI+の動作を把握するとかゲームなどでの実装方法を探すかした方がいいと思う
残念ながら俺の知識ではここまで
371>>370 (ワッチョイ 1e9a-XJxX)
2018/05/06(日) 19:37:36.72ID:7/UIZFPx0 ごめん
>Panelはデフォルトでダブルバッファが有効だというのを念頭に入れて
Panelはデフォルトでダブルバッファが無効だというのを念頭に入れて
の間違い
>Panelはデフォルトでダブルバッファが有効だというのを念頭に入れて
Panelはデフォルトでダブルバッファが無効だというのを念頭に入れて
の間違い
372デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/06(日) 20:17:55.74ID:LW3/RgRJa うーんw
>>360のコード自体がダブルバッファリングの実装なので、
少なくともGDI+を使う限り、これで本当にちらつくなら何をやってもちらつき回避は不可能。
何度も言うけど、少なくとも俺の環境では低フレームレート特有の不自然さはあっても
フリッカーは確認できない
しつこいようだけど、俺は質問者がちらつき(フリッカー)がどういう現象か
理解してないだけのように思う
>>360のコード自体がダブルバッファリングの実装なので、
少なくともGDI+を使う限り、これで本当にちらつくなら何をやってもちらつき回避は不可能。
何度も言うけど、少なくとも俺の環境では低フレームレート特有の不自然さはあっても
フリッカーは確認できない
しつこいようだけど、俺は質問者がちらつき(フリッカー)がどういう現象か
理解してないだけのように思う
373デフォルトの名無しさん (ワッチョイ 1fe3-jSAq)
2018/05/06(日) 20:20:58.90ID:j24ysXtO0 まあ、unity使ってもDirectX使ってもスクロールとかなめらかにならないしね
グラボも汚いってのも考慮に入れる
市販のゲームでもスクロールしてるときはカクカクグシャグシャはデフォ
グラボも汚いってのも考慮に入れる
市販のゲームでもスクロールしてるときはカクカクグシャグシャはデフォ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- トランプ氏がウォルマート批判 「関税値上げ」阻止へ圧力 [蚤の市★]
- 反撃の中居正広、一世一代の大勝負へ 元フジ女性アナとは「合意の上での性行為だった」と認識 ★15 [Ailuropoda melanoleuca★]
- 機動戦士ガンダム最新作『GQuuuuuuX(ジークアクス)』乃木坂46ネタで炎上 監督の鶴巻和哉氏は乃木坂ファン ★4 [Anonymous★]
- 突出して低い日本女性の賃金 経済の停滞や少子化にも影響 [ぐれ★]
- 太田光「これから中居も人生がある」フジテレビ第三者委への反論の真意推察 [ひかり★]
- 【埼玉・三郷市の小学生ひき逃げ事件】運転していたと見られる男が出頭 埼玉県警 [煮卵★]
- ▶しぐれうい
- 【閲覧注意】万博の木製リング、虫さんの巣になってしまう [884040186]
- 丸亀製麺、1700円… ありがとう自民党 [667744927]
- 【悲報】全角岩手、乃木坂にハマっていた。何故高齢男性を惹き付けるのか [159091185]
- 【悲報】日本の35歳男性の独身率、52%だった。女性は結婚してるのに…日本の少子化の原因ってやっぱり『男のワガママ』だったんだな [257926174]
- ガンダムGgggggggqax、小保方春子や自殺した笹井芳樹をネタにしたことが発覚し炎上 [918862327]