[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 07/30 09:54 / Filesize : 279 KB / Number-of Response : 1034
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part121



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/

84 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 15:06:04.69 ID:KCpIgVGN.net]
あ〜すんません!
HTMLはこれで。
<html>
<body>
<div>
<a href="#">link</a>
</div>
</body>

85 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 15:09:45.45 ID:vAZ998IX.net]
正規表現で十分可能でしょ

86 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 15:13:39.38 ID:4Hf/IQi6.net]
a要素見つけるだけならGetElementsByTagNameでいいけど
それが目的の要素かどうかの判断はいいのかな

87 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 15:26:43.75 ID:KCpIgVGN.net]
>>84
え?そうなのですか?じゃ例えばこれはどうですかね?
下のdivタグclass="c"を一発で検索とかはできますかね?
とにかく元のHTMLが壊れてるので階層を辿るのが大変なのですぐ検索できればうれしんですが…
<html>
<body>
<div class="a">
<div class="b">
<div class="c">
</div>
</div>
</div>
</body>
</html>

88 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 15:40:05.92 ID:1lYAl1Ex.net]
>>85
前にも出てるけど正規表現で一発

89 名前:デフォルトの名無しさん [2016/06/17(金) 15:42:57.92 ID:BY845Bhr.net]
>>82


90 名前:況がよくわからんのだが、HtmlDocumentに変換することは可能なのか?
それとも壊れていて不可能なのか?
答えはそれ次第だと思うわ
[]
[ここ壊れてます]

91 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 15:47:21.15 ID:KCpIgVGN.net]
>>86
>>87
最終的にそこを、ウェブブラウザコントロールから
クリックしたいので、あくまでもウェブブラウザコントロールを介して検索したいんですよね。
何か良い方法ありますかね?

92 名前:デフォルトの名無しさん [2016/06/17(金) 15:51:43.42 ID:BY845Bhr.net]
>>88
質問に答えろよ



93 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 15:54:12.98 ID:KCpIgVGN.net]
>>89
すいません!
webBrowser1.Document
から色々指定は出来るんですが、そういう事ですかね?

94 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 16:04:12.97 ID:KCpIgVGN.net]
>>89
それともDocumentTextでhtml取得という事ですかね?
ただ動的ページでスクリプトの出力した内容を取得したいので
それも考慮しないといけないんですよねえ…

95 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 16:05:12.15 ID:WJH+jUHE.net]
>>80
範囲選択で下の置換してはいかが? 特殊な条件だとうまくいかないかもだけど、やりたいことは出来そうな気がする。

¥s+

(半角スペース1文字)

96 名前:デフォルトの名無しさん [2016/06/17(金) 16:36:02.39 ID:L4e61ZPp.net]
>>92
出来ました!!
ありがとうございます!

97 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 17:49:48.96 ID:4Hf/IQi6.net]
>>85
目的のdiv要素がclass="c"であることで特定できるなら
GetElementsByTagName(あるいはAll)の中からGetAttribute("className") == "c"になるのを探せばいい

98 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 17:55:17.09 ID:VRoAf94l.net]
>>58
マジかよ初めて知った
クリップボード拡張ソフトにfor(int i=0;i<回数;i++){とfor (int i = 回数; i >= 0; i--){を登録してた
たまに++選択するつもりが、--選択してバグ引き起こしたりしてたけど

99 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 18:11:00.20 ID:jYlDfS4o.net]
>>95
コードスニペット自分で定義できるよ

100 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 19:58:10.13 ID:o2AfJmA4.net]
void KeyeventA(Keyevent e)・・・@
{

x=KeyeventB;・・・・・※

methodA();
methodB();



}

stucks KeyeventB(Keyevent e)・・・・A
{


}


こういう二つのキーイベントメソッドがあって片方の中にキーイベントメソッドを呼ぶような形の場合、
@とAは同じイベントで発生するんでしょうか?もし同じイベントの場合@のほうが処理が早くて、
※つまりAのメソッドが処理できずにmethodA()以下が実行される可能性もあると思うんですけど、実際問題どうなってますか?

