ふらっとC#,C♯,C#(初心者用) Part55at TECH
ふらっとC#,C♯,C#(初心者用) Part55 - 暇つぶし2ch116:デフォルトの名無しさん
10/02/06 00:52:57
始まりはどこからなの?

117:デフォルトの名無しさん
10/02/06 00:54:33
>>116
63

118:デフォルトの名無しさん
10/02/06 00:55:42
>>115
foreach (string line in lines) {

じゃなくて

foreach (var element in xdoc.Root.Elements()) {

で書き始めろって言ってんだよ
会話が成り立たない(´・ω・`)

119:デフォルトの名無しさん
10/02/06 00:57:07
>>118
お前も何マジになってんだ。
こういうのはニヤニヤしてればいいんだよ。

120:デフォルトの名無しさん
10/02/06 00:58:07
>>64
名前欄に64って書いとけ

121:デフォルトの名無しさん
10/02/06 01:00:18
>>120
そしてそっこうでDispose()が呼び出される。

122:116
10/02/06 01:00:50
>>117
サンクス

まあ質問者も回答者もどっちもどっちだな

質問者は問題解決の探索の仕方がまずいし
回答者も無駄にあおりすぎ

123:デフォルトの名無しさん
10/02/06 01:03:12
XMLは手だしてないのでしらんけど似たような解析がいるHTMLから考えると
よくわからなければtextbox貼り付けて片っ端からToString()すればいいのに
とか思うんだけどな

124:64
10/02/06 01:03:18
>>118
なるほど。そういうことでしたか。

XDocument xdoc = XDocument.Parse(html);
foreach (var element in xdoc.Root.Elements()) {
string[] lines = element.Replace("<word>","").Replace("</word","").Replace(" ","").Split('>');
foreach (string line in lines) lists.Add(line);
}
と書きました。

ただし、これだと、
xdoc.Root.Elements()とhtmlは、同じものが入っているのと、そのElementをわける方法がわからないので、
string[] lines = html.Replace("<word>","").Replace("</word","").Replace(" ","").Split('>');
foreach (string line in lines) lists.Add(line);
}
と買い手目的は達成してしまいました。
それで、LINQの方法を聞いているわけです。
つまり、xdoc.Root.Elements()をわける方法がわからないのです。


125:デフォルトの名無しさん
10/02/06 01:04:27
もう俺がLinq使った回答教えてやるよ。

var words = xmltext.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).
Where(n => n.Contains("<word>")).
Select(n => n.Replace("<word>", String.Empty).Replace("</word>", String.Empty));

こうね。
これでお開き。寝ろ。

126:デフォルトの名無しさん
10/02/06 01:05:52
だから xdoc.Root.Elements()はなんなのか理解しろ
かんがえろ
要素1個しかないだろ?
だから1回しか実行されないんだよ?


127:64
10/02/06 01:06:11
>>122
なるほど。たしかに探索の仕方はまずい気がします。
どうすればいいんでしょうね。


128:64
10/02/06 01:07:19
>>126
要素が1個しかないのはわかりました。
で、wordにわける方法は?


129:デフォルトの名無しさん
10/02/06 01:07:56
>>128
教えませんよフフン

130:デフォルトの名無しさん
10/02/06 01:08:06
>>128
デバッガでプログラムを止めて考えろ。
DOM系のプログラミングはこれに限る。

131:デフォルトの名無しさん
10/02/06 01:08:31
釣りかも知れんがタフだなあ…。

132:デフォルトの名無しさん
10/02/06 01:10:53
>>127
まあHTMLの方はとりあえずHTML化すれば外部ツールが
作ったHTMLの構造とかを出してくれるのでわかりやすかったけどな

133:デフォルトの名無しさん
10/02/06 01:11:01
XElement.Elements()で取得できるのはXElementなんだからさらにXElementElements()すればいいだけよ。
XDocument.RootもXElementだからね。

134:デフォルトの名無しさん
10/02/06 01:12:35
ふ、ふん!
あなたに言ったんじゃないわよ! もう寝なさいよ!

135:デフォルトの名無しさん
10/02/06 01:13:07
var使ってるからElements()で何が帰ってきてるかも分かってないと思うよ彼

136:デフォルトの名無しさん
10/02/06 01:13:26
>>133を受けて
URLリンク(msdn.microsoft.com)
の例を見て考えよう

137:デフォルトの名無しさん
10/02/06 01:14:14
お前ら釣られすぎ

138:デフォルトの名無しさん
10/02/06 01:23:43
msdnにほとんど答えが載ってるからもう来ないだろ…

139:デフォルトの名無しさん
10/02/06 01:27:48
xmlを
<result>
<words><word>クワガタ</word></words>
<words><word>オオクワガタ</word></words>
<words><word>メダロット</word></words>
<words><word>ミヤマクワガタ</word></words>
<words><word>ヒラタクワガタ</word></words>
<words><word>ノコギリクワガタ</word></words>
<words><word>パラワン島</word></words>
<words><word>ルイスツノヒョウタンクワガタ</word></words>
</result>
にして、
var query = XElement.Load("XMLFile1.xml").Descendants("words");
foreach (var item in query)
Console.WriteLine(item.Element("word").Value);
で解決



140:デフォルトの名無しさん
10/02/06 01:32:12
>>139
ヒントに見せかけた釣りですね

141:64
10/02/06 02:44:50
>>129
なんか昭和のスパルタ教師の香りがするんだけど、
考えれば考えつくとかいったって、考えてとけてたら、こんなとこで聞いてないって。
しかも、自分の方法に迷いがないと思ってるばかときた。
考えろっていって、答えを教えないばかだよ。
1をよめっつーの。


142:デフォルトの名無しさん
10/02/06 02:52:38
煽っても答えませんよ。

143:デフォルトの名無しさん
10/02/06 02:53:55
理解力が足りないのまで俺らのせいにされても困るッスわ…

144:デフォルトの名無しさん
10/02/06 02:57:42
小学生にC#は尚早だぜ。
HSPやってな。

145:デフォルトの名無しさん
10/02/06 03:03:05
>>141
馬鹿に教えを請うってプライド大安売りですね

146:デフォルトの名無しさん
10/02/06 03:08:40
>>141
教えてもらってから居丈高になった方がよくないか?
利根川さんもそう言っていたよ

147:デフォルトの名無しさん
10/02/06 03:15:47
どうせ答えねえクセに白々しいんだよ。

148:デフォルトの名無しさん
10/02/06 03:24:06
なんか昔のAPIスレを見ているようなデジャビュを感じる。

149:デフォルトの名無しさん
10/02/06 03:26:18
>>148
あんまかわらんでしょ
結局他所が用意した機能だから

150:デフォルトの名無しさん
10/02/06 03:47:58
>>149
ふーん。(´・ω・`)

151:デフォルトの名無しさん
10/02/06 04:17:34
元々の>>64でresult.Element("word").Valueとか書いてるのに
それをforeachで書けって言われて>>124になるのかさっぱり分からん

152:デフォルトの名無しさん
10/02/06 07:01:57
なんでこの程度のネタで一晩中引っ張れるんだ

153:デフォルトの名無しさん
10/02/06 10:15:59
>>71
レスありがとうございました。テキストボックスをコードで作ってしまう
んですね。昨日の書き込みの後も、親ピクチャーの子をテキストボックス
にしたりピクチャーに戻したりを繰り返していました。

今はピクチャーに戻して

private void textbox1_TextChanged(object sender, EventArgs e)
{
  //PictureBox1のGraphicsオブジェクトを取得
  Graphics g = picturebox1.CreateGraphics();

  //g.Clear(pictureBox1.BackColor);
  g.Clear(Color.white);

  //フォントオブジェクトの作成
  Font fnt = new Font("MS UI Gothic", textbox1.Font.Size);
  //文字列を位置(0,0)、青色で表示
  System.Windows.Forms.TextRenderer.DrawText(g, textbox1.Text.Trim(), fnt, new Point(0, 0), textbox1.ForeColor);
  //リソースを開放する
  fnt.Dispose();
  g.Dispose();
}

として、g.Clear(Color.white);でごまかす形になりました。
いろいろ教えていただいたり、コードまで見せてもらえてとても助かって
います。

154:デフォルトの名無しさん
10/02/06 12:10:03
質問者は名前欄にレス番いれたらいいんじゃないの?

155:デフォルトの名無しさん
10/02/06 14:23:12
>>63
root["words"].ChildNodes

156:デフォルトの名無しさん
10/02/06 14:30:40
あまいなw

157:デフォルトの名無しさん
10/02/06 14:53:01
再帰ック

158:デフォルトの名無しさん
10/02/06 15:17:34
まさか俺以外はコード書いて試してないのか?

159:デフォルトの名無しさん
10/02/06 15:29:08
Who are you ?

160:デフォルトの名無しさん
10/02/06 15:35:58
>>159
コード書いたあと煽ってた側なんだが…
お前らコンパイルできない偽ヒントばかりだすなよw

161:デフォルトの名無しさん
10/02/06 15:49:46
e?

162:デフォルトの名無しさん
10/02/06 16:09:57
Linqでxml触ったことなかったけどこれでいいのかな?

var query = from result in xdoc.Root.Element("words").Elements("word")
select result.Value;

彼流に合わせたんだけどresult.Valueは気に入らない

163:デフォルトの名無しさん
10/02/06 16:57:36
<A href="javascript:for(i=0;i=77777;i=i+1){alert('   ・ω・   ');}" onMouseOver="for(i=0;i=77777;i=i+1){alert('   ・ω・   ');}"><h1><b>◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆</b></h1></A>

164:デフォルトの名無しさん
10/02/06 17:13:56
<A href="javascript:for(i=0;i=77777;i=i+1){alert('   ・ω・   ');}" onMouseOver="for(i=0;i=77777;i=i+1){alert('   ・ω・   ');}">
<h1><b>◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆</b></h1></A>

165:デフォルトの名無しさん
10/02/06 21:13:25
ファイルをドラッグ&ドロップして、そのファイル名を受け取りたいんだけど、リストボックスではうまく行くけど、
他のコントロールだとカーソルの形だけは変わるけど、ファイル名が受け取れません。
DataGridViewでやりたいんですが、これは仕様なんでしょうか?

166:デフォルトの名無しさん
10/02/06 21:23:19
カーソルの形がどう変わるんだよ
AllowDropとDragEnter/DragOverとDragDropはどうやってんだよ

167:デフォルトの名無しさん
10/02/06 21:38:39
初心者にはできない仕様です

168:デフォルトの名無しさん
10/02/06 21:52:32
>>166
カーソルは十字に変更されるよ。
だからDragEnterは正常に機能している。
メッセージボックスを書いておくとちゃんと表示される。
そのイベントハンドラ内で、e.Effect = DragDropEffects.Copyをしている。

DragDropのイベントハンドラの方にはイベントさえ全然来ない。
AllowDrop=trueにしているけどね。

169:デフォルトの名無しさん
10/02/06 21:56:17
で?

170:デフォルトの名無しさん
10/02/06 22:19:05
>>165
テストコード書いて試したけど出来たよ?

171:デフォルトの名無しさん
10/02/06 22:23:10
自己解決しました。

172:デフォルトの名無しさん
10/02/06 22:25:48
>>165
プロパティWindowでDragDropイベントがちゃんとdataGridView1_DragDrop(例)に登録されてるか確認したか?

173:デフォルトの名無しさん
10/02/06 22:26:44
>>172
は?

174:デフォルトの名無しさん
10/02/06 22:27:47
>>171
お前は誰だ?

質問しといて自己解決の内容を書かないやつが一番たちが悪い

自己解決の内容かけ

175:デフォルトの名無しさん
10/02/06 22:31:18
事故解決しました。

176:デフォルトの名無しさん
10/02/06 22:31:42
事故解決しました。

177:165
10/02/06 22:35:27
というか>>171は俺じゃないんだけどな。

>>172
もちろんイベントハンドラーは割り当てているよ。
デザイナーが吐いたコードを実際にみてaddされているし。
そもそもイベントが来ないのがおかしいな。

178:デフォルトの名無しさん
10/02/06 22:36:19
なんでそんなにえらそうなの?

179:デフォルトの名無しさん
10/02/06 22:37:05
>>171
しね
>>177
家では全く問題ない
もう1度まっさらな状態からTESTコード書いてみたら?

180:デフォルトの名無しさん
10/02/06 22:40:40
俺も問題ないわ

181:デフォルトの名無しさん
10/02/06 22:44:00
俺も

182:デフォルトの名無しさん
10/02/06 22:44:48
↓俺も俺もとかいいから

183:165
10/02/06 22:45:44
そうですか。
何か他のプロパティをセットしていると食い合わせがマズイのかな。
もう一度やってみますわ

184:デフォルトの名無しさん
10/02/06 22:48:03
マウスホイールを回したときのイベントをMouseWheelイベント内に書こうと思ったら、
肝心のスクロールさせる命令を知りませんでした。
例えばホイールを半分回したら、画面を500インチスクロールさせるにはどう記述したらいいのでしょうか。

185:デフォルトの名無しさん
10/02/06 22:52:32
500インチスクロールさせたら死んでしまうぞ!

186:デフォルトの名無しさん
10/02/06 22:53:49
インチでですか
とりあえず画面のスケール取ってきてdot/inchを出して500インチ辺りのドットを出します

あとはAutoScrollPosition使ってください

187:デフォルトの名無しさん
10/02/06 22:56:13
Windowsだと標準は96dpiか?
500*96だから…5万くらいか
1200のモニタ50枚

188:デフォルトの名無しさん
10/02/06 23:35:28
>>186
ありがとうございます。
ホイールでスクロールさせたいのがPrintPreviewコントロールなので、AutoScrollPositionプロパティがないんです。
その場合どのような方法があるでしょうか。


189:デフォルトの名無しさん
10/02/06 23:41:30
ScrollableControl継承したコンテナ(ContainerControlとかね)にPrintPreviewControl入れれば

190:デフォルトの名無しさん
10/02/07 00:26:31
>>188
Win32API使え
あと、ここはAPIスレではないので(ry

191:デフォルトの名無しさん
10/02/07 00:33:56
くっそー…
ノートブックに
①SQL Server 2008 Enteprise edition
②SQL Server 2008 SP1
③VS2008
④VS2008SP1
を上記の順番で入れようとしたら①のインストール時に
0x84B20001
というエラーが出てきて進めない。ググっても英語サイトばかり…。
これら4つをインストールする順番って何かあるものなの?

192:デフォルトの名無しさん
10/02/07 00:39:53
VS2008スレへ池。そのときは3,4だけが入るかどうかは書いとけよ。

193:デフォルトの名無しさん
10/02/07 00:41:00
④でエラーならわかるが、①でエラーでてるのに順番もくそもないだろw
Enterpriseがくそノートに入るかどうか、機器要件みろ。
CPUは要チェックな。


194:デフォルトの名無しさん
10/02/07 00:44:02
2005でも入ってるんじゃね?

195:デフォルトの名無しさん
10/02/07 00:48:03
>>191
確かにそのエラーコードでググると、英語か中国語のページしか検索されないな。
何で日本語ページがないのか…不気味だ。

196:デフォルトの名無しさん
10/02/07 00:49:23
>>195
SQLをリストアしたらいけるみたいに英語で書いてあるぜ。間違っていたらごめんだけど。
古いバージョンのを消せよ。俺は責任を持てないが。

197:デフォルトの名無しさん
10/02/07 00:52:18
みなさんありがとうございます。
買ったばかりのノートなので2005は入っていません。
さっき、③、④と終えたあとに①を試みたらだめでした。これからシステム要件を見てみます。38,000円で買ったノートブックにEnterpriseは無理かもしれないのか…
(>_<;)。


198:デフォルトの名無しさん
10/02/07 00:53:13
値段は関係ないだろw

199:デフォルトの名無しさん
10/02/07 00:54:16
ネットブックでごりごり書いてるが問題ないぜ
SQLは知らんけどw

200:デフォルトの名無しさん
10/02/07 00:55:00
20kで買った糞ノートに同SQLぶち込んだが問題なし

201:デフォルトの名無しさん
10/02/07 00:55:18
>>197
③を入れたら標準的にSQL2005がインストールされるだろ?それは確認したか?

202:デフォルトの名無しさん
10/02/07 01:00:43
>>201
確認してません…(>_<;)。

203:デフォルトの名無しさん
10/02/07 01:04:48
Developerで充分だろ。ってか、スレ違いだからさっさと消えてなくなれ。

204:デフォルトの名無しさん
10/02/07 01:05:32
VSとSQLサーバー、各SPのインストール順序が大事だと聞いたことがあるっちゃ。
SQL2008を入れようとしたらVS2008SP1がないから無理…みたいに怒られたことがあるっちゃ。

205:デフォルトの名無しさん
10/02/07 01:07:35
スレちがいって言ってるだろうが。ハゲ頭が。

206:デフォルトの名無しさん
10/02/07 01:43:56
URLリンク(msdn.microsoft.com)

207:デフォルトの名無しさん
10/02/07 06:35:48
c#ばっかりやってて久々にVC++へ行くと糞に感じるね

なんでわざわざメンバ関数を別にしたりとかデフォでやってるんだろう
c#はよくできてるわ

208:デフォルトの名無しさん
10/02/07 06:37:46
出た当時はそれで良かったのさ

209:165
10/02/07 08:42:49
>>165だけど、原因がわかったので参考のために書いておくよ。
ドラッグイベントのハンドラーの中で、ファイル名を受け取るのに、

string[] filename = (string[])e.Data.GetData(DataFormats.FileDrop, false);

と書くべきを

string filename = (string)e.Data.GetData(DataFormats.FileDrop, false);

としていた。ドラッグは複数ファイル選択される場合もあるから、受け手は配列で受ける必要があるってことみたい。

210:デフォルトの名無しさん
10/02/07 09:46:20
>>209
イベント来ないって言ってなかった?

あと、Listviewだって同じ問題起きると思うけど?

211:デフォルトの名無しさん
10/02/07 09:51:45
>>210
この下の行にMessageBoxを書いていたんだが、なぜかそこに来ないんだよな。
だからイベントが来ていないと思っていたのさ。

212:デフォルトの名無しさん
10/02/07 10:53:30
キャスト失敗してInvalidCastが出てDataGridViewが勝手にトラップして来てないと勘違いしたんだろ
くだらん

213:デフォルトの名無しさん
10/02/07 11:07:44
百済へ行ってこい( ・ω・)y─┛~~

214:デフォルトの名無しさん
10/02/07 11:09:36
例外なんて一番初めに疑うべきだろ…。

215:デフォルトの名無しさん
10/02/07 11:12:11
はあ?( ・ω・)y─┛~~

216:デフォルトの名無しさん
10/02/07 13:33:49
顔文字うぜーから死ね
自己主張したいならコテでもつけろカス

217:デフォルトの名無しさん
10/02/07 13:35:44
(´・∀・`)

218:デフォルトの名無しさん
10/02/07 13:49:56
(´ ∀`)σ)Д`)

219:デフォルトの名無しさん
10/02/07 14:26:40
ウザクないよねー(*´・ω・)(・ω・`*)ネー

220:デフォルトの名無しさん
10/02/07 15:33:43
コンストラクタに関して

public Samp(string filePath);
このようにファイル名を渡してその内容からプロパティに値を代入するようなコンストラクタは
使ってはいけませんか。つまりコンストラクタは直接プロパティの値を渡すように設計すべきで、
ファイルから値を代入してインスタンスを生成したい場合、
Samp smp = Samp.ReadFile(filename);のようにファイルから読み取ってインスタンスを返すような
静的メソッドでも作った方が良いでしょうか

221:デフォルトの名無しさん
10/02/07 15:38:07
コンストラクターで例外でるとめんどくさいし、
後からLoadするか、staticなファクトリーメソッド使う方がいいかもねぇ。
まあ、百歩譲って、コンストラクター2個用意しとくか。

222:デフォルトの名無しさん
10/02/07 15:42:55
C#ではまったく問題なし。
C++界隈にはコンストラクタで例外は避けるべきという都市伝説や
古代のノウハウがはびこっている。

223:デフォルトの名無しさん
10/02/07 15:44:17
どちらでもいい。
どちらでも全く問題ない。

224:デフォルトの名無しさん
10/02/07 15:47:27
読み込んだらすぐにファイルを閉じる場合→静的メソッド
開きっぱなしの場合→コンストラクタ
と区別すると直感的に分かりやすいと思う

225:デフォルトの名無しさん
10/02/07 15:47:56
>>221
むしろコンストラクタで例外が出ると何に比べて何がどう面倒なのか知りたい

226:デフォルトの名無しさん
10/02/07 15:58:34
親クラスが IDisposable なメンバー握ってるとかでも大丈夫なんだっけ?

227:デフォルトの名無しさん
10/02/07 16:16:17
明示的にbase.Disposeは呼ばないとダメ
大丈夫かどうかはもともとそのクラスの実装の責任であって
静的メンバでもコンストラクタでも同じこと

228:デフォルトの名無しさん
10/02/07 17:36:12
よく「印刷」を実行すると部数などの設定画面を表示し、それから印刷を実行する
アプリケーションがあると思うのですが、自分で同じこと(PageSetupDialogではない)をする場合、
自前でフォームを用意する必要がありますか?

229:デフォルトの名無しさん
10/02/07 17:37:53
PrintDialogのこと?

230:デフォルトの名無しさん
10/02/07 17:39:14
>>229
うわあああそれです。ありがとうございます!

231:デフォルトの名無しさん
10/02/07 18:23:56
インストラクターが作れません

232:デフォルトの名無しさん
10/02/07 20:16:41
DOS窓みたいにアプリのメッセージをForm上にダーーっと表示できるようにしたいけど、なにで作ればよいでしょうか。

233:デフォルトの名無しさん
10/02/07 20:20:49
TextBoxに出力するTextWriterを実装してConsole.SetOut

234:デフォルトの名無しさん
10/02/07 21:02:48
なるほど。ちょっと調べてみます

235:デフォルトの名無しさん
10/02/07 22:33:06
で?

236:デフォルトの名無しさん
10/02/07 22:44:04
何が「で?」だ馬鹿だろうお前

237:デフォルトの名無しさん
10/02/07 23:01:47
いちいち茶々入れてるのは別の人でしょ
で?とか自己解決しましたとか

238:デフォルトの名無しさん
10/02/07 23:11:13
>>236
その「馬鹿」に構うお前も、「馬鹿に構うお前」に構う俺も馬鹿なんだろうな

239:デフォルトの名無しさん
10/02/07 23:12:32
>>1-238
ここまで俺の自演

240:デフォルトの名無しさん
10/02/08 00:33:37
で?

241:デフォルトの名無しさん
10/02/08 01:29:41
ん?

242:デフォルトの名無しさん
10/02/08 01:42:17
で?

243:デフォルトの名無しさん
10/02/08 01:52:36
ん?

244:デフォルトの名無しさん
10/02/08 01:56:37
む?

245:デフォルトの名無しさん
10/02/08 02:02:28
し?

246:デフォルトの名無しさん
10/02/08 02:08:01
ゃ?

247:デフォルトの名無しさん
10/02/08 02:40:34
ぶ?

248:デフォルトの名無しさん
10/02/08 08:25:59
↓のようなコードを実行してもMarginBoundsの値が変更できません。
MarginBoundsの値を変更するにはどうすればいいでしょうか?
よろしくお願いします。

int sheetsize1 = 210;
int sheetsize2 = 297;

e.Graphics.PageUnit = GraphicsUnit.Millimeter;

e.PageSettings.Margins.Top = 20;
e.PageSettings.Margins.Left = 20;

e.PageSettings.Margins.Bottom = sheetsize2 - e.PageSettings.Margins.Top;
e.PageSettings.Margins.Right = sheetsize1 - e.PageSettings.Margins.Left;

MessageBox.Show("MarginBounds[Top,Bottom] = " + e.MarginBounds.Top.ToString() + "," + e.MarginBounds.Bottom.ToString(), "Program", MessageBoxButtons.OK, MessageBoxIcon.Information);
MessageBox.Show("MarginBounds[Left,Right] = " + e.MarginBounds.Left.ToString() + "," + e.MarginBounds.Right.ToString(), "Program", MessageBoxButtons.OK, MessageBoxIcon.Information);
MessageBox.Show("MarginBounds[Width,Height] = " + e.MarginBounds.Width.ToString() + "," + e.MarginBounds.Height.ToString(), "Program", MessageBoxButtons.OK, MessageBoxIcon.Information);

249:デフォルトの名無しさん
10/02/08 08:27:22
Readonlyプロパティですから諦めましょう

250:デフォルトの名無しさん
10/02/08 08:35:27
>>249
ということはMarginBoundsは固定値だから気にしなくていいということなんですね。
ありがとうございます。

251:デフォルトの名無しさん
10/02/08 13:26:14


252:デフォルトの名無しさん
10/02/08 14:11:40
C#プログラマ向けのC++本かサイトでお薦めありませんか?

変数とかそこらへんから読んでくのはしんどいし
かといって飛ばすとその中に結構肝心な点が書かれたりとかしてw・・・orz

253:デフォルトの名無しさん
10/02/08 14:14:56
>>252
学問に王道なし

254:デフォルトの名無しさん
10/02/08 14:15:28
C++は改定を控えているので本はお勧めしないとだけ

255:デフォルトの名無しさん
10/02/08 14:19:53
DOBON.NET
URLリンク(dobon.net)

++C++
URLリンク(ufcpp.net)

緑のバイク
URLリンク(homepage3.nifty.com)

ほかにもいっぱいあるけどね

256:デフォルトの名無しさん
10/02/08 14:21:08
へー

257:デフォルトの名無しさん
10/02/08 14:21:34
>>255
君は人の話を話半分に聞くタイプだね?

258:デフォルトの名無しさん
10/02/08 14:21:50
ああぼけてた
C#->C++か

苦痛に感じそうなパターンだな
C++の構文糞だし

259:デフォルトの名無しさん
10/02/08 14:23:40
>>257
昼飯終わってから眠くなる時間なんだよね~
すまんすまん

260:デフォルトの名無しさん
10/02/08 14:24:38
C#->C++というソース変換を機械的に行ってくれるツールはないもんかね?

261:デフォルトの名無しさん
10/02/08 15:12:35
一応あるみたいだね
多分有償だろうけど

URLリンク(www.atmarkit.co.jp)
URLリンク(www.tangiblesoftwaresolutions.com)

262:デフォルトの名無しさん
10/02/08 15:40:12
>>252
ことWindowsにおいては.NET Frameworkが動作している限りにおいて
C++でできることはほぼC#でもできるので、
C++で書かれたプログラムを以下にC#で利用するか、というところに絞って考えた方がいいと思う。
C言語、もしくはWINAPI互換で書かれた外部APIについては、DLLを直接参照してC#で利用することができる。
大抵のメジャーなライブラリはC言語形式のAPIセットがあるのでこれで十分。

C++のコードしかない場合はC++/CLIでラッパーライブラリを書くことになるが、これはかなりな茨の道。
.NET、C++双方の知識が必要になる上に、リソース管理が2重になるのでスゲー煩雑。

これもメジャーなものは.NET向けのラッパーライブラリや互換ライブラリがあるので
そのまま利用すればよい。

263:デフォルトの名無しさん
10/02/08 17:58:25
picturebox1にpicturebox2のimageを貼り付けるにはどのようにしたら良
いでしょうか?

picturebox1の上に小さいサイズのpicturebox2を配置してあり、ボタンが
押されたら2のimageを場所もサイズもそのままに1に反映するようにした
いと考えています。

picturebox1のこの場所にこのサイズで貼り付けるという指定方法が解ら
ず悪戦苦闘です。

264:デフォルトの名無しさん
10/02/08 18:08:27
picturebox1と同じサイズのbitmapを用意してpicturebox2のイメージのコピー作った後
bitmapをpicturebox1に割り当てるとか

265:デフォルトの名無しさん
10/02/08 18:40:07
private void Form1_Load(object sender, EventArgs e)
{
//画像を当てはめ色を塗る
pictureBox1.Image = new Bitmap(
pictureBox1.ClientSize.Width,
pictureBox1.ClientSize.Height,
System.Drawing.Imaging.PixelFormat.Format24bppRgb);
Graphics g1 = Graphics.FromImage(pictureBox1.Image);
g1.FillRectangle(Brushes.AliceBlue, pictureBox1.ClientRectangle);
g1.Dispose();
pictureBox2.Image = new Bitmap(
pictureBox2.ClientSize.Width,
pictureBox2.ClientSize.Height,
System.Drawing.Imaging.PixelFormat.Format24bppRgb);
Graphics g2 = Graphics.FromImage(pictureBox2.Image);
g2.FillRectangle(Brushes.Aqua, pictureBox2.ClientRectangle);
g2.Dispose();
}
private void button1_Click(object sender, EventArgs e)
{
//コピー処理
Graphics g = Graphics.FromImage(pictureBox1.Image);
g.DrawImage(pictureBox2.Image,
pictureBox2.Location);
g.Dispose();
pictureBox2.Visible = false;//同じ位置とのことなので非表示にしてみる
}
private void pictureBox2_Click(object sender, EventArgs e)
{
//コピーが行われたことをわかりやすくするためにとりあえず
MessageBox.Show("pictureBox2がクリックされました");
}

266:デフォルトの名無しさん
10/02/08 18:41:38
でも微妙にうまくいかねえw

267:デフォルトの名無しさん
10/02/08 18:46:40
マルチラインでテキストを改行した時に、行と行のスペースを調整することは出来ますでしょうか?

268:デフォルトの名無しさん
10/02/08 19:26:02
出来るかも

269:デフォルトの名無しさん
10/02/08 19:49:03
画像うんぬんやりたいならWPFに移行しろよ

270:デフォルトの名無しさん
10/02/08 23:38:00
レベル低い奴の相手をするほどヒマじゃない

271:デフォルトの名無しさん
10/02/08 23:44:42
>>270
スレタイを音読3回。
君が要らない子だと分かったら、黙ってブラウザ閉じなさい

272:デフォルトの名無しさん
10/02/09 00:16:07
画像をプログラムに埋め込むとロードが速くなったりしますか?

273:デフォルトの名無しさん
10/02/09 00:47:37
ビットマップを自分で打たせるのか?

274:デフォルトの名無しさん
10/02/09 01:58:53
Image.FromFileとかで外部にあるファイルを読み込むのと
URLリンク(dobon.net)
これのように実行ファイルの中に入れてしまうのとではどっちが速いかという質問でございます

275:デフォルトの名無しさん
10/02/09 02:09:00
おいなにをモタモタしてんだ?
テスト用のプログラムを書いて測ればわかる事だろ?
はやく作れよ

276:デフォルトの名無しさん
10/02/09 02:20:10
埋め込んだら起動が遅くなるしなあ

その例ってのはリソースなんでツールバーのアイコン画像とかそんなのだよ

あと何をやろうとしてるの?

277:デフォルトの名無しさん
10/02/09 02:51:53
>>276
何をやろうとしてるかは極秘です

278:デフォルトの名無しさん
10/02/09 03:11:04
Class A
Class B : A

と2つのクラスがあったとします。

ここでたとえばデータフォルダ "C:\data" という情報を2つのクラスが共に共有しなければ
ならないとき、その情報をどう渡したらいいでしょうか?

いくつか方法を考えてみました。

a) Main()メソッドの中にデータフォルダの変数(string)を定義し、Class AやClass Bのコンストラクタ
  を呼び出すときにその変数を渡す。

