1 名前:デフォルトの名無しさん [2016/06/15(水) 11:34:28.60 ID:9eV3efFp.net] 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part120 [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/tech/1460040653/ ■関連スレ C#, C♯, C#相談室 Part90 [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/tech/1455160063/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://msdn.microsoft.com/en-us/library/gg145045.aspx referencesource.microsoft.com/
180 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 12:54:06.79 ID:SFAW8Ppa.net] >>174 tomovertex.at.webry.info/201009/article_2.html これがしたいんです。 javaではできるそうですがC#だと透過をそのまま残すのはちょっと難しいらしいですね。
181 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 13:01:08.28 ID:+p0/Ua/B.net] ああBMPじゃなくてBitmapだった >>175 そこのままにやればPNG形式でコピーできるけどペイントはそれに対応していない GIMPはコピーで取り込めるのを確認している クリップボードでBitmapはαチャンネルに対応していないからBitmapでやる限り無理 Bitmap形式でPictureBoxとかで透過表示したい場合は別
182 名前:デフォルトの名無しさん [2016/06/19(日) 13:21:56.41 ID:vFy/bQYV.net] class MyForm : Form { public System.Windows.Forms.Button[] mButton = new System.Windows.Forms.Button[5]; public System.Windows.Forms.TextBox[] mTextBox = new System.Windows.Forms.TextBox[5]; private void Form1_Load(object sender, System.EventArgs e) { //ボタンコントロールのインスタンス作成し、プロパティを設定する for (int intLoop = 0; intLoop <= 4; intLoop++) { //インスタンス作成 mButton[intLoop] = new System.Windows.Forms.Button(); mTextBox[intLoop] = new System.Windows.Forms.TextBox(); //各種プロパティ設定 mButton[intLoop].Name = "Button" + intLoop.ToString(); mButton[intLoop].Text = "Button" + intLoop.ToString(); mButton[intLoop].Size = new Size(150, 30); mButton[intLoop].Location = new Point(10, 10 + 40 * intLoop); mButton[intLoop].Tag = intLoop; mTextBox[intLoop].Name = "TextBox" + intLoop.ToString(); mTextBox[intLoop].Text = "TextBox" + intLoop.ToString(); mTextBox[intLoop].Size = new Size(150, 30); mTextBox[intLoop].Location = new Point(170, 15 + 40 * intLoop); mTextBox[intLoop].Tag = intLoop;
183 名前:デフォルトの名無しさん [2016/06/19(日) 13:22:46.23 ID:vFy/bQYV.net] //以下はデフォルトで設定されているので不要だが念のため設定 mButton[intLoop].Enabled = true; mButton[intLoop].Visible = true; mTextBox[intLoop].Enabled = true; mTextBox[intLoop].Visible = true; //イベントの関連付け mButton[intLoop].Click += new EventHandler(Button_Click); } //フォームにコントロールを追加 //(注意)前面・背面を考慮する場合、AddRange を先に実行したコントロールの方が前面に来る this.Controls.AddRange(mButton); this.Controls.AddRange(mTextBox); } //ボタンのクリック private void Button_Click(object sender, EventArgs e) { int intIndex = (int)((System.Windows.Forms.Button)sender).Tag; MessageBox.Show("上から" + (intIndex + 1).ToString() + "番目のテキストの中身は" + mTextBox[intIndex].Text + "です。"); } public static void Main() { Application.Run(new MyForm()); } }
184 名前:デフォルトの名無しさん [2016/06/19(日) 13:23:59.05 ID:vFy/bQYV.net] 上記のコードを走らせてみてもウインドウしか表示されません どこが悪いのでしょうjか?
185 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 13:24:15.76 ID:SFAW8Ppa.net] >>176 >そこのままにやればPNG形式でコピーできるけどペイントはそれに対応していない 透明の選択という項目があって、ペイント上で絵をその設定でコピーして貼り付けたらちゃんと透明になってますけど? >Bitmapはそもそも透過が無理(Transparentで透過させてるようにみせるのは可能) 分かりました、そうなんですね。 >GIMPはコピーで取り込めるのを確認している さっきGIMPインストールして試しました。 取り込めるんですが透明の部分が白い画像として取り込まれてしまいます。
186 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 13:28:24.96 ID:pXg+pklT.net] ソース貼る時は半角スペース2個を全角スペース1個に置き換えて貼ってくれ…
187 名前:デフォルトの名無しさん [2016/06/19(日) 13:31:10.74 ID:vFy/bQYV.net] >>181 迷惑かけて申し訳ございません 上記のコードについて分かったことがあります Mainメソッドのところに Application.Run(new MyForm()); しかかいていませんね
188 名前:180 mailto:sage [2016/06/19(日) 13:37:08.69 ID:SFAW8Ppa.net] 申し訳ありません。 >さっきGIMPインストールして試しました。 >取り込めるんですが透明の部分が白い画像として取り込まれてしまいます。 これについてはもともとの画像が透過でなかったためそのようになりました。 ただペイントは透過切り取りが可能なのに何故対応してないと分かるのでしょうか?
189 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 13:48:41.98 ID:Kmjvz99s.net] ブラウザで開いた透過PNGをクリップボードにコピーしてPowerPointに貼り付けるとちゃんと透過してるんだけど、これって結構厄介なのかな
190 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 14:09:23.28 ID:1xNvGCg2.net] stringbuilderを使う状況というのは、出来上がる文字列の長さがどれくらい以上だと 効果的なの?
191 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 14:24:31.05 ID:s7xLro2i.net] 長さじゃなくて回数が重要 それでも10〜20程度じゃ速度低下なんてほとんど起こらないので ループで不特定回数の文字連結を行うときに使うようにするといい まぁ何万文字とかそこら辺までいくとStringBuilder使えよって感じはするけど 気になるならいろいろな条件で計測してみるといいよ
192 名前:180 mailto:sag [2016/06/19(日) 14:42:24.03 ID:SFAW8Ppa.net] どんなアプリでもそのアプリ内では透過状態を残す事ができるけど コピーして他アプリに貼り付けた途端に白い色になってしまうな。 これ難しくて実現できないかもしれませんね。 でもSAI_FONっていうソフトがあるんだけど、これは文字をSAIに送ることができて 透明部分が白い部分にならないようになってる。一体どういう仕組みなんだろう? 初心者には難しいのかなぁ。
193 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 14:43:19.04 ID:SFAW8Ppa.net] 一応リンク onix.moe.hm/SAI_FON.html 凄いソフトです。こんなのが作りたい。
194 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 15:18:48.47 ID:SFAW8Ppa.net] 一応excel、gimpは透過画像貼り付け可能でした。 でもexcelからsaiだと透明だったのが白になりましたが。 saiには貼り付けできなかったのが非常に残念です。 かなり厄介な話で初心者スレにはそぐわないので、すいません ここで終わらせて頂きます。ありがとうございました。
195 名前:デフォルトの名無しさん [2016/06/19(日) 15:59:32.10 ID:BrpXsgWP.net] reshaperの設定をエクスポート、インポートする方法を教えて
196 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 16:12:25.49 ID:cEvpvy+s.net] エラー捕まえるためにtry-catch使ってるけど以下のように書くとエラーメッセージはわかるけどエラーが発生したときの変数iの値とかがわからない。 try { for (int i = 0; i < 100; i++) { // 処理いろいろ } } carch (Exception ex) { Console.WriteLine(ex.Message); // ここにブレークポイント } やはりtry-catchの外で変数を宣言するべき? int i; try { for (i = 0; i < 100; i++) { // 処理いろいろ } } carch (Exception ex) { Console.WriteLine(ex.Message); // ここにブレークポイント } 行数増えるし見た目も良くない(個人の感想です。)ので出来れば宣言を分けたくないし、 変数が多いと分けるのも面倒。 プロフェッショナル版を買えば1番目の例でも変数iの値がわかるとかないですよね? 地道に分けるしかない??
197 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 16:23:22.45 ID:s7xLro2i.net] プロでも同じなのでエラーがあったときにどうしたいのかによって書き分けるしかない
198 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 16:34:02.09 ID:pXg+pklT.net] プロ版とかない
199 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 16:44:23.07 ID:Pvc+naRU.net] >>191 try { for (int i = 0; i < 100; i++){ try { // 処理いろいろ } catch(Exception ex) { throw new Exception(i.ToString(), ex); } } } carch(Exception ex) { Console.WriteLine(ex.Message); // ここにブレークポイント }
200 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 17:01:13.57 ID:tj+CW6H4.net] >>180 ペイントで対応していないのは."PNG"というデータ形式指定したデータ(DataFormats."PNG") >>184 Device Independed BitmapってデータタイプだとできるみたいだけどC#でそのデータタイプがどう作られるかわからない あとoffice系は"PNGが取り込めるって聞いているけどoffice持っていないから検証できない DataFormats.Bitmapで透過画像を使うと色化けするか透過が無視される >クリップボードを用いるとBMPデータの透過色が変換されてしまう https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/0416af2a-a2f4-49b5-a085-f117f8576ddf/bmp?forum=vcgeneralja 画像形式としてのBMPがGDIで読み込まれると透過部分無視される構造になっているので検証からしてめんどくさい >>187 それのReadMEに >・SAIへの転送方式を輝度を透明度ではなく、正確にアルファー情報を送るように変更 って書いてあるし クリップボードへコピーすると System.Drawing.Bitmap Bitmap のデータタイプしかコピーされてないから別形式の転送方法使っているとしか思えない SAIは持っていないからこれ以上はわからない
201 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 17:23:11.30 ID:cEvpvy+s.net] >>192 やはりそうですか・・・ >>194 そんなことするくらいなら大人しく宣言分けます!!
202 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 17:55:22.99 ID:mhAMecRA.net] >>196 > そんなことするくらいなら大人しく宣言分けます!! 一時的なデバッグなの? なら例外設定して例外が発生したところで停めればいいと思うが
203 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 18:46:30.63 ID:PKwMSI+4.net] >>195 ペイントやsaiで絵をコピーした状態の時のクリップボードをC#で再現するのは至難の業って事でいいんでしょうか? ペイントもsaiも同じWindowsで動くならクリップボードに格納されているデータ型は特定できそうな気もしますが、 それが出来ないのはちょっともどかしいですね。
204 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 19:04:22.32 ID:tj+CW6H4.net] >>198 >>175 のリンク先のように画像フォーマットをPNG形式にした上でMemoryStreamに保存して そのMemoryStreamの内容を"PNG"(独自形式での指定であってPNG画像を示す物ではない事に注意)としてコピーしたらできる C#に関係ないけどGIMPで画像をコピーするとクリップボード上には PNG DeviceIndependentBitmap System.Drawing.Bitmap Bitmap Format17 の5つのタイプのデータがコピーされている とりあえず話は>>175 のリンク先そのままやってから
205 名前:デフォルトの名無しさん [2016/06/19(日) 19:09:52.57 ID:PKwMSI+4.net] >>199 >>175 はVB.NETで書かれているので>>172 はそれをC#に書き換えたものです。 それをやってsaiにもペイントにも貼り付けできなかったという事です。
206 名前:デフォルトの名無しさん [2016/06/19(日) 19:10:14.88 ID:PKwMSI+4.net] すいませんPNGですね。それで試してみます。
207 名前:デフォルトの名無しさん [2016/06/19(日) 19:15:54.70 ID:PKwMSI+4.net] >>175 をpngで試したところつまり /////////////////////////////////////////////////////////////// MemoryStream ms = new MemoryStream(); Image image = Image.FromFile(filePath);//PNG形式の画像取得 Dataobject data = new DataObject(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Png); data.SetData("PNG", true, ms); Clipboard.SetDataObject(data, true); /////////////////////////////////////////////////////////////// これだとペイントは「クリップボードにある情報はペイントに挿入できません。」という エラーは出ないものの、貼り付けしても無反応です。SAIも無反応でした。 後気になったのが SetDataの第一引数を"PNG"ってしてますが、SaveメソッドのSystem.Drawing.Imaging.ImageFormat.Png みたいに固有のプロパティではなくstring型で渡せるってのが非常にややこしいですね。 だってDataFormats.Bitmapというのは固有のプロパティだけどDataFormats.Pngは存在しなくてPNGの場合は "PNG"としなければならないという… メソッドの内部処理みないと"PNG"が書けるなんて思いませんよ…
208 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 19:17:21.15 ID:tj+CW6H4.net] ああ、ごめん >ペイントやsaiで絵をコピーした状態の時のクリップボードをC#で再現するのは至難の業 はいw DeviceIndependentBitmapがどうなっているか見てみないとわからない あとそれらが内部でコピーしているのとクリップボードに出しているデータは多分別 で >>201 "PNG"のオブジェクト受けられるのはGIMPとかPaint ,Netとか多分MS officeもできるけどSAIが対応しているかは知らない とりあえず透過付き画像をC#でクリップボード介してやり取りするのは>>175 のやり方以外は知らない
209 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 19:18:59.12 ID:tj+CW6H4.net] >>202 SAI_FONとおなじことやりたいのならILSPYでSAI_FONの中身見るしかないな
210 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 19:34:08.47 ID:QhmIGAOc.net] >>197 今はほぼ全ての関数がtry-catchで括ってあって、 実際に何らかの例外が発生したら変数の値とかわからないと追いかけづらいよね!ということに気がついて もしかして有料版なら今のままでもなんとかなるのかなと思って聞いてみた次第です。 どこでどんな例外が発生しても良いようにするにはやはり変数をtry-catchの外で宣言するのが一番確実のような気がします。 例外が頻発してくれればデバッグはしやすいですけど、 月に1回しか発生しないような例外だと、この例外が発生したからこれを例外設定して・・・ではちょっと大変。
211 名前:デフォルトの名無しさん [2016/06/19(日) 19:36:41.05 ID:PKwMSI+4.net] >>204 少なくともC#で作ったものではないんですかねー分からないですが だってデータ型って用意されたものしか基本使えないですよね。
212 名前:デフォルトの名無しさん [2016/06/19(日) 19:41:00.20 ID:PKwMSI+4.net] DataFormats."PNG"と"PNG"は別物??
213 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 19:42:36.55 ID:QhmIGAOc.net] ん、最初から全部設定すれば良いだけかな?
214 名前:デフォルトの名無しさん [2016/06/19(日) 19:52:39.85 ID:PKwMSI+4.net] image.Save(ms, "PNG");これはダメなのな"PNG"じゃなくて System.Drawing.Imaging.ImageFormat.Pngって書かないとダメw ややこしすぎるwww
215 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 20:20:39.57 ID:tj+CW6H4.net] DeviceIndependentBitmapはBMP画像形式ファイルの14バイト目以降をMemoryStreamに移して >>175 の"PNG"を"DeviceIndependentBitmap"にしてクリップボードにコピーするとできた 透過付き画像はGIMPあたりで作るか自分でBMP形式のバイト配列作るしかないが >>206 SAI_FONはILSPYで中身全部見れるから ReadMe.txtにも >Windows7 Pro + VisualC# 2015 Express + .NET Framework4.51(4.0でビルド) って書いてあるし
216 名前:デフォルトの名無しさん [2016/06/19(日) 20:29:23.36 ID:PKwMSI+4.net] そもそも何でDeviceIndependentBitmapという具体的なデータ型が出てきたのか 分かりませんが試してみます!本当に付き合ってくださって感謝してます!
217 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 20:35:30.94 ID:N0SKT7vZ.net] >>205 いや別に君がそれでいいと思うなら止めやしないけど > 月に1回しか発生しないような例外 が発生するまでデバッガで実行させる気?
218 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 20:38:04.11 ID:6taJ36ar.net] >>212 アタッチ
219 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 20:49:39.25 ID:N0SKT7vZ.net] >>213 ブレークかけてないのにアタッチしてどうする気?
220 名前:デフォルトの名無しさん [2016/06/19(日) 20:49:53.10 ID:PKwMSI+4.net] >>210 DeviceIndependentBitmapに変えました。 でもダメでしたね。 ペイント、SAIともに駄目でした… /////////////////////////////////////////////////////////////// MemoryStream ms = new MemoryStream(); Image image = Image.FromFile(filePath);//BMP形式の画像取得 Dataobject data = new DataObject(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); data.SetData("DeviceIndependentBitmap", true, ms); Clipboard.SetDataObject(data, true); ///////////////////////////////////////////////////////////////
221 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 20:58:05.49 ID:tj+CW6H4.net] >>215 >画像形式としてのBMPがGDIで読み込まれると透過部分無視される構造になっている これ忘れないように。ペイントは無理 こちらで確認しているのはGIMPと自作ツールだから SAI_FONはSAIの登録場所確認したり連動させているんだからSAI_FONとSAIのデータのやり取りはクリップボードじゃないはず
222 名前:デフォルトの名無しさん [2016/06/19(日) 21:11:37.93 ID:PKwMSI+4.net] >>216 あぁそうか、ちょっと混乱してるので纏めますね BMPはそもそも透過が無理だ PNGの場合はアルファチャンネルの情報も送ったらペイントとSAIでは クリップボードの状態を読み込めない(OFFICEはOK)なんですね… なのでペイントやSAIでクリップボードから貼り付けるなら Image型のデータまたはBitmap型のデータをClipboardの引数にしてこの 状態からならどのアプリにも共通なデータ型として変換してくれるから 透明は無視されるけど貼り付けはできるってことですね… 事情が分かっただけでも大収穫です これはmicrosoftに懇願するしかないですねwアプリ間で透明状態をやり取りするなんて 技術的に簡単なのにAPI使って難しい事しないとできないとか… そもそもクリップボードなんて滅茶苦茶重要な役割ですよね、デフォルトで1個しか保存できないこと自体おかしい…w 愚痴っちゃってすいません
223 名前:デフォルトの名無しさん [2016/06/19(日) 21:17:17.92 ID:PKwMSI+4.net] >SAI_FONはSAIの登録場所確認したり連動させているんだからSAI_FONとSAIのデータのやり取りはクリップボードじゃないはず あーなるほどそういう事か ハンドル取得して直接描画させる感じですかね、そうなるとお手上げだw
224 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 21:28:59.14 ID:aUmeBUXf.net] 技術的に簡単と言うならおまえがサクっと実装するだけで終わる話なんだけど。 基本を端折ってどれだけ高度なことをしようとしてるか理解していない。 キミの理解の90%は技術、仕様を誤解したままだ。
225 名前:デフォルトの名無しさん [2016/06/19(日) 22:28:58.06 ID:PKwMSI+4.net] 難しさがどこらへんにあるか分からない だって透明情報だってビットマップでこの場所が透明ですよって そういうのを保存したらいいだけじゃね?とかですね それをメモリ上に保存することのどこに難しさがあるのか… こう考えてしまうのは浅はかですか?
226 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 22:40:32.46 ID:3lPnIi6j.net] interfaceはなんでpublicなの? internalならもっと使いやすいのに
227 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 22:53:03.54 ID:XSF8wvd9.net] >>220 難しいって言うか情報が公開されてるかいないかの問題で 情報が公開されてないんだろ?
228 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 23:09:33.38 ID:pXg+pklT.net] internalを使ったことないんだが、あれメリットあるのか?
229 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 23:15:36.21 ID:qvkTbkKV.net] >>221 ? internal interface でいいだろ
230 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 23:18:50.43 ID:PKwMSI+4.net] そのアプリ内では透明度保存できるけど、アプリを超えると透明度保存ができない そしてその仕組みは公開されていない!!! これって公開鍵暗号に似てません?www
231 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 23:25:56.26 ID:aUmeBUXf.net] 外に公開するものをinterfaceと言うのだ。
232 名前:210 mailto:sage [2016/06/19(日) 23:58:28.97 ID:tj+CW6H4.net] >>215 は14バイト目以降を移していないし画像ファイルを直接DeviceIndependentBitmapとしてコピーするコード ideone.com/fyeqXQ ビルドして画像ファイルをドロップするとDeviceIndependentBitmapとしてコピー
233 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 06:46:58.86 ID:A8kl/PgB.net] > これって公開鍵暗号に似てません?www 似てないし何が面白いのかもさっぱりわからん
234 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 07:42:42.33 ID:8+wUFNFJ.net] 仕組みは公開されてるしな。
235 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 08:02:12.18 ID:MOJTeKy8.net] >>191 パラメータをログに吐く仕組みを作ればいいよ ログに吐かれたデータからユニットテストを書いて直して終わり
236 名前:ツールクリエイター ◆RK.FSYZiFD1j mailto:sage [2016/06/20(月) 10:38:33.39 ID:VbKImTWd.net] >>227 かなり複雑なコードですね!ちょっと理解するのに時間がかかるので今日の夕方まで待ってください! わざわざすいません。args[]とかちょっと初めて見ましたww
237 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 15:51:12.52 ID:Vvo6itZJ.net] まさか一番基本の最初のHello Worldまで端折ってるとは。
238 名前:デフォルトの名無しさん [2016/06/20(月) 17:45:16.00 ID:bEvQuIcU.net] int型ってプリミティブ型なのに、toStringメソッドが使えるのは何故ですか? javaならラップクラスにしないとこんなこと出来ないはず。何故でしょう?
239 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 17:57:26.35 ID:Vvo6itZJ.net] Boxing and Unboxing https://msdn.microsoft.com/en-us/library/yz2be5wk.aspx
240 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 18:08:33.52 ID:N0uD9uvA.net] Javaのintはobjectから派生してない。 C#のintはobjectから派生してる。
241 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 18:08:36.30 ID:tys3WiX6.net] C#が凄いから
242 名前:ツールクリエイター ◆RK.FSYZiFD1j [2016/06/20(月) 18:53:32.03 ID:Gi8PdViF.net] >>227 すいません、やはり理解できません。 理解できないところを纏めたので基礎から勉強します。 @ビットマップはx×yの大きさなのに必要な変数が異常に多い lenやらlxやらpやcなど、ビット計算されてるcは意味が分からない A何故(((Image)bm).PixelFormatのようにキャストありと bm.PixelFormatなしがあるのか?キャストがいるなら後者もいるんでは? Bかなり根本的な問題ですが、何故一端メモリストリームに格納する必要があるのか? メモリストリームをいじらなければデフォルトで設定されるから? CByteという変数を使ういみ。int型ではダメなのか?
243 名前:D何故IDataObjectインターフェースを使うのか、SetDataで引数3つならDataObjectで作ればいいのでは Etry〜catch構文を使う理由、これは好みか? などなど疑問が多くて逆に勉強しがいがあると思っています。 かなり時間がかかりますが解読させて下さい。 [] [ここ壊れてます]
244 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 19:31:50.15 ID:ZcaP1ukc.net] www.shuwasystem.co.jp/support/7980html/4551.html csvファイルの扱いを覚えたくて、上のサイトのサンプル(Chapter9)を見ながらやっているのですが、 LoadDataメソッドにある、moneyDataSetのmoneyDataTableに下波線が出ていて使えません。 これはどうすれば解決しますでしょうか? ちなみにサンプルのデザインにあるmoneyDataSetを別のプロジェクトにコピペできませんでした。 ボタン等はできるのになぜなんでしょうか? 分かる方いましたら、よろしくお願いします。
245 名前:227 mailto:sage [2016/06/20(月) 19:40:16.67 ID:Fm5evlwS.net] >>237 申し訳ないけどそのコードはビルドして動くけど間違いだらけで中身見るだけ無駄w 特に24ビットカラーか32ビットカラー以外の画像ファイルを使うとクリップボードに壊れたデータが書き込まれてしまう ADE あまり考えずに書いているから深い意味はない。((Image)bm).PixelFormatはbm.PixelFormatで問題ない C意味がわからない @BMPフォーマットの知識が必要。cはパディング B"DeviceIndependentBitmap"はブラウザとか他で作られたものでもデータの形式はSystem.IO.MemoryStream レスの要点は ・透過付きの画像をクリップボードにBitmapとしてコピーすると色化けするか透過部分が無視される ・C#で"DeviceIndependentBitmap"として透過付きの画像をクリップボードとやりとりできる ・"DeviceIndependentBitmap"はBMPフォーマット形式からBITMAPFILEHEADERの14バイトを外したバイト配列をMemoryStreamに書き込むことで作れる こっちも初心者だから全部説明できる自信もないし,、ここでやると他の人の邪魔になるので悪いけどここまで
246 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 19:43:39.26 ID:Vvo6itZJ.net] 意地でも基本のC#入門、チュートリアルの類を一切読まずににコードを書く気のゆとり馬鹿は無視したほうがいいだろう。
247 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 19:54:18.07 ID:Gi8PdViF.net] いやC#の入門書は読まなくていいと思ってます。 だって本屋で索引から調べてもDataObject型とかMemoryStream型とか載ってませんでしたし。 こういうのって応用的な使い方だから書籍見ても無駄なのではないでしょうか。 だからネット中心に調べてますよ。
248 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 19:54:47.38 ID:2W2DbIcv.net] >>237 は教えてよって意味じゃなくて、こういうこと勉強して出直してくるって意味じゃないのか?
249 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 19:55:51.72 ID:Vvo6itZJ.net] ならいちいち基本的なことを質問するなって話だな。ググレカス。
250 名前:デフォルトの名無しさん [2016/06/20(月) 20:00:22.48 ID:Gi8PdViF.net] >>242 そうですね。纏めただけなんで今から勉強します。
251 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 20:09:13.58 ID:6mpJGPIZ.net] 一応でてるけど1000ページ超で翻訳できないっていうオチなんだよね 儲からない以上は出版されない、仮に$50の本が1万円で発売されても酷評されて終わりでしょ
252 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 20:18:51.12 ID:Vvo6itZJ.net] 全部MSのヘルプ、リファレンスに書いてる。そんなものいちいち入門書に載せるな。 入門書とはリファレンスや他人のソースやを読める知識のない ID:Gi8PdViF みたいな馬鹿が読むものだ。 九九や四則演算は覚えなくていいと思ってる。だけど微積分や三角関数で計算したい、 だがどうやってやるのか理解できないみたいなこと言ってる馬鹿に何を説明しても無駄だ。
253 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 20:21:30.00 ID:p6+rLIxN.net] なんかここの雰囲気がmsdnフォーラムに似てきたな。初心者の質問に対して質問の仕
254 名前:方が悪いと説教するアホがいる。 [] [ここ壊れてます]
255 名前:デフォルトの名無しさん [2016/06/20(月) 20:25:50.43 ID:Gi8PdViF.net] >>246 とりあずマイクロソフトの関数全部(8割くらいは覚えたい)覚えますわ 話はそこからですよね
256 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 20:39:38.35 ID:Vvo6itZJ.net] >>247 散々質問しといて自ら基礎や基本は知らなくていいと主張する初心者なんかmsdn forums にいねーよ、馬鹿。 しかも全然反省してない >>248 意地でも基本はやらない気らしい。基本やればおまえの疑問の9割は解決するのに。 >CByteという変数を使ういみ。int型ではダメなのか? >いやC#の入門書は読まなくていいと思ってます。 なんやねんこいつ。人を馬鹿にしすぎ。
257 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 20:41:25.49 ID:E+iwf+wd.net] >>246 MSDNすら読めないアホが多いから載せざるを得ないんだよ
258 名前:デフォルトの名無しさん [2016/06/20(月) 21:00:51.63 ID:Gi8PdViF.net] >>249 基本文法(デリゲート、ラムダ式、ジェネリクス)も習得してますよ ただMemoryStreamとIDataObjectは本には基本レベルでも載ってないから 難しい事するなら入門書はいらないかなって思いますね
259 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 21:04:42.36 ID:Gi8PdViF.net] Byteはちょっと機械語扱う勝手なイメージがあってどきっとするんですよね 恐らく色の値が0〜255の間にあるからByteがちょうどいいと思うんですけど まぁでも基本的な事も抜けてるかもしれないので立ち返ってみますね
260 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 21:17:21.45 ID:11bdSKsx.net] 次から反応した奴は連座死刑で
261 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 21:23:16.50 ID:E+iwf+wd.net] こいつ前にウイルスがどうとか言っていた奴と同一人物だな 書き方にすごい特徴があるわ
262 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 21:43:43.61 ID:pA2Q9oXS.net] よく気づいたな ネタばらしするチャンスを失ったわ
263 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 22:13:07.10 ID:QoirQNz1.net] 俺、ゲーム会社だったからこういうの一応知ってるけど 普通のビジネスアプリから入った人ってこんなもんじゃないだろか?
264 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 22:14:02.44 ID:Gi8PdViF.net] すいませんしばらくROMします
265 名前:デフォルトの名無しさん [2016/06/20(月) 22:24:35.45 ID:H2dF+tHH.net] 流石に叩きすぎ まとめた事をこれから調べるって言ってるんだからそっとしといてやれ
266 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 22:26:38.59 ID:pnnOeouN.net] >>238 プロジェクトそのままでは普通にビルドできたけど? 何か手元でソース書いたなら、内容書かないと誰も分からないよ……
267 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 22:34:52.47 ID:JgRZho5M.net] あと100年くらい書き込まないで欲しいね
268 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 22:42:50.34 ID:lc7px967.net] >>227 > Bitmap bm = null; bm = new Bitmap(args[0]); 冒頭のこれ見た時点で読む気失せた。
269 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 00:31:14.23 ID:JzFNeNRQ.net] >>259 レスありがとうございます。 情報不足ですみません。ソース元のソースをそのままビルドをするとこちらも問題なくビルドできます。 ですが、私がやりたいのは、ソース元のソースを見ながら自分で打って覚えようと思ってるんです。 csvファイルの扱いを覚えたいので、まずはLoadDataメソッドのコピーをしてます。 LoadDataメソッドの部分をそのままコピーしても、moneyDataSetがまだ存在してないからmoneyDataSetの下に赤波線がでます。 なのでデザインのツールボックスにあるDataSetをフォームにD&Dして、データセットの追加ダイアルログを出します。 すると、型指定されたデータセットのラジオボタンにチェックが入ってますが、どれを指定すればいいのかわからないので、型指定のないデータセットのラジオボタンを選択してOKを押して作成しました。 次に、デザインの下に出てきたDataSet1のnameプロパティをmoneyDataSetに変更しました。 すると今度は、moneyDataTableの下に赤波線がでるのです。 デザインのツールボックスにDataTableはないっぽいですし、どこで作成されてるのかもわかりません。 moneyDataTableはどのように作成すればよろし
270 名前:「のでしょうか? [] [ここ壊れてます]
271 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 00:37:02.77 ID:JzFNeNRQ.net] 連投すみません。 ポインタをmoneyDataTableに合わせると、'データセットに''moneyDataTable'の定義が含まれておらず、型'DataSet'の最初の引数を受け付ける拡張メソッド'moneyDataTable'が見つかりませんでした。 usingディレクティブまたはアセンブリ参照が不足してないことを確認してくさい。 と出てます。
272 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 01:08:10.98 ID:Wg4KewHH.net] nameプロパティをmoneyDataSetプロパティに変更したら怒られるに決まってんじゃん
273 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 01:54:10.88 ID:jaDP2etu.net] クッソ素人な質問で恐縮なんですが クラスとかの概念で訳分かってなくて困ってます まず、こんなコードを書きました。 www.dotup.org/uploda/www.dotup.org911475.jpg.html 個人的なイメージとしては、Mainで作ったインスタンスのパラメータ(と言うんでしょうか)を ボタンを押した時に、label1に表示するという事をしたいんですが この方法じゃダメみたいです。 button_Clickのメソッド内でインスタンスを作成した場合は、表示されましたが それでいくと、ボタンが押されるまではインスタンスは作成されないので インスタンスのパラメータの処理(Lifeの数値を増やしたり減らしたり)ができなくなってしまい、それも困ります。 どうにか、button_Clickのメソッド内でインスタンスを作成せず 他所で作ったインスタンスのパラメータを参照する方法はないでしょうか? そして、おそらく、そもそもの考え方が間違っているのでしょうが、どう間違っているかピンときてないので そこもご指摘頂けたらと思います。 よろしくお願いします。
274 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 02:08:14.62 ID:ZKHuWScf.net] Mob a; をMain()の一つ外に出すとbutton_Click()内からでもアクセス可能になる。 つまりForm1クラスのメンバとして宣言する。
275 名前:265 [2016/06/21(火) 02:34:48.04 ID:jaDP2etu.net] >>266 参照できました、ありがとうございます。 Mob a;だけを出すという発想はありませんでした。 ただ、自分のコードの作りがまずいのかデバッグの際に起動はするのですが ボタンをクリックした際に、nullreferenceexceptionというエラーでデバッグが途中停止するようです。 以下コード www.dotup.org/uploda/www.dotup.org911516.jpg 恐らくMainでインスタンスのパラメータを設定しているが、それを読み込めてない(あるいはスキップしている)のかなぁと思います。 よって各パラメータ(LifeやMana)の変数が空っぽで、表示する対象の数値が存在していないのではと思います。 個人的には、Main関数からスタートするというイメージがあるので、Main関数でパラメータを設定していれば 問題ないだろうという認識でしたが・・・ 何でも聞きすぎという事であれば、ここからは自分で右往左往しながら調べます。 解決策を教えて頂けるなら、教えて頂けたら幸いです。
276 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 02:43:56.88 ID:xCYAjjER.net] >>262 元のプログラムでmoneyDataTableを定義している場所は確認した? moneyDataSet.moneyDataTableってなってるんだから、moneyDataSetの中に定義されていると推測して、中身を見てみるものだけど。
277 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 02:46:11.56 ID:ZKHuWScf.net] その情報だけじゃ分からないけど、Form1のデザイン画面でlabel1削除したんじゃないの?
278 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 02:47:24.48 ID:Zl3pehZF.net] >>267 Program.Mainが実行されるのはプログラムエントリーポイントに指定されてるからです インスタンスメソッドが勝手に実行されたりはしません、クラス名と同じコンストラクタ以外は。 Form1作成時に一緒に初期化するならInitializeComponent()の下に初期化コードを書いてください
279 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 02:52:38.78 ID:YUluzfAb.net] この人もまずは入門書を1冊買って基本的なことを一通り勉強した方が良いな。 ある程度プログラミングの基礎ができてしまえば、後はネットで調べるだけで行けるけど。
280 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 02:52:45.60 ID:xCYAjjER.net] >>267 自分で勝手に書いたMainメソッドは呼ばれない。試しにソリューション全体をMainで検索してみると良い。 概念として、スコープ、フィールド、コンストラクタは調べたほうが良いかも。