101 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 20:15:06.28 ID:D8ioveLA.net]
その原理の場合、
methodAよりmethodBの方が早く処理が終わってしまうことも考慮しなければいけないと思いますが、その点はどうお考えですか?

102 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 20:25:29.64 ID:WJH+jUHE.net]
>>97
色々と意味わからん。
xはFunc<>か何か?
stucksってクラス名?



103 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 21:34:49.97 ID:Q6WYEFZx.net]
>>97
とりあえずC#のコードに見えるようにしてくれよ
private void KeyeventA(object sender, EventArgs e)
{
KeyeventB(null,null);//またはKeyeventB(sender,e);
methodA();
methodB();

}
private void KeyeventB(object sender, EventArgs e)
{
}
これなら間違いなくKeyeventA呼ばれたらKeyeventBも呼ばれるけど
stucks KeyeventB(Keyevent e)って意味がわからない

104 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 21:59:03.27 ID:jYlDfS4o.net]
>>97
スレ間違ってんぞ

105 名前:デフォルトの名無しさん [2016/06/17(金) 22:26:27.66 ID:o2AfJmA4.net]
>>99
>>100
このサイトを参考にしています。
note.chiebukuro.yahoo.co.jp/detail/n78954

private void Form1_KeyDown(省略)
private Point MovePosition(省略)
この二つのメソッドが僕のいうキーイベントが発生したときのメソッドです。

Form1_KeyDownの中でMovePositionが呼ばれていますよね?
そのモデルだけ書きたくて、このサイトのコードをそのままはる訳にはいかないので
かなり簡略化したのが>>97です。

106 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 22:35:06.08 ID:ef5JqFMV.net]
>>102
デバッグでステップ実行すれば一発でわかるけど、自分で試さずに他人に聞くのおかしくね?

107 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 22:35:11.22 ID:KCpIgVGN.net]
>>94
ありがとうございます!試してみます!

108 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 22:37:25.13 ID:8RVZcEaA.net]
>>102
最初からその例を出せばいいものをなんで改悪して説明しようとするのか意味がわからない
MovePositionはForm1_KeyDownから呼び出されている只のメソッドなんだけど

109 名前:デフォルトの名無しさん [2016/06/17(金) 22:45:45.30 ID:o2AfJmA4.net]
>>105
object senderが片方にはないことに今気づきました。

private Point MovePosition(省略) ←これはキーが押されただけで実行される
コールバックではないってことでよろしいでしょうか?

110 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 22:46:00.62 ID:Q6WYEFZx.net]
>>102
簡略化して相手に伝わらなかったら簡略化じゃなく改変だ。stucksとかどこにもないし
そのページはキーイベントでMovePositionに値渡しているだけで
「二つのキーイベントメソッドがあって片方の中にキーイベントメソッドを呼ぶような形」にはなっていない
何をやりたいかわからない

111 名前:デフォルトの名無しさん [2016/06/17(金) 22:49:45.10 ID:o2AfJmA4.net]
>>107
いやコールバックの中にコールバックがあってわけわかんねーってなってました。
単にメソッドだけ書きたかったんでstucksとかは本当適当です。すいませんでした。

112 名前:デフォルトの名無しさん [2016/06/17(金) 22:53:50.48 ID:o2AfJmA4.net]
根本から分かってませんでした。長々とすいませんでした。



113 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 23:21:34.87 ID:1W2aPHlH.net]
結局stucksってなんだったの
叩くつもりはないけど、心底疑問

114 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 23:23:15.68 ID:vyhCMzhv.net]
>>108
一応自分が間違っているかどうかも確認したいから書いておくと
そういうのはコールバックとは言わないぞ、動作として別の関数が呼び出されると定義されているだけで
呼び出されるまで不特定な関数を中で呼び出しているわけでないからな