b) グローバル変数としてデータフォルダの変数(string)を定義し、Class AやClass Bのメソッドに
  読み込ませる。

c) 外部ファイル(INIファイル)にデータフォルダの情報を保存しておき、Class AやClass Bのメソッドに
  この外部ファイルを読み込ませてデータフォルダの情報を取得させる。

a)~c)どの方法がいいでしょうか?あるいはこれよりいい方法がありましたら教えてください。

279:デフォルトの名無しさん
10/02/09 03:16:26
好きなように
正解はないよ

仕事でやる場合は力持った人の好みでルールが決まるだろうけど

280:デフォルトの名無しさん
10/02/09 05:46:18
どうでもいいけどその条件でb案を採用する理由はねえな
書いてない条件があるってのが恒例だろうけど

281:デフォルトの名無しさん
10/02/09 06:41:49
>>278
俺はいつもa法だな。おかげで引数イッパーイさ(´・ω・`)

282:デフォルトの名無しさん
10/02/09 06:47:59
個人的なものしか作ってないけど
そういう設定を持つクラスをstaticで扱えるようにしてそこを参照してる
その設定自体は基本xmlにしてるけど、面倒くさいときはそのまま内部で書いてる


283:デフォルトの名無しさん
10/02/09 07:50:15
>>282
かってに書けばー(´・ω・`)

