ふらっとC#,C♯,C#(初心者用) Part67
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/12/16(木) 18:23:33「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっとC#,C♯,C#(初心者用) Part66
http://hibari.2ch.net/test/read.cgi/tech/1290854247/
■関連スレ
C#, C♯, C#相談室 Part63
http://hibari.2ch.net/test/read.cgi/tech/1289733048/
VB.NET質問スレ(Part35)
http://hibari.2ch.net/test/read.cgi/tech/1284423653/
くだすれC++/CLI(初心者用)part2
http://pc12.2ch.net/test/read.cgi/tech/1268613679/
■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。
直接貼る場合は下記サイトなどを利用してhtmlエンコードした方が
インデントも残って見やすいです
http://kawama.jp/php/encode_html.php
0175デフォルトの名無しさん
2010/12/22(水) 11:27:38ブラウザからコピーしてペーストすると、書式もペーストされるため、困ってます。
Paste() のオーバーライドが不可だったため、今はKeyDownでの独自ペースト処理を検討しています。
0176デフォルトの名無しさん
2010/12/22(水) 12:15:20状況としては別個で、次のそれぞれについて、必要なコードが知りたいのです
a.あらかじめ作成したフォームにWMPコントロールをコードから追加
b.フォームをコード上で作成し、コードからWMPコントロールを追加
c.コードから参照設定を行う
d.c.を行いb.を実装する(要手動ビルド)
0177デフォルトの名無しさん
2010/12/22(水) 13:07:07タブ型ブラウザじゃなくて、チェックボックス式ブラウザだ。
くくく、これはすげえ賜物だぞ・・ すげえ、気になるだろ?
でも、教えてやんねえ。
0178デフォルトの名無しさん
2010/12/22(水) 13:09:30普通のTextBoxをmultiLineにするのじゃあかんのけ?
0179デフォルトの名無しさん
2010/12/22(水) 13:12:19そういう意味じゃないと思いますw
それほど昔じゃないけどここか相談すれで似たようなのを見たな・・・
ブラウザが扱うのはhtmlという整形言語、リッチテキストもリッチテキストというフォーマット
この辺を吸収したければドロップ情報をそのままリッチテキストに渡すんじゃなく
書式を加工するとかしないとだめだと思うよ
0180175
2010/12/22(水) 13:40:41TextBox よりも RichTextBox の方が機能が多そうなので、RichTextBoxを使っています。
例えばUndoなどは、RichTextBox の方が良いので。
>>179
PlainTextにするプロパティはなさそうですね。
Ctrl+V を独自実装して回避してみます。
ありがとうございました。
0181デフォルトの名無しさん
2010/12/22(水) 13:48:57VSで参照設定すると、使いやすいようにラッパーが自動生成される。
それを使わずにということになると、COMを触る必要があって結構難しい。
VSで参照設定したときに生成されるDLLの中身をReflectorかなんかで読んでみたらいいと思う。
ずっと簡単な方法としては、WPFのMediaElementをElementHostで利用する手もあるよ。
0182デフォルトの名無しさん
2010/12/22(水) 14:06:53アプリ起動時にwebbrowserを内部的に用意して
D&Dで貰ったhtmlをwebbrowser入れて処理させた後
WebBrowser.Document.Body.InnerText
で貰ってきたらどうだろう?
ヘッダー部分はでてこないが、body以下は確か全部でてきたはず
0183デフォルトの名無しさん
2010/12/22(水) 14:15:46http://ideone.com/Mtynz
0184デフォルトの名無しさん
2010/12/22(水) 14:43:060185デフォルトの名無しさん
2010/12/22(水) 22:24:49EM_SETTEXTMODEでTM_PLAINTEXTを設定するといいかも
http://ideone.com/zXwcT
0186175
2010/12/22(水) 22:54:29ありがとうございます。そのやり方で確認できました。
VBとかはプロパティであった気がしましたが、裏では持ってたんですね。
>>182
ありがとうございます。
今回は単純にリッチをプレーンにしたかっただけなので。。。
0187デフォルトの名無しさん
2010/12/23(木) 00:07:11よかったね
Ctrl+Vは他にコンテキストメニューとか
場合によってはShift+Insertもあったりして面倒
0188デフォルトの名無しさん
2010/12/23(木) 02:16:06お礼はいらないよ
0189デフォルトの名無しさん
2010/12/23(木) 02:33:16どういたしまして
0190デフォルトの名無しさん
2010/12/23(木) 15:31:03いえいえ
0191デフォルトの名無しさん
2010/12/24(金) 14:48:21「現在の位置でテキストの内容を DateTime オブジェクトとして読み取ります」
という説明の"現在の位置で"とはどういう意味ですか?
現在の位置を取得または設定できるプロパティ、メソッドがあるのでしょうか?
またReadContentAsDateTimeメソッドを使って下記の<updated>〜</updated>の中の文字列を
"05時00分00秒"と"01時00分57秒"と置換する方法に適していますか?
<entry>
<title>タイトル1</title>
<name>名前1</name>
<updated>2010-12-22T05:00:00Z</updated>
</entry>
<entry>
<title>タイトル2</title>
<name>名前2</name>
<updated>2010-12-23T01:00:57Z</updated>
</entry>
0192デフォルトの名無しさん
2010/12/24(金) 15:00:36その下の文字列を順に読んで、タグなどが見つかるたびに「なんか見つかった」と通知してくる感じ
そのカーソルの位置が現在の位置。取得しても特に意味はないよ
XmlReaderは扱いが難しいのでLINQ to XMLでも使った方がいいと思う
でもそれ置換するだけなら正規表現でよくないか
XMLとして扱う必要無いような
0193デフォルトの名無しさん
2010/12/24(金) 15:24:06m => "<updated>" + DateTime.Parse(m[1].ToString()).ToString("HH時mm分ss秒") + "</updated>");
合ってるかは知らん
もしDateTime.Parseが使えなかったらParseExactで
0194デフォルトの名無しさん
2010/12/24(金) 15:41:03targetFiles.GroupBy( _ => i++ / 100 )
を見せられたのですが、"_"の意味がわからず頭を抱えております。
やりたいことを考えたら、ラムダ式の結果でグループわけ、
ラムダ式は、アイテムごとにi++して、/100で云々、だとは思うのですが…
よろしくお願いします(´・ω・`)
0195191
2010/12/24(金) 15:46:31なんとなく分かりました
XMLはネットのRSSを
XmlReader reader = XmlReader.Create("http://www.***.com/index.rss");
で取得してそのままdatagridviewに表示してます
XMLであればタグの中身だけ抽出して変換で加工できるかな思いました
stringやStringBuilderに変換し加工しても問題ないのでそっちの方法でやってみます
>>192さん>>193さんありがとうございました
0196デフォルトの名無しさん
2010/12/24(金) 15:51:15意味はないだろ
>>193でいうならm=>でmという名前の引数を宣言する代わりに_という名前の引数を宣言してるだけ
使わないからいかにも無意味そうな名前にしてるんでしょ
0198デフォルトの名無しさん
2010/12/24(金) 20:52:22俺ならそういう時は、 ( dummy => i++ / 100 ) って書くかも。
0199デフォルトの名無しさん
2010/12/24(金) 20:54:08どうしてもLINQ使いたかったらSliceみたいな拡張メソッド作るわ
0200デフォルトの名無しさん
2010/12/24(金) 21:52:53c#で習得した値を元に行いたいのですが、どのような方法がありますか?
c#のコード→javascriptへ値を渡す→値を元にcss(displayプロパティ)を書き換えるjavascriptを実行
というのは可能なんでしょうか?
0201デフォルトの名無しさん
2010/12/24(金) 21:53:130202デフォルトの名無しさん
2010/12/24(金) 23:18:13コードを書いてくれ・・・
0203デフォルトの名無しさん
2010/12/24(金) 23:23:200204デフォルトの名無しさん
2010/12/25(土) 00:06:550205デフォルトの名無しさん
2010/12/25(土) 00:16:25var dev = Math.Sqrt(data.Average(d => Math.Pow(d - ave, 2)));
クエリ式使ってないけどいいよね
0206デフォルトの名無しさん
2010/12/25(土) 02:30:050207デフォルトの名無しさん
2010/12/25(土) 04:42:39たとえばjsに
function showmsg(msg) {
alert(msg);
}
ってのがあったとしたらC#からは
webBrowser1.Document.InvokeScript("showmsg", new object[]{"hello!"});
で呼び出せる。
0208デフォルトの名無しさん
2010/12/25(土) 07:35:370209デフォルトの名無しさん
2010/12/25(土) 09:06:17長い
2文字で頼む
0210デフォルトの名無しさん
2010/12/25(土) 09:09:28ラムダ式で使わない変数を_で置くってのは割と定型句なので、慣れといたほうがいいよ
0211デフォルトの名無しさん
2010/12/25(土) 09:27:27!(a==b)
0212デフォルトの名無しさん
2010/12/25(土) 09:38:590213デフォルトの名無しさん
2010/12/25(土) 11:02:130214デフォルトの名無しさん
2010/12/25(土) 11:27:240215デフォルトの名無しさん
2010/12/25(土) 11:30:38わかりやすく <- とかどうだろうか
不等号&マイナスと区別が付かないとかそんなことは知らない
0216デフォルトの名無しさん
2010/12/25(土) 11:36:100217デフォルトの名無しさん
2010/12/25(土) 11:38:01その辺は使ってるしなあ・・・
0218デフォルトの名無しさん
2010/12/25(土) 11:42:150219デフォルトの名無しさん
2010/12/25(土) 11:53:28等号を =、代入の方がを他のに変えるためには
まず代入の少ない言語設計が必要。
0220デフォルトの名無しさん
2010/12/25(土) 12:30:02PASCAL流に:=がいいんじゃね
>>219
代入を少なくしてもなくすことはできない
0221デフォルトの名無しさん
2010/12/25(土) 12:31:410222デフォルトの名無しさん
2010/12/25(土) 12:39:210223デフォルトの名無しさん
2010/12/25(土) 12:47:17うわ、いやだ
0224デフォルトの名無しさん
2010/12/25(土) 13:35:10�@
button1.DataBindings.Add(new Binding("Enabled",checkBox1,"Checked"));
このコードは一見うまい事連動できているように見えますが、
デザイナ上のDataBindingsプロパティからは指定できません。
なんでですか?やっちゃいけないのでしょうか?
�A
button1.DataBindings.Add(new Binding("Text", this.dataSet11, "DataTable1.Col1", true));
こっちはデザイナ上で指定可能ですが、
常に1レコード目がバインドされ無意味に思えます。
DataTableにPositionプロパティのようなものがあり、制御可能なのでしょうか?
それともBindingSource前提という事ですか?
0225デフォルトの名無しさん
2010/12/25(土) 14:37:521)
バインディングはデータとビューを分けましょうってのが根底にあるからじゃね
2)
うん、BindingSource前提
どうしても使いたくないってのならCurrencyManagerもあるけどめんどくさいだけ
0226デフォルトの名無しさん
2010/12/25(土) 14:59:27試してみます
ありがとうございました
0227デフォルトの名無しさん
2010/12/25(土) 15:58:28>1)
なるほど、�@はビュー制御だから違うでしょ!って事ですか。
でもChangedイベントでの同期って初期処理で一度呼んでやらんといけないのが微妙。
(もはや書き慣れてしまいましたが)
>2)
CurrencyManager調べてみます。
>BindingSource前提
INotifyPropertyChangedを実装したクラスなども目的から外れてはいないですよね?
デザイナ上で指定できないだけで。
0228デフォルトの名無しさん
2010/12/25(土) 16:01:45FormのPaintイベント発生時にDrawpath&FillPathでForm上に縁取り文字を描画して
描画した縁取り文字の形でフォームをくり抜きたいんですが「e.Graphics」に描画されてる縁取り文字のパスのとり方がよくわかりません
ご存知の方はどうかこの卑しい豚に助言というエサをお与えください。
【現状のそーす】
ttp://ideone.com/EqxNJ
これだとAddString時点のパスでくりぬかれるので、
FillPath後のパスでくりぬくようにしないといけないっぽいけれど
やり方が全然わからない(´・ω・`)ボスケテ
0229デフォルトの名無しさん
2010/12/25(土) 16:34:32塗ってから縁取りすりゃいいんじゃね?
//内側を塗る
Brush fillBrush = new SolidBrush(Color.White);
e.Graphics.FillPath(fillBrush, gp);
//縁を描画
Pen drawPen = new Pen(Color.Blue, 4);
e.Graphics.DrawPath(drawPen, gp);
0230デフォルトの名無しさん
2010/12/25(土) 17:17:04http://ideone.com/LHFfy
0231デフォルトの名無しさん
2010/12/25(土) 18:03:49グアアア、こんなことだったのか
ありがとう、できたよ(´;ω;`)
0232デフォルトの名無しさん
2010/12/25(土) 18:59:150233デフォルトの名無しさん
2010/12/25(土) 19:41:550234デフォルトの名無しさん
2010/12/25(土) 20:12:45画面に画像貼り付けると他の部品とサイズがずれるのは時代遅れだと思うんだ。
0235デフォルトの名無しさん
2010/12/25(土) 20:16:420236デフォルトの名無しさん
2010/12/25(土) 20:19:32プログラムからPictureBoxのサイズ変更してたりすると死ぬ。
0237デフォルトの名無しさん
2010/12/25(土) 20:49:590238デフォルトの名無しさん
2010/12/25(土) 21:25:59中途半端なDPI仮想化のせいでデザイン時に設定したサイズ(ピクセル)と実行時に
取得したサイズ(ピクセル)が一致しなかったりする。
いろんな画面部品のデフォルトサイズが小さくて詳細ディスプレイだと見づらくなることがある。
WinFomクラスも頑張っているけど、ときどき落とし穴があるんだよなあ。
WPFだとデザイン時も実行時も一貫してDPIが仮想化されているから気にする必要がない。
0239デフォルトの名無しさん
2010/12/25(土) 21:33:350240238
2010/12/25(土) 21:42:58俺は結構気になるな。
http://msdn.microsoft.com/ja-jp/windows/dd630126
ここで例として貼り付けられている表示の崩れの幾つかはWinFormsでも起こるんだけど、
こういうのでイラっとしたことない?
WPFならこれらの問題とおさらばできます(←怪しい商法のようなセリフだ)
0241デフォルトの名無しさん
2010/12/25(土) 21:44:45まずはXPで字がにじむのをどうにかしてほしい
0242デフォルトの名無しさん
2010/12/25(土) 21:47:320243デフォルトの名無しさん
2010/12/25(土) 21:48:150244デフォルトの名無しさん
2010/12/25(土) 21:48:59WinForm完全互換のWPFが出たら流行るだろう
0245デフォルトの名無しさん
2010/12/25(土) 21:49:56もう直ってるよ
0246デフォルトの名無しさん
2010/12/25(土) 22:16:000247デフォルトの名無しさん
2010/12/25(土) 22:19:340248デフォルトの名無しさん
2010/12/25(土) 22:19:38MFCとWinFormsアプリ以外は問題ないと思っていたが、ブラウザの
拡大表示使ってたらSilverlightのサイズ計算もおかしくなるので困っている。
IEのDPI対応を何とかしてくれ。
0249デフォルトの名無しさん
2010/12/25(土) 22:24:110250デフォルトの名無しさん
2010/12/25(土) 22:30:51文化オリエントの臭いがついているところ。
0251デフォルトの名無しさん
2010/12/25(土) 22:50:3096DPIじゃない環境が一般的な時代になったんだし、
崩れて読めなくなったりしない程度には対応を進めるべきだとは思うけどね。
0252デフォルトの名無しさん
2010/12/25(土) 22:55:52それはForm.PerformLayoutによるニセ仮想化じゃなくてVistaの仮想化だよね?
WinFormのニセ仮想化をオフにする必要があるけど、どうやるの?
0253デフォルトの名無しさん
2010/12/25(土) 23:04:01VSのフォームアプリケーションでテキストに入力後にボタンクリックで
処理を走らせて結果を別のウィンドウで出すのってどうすればできますか?
WebのPOSTを受け取って画面表示みたいなイメージです
0254デフォルトの名無しさん
2010/12/25(土) 23:11:59フォームの表示方法
Form2 frm = new Form2();
frm.Show();
と、プロパティの
Public string Shorikekka{set;get;}
組み合わせる。
Form2 frm = new Form2();
frm.Shorikekka = "成功";
frm.Show();
0255デフォルトの名無しさん
2010/12/25(土) 23:18:07難しいぞ。姉妹スレでもフォーム間の受け渡しができなくて困ってる奴がいる。
http://hibari.2ch.net/test/read.cgi/tech/1289733048/
0256デフォルトの名無しさん
2010/12/25(土) 23:47:26まあそのうち慣れるさ
0257デフォルトの名無しさん
2010/12/26(日) 00:35:530258デフォルトの名無しさん
2010/12/26(日) 02:07:43似た形にはなると思うけど
0259デフォルトの名無しさん
2010/12/26(日) 02:19:02>>255のスレ見ればなぜシングルトンなのかわかる
0260デフォルトの名無しさん
2010/12/26(日) 02:20:300261デフォルトの名無しさん
2010/12/26(日) 02:35:290262デフォルトの名無しさん
2010/12/26(日) 04:42:06最初の頃はこういうの書いてたけど
こういうものが必要な時点で設計がおかしいんだよな
0263デフォルトの名無しさん
2010/12/26(日) 10:59:48何かへんか? kwsk
0264デフォルトの名無しさん
2010/12/26(日) 11:08:28別に問題ないだろ
MSが提供するのは基本的なクラスであって必要とあれば継承して足せばいいだけ
実際Formアプリ作るときはFormクラスを継承したForm1とかにごりごりコード書くんだし
0265デフォルトの名無しさん
2010/12/26(日) 11:30:21推測を大いに含むが
class ExForm : Form
{
Model model;
ExForm(Model model){
this.model = model
}
void ok_ckick(object sender, EventArgs e){
model.HogeText = this.hogeBox.Text
DialogResult = DialogResult.OK
Close()
}
}
こういうことが言いたいんじゃないの
設計として正しいかは知らん
0266デフォルトの名無しさん
2010/12/26(日) 11:35:53文字列渡すだけですむんだったら>>254の方が優れてる
0267デフォルトの名無しさん
2010/12/26(日) 11:40:48場合によるけど確かにウザいと思う
0268デフォルトの名無しさん
2010/12/26(日) 11:41:30Modelを渡すようにした方がいいとは思うけど、簡単なメッセージだけなら
Form2はModelに依存させず文字列だけ受け取る方がいいと思う。
0269デフォルトの名無しさん
2010/12/26(日) 11:45:59これがプログラマの病んだ姿です
0270デフォルトの名無しさん
2010/12/26(日) 12:31:44そのくせ説明も聞かない。
怒りがおさまった頃に説明すると、「あ〜そう言うこと」って。。。
0271デフォルトの名無しさん
2010/12/26(日) 13:12:140272デフォルトの名無しさん
2010/12/26(日) 14:11:090273デフォルトの名無しさん
2010/12/26(日) 14:17:000274デフォルトの名無しさん
2010/12/26(日) 14:21:53■ このスレッドは過去ログ倉庫に格納されています