115 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 23:31:05.76 ID:Sh+IdTol.net]
基本的にはイベントハンドラはコールバックの一種

116 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 23:43:25.84 ID:vyhCMzhv.net]
言葉足らずで申し訳ない
イベントハンドラの登録自体はコールバックを渡しているってことだけど
コールバック登録されているものを中で呼び出す関数を関数内で呼び出す場合はただの呼び出しだということが言いたかっただけだわ

117 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 00:20:16.32 ID:shvAeBe8.net]
DataObjectクラスってのがいまいち使い方わからないんですがどういった時に使うんでしょうか?
microsoftのサイト見ても形式的な説明はあるんですがいまいち用途がわからないです。

118 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 00:22:04.86 ID:EurK/RUq.net]
>>114
そのmicrosoftのサイトに、Clipboard およびドラッグ アンド ドロップと書いてるんだが

119 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 00:24:32.83 ID:auElVeTk.net]
>>114
複数のデータタイプを扱う時。例えばクリップボード゙とのやり取り
dobon.net/vb/dotnet/system/clipboardmultidata.html

120 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 00:39:31.14 ID:shvAeBe8.net]
>>116
なんでClipboard.SetDataObject(bmp, true);でも出来るのに
態々dataに変換してるんでしょうか?

121 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 00:56:38.36 ID:auElVeTk.net]
>>117
BMPだけでなく複数のデータをクリップボードにセットしているんだけど
ちゃんと記事読んだ?
クリップボードに一つのタイプのデータだけセットするのならそこのやり方は必要ない

122 名前:デフォルトの名無しさん [2016/06/18(土) 01:02:01.60 ID:shvAeBe8.net]
>>118
複数のデータなら引数の数は増えないんでしょうか?



123 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 01:08:02.21 ID:auElVeTk.net]
>>119
引数の数って何?
DataObject dataに"DataFormats.Text"と"DataFormats.Bitmap"と"DataFormats.FileDrop"の3つのデータを入れてそれをクリップボードにセットしているだけ
あと勘違いしているかもしれないけどClipboard.SetDataObject(bmp, true);とかで一つずつセットしたら最後にセットした物しか反映されないから

124 名前:デフォルトの名無しさん [2016/06/18(土) 01:19:36.30 ID:shvAeBe8.net]
>>120
クリップボードって3つ保存できましたっけ?
何故3つを纏めてクリップボードに出力できるその理屈がよくわからない

125 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 01:44:02.36 ID:jRCrNOE1.net]
>>121
クリップボードの履歴見れるアプリなんていくらでもあるだろ

126 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 07:59:37.03 ID:YZGqi88u.net]
>>121
dobon.net/vb/dotnet/system/clipboardmultidata.html

>>122
履歴の話じゃない

127 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 08:04:42.66 ID:Fz8S5TPc.net]
>>121
たとえばWordやExcelでコピーしたテキストはメモ帳でも使えるし
VisualStudioでコピーしてWordに貼り付ければ色情報が保持されたまま貼り付けできる

つまり自アプリだけじゃなくて他アプリでの連携の為に用意された機能なんだよ

128 名前:97 mailto:sage [2016/06/18(土) 10:42:52.21 ID:U0yvzOQf.net]
Form1_KeyDownはイベント登録してるから呼ばれる。
MovePositionはイベント登録してないがeの情報だけ受け取っている。

そういうことか、別にsender object書いてるとかそれはデフォルトの
Form1_KeyDownがそうなってるから書かなければいけないだけでjavaみたいに
引数eだけのイベント処理メソッドも書こうと思えば書けるんですね。

129 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 10:45:19.11 ID:U0yvzOQf.net]
そこでなんですが、ステップ実行の仕方が分かりません…
ブレークポイントを二か所
Form1_KeyDownの中の一行
MovePositionの中の一行
で設定してF11ボタン押したんですが、なんかプログラム全体を一行ずつ実行してる感じです。