284:デフォルトの名無しさん
10/02/09 08:22:41
まあ、設計しだいよねぇ。

その string を参照するのが A, B だけなんだったらコンストラクターで渡すし、
「アプリ全体の設定」みたいなものだったらそれ用のクラス作って
public const もしくは public static readonly メンバーにするかもしれないし。


285:デフォルトの名無しさん
10/02/09 08:34:27
settingsから読めばいいじゃない

286:デフォルトの名無しさん
10/02/09 09:26:41
>>264>>265
レスありがとうございました。コードを参考にしながらいろいろ試して
みます。

287:デフォルトの名無しさん
10/02/09 09:54:16
>>265
DrawImageの際にきっちりと矩形を設定しないとダメだぬぅ
(画像のDPIの値をみてうんぬんしているから位置だけ指定のときは2つの画像のDPIが違うとモヤっと描画されてしまう)
g.DrawImage(Image, Rectangle, Rectangle, GraphicsUnit.Pixel);

288:デフォルトの名無しさん
10/02/09 12:44:14
このスレの重複スレ
C#, C♯, C#相談室 Part55
スレリンク(tech板)

をC#, C♯, C#相談室 Part57として再利用します
住民は被ってると思いますが一応報告

289:デフォルトの名無しさん
10/02/09 12:51:21
>>288
誤爆乙


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch