1 名前:デフォルトの名無しさん [2010/02/04(木) 22:02:43 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ふらっとC#,C♯,C#(初心者用) Part54 pc12.2ch.net/test/read.cgi/tech/1264236247/ 関連スレ C#, C♯, C#相談室 Part55(実質56) pc12.2ch.net/test/read.cgi/tech/1260111240/ WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5 pc12.2ch.net/test/read.cgi/tech/1261879110/
75 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 19:14:51 ] WPFで質問があります。 Imageを配置してサムネイル画像を表示しました。 その画像をダブルクリック(あるいはクリック)したら、実画像を開きたいと思います。 Process.Start("Paint", filename); ダブルクリックのイベントハンドラって、どう書けばよいですか? Imageのプロパティを見ても、MouseDown,Enter,Leave,Left(Right)ButtonDown,LeftButtonUp,Move,Up,Wheelがあるだけで、クリックのイベントが見当たりません。 ご教示ください。
76 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 19:18:13 ] MouseButtonEventArgsにはClickCountプロパティがある
77 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 19:23:43 ] >>65 早速ありがとうございます。 列挙するにはどうしたらよいですか? foreach (var q in query) { lists.Add(q); } で列挙できたと思っていたのです。 >>67 xdoc.Root.Elements()には、デバッグモードで見ると、 xmltextがそのまま入ってるので、それだと思ってました。 >>66 早速入れてみましたが、エラーになってしまいました。 foreach (var q in xdoc.selectNodes("/result/words/word")) { 'System.Xml.Linq.XDocument' に 'selectNodes' の定義が含まれておらず、型 'System.Xml.Linq.XDocument' の最初の引数を受け付ける拡張メソッドが見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
78 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 19:24:49 ] GroupBoxの形って四角形で固定ですか? 自由に変形させることはできませんか?
79 名前:デフォルトの名無しさん [2010/02/05(金) 19:26:00 ] >>75 こちらへ WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5 pc12.2ch.net/test/read.cgi/tech/1261879110/
80 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 19:29:45 ] >>77 > 列挙するにはどうしたらよいですか? from a in b が foreach (var a in b) と同じ意味 だから from result in xdoc.Root.Elements() は foreach (var result in xdoc.Root.Elements()) と同じで、さて何回ループ回る?
81 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 19:42:12 ] >>77 はC#の要素を除いたら普通に頭が悪いだけの発言だな
82 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 20:02:13 ] >>75 <ContentControl MouseDoubleClick="ContentControl_MouseDoubleClick"> <Image Source="mikumiku.jpg"/> </ContentControl>
83 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 20:36:15 ] >>80 xdoc.Root.Elements()には、デバッグモードで見ると、 xmltextがそのまま入ってます。 ということは1回ですか? これをタグ別にわけるには、どのようにしたら?
84 名前:デフォルトの名無しさん [2010/02/05(金) 20:41:52 ] 75です。 >>79 WPFの掲示板は初心者の質問を受けつけてくれないのです。 それでこちらで質問しました。 >>82 xamlのimageに入れて試してみました。 'ContentControl_MouseDoubleClick' の定義が含まれていません、 というエラーとなったのですが、 なにか前もってすることがありますか? よろしくお願いします。
85 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 20:48:42 ] >>84 文字通りイベント用の関数を作ってないんだろ。 その部分は消して、プロパティウインドウからイベントを選びなおす。
86 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 20:50:27 ] >>83 まずLINQじゃなくてforeachで普通に表現してみ
87 名前:デフォルトの名無しさん [2010/02/05(金) 21:03:40 ] >>86 foreachでxmlをどうわけたら? string[] lines = xmltext.Replace("<word>","").Replace("</word>","").Split('\n'); とかですか? それならできます。 foreach (string line in lines) { lists.Add(line); }
88 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 21:08:26 ] ……。 foreach (var element in xdoc.Root.Elements()) { // この中のコードを書いてみろってこと }
89 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 22:14:30 ] DataTable.WriteXML で、テーブルに数値型の列があったとして、 XML ファイルの該当箇所を 16 進数表記で出力するコトって出来ますか?
90 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 22:30:14 ] WriteXmlじゃ無理だな
91 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 22:48:01 ] >>86 xdoc.Root.Elementsをわける方法がわからないですが、 次のとおりで、項目ごとには分けられます。 string[] lines = element.Replace("<word>","").Replace("</word","").Replace(" ","").Split('>'); foreach (string line in lines) { lists.Add(line); }
92 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 22:49:50 ] でもこれではLINQはぜんぜん使っていないし、知りたいのはLINQなのですが…。
93 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 22:59:09 ] まず>>88 ができなければLINQでできるようにはなりません 横着しないでやれ
94 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 23:01:02 ] …低脳にLINQを使わせるな。
95 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 23:08:25 ] その前にXMLから理解すべきでは
96 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 23:09:07 ] 首吊って死ぬのが先かな。
97 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 23:11:01 ] それ以前に、言われた通りにしないのなら質問しなくてよろしい
98 名前:デフォルトの名無しさん mailto:75 [2010/02/05(金) 23:12:45 ] >>85 ありがとうございます。 まず、xamlでContentControl MouseDoubleClickをコメントアウトしました。 Imageのプロパティを見ましたが、ContentControlの項目は見つかりません。 なんのイベントを選べばよいですか?
99 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 23:17:17 ] 選ぶのはMouseDoubleClickだよ
100 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 23:20:01 ] うっほうっほ
101 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 23:22:55 ] >>99 ねぇよ 嘘つきばっかだな
102 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 23:28:11 ] ContentControlのだよ? Imageの親にした
103 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 23:31:36 ] 思うに、Windowに直接Image貼ってるんだろう?
104 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 23:40:05 ] >>90 そっか、残念。ありがとうございました。
105 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 23:45:07 ] テキストボックスの中にカーソルを表示させないようにするにはどうしたらよいのでしょうか?
106 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 23:51:08 ] りいどおんりい
107 名前:デフォルトの名無しさん mailto:75 [2010/02/06(土) 00:35:36 ] >>102 75です。 ありました。できました。 ありがとうございます。
108 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 00:38:43 ] >>93 、97 横着せずにいうとおり91のとおりやってると思いますけど。 で、91でLINQなしでできてしまったです。 それがちがうのなら、方法を教えてください。 で、あらためてLINQだとどう書くんでしょう?
109 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 00:42:18 ] >>91 でいくらできても意味は無いのよ。 正しく理解するってのが大事なんだから。 教えません。
110 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 00:43:06 ] >>108 そうか〜できてしまったか^^ 良かったね 一生そうやってろ
111 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 00:43:09 ] キミの仕事だか趣味だかのプログラムが完成しなくてもおれたちにはどうでもいいことなので 自分で努力してください
112 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 00:45:39 ] >>109 正しく理解するヒントくらいください。 >>110 そうやってたくないから聞いてるんですけど。
113 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 00:47:02 ] ヒントが>>88 だろ もう死ねよ
114 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 00:48:12 ] …構ってちゃんをいつまでも相手してなくてよろしい(`・ω・´)
115 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 00:50:35 ] >>113 だから、88の回答は91で、 それでできちゃったのではLINQを使う点では間違えているわけだから、 どう間違えているのかって訊いてるんですけど。
116 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 00:52:57 ] 始まりはどこからなの?
117 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 00:54:33 ] >>116 63
118 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 00:55:42 ] >>115 foreach (string line in lines) { じゃなくて foreach (var element in xdoc.Root.Elements()) { で書き始めろって言ってんだよ 会話が成り立たない(´・ω・`)
119 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 00:57:07 ] >>118 お前も何マジになってんだ。 こういうのはニヤニヤしてればいいんだよ。
120 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 00:58:07 ] >>64 名前欄に64って書いとけ
121 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 01:00:18 ] >>120 そしてそっこうでDispose()が呼び出される。
122 名前:116 mailto:sage [2010/02/06(土) 01:00:50 ] >>117 サンクス まあ質問者も回答者もどっちもどっちだな 質問者は問題解決の探索の仕方がまずいし 回答者も無駄にあおりすぎ
123 名前:デフォルトの名無しさん [2010/02/06(土) 01:03:12 ] XMLは手だしてないのでしらんけど似たような解析がいるHTMLから考えると よくわからなければtextbox貼り付けて片っ端からToString()すればいいのに とか思うんだけどな
124 名前:64 mailto:sage [2010/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 名前:デフォルトの名無しさん mailto:sage [2010/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 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 01:05:52 ] だから xdoc.Root.Elements()はなんなのか理解しろ かんがえろ 要素1個しかないだろ? だから1回しか実行されないんだよ?
127 名前:64 mailto:sage [2010/02/06(土) 01:06:11 ] >>122 なるほど。たしかに探索の仕方はまずい気がします。 どうすればいいんでしょうね。
128 名前:64 mailto:sage [2010/02/06(土) 01:07:19 ] >>126 要素が1個しかないのはわかりました。 で、wordにわける方法は?
129 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 01:07:56 ] >>128 教えませんよフフン
130 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 01:08:06 ] >>128 デバッガでプログラムを止めて考えろ。 DOM系のプログラミングはこれに限る。
131 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 01:08:31 ] 釣りかも知れんがタフだなあ…。
132 名前:デフォルトの名無しさん [2010/02/06(土) 01:10:53 ] >>127 まあHTMLの方はとりあえずHTML化すれば外部ツールが 作ったHTMLの構造とかを出してくれるのでわかりやすかったけどな
133 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 01:11:01 ] XElement.Elements()で取得できるのはXElementなんだからさらにXElementElements()すればいいだけよ。 XDocument.RootもXElementだからね。
134 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 01:12:35 ] ふ、ふん! あなたに言ったんじゃないわよ! もう寝なさいよ!
135 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 01:13:07 ] var使ってるからElements()で何が帰ってきてるかも分かってないと思うよ彼
136 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 01:13:26 ] >>133 を受けて ttp://msdn.microsoft.com/ja-jp/library/bb348975.aspx の例を見て考えよう
137 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 01:14:14 ] お前ら釣られすぎ
138 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 01:23:43 ] msdnにほとんど答えが載ってるからもう来ないだろ…
139 名前:デフォルトの名無しさん mailto:sage [2010/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 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 01:32:12 ] >>139 ヒントに見せかけた釣りですね
141 名前:64 mailto:sage [2010/02/06(土) 02:44:50 ] >>129 なんか昭和のスパルタ教師の香りがするんだけど、 考えれば考えつくとかいったって、考えてとけてたら、こんなとこで聞いてないって。 しかも、自分の方法に迷いがないと思ってるばかときた。 考えろっていって、答えを教えないばかだよ。 1をよめっつーの。
142 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 02:52:38 ] 煽っても答えませんよ。
143 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 02:53:55 ] 理解力が足りないのまで俺らのせいにされても困るッスわ…
144 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 02:57:42 ] 小学生にC#は尚早だぜ。 HSPやってな。
145 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 03:03:05 ] >>141 馬鹿に教えを請うってプライド大安売りですね
146 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 03:08:40 ] >>141 教えてもらってから居丈高になった方がよくないか? 利根川さんもそう言っていたよ
147 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 03:15:47 ] どうせ答えねえクセに白々しいんだよ。
148 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 03:24:06 ] なんか昔のAPIスレを見ているようなデジャビュを感じる。
149 名前:デフォルトの名無しさん [2010/02/06(土) 03:26:18 ] >>148 あんまかわらんでしょ 結局他所が用意した機能だから
150 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 03:47:58 ] >>149 ふーん。(´・ω・`)
151 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 04:17:34 ] 元々の>>64 でresult.Element("word").Valueとか書いてるのに それをforeachで書けって言われて>>124 になるのかさっぱり分からん
152 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 07:01:57 ] なんでこの程度のネタで一晩中引っ張れるんだ
153 名前:デフォルトの名無しさん [2010/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 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 12:10:03 ] 質問者は名前欄にレス番いれたらいいんじゃないの?
155 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 14:23:12 ] >>63 root["words"].ChildNodes
156 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 14:30:40 ] あまいなw
157 名前:デフォルトの名無しさん [2010/02/06(土) 14:53:01 ] 再帰ック
158 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 15:17:34 ] まさか俺以外はコード書いて試してないのか?
159 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 15:29:08 ] Who are you ?
160 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 15:35:58 ] >>159 コード書いたあと煽ってた側なんだが… お前らコンパイルできない偽ヒントばかりだすなよw
161 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 15:49:46 ] e?
162 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 16:09:57 ] Linqでxml触ったことなかったけどこれでいいのかな? var query = from result in xdoc.Root.Element("words").Elements("word") select result.Value; 彼流に合わせたんだけどresult.Valueは気に入らない
163 名前:デフォルトの名無しさん mailto:sage [2010/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 名前:デフォルトの名無しさん mailto:sage [2010/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 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 21:13:25 ] ファイルをドラッグ&ドロップして、そのファイル名を受け取りたいんだけど、リストボックスではうまく行くけど、 他のコントロールだとカーソルの形だけは変わるけど、ファイル名が受け取れません。 DataGridViewでやりたいんですが、これは仕様なんでしょうか?
166 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 21:23:19 ] カーソルの形がどう変わるんだよ AllowDropとDragEnter/DragOverとDragDropはどうやってんだよ
167 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 21:38:39 ] 初心者にはできない仕様です
168 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 21:52:32 ] >>166 カーソルは十字に変更されるよ。 だからDragEnterは正常に機能している。 メッセージボックスを書いておくとちゃんと表示される。 そのイベントハンドラ内で、e.Effect = DragDropEffects.Copyをしている。 DragDropのイベントハンドラの方にはイベントさえ全然来ない。 AllowDrop=trueにしているけどね。
169 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 21:56:17 ] で?
170 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 22:19:05 ] >>165 テストコード書いて試したけど出来たよ?
171 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 22:23:10 ] 自己解決しました。
172 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 22:25:48 ] >>165 プロパティWindowでDragDropイベントがちゃんとdataGridView1_DragDrop(例)に登録されてるか確認したか?
173 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 22:26:44 ] >>172 は?
174 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 22:27:47 ] >>171 お前は誰だ? 質問しといて自己解決の内容を書かないやつが一番たちが悪い 自己解決の内容かけ
175 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 22:31:18 ] 事故解決しました。