130 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 11:00:12.85 ID:Fz8S5TPc.net]
それがステップ実行だから間違っていない

131 名前:97 mailto:sage [2016/06/18(土) 11:03:51.53 ID:U0yvzOQf.net]
>>127
2行だけ交互に実行したいけどそれはどうやればいいんですか?

132 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 11:09:37.30 ID:auElVeTk.net]
>>128
見たいところだけブレークポイント設定してデバッグ(F5)



133 名前:デフォルトの名無しさん [2016/06/18(土) 11:16:59.63 ID:U0yvzOQf.net]
>>129
キーイベントの場合F5に反応してしまってそれでプログラムが進んでしまうんですが
そういう対処方法ありますか?

134 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 11:19:56.93 ID:auElVeTk.net]
>>130
デバッグ実行中はF5じゃなくてエディタの続行ボタンを使えば?

135 名前:デフォルトの名無しさん [2016/06/18(土) 11:34:40.03 ID:U0yvzOQf.net]
>>131
それでいけました。
もう一つ疑問ですがブレイクで停止中なのに何故キーボタンには反応してブレーク地点まで飛ぶんでしょうか?

136 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 11:55:57.92 ID:U0yvzOQf.net]
というのはある程度連打したキーをためて一気に実行してほしいからです。

137 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 12:35:07.36 ID:auElVeTk.net]
>>133
キーをためるのは無理だろうから有効なキーコードが入力されるごとにカウントして見たい回数になったところで止めるような部分(ブレークポイントを入れる部分)を追加するか
もしくはキーコードを直接送る部分を作って見たい回数だけForm1_KeyDownを呼び出す

138 名前:デフォルトの名無しさん [2016/06/18(土) 15:14:53.25 ID:U0yvzOQf.net]
>>134
ためるの無理なんですか、承知しました。
後Watchで変数監視できますが、Watch欄に全変数一括して持ってくることは可能ですか?
一つずつ手入力でやってますが少々面倒で…

139 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 16:45:33.56 ID:CfJxj2hM.net]
KeyDownで連打を貯めたいってどういうことなんだ

140 名前:デフォルトの名無しさん mailto:sag [2016/06/18(土) 18:23:09.94 ID:U0yvzOQf.net]
>>136
そもそも溜める理由なかったですね忘れてください。
ウォッチ使えないな、何でホワイトアウトしてるんだろう。

141 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 19:54:27.59 ID:YZGqi88u.net]
>>137
君のために指摘しとくと
グレーアウト


ちな、ホワイトアウトは吹雪とかの場合に使う

142 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 21:19:31.19 ID:Sk62rO3o.net]
dynamic使うと遅くなるの?



143 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 21:26:46.85 ID:euI6F3wt.net]
最初の一回は遅いけどそれ以後は割と速いよ

144 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 21:30:23.49 ID:Sk62rO3o.net]
>>140
二回目以降も若干遅いと言うこと?

145 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 22:10:48.65 ID:pG9pCEms.net]
>>141
同じ速度だったら逆に凄い

146 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 22:45:14.91 ID:VROp9xuJ.net]
お前らこんな調

147 名前:ラもしない奴の連投質問によく答えてやるよな []
[ここ壊れてます]

148 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 23:31:37.64 ID:en0l8YJd.net]
本人の代わりにググるスレとかあったらいいのにね

149 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 08:50:20.52 ID:mQfhDLF3.net]
アプリの起動しっぱなしってのは.NETではあまり勧められる事ではないでしょうか?
ブラウザ起動時はずっとアプリ実行して立ち上げてる状態にしたいんだけど、このことで悪影響とかありますか?

150 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 08:57:22.89 ID:I//I4PRq.net]
メモリリークとかハンドルリークとかありそう

151 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 09:06:15.32 ID:zgl2bkrp.net]
>>146
それは.Netに原因があるわけでなく作られたアプリに問題がある場合な

152 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 09:11:05.00 ID:I//I4PRq.net]
>>147
いいやマイクロソフトが悪い



