1 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 11:53:26.16 ] このスレッドは 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 関連スレ ふらっとVisual C#,C♯,C#(初心者用) Part96 toro.2ch.net/test/read.cgi/tech/1344151764/ C#, C♯, C#相談室 Part75 toro.2ch.net/test/read.cgi/tech/1346940693/
75 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 19:52:11.38 ] まぁ非PGから見れば、GUIアプリだけがソフトウェアだよね
76 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 19:53:34.58 ] >>70 curses
77 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 19:57:04.22 ] Midnight Commanderをmonoに移植してやったらイカザが喜ぶんじゃないか
78 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 20:13:23.53 ] 全く横だけどCUIも面白そうだな ちょっとさがしてみるわー
79 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 20:19:39.62 ] どこかで見た気がするんだが思い出せんな -> CUIライブラリ
80 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 20:23:57.39 ] >>75 はい
81 名前:72 mailto:sage [2012/09/12(水) 20:25:46.02 ] 投下しておけばよかったか・・・ www.codeproject.com/Articles/17482/Basic-Graphics-For-Your-Console-Applications
82 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 21:13:02.62 ] WinFormで、ツールチップを設定したComboBoxの▼ボタンを押すと、以降、ツールチップが表示されなくなる ちなみに他のコントロールのツールチップを表示するとまた表示されるようになる ※発生環境はWinXP (Win7では発生しない) 何かうまい対策とかある?
83 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 21:14:09.26 ] ○分ちょうどのときにある処理を実行したくて下記のようなコードを書いてみたのですが、 10回に1回くらいの頻度で実行されないことがあります これをちゃんと毎回実行されるように改善したいのですが、どうしたらいいでしょう ※ティックイベントのIntervalは1000 private void timer1_Tick(object sender, EventArgs e) { if (DateTime.Now.Second != 0) return; //ここに○分ちょうどのときにやりたい処理 }
84 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 21:23:54.81 ] DateTime? next = null; private void timer1_Tick(object sender, EventArgs e) { DateTime now = DateTime.Now; if(next == null){ next = now.AddSeconds(-now.Second).AddMinutes(1); } if (now < next) return; next = next.AddMinutes(1); //ここに○分ちょうどのときにやりたい処理 } //ここに
85 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 21:33:17.84 ] next = next.Value.AddMinutes(1); か
86 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 21:46:50.47 ] >>84 確かに「0秒の時」よりこの方法の方がしっかりしてそうですね しばらくこれで様子見してみます ありがとうございました
87 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 22:05:08.78 ] >>75 こういうのはキャラクタベースなだけでGUIの類だろ
88 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 23:11:05.46 ] GUI風のCUIだろ
89 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 23:15:43.70 ] GUIの"Graphical"にはビットマップに限るなんていう含意はないと思うが。 とっくに死語だけど、キャラクターグラフィックなんて言葉もあったな昔
90 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 23:17:48.72 ] そこでCLI⊂CUI派
91 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 23:20:11.89 ] 少なくとも操作体系は完全にGUIと一緒なんだから PG云々の文脈で出てくるべきものではないな コマンドラインインターフェイスの方ならGUIがある今でも十分意味のあるものだけど
92 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 23:30:06.47 ] なんかVS2012のExpressがダウンロード出来るみたいだな async使いたい時はどれをダウンロードしたらいいんだ?
93 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 23:32:07.15 ] >>87 >キャラクタベースなだけで 言葉そのまま Character-based User Interface じゃねーかw >>90 CLI上でCLIですねわかります
94 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 23:33:25.52 ] >>93 あくまで擬似GUIだよな 分類で言えばCUI
95 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 23:36:10.83 ] GUIを自作って面白そうだな難しそうだけど
96 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 23:38:57.51 ] 難しくはないよ めんどくさいだけ OSが持ってるLine命令とか使ってウインドウになるようにシコシコ書いていくだけ 最初はその手の命令をアクセラレートする物をGPUが実装して・・・と進化しただけ
97 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 23:55:17.30 ] webからファイルをダウンロードする方法を検索すると Stream st = res.GetResponseStream(); StreamReader sr = new StreamReader(st, Encoding.GetEncoding("Shift-Jis")); sr.ReadToEnd(); で一気にダウンロードするんじゃなくて バッファでちょっとづつ読み込んでいるようなソースが多いんだけど何か意味があるんですか?
98 名前:デフォルトの名無しさん mailto:sage [2012/09/12(水) 23:58:19.01 ] そりゃネットだからな・・・ ファイルサイズが小さければいいけど大きい場合フリーズしたみたいになるぞ
99 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 00:05:18.68 ] スレッド分けなきゃフリーズするのは一緒 ダウンロードと後処理を並行したほうが時間もメモリ使用量も少ないからだと思うが
100 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 00:08:04.10 ] 内部的にはウィンドウサイズごとに区切って送られてるから大した差はない
101 名前:97 mailto:sage [2012/09/13(木) 00:28:31.37 ] 回答さんくす 進歩状況を表示したい場合も細切れの方がいいのかもと思った
102 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 00:35:23.10 ] MemoryCacheへのオブジェクトの入出力を速くしたいのですが シリアライザを代替する方法などあるでしょうか。 例えばprotbuf-netを使用できるようにしたり、格納するオブジェクトは ある程度固定されているので自前で実装する方法でも構いません。 参考になりそうなサイトなどあれば教えてください。
103 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 00:40:21.46 ] >>102 ボトルネック探して改変するしか無いだろうに。 メモリに貯めるんだったら、ボトルネックはアルゴリズムが一番でかいと思うよ。 ある程度値が決まってるんだったら、全部列挙してIDまたはハッシュでやり取りするのがいいと思う。 負荷は全部メモリに行くから。
104 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 12:04:26.12 ] 失礼します。 OpenCVSharpで作成したAVI動画(コーデックはDIB)をVS2010のMedia Playerコントロールで読み込んでも再生出来ません。 (動画から画像を抽出する事などは出来ます) 標準のWindows Media Playerでは再生出来ます。 この場合、どこを見たら良いのでしょうか? よろしくお願いします。
105 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 12:08:33.19 ] VS2010のMediaPlayerコントロールって何? WPF? WMPのをCOM参照? それで他の動画は再生できるの? WMPのバージョンは?
106 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 12:59:15.53 ] すいません、説明が足りませんでした。 VSのWindowsMediaPlayerコントロールはこれです。 dobon.net/vb/dotnet/programing/playmidifile.html WMPは11と12で確認しました。
107 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 14:22:07.84 ] 別のaviは再生できるのかい?
108 名前:デフォルトの名無しさん [2012/09/13(木) 14:49:02.40 ] EntityFrameworkの主キーでStoreGeneratedPatternプロパティにComputedって設定した場合は、 自前のコードの中で主キーの値を計算するという認識であってますか? その場合、自前のコードはどこに書くのでしょうか?
109 名前:106 mailto:sage [2012/09/13(木) 15:17:48.79 ] >>107 はい、他のAVIは再生できます。 元々他の無圧縮AVIファイルから動画の一部を切り抜く為、 フレーム単位でコピって繋げているだけなのですが、 WindowsMediaPlayerコントロールでは表示出来なくなってしまいます。
110 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 15:18:37.23 ] >>108 MSDNの解説見る限りそんな認識にはならないな
111 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 15:59:46.79 ] (T_T)…
112 名前:デフォルトの名無しさん [2012/09/13(木) 17:39:22.85 ] >>110 まったくわかりません。。。
113 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 22:21:36.71 ] WMPLib.WindowsMediaPlayerってストリーム放送のURIを頻繁に切り替えてplayしてるとOS巻き込んでフリーズするよね OS再起動するしかなくなるからすごくまずいバグだと思うんだけど誰か回避方法知ってる?
114 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 23:00:33.99 ] C#でそういう書き方するとVBみたいだからやめて//
115 名前:デフォルトの名無しさん [2012/09/14(金) 02:30:36.74 ] Windows Formからwebで動かしてみたいって理由だけでWPFで作り変えようとしてるんだけどたとえば今までsettings.xmlとかを作ってた場合ってどうすればいいんだろ。
116 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 02:33:47.29 ] WPFのXBAPってダウンロードされたアプリがブラウザの枠を借りて動くだけで 別にWebで動くわけじゃないぞ? ASP.NETにしとけ
117 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 02:35:51.26 ] え、そうなの? そこらへんよくわかってないんだけどhtmlみたいにブラウザが動かしてくれるのかと思った。 ASP.NETっての見てみるね、ありがとう。
118 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 02:44:51.29 ] C#だけどC#じゃない、みたいな印象を受けた。 用途的にはそれこそJavaScriptでも使えよ、って言われそう。
119 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 03:16:56.29 ] 「独習C# 第3版」と「XAMLプログラミング WPFアプリケーションの概要と開発」を 読み終えたばかりの初心者です。これからWPFでちょっとしたツールから作り始めたいんですが、 スジのいいプログラマーになるために読んでおけって本があったら教えてください。 複雑なデータをクラスで表現する際の定石とか、C#4.0までの構文を反映した デザインパターンなどを、実例やサンプルコードで学べるとかが理想です。
120 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 03:47:50.98 ] そんな本はない
121 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 09:02:46.17 ] 良書は様々な言語に散らばっているので、本読んで腕の良いプログラマになりたければ読める言語を増やす デザインパターンのような、どこの言語でも本質が変わらないような本は、コストの問題でわざわざ移植されない プログラミング.NET Frameworkは読みましょう あとエッセンシャルWPF 買う必要はないです
122 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 09:06:55.52 ] >>113 OS巻き込んで、って時点でドライバとか疑うでしょ
123 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 09:32:34.08 ] switch文で、各case内でローカル変数名がかぶるとおこられるのってなんで? 直すのめんどうだからブラケットでくくってるは
124 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 10:35:10.82 ] >>118 JavaScriptとASP.NETは全然全く違うぞ ASP.NETのC#コードは常にサーバーで動く それにASP.NETで重要なのはビューよりも裏方を普通のC#で書けること >>123 なんでも何も、C系言語では基本的に { } で括った範囲がローカル変数のスコープ caseはただのラベル
125 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 11:04:27.76 ] >>119 あえて言うならVisualC# 実践講座
126 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 13:07:31.27 ] switchはいい加減構造化するべき Javaなんかに比べればC#はCの変なしがらみをだいぶ捨ててるのにもったいない わざわざbreak必須にしたりするくらいなら switch (x) { case (1) { … } case (2, 3) … default … } こんなんにすればいいのに
127 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 13:31:50.60 ] 今の switch (x) { case 1: { … } case 2:case 3: … default … } と殆ど変わらんじゃん
128 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 13:34:02.15 ] break書くのがめんどうってだけじゃないの?
129 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 13:37:41.10 ] >>127 ラベルで飛ぶっていう発想自体が前時代的でKY On Error Gotoかよ
130 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 13:50:15.90 ] goto便利だけどなw
131 名前:97 mailto:sage [2012/09/14(金) 13:55:27.31 ] WinFormからWPFにソフトを移植したいんだけどデータ構造をどうすべきか悩んでいます List<hoge1>.List<hoge2> このようにListが入れ子構造になっているデータをTreeViewに表示しているんですが これをWPFのTreeViewで双方向バインディングさせようとした場合 ObservableCollectionにする必要があるのですが、データ構造を変えてしまうと このデータを使うあらゆるクラスで修正しないといけなくなると思うのですが 何かよい考えありますでしょうか?
132 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 14:00:20.77 ] 内部のデータを直接UIからいじるのは良くないと思う データを持つ層はきっちり分離しておいて、ファサードを通して UIに必要なデータを都度コピーして出し入れするっていう発想で作るのがいいよ
133 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 14:14:06.65 ] 基本的にGUIのデータはGUIで独自に持っといて、OKボタンとかでまとめて内部に反映させるのがいいよ 煩雑なようだけど実際その方がずっとやりやすい
134 名前:97 mailto:sage [2012/09/14(金) 15:46:01.32 ] >>132 >>133 よくあるサンプルコードだと実データをそのままバインディングしたりしているけど それだとだめだったんですね どうやら間違った理解をしていたようです GUI側にデータを持たせるというのは、コードビハインドでGUI用のコレクションを作るということでいいですか? 一応WinFormではコードビハインドにTreeNodeコレクションを作っていました
135 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 18:24:03.43 ] 逆じゃね よくあるサンプルコードだと実データが無くてGUI用データだけなんでしょ
136 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 19:24:54.37 ] AwaiterのContinuation何回も呼び出すと最初からやり直し出すんだな 不思議
137 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 19:27:48.63 ] コンパイラ用って書いてあるじゃん undocumented behaviorってやつだろ
138 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 19:33:09.61 ] ああそうなのか ありがとう
139 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 19:39:05.12 ] いらないよ、お礼なんか
140 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 19:42:32.00 ] そうかVS2012EE出たんだっけか 忘れてたわありがとう
141 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 19:54:02.82 ] ExpressEditionでたの?!
142 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 20:00:14.32 ] 出たら困るのか?
143 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 20:30:08.76 ] 質問です。 GDI+とC#のgraphicsクラスの仕様は違うのでしょうか? と言うのも、フルカラーPNG(32bitARGB)画像を重ねて表示するプログラムをC++からC#に移植したのですが、重ねる画像のアルファ値が保持されず、綺麗に合成されません。 対処方法、もしくは違うアプローチで画像を重ねる方法をご存じでしたら、回答よろしくお願い致します。
144 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 20:31:27.93 ] ソースプリーズ
145 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 20:37:40.27 ] >>144 ソースなければ答えられないバカは黙ってろ
146 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 20:39:54.32 ] 全否定きたw 普段からあちこちでgraphics関連のソースを書いて提供してるんだけどな で結論から言えばできないはずがないんだがおそらく指定するべき項目を指定してないから 思ったように動いてないだけなんだろうけどソースがわからないとミスが指摘できないので出してみればって 言っただけ
147 名前:143 mailto:sage [2012/09/14(金) 20:53:36.60 ] 143です。 <C++> Bitmap* m_pImgBack, m_pImgWork; (上記2つはpng画像を読み込み済み) CDC* pDC = GetDlgItem(IDC_IMAGE)->GetDC(); const HDC hDC = *pDC; Graphics graphics(hDC); //背景の表示 graphics.DrawImage(m_pImgBack, 0, 0, IMAGE_WIDTH, IMAGE_HEIGHT); //透過処理を施して画像を重ねて表示 graphics.DrawImage(m_pImgWork,0,0,IMAGE_WIDTH,IMAGE_HEIGHT); --- <C#> (ImgWorkはBitmapクラス。png画像を読み込み済み) Bitmap ImgBack = new Bitmap("back.png"); Graphics g = Graphics.FromImage(ImgBack); g.DrawImage(ImgWork, 0, 0, IMAGE_WIDTH, IMAGE_HEIGH T); //ピクチャーボックスに転送 this.picImage.Image = ImgBack; ------- 関係とは思いますが、CompositingQualityの設定では改善しませんでした。
148 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 20:58:39.07 ] >>146 最初からそう言えよ ソース晒したところで答え無い奴が多いからな そんな手間を取りたくないんだよ
149 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 21:02:22.68 ] 何べんも聞き返す手間も取りたくねえんだよ鳥頭
150 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 21:06:37.38 ] DrawImage二回してるのと一回しかしてないの GraphicsのDisposeをしてるのとしてないので違いがあるんでないか
151 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 21:09:12.60 ] PNG読み込んだときちゃんとARGBかPARGBになってるか
152 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 21:19:53.72 ] 失敗する理由がわからんなあ ideone.com/DtBJN 読み込んでる画像フォーマットが片方アルファなしとかじゃないの? www.dotup.org/uploda/www.dotup.org3421244.png www.dotup.org/uploda/www.dotup.org3421247.png 名前変わってるけど上記画像をaaa.png bbb.pngに直して デスクトップにおいて実行してみて www.dotup.org/uploda/www.dotup.org3421257.png
153 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 21:24:07.51 ] あのクソで有名なImageListクラスを介してるとか
154 名前:デフォルトの名無しさん [2012/09/14(金) 21:28:29.67 ] bmp1で読み込む方をアルファ抜きの24bitで保存して実行してみたけど問題なく合成される 逆をすれば当然bmp1が塗りつぶされる ごく普通の動作 やっぱ自分は間違ってないと思ってるソース部分に罠があるはず だからソース出せって言ってるのに
155 名前:デフォルトの名無しさん [2012/09/14(金) 21:36:31.73 ] >>153 あれって色深度がおかしくなったような記憶がある
156 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 21:38:35.12 ] >>153 俺もそう思ったよ ソースコードなんて無くても大抵それだと予測できる ソースコード要求する奴は初心者