153 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 09:15:27.52 ID:+p0/Ua/B.net]
>>145
Vista以降は明示的に切らない限り.Netのランタイムはずっと起動している
.Netのプログラムはそのランタイム上で動いている
これで問題が起こるのならランタイムそのものか動いているプログラムに問題があるかしかない

154 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 09:41:58.91 ID:s7xLro2i.net]
>>148
ソフト側の問題をマイクロソフト側の問題にすり替える人間のクズだな

155 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 10:00:22.79 ID:mQfhDLF3.net]
>>149
.NETのランタイムってSQLとかっていう名前のプロセスも含まれますか?
具体的にどれかタスクマネージャーで確認するにはどうすればいいんでしょう

156 名前:デフォルトの名無しさん [2016/06/19(日) 10:05:56.55 ID:mQfhDLF3.net]
>>146
変数はメモリーの外で宣言するようにしているのでメモリリークの心配はないかと。
というかmainメソッド内で変数宣言するメリットってあるんでしょうか?

157 名前:デフォルトの名無しさん [2016/06/19(日) 10:06:37.67 ID:mQfhDLF3.net]
変数はメソッドの外のタイプミスです。

158 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 10:13:51.19 ID:qvkTbkKV.net]
そのレベルなら今ウダウダと細かい事気にしないで
とにかく入門書の一冊でもちゃんと終わらせるのと、とにかく作って経験積んだ方がいいよ
はっきり言って基本的なところが分かってないから、個別にこんなところで聞いてたらキリがない

159 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 10:35:19.94 ID:+p0/Ua/B.net]
やりたいことがあって〜はどうしたらいいんでしょうかなら質問スレらしくていいけど
・〜はメリットあるんでしょうか
・〜はどういうときに使うんでしょうか
この手のは説明するのにキリが無いんだから自分が使わないのなら気にするなよ

160 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 11:09:23.85 ID:FiqN+bVa.net]
質問者様に向かってなんだその言い草は
お前こそ答える気がないなら気にしないで黙ってろ
答える気がある奴が勝手に答えればいい

161 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 11:14:19.72 ID:qvkTbkKV.net]
>>156
変数のスコープが分かってない子に解説してたらそれだけでこのスレ終わっちゃうぞ

162 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 11:15:49.94 ID:+p0/Ua/B.net]
>>156
質問するなとは書いてないんだから俺に突っかかる前に>>152に答えてやれよ



163 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 11:18:55.41 ID:D8PkNzp4.net]
>>152
変数の有効範囲(スコープ)は出来る限り狭い方が良い。
可読性が向上するので、バグが発生し難くなる。

164 名前:デフォルトの名無しさん [2016/06/19(日) 11:38:16.10 ID:mQfhDLF3.net]
>>159
メソッドの引数が増えてしまいませんか?
メソッドはの戻り値もvoidにしたいし

165 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 11:43:51.24 ID:s7xLro2i.net]
グローバル変数が100、200と増えてきたとき、どの変数がどのように使用されているかを完全に把握できるの?

166 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 11:55:12.16 ID:CQK/Xnlu.net]
>>156
バカ発見

167 名前:デフォルトの名無しさん [2016/06/19(日) 12:01:33.56 ID:mQfhDLF3.net]
>>161
僕がメソッド外に書く変数は

・キャラのポジションや攻撃力などの基本情報の変数
・Graphics Bitmapなど極端にメモリを消費する変数

メソッドに書かない変数は

・添え字
・ファイルパス(フォルダの階層なのでプライバシーに関わるから)

168 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 12:09:15.73 ID:esEuQC7H.net]
昔、自分で作ったアプリを直して復活させようとと10年ぶりくらいにVS立ち上げてみた(XPでwww)
使い方さっぱり忘れてるわ!!!ほかのアプリと混同してたりwww
暫くここを読んで思い出します・・・
とりあえずこのスレがまだあって嬉しかったwwwまたよろしく。

169 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 12:09:39.36 ID:s7xLro2i.net]
全部メソッド外じゃんw
てかプライバシーって何?外に書こうが内に書こうが何も変わらないぞ

170 名前:デフォルトの名無しさん [2016/06/19(日) 12:13:05.53 ID:mQfhDLF3.net]
>>165
頭ぼけてますね

メソッド外
・キャラの基本情報
・GraphicsやBitmapなどメモリを占有するクラスの宣言とオブジェクト生成


メソッド内に書く変数は

・ループで使う添え字
・ファイルパス

171 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 12:15:56.71 ID:D8PkNzp4.net]
まともに答えても我流を直そうともせず余計な事ばっかり気にしてるいつもの子だった…。

172 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 12:20:57.59 ID:pXg+pklT.net]
>>145
問題ない

>>152
メソッド外から使う変数はメソッドの中に書いてはいけない

>>160
スパゲティコードになりそう

>>163
とりあえずオブジェクト指向学ぼうか?
あとメソッドの外に書く変数じゃなくて、インスタンス変数/クラス変数って言おうね
>キャラのポジションや攻撃力などの基本情報の変数
これはイントランス変数
>Graphics Bitmapなど極端にメモリを消費する変数
こういうメモリを大量に消費する物は、出来るだけnewしないようにしないといけないから必要最低限だけ作るようにする
参照型は、スタックに入るのはオブジェクトへの参照だからローカル変数/メンバ変数はあまり関係ない
時と場合による
>添え字
添え字って言っても色々あるから時と場合による
for文とかなら基本ローカル
>ファイルパス(フォルダの階層なのでプライバシーに関わるから)
プライバシーは関係ない。ローカルで動かすものは全て見られていると思え
あと、文字列も参照型だから参照しかスタックにはつまれない



173 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 12:25:22.36 ID:pXg+pklT.net]
>>166
とりあえず「すっきり分かるjava入門」読もうか?
c#の構文はjava+αだから、javaを覚えればc#も書ける
オブジェクト指向とか、参照とか結構詳しく解説してあるからおすすめ
俺もこの本でjava勉強した後にc#したけど、構文一緒だったから1日で出来るようになったよ
javaの構文をそのままc#で使って、少しずつc#風に(プロパティとか)書き換えるといい

174 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 12:31:07.53 ID:D8PkNzp4.net]
>>169
スッキリわかるJava入門か。
帯に「RPG制作を例に、オブジェクト指向もよくわかる!」とか書いてあるし、ぴったりかもね。

175 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 12:31:16.41 ID:gfPWR5Hk.net]
最近はインジェクション以外の変数を滅多に書かなくなったな
継続的にリファクタリングしてるから変数がほとんど引数になる

176 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 12:43:20.30 ID:SFAW8Ppa.net]
以下のプログラムなんですが実行を試み、ペイントに貼り付けようとすると
「クリップボードにある情報はペイントに挿入できません。」となってしまいます。
原因は何でしょうか?

///////////////////////////////////////////////////////////////
MemoryStream ms = new MemoryStream();
Image image = Image.FromFile(filePath);//BMP形式の画像取得
Dataobject data = new DataObject();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
data.SetData(DataFormats.Bitmap, true, ms);
Clipboard.SetDataObject(data, true);
///////////////////////////////////////////////////////////////

参考にしたページは
dobon.net/vb/dotnet/string/clipboardcsv.htmlです。
imageをクリップボードに表示する事はもちろん可能でした。

177 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 12:49:41.26 ID:FiqN+bVa.net]
C#

178 名前:erならもっと食いつくかと思ったのにそうでもないね
本人が素知らぬ顔で質問を続けたせいか
[]
[ここ壊れてます]

179 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 12:52:17.05 ID:+p0/Ua/B.net]
>>172
MemoryStreamにいれてコピーしたらMemoryStreamに格納しないと取り出せない
何で直接BMPでコピーしない?

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か?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<279KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef