5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2009/07/26(日) 11:01:47
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

前スレ
ふらっとC#,C♯,C#(初心者用) Part42
http://pc12.2ch.net/test/read.cgi/tech/1245836827/


241 :デフォルトの名無しさん:2009/08/04(火) 16:38:40
あれ、Explorerも昔はC#的な並べ替えだったよね・・・?
気のせいかな・・・

242 :デフォルトの名無しさん:2009/08/04(火) 16:46:03
XP辺りから変わった
レジストリに使用する比較関数の項目があるんで変更も可能なはず
ロジックは相当複雑

243 :デフォルトの名無しさん:2009/08/04(火) 16:49:35
>>241
intuitive sortってやつだろ。XPの目玉機能だよ

>>240
Explorerと同じにするならStrCmpLogical使うべき。

244 :デフォルトの名無しさん:2009/08/04(火) 20:47:02
>>233
記憶があいまいですまないのだが、確かフレーム分割されてるとだめだよな
違ったっけ?

245 :デフォルトの名無しさん:2009/08/04(火) 21:32:20
>>244
そんなん、frames で取ればいいだろ。
適当言うなよハゲ

246 :デフォルトの名無しさん:2009/08/04(火) 22:35:34
>>245
いや、フレームごとに取得は無理だろ
一括で取得なら可能だけど。
まぁ、>>218がどこまで作るのか知らないけど

247 :デフォルトの名無しさん:2009/08/04(火) 22:37:41
>>242-243
あーやっぱXPから変わったんですか。
ありがとう

248 :デフォルトの名無しさん:2009/08/05(水) 01:11:01
Form1からForm2を開くようにしたいのですが、
Form2は1こしか作らせない。
Form1_loadあたりで、Form2を作っておきたい。
Form2の変数をForm1でも使いたい。
どのようにすればいいんでしょうか?

249 :デフォルトの名無しさん:2009/08/05(水) 01:15:48
shingleton

250 :デフォルトの名無しさん:2009/08/05(水) 01:37:38
やりたいことは、
Form1を半分隠すみたいなかんじで、
ボタン押すと、ぴーって出るみたいな
できないかな?

251 :デフォルトの名無しさん:2009/08/05(水) 01:45:26
>>246
いや、可能だよ
foreach (HtmlWindow f in this.webBrowser1.Document.Window.Frames)
{
HtmlDocument hdoc = f.Document;
// 以下略
}

252 :デフォルトの名無しさん:2009/08/05(水) 01:51:27
トイレ逝け


253 :デフォルトの名無しさん:2009/08/05(水) 06:16:53
GetAttributeでいける


foreach (HtmlElement element in all_Input)
{

if (element.GetAttribute("type") == "hidden")
{
name = element.GetAttribute("name");

value = element.GetAttribute("value");



}


}


254 :デフォルトの名無しさん:2009/08/05(水) 12:08:12
フレーム分割してるページのソースとかも同じやり方でできるのかな?

255 :デフォルトの名無しさん:2009/08/05(水) 18:14:54
数ヶ月に1つのプログラミングをするぐらいなんだけど
dataGridViewなど設定や扱いが面倒なのは
以前どういう風に設定したのか忘れてしまって
(項目のコピペや自動で列が追加されないようにしたりなど)
毎回一から解説サイトとかを回って調べているのが激しく無駄な気がして

こういうことにならないように、あらかじめ設定したコントロールを
追加するだけで他のプロジェクトでも簡単に使える方法はないでしょうか?
例えば、
dataGridView.SelectRetuCopy()
dataGridView.SelectRetuDelete();
など毎回同じような動作をする機能をあらかじめ盛り込んでおきたいのです

256 :デフォルトの名無しさん:2009/08/05(水) 18:22:46
コード・スニペットはどう?

257 :デフォルトの名無しさん:2009/08/05(水) 18:41:16
>>255
既存のコントロールを継承した独自のコントロールクラスを定義して、
それをフォームデザイナーで使ったりは普通にできるよ。

258 :デフォルトの名無しさん:2009/08/05(水) 18:53:53
Buttonコントロールで影が付く条件を教えてください
既定のボタンを表している影だと思うのですが、出てこなくなりました

259 :デフォルトの名無しさん:2009/08/05(水) 19:18:36
FormのAcceptButtonとCancelButtonのことか?

260 :デフォルトの名無しさん:2009/08/05(水) 19:46:01
AcceptButtonで影付いてたんですね
ありがとうございました

261 :デフォルトの名無しさん:2009/08/05(水) 19:51:19
>>260
テキストボックスにUSB入力してボタンクリックしたらIEで表示させることって可能ですか?

262 :デフォルトの名無しさん:2009/08/05(水) 19:54:54
エスパー召喚質問過ぎる

263 :デフォルトの名無しさん:2009/08/05(水) 19:59:04
>>262
すみません。USBでなくURLでつ…

264 :デフォルトの名無しさん:2009/08/05(水) 20:04:17
FileSystemWatcherでテキストファイルの生成を監視しているとき、テキストファイルだと、2回生成したとメッセージが表示されるのですが、原因と回避策を教えてください。
private void fileSystemWatcher_Created(object sender, FileSystemEventArgs e){
MessageBox.Show("created!")
}


265 :デフォルトの名無しさん:2009/08/05(水) 20:04:31
可能姉妹

266 :デフォルトの名無しさん:2009/08/05(水) 20:09:06
>>265
出来ましたらヒントかなにかを……

267 :デフォルトの名無しさん:2009/08/05(水) 20:14:10
>>266
グーグルの使い方ぐらい覚えた方がいいよ
http://www.google.com/search?as_q=c%23+IE+%E8%B5%B7%E5%8B%95&num=100&hl=ja&ie=UTF-8&oe=UTF-8&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&lr=&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=

268 :デフォルトの名無しさん:2009/08/05(水) 20:32:11
>>267
ありがとうございます。
少し甘えすぎていました。すみません。

269 :255:2009/08/05(水) 20:35:04
>>256
>>257
どうもありがとうございます

皆さんはこういう場合どうしているんでしょうか?
毎回form1でガリガリ書いちゃうのかな
それとも継承したコントロールクラスを作ったりするのでしょうか?

270 :デフォルトの名無しさん:2009/08/05(水) 20:46:39
DataViewを作成してRowFilterを設定しようとしています。
フォーム上のテキストボックスで入力された文字列で
「フィールド」の列をあいまい検索しようとしています。

DataView dv = new DataView(datatable);
dv.RowFilter = "フィールド like '*" + テキストボックス.Text + "*'";

この時に、特殊な文字列が入っているとエラーになります

[]%\<>+|^'"

だから、Replaceメソッドを使ってあらかじめ[]でそれらの文字をくくってやろうと
しました。

Joken = Joken.Replace("[", "ESCAPETemporary");
Joken = Joken.Replace("]", "[]]");
Joken = Joken.Replace("ESCAPETemporary", "[[]");
Joken = Joken.Replace("%", "[%]");
Joken = Joken.Replace("\\", "[\\]");
Joken = Joken.Replace(">", "[>]");
Joken = Joken.Replace("<", "[<]");
Joken = Joken.Replace("+", "[+]");
Joken = Joken.Replace("|", "[|]");
Joken = Joken.Replace("^", "[^]");
Joken = Joken.Replace("'", "''");

たのですが、くくってやるとエラーは出ないのですが検索にかかりません。
これらの文字をエスケープする方法を教えて下さい。
また、エスケープするのにわざわざReplaceでこうやって置き換える以外の方法があったら教えて下さい。

271 :デフォルトの名無しさん:2009/08/05(水) 21:03:17
教えてあげないよ

     _,∩_         _,∩_           _,∩_
    (_____)ゝ、     (_____)    y     (_____)
    / :: :: :: ヽ 〉     /-‐:: ::‐-ヽ /       / :: :: :: ヽ
   _./ (・ )ll(・ ) ∨     _/  0) i! 0) ∨      _/ ( ・)i!(・ ) ゙、_
 // :: :: ∈ゝ :: ::ヽ   // ::  ‐-‐ :: ヽ    //  :: ー一 :: ヽ\
. ゝ/:: :: ::  :: :: ::ヽ  ゝ/ :: ::  ::  :: :: ヽ   ゝ/ :: ::  ::  :: :: ヽく
   ̄ ̄ | ̄ ̄ | ̄ ̄     ̄ ̄ | ̄ ̄ | ̄ ̄     ̄ ̄ | ̄ ̄ | ̄ ̄
       |     |             |     |             |     |
    ⊂!     !つ        シ!     !つ        ⊂!     !つ

ジャン♪

272 :デフォルトの名無しさん:2009/08/05(水) 21:12:51
>>270
LIKE演算子に使う文字列で[]使ってエスケープする必要があるのは[*%だけだぞ
'もエスケープが必要だがこれは'をもう一つ重ねることでエスケープする
String.Replaceで良いんじゃね Regex.Replace使っても良いけど

273 :デフォルトの名無しさん:2009/08/05(水) 21:13:12
コピペ君って馬鹿だな、まで読んだ。

274 :デフォルトの名無しさん:2009/08/05(水) 21:32:58
>>270
そういうのはクエリのサニタイズと呼ばれる。
普通は入力値は直接テキスト処理せず、DBライブラリ側に処理させる。
C#だとどうやるのかは知らんけど、データソースオブジェクトを使ったらクエリ書く必要すらないんじゃね?

275 :270:2009/08/05(水) 22:13:59
>>272
指摘されてあらためてヘルプをよく読んだら、
フィールド名に使ってたらエスケープしないといけない文字列と
データの中でエスケープしないといけない文字列は違うということがわかりました。
[*%'
についておっしゃるとおりエスケープしたらうまくいきました。
ありがとうございました。

最初に想定していたよりも文字数が減ったのでReplaceでやることにします。

276 :デフォルトの名無しさん:2009/08/05(水) 22:30:34
VB厨で申し訳ないのですが、
VBのFormat、FormatNumber関数に相当するメソッドを
ご存知の方おられたら教えてください。
数値を三桁カンマ区切りにしたいというのが目的です。

277 :デフォルトの名無しさん:2009/08/05(水) 22:31:41
>>276
string.Format()

278 :デフォルトの名無しさん:2009/08/05(水) 22:38:11
int.ToString(string)

279 :デフォルトの名無しさん:2009/08/05(水) 23:37:58
1234567890.ToString("N0")

280 :デフォルトの名無しさん:2009/08/06(木) 01:34:46
foreachでbreakで抜けなくてもいい場合にbreak使わないで全部回すってどうですか?

281 :デフォルトの名無しさん:2009/08/06(木) 01:40:34
言ってることがよくわからないが推測で答えると場合によるとしか言えない。


282 :デフォルトの名無しさん:2009/08/06(木) 01:43:16
breakで抜けなくてもいい場合ならbreakを使っちゃダメでしょ。当然全部回る。

で?

283 :デフォルトの名無しさん:2009/08/06(木) 02:07:19
一つだけ抽出する場合に決まってんだろオタンコナス!

284 :デフォルトの名無しさん:2009/08/06(木) 02:11:48
エスパーでも太刀打ち出来ないだと!?

285 :デフォルトの名無しさん:2009/08/06(木) 02:12:03
それならEnumerable.Firstの述語を引数に取るほうを使えばいい。

286 :デフォルトの名無しさん:2009/08/06(木) 03:06:27
>>280
next

287 :デフォルトの名無しさん:2009/08/06(木) 08:23:28
お前達は何を言っているんだ・・・

288 :デフォルトの名無しさん:2009/08/06(木) 10:15:15
nextでふと思ったが、、、continue のことか?

289 :デフォルトの名無しさん:2009/08/06(木) 10:23:46
現在、あるソフトの試用版を製作中です。
試用版ということなので、メインの機能の回数制限をつけようと思っているのですが
残り回数をレジストリに書き込んだ場合、ユーザーに書き換えられてしまう危険性がありますよね?
これをユーザーから編集不可にする方法はありますか?

290 :デフォルトの名無しさん:2009/08/06(木) 10:44:33
ないよ

291 :デフォルトの名無しさん:2009/08/06(木) 10:48:44
回数限定版ではなく機能限定版を考えてみてください

292 :デフォルトの名無しさん:2009/08/06(木) 10:49:54
>>290
>>291
やはりそうですか。
機能限定版、もしくは正規版の機能充実に時間を使います。

ご回答、ありがとうございました。

293 :デフォルトの名無しさん:2009/08/06(木) 10:52:49
暗号化すればある程度は大丈夫だけど削除されたら元も子もないし
完璧な方法はないかも

究極はそもそもその機能を入れてないバージョンを別に作ることだがそれだと試用できないな

294 :293:2009/08/06(木) 10:54:09
既に回答されてて泣いた

295 :デフォルトの名無しさん:2009/08/06(木) 11:36:15
ユーザーのPCはユーザーの管理下にあるから、まっとうな方法で確実なのは無理だね。
ネット使って認証とかのレベルでやらないと無理。

296 :デフォルトの名無しさん:2009/08/06(木) 12:06:00
webBrowserで表示しているページをボタンクリックしたらIEで表示させる。
こんなの作りたかったけど難しい。
URLって簡単には取得できないのね。
舐めてたわ

297 :デフォルトの名無しさん:2009/08/06(木) 13:01:34
現在表示されてるURLはプロパティから直接取れる。
ページ変移もNavigatingイベントで拾える。

298 :デフォルトの名無しさん:2009/08/06(木) 14:18:12
>>297
例えば、グーグルとかで日本語検索したページをIEで表示させるとURLに検索文字が直接はいってしまう。
あと、フレーム分割されてるようなページだとうまくURL取得出来ないです

299 :デフォルトの名無しさん:2009/08/06(木) 15:32:56
>>298
後者は WebBrowser.Document.Window.Frames.Item(int) でなんとかできると思う
前者は日本語でおk

300 :デフォルトの名無しさん:2009/08/06(木) 15:53:23
URLエンコードしたいんじゃね

301 :デフォルトの名無しさん:2009/08/06(木) 16:07:41
Uri.OriginalStringの事か?

302 :デフォルトの名無しさん:2009/08/06(木) 16:40:12
Aというフォームを起動させて、あるボタンを押せば
Aを閉じてBというフォームを表示させたいんですが、どうすればいいでしょうか?

Aを閉じるとアプリケーション自体終了したり、AのVisibleをfalseにしたままだと
Bを閉じたときに、Aは非表示なだけで終了はしていませんよね?

303 :デフォルトの名無しさん:2009/08/06(木) 16:47:22
・AはHideにしておいて、BのClosedイベントでAも終了する
・ApplicationContextを使ってMainFormを差し替える
・Application.Run(new B())する前にAをShowDialogで表示する

304 :デフォルトの名無しさん:2009/08/06(木) 17:03:53
>>303
ありがとうございます。

305 :デフォルトの名無しさん:2009/08/06(木) 21:09:45
c#EE2008

datagridviewを継承した独自のコントロールを
デザイナの左にあるコンポーネントに追加する方法ありますか?

コントロールのサイズを視覚的に調整したいので・・

306 :デフォルトの名無しさん:2009/08/06(木) 22:01:03
>>305
なーんか言ってることが意味不明だな、と思うのはたぶん俺だけじゃないと思う。

307 :デフォルトの名無しさん:2009/08/06(木) 22:13:14
>>305
同じプロジェクトならビルドすればいい
違うプロジェクトなら参照に加えればいい

308 :デフォルトの名無しさん:2009/08/06(木) 22:21:58
ああ、>>307を見てやっと意味が分かった

309 :296:2009/08/06(木) 22:24:07
frameはDocumentCompletedの最後にメインページが読み込まれるみたいで意識しないでいいみたいです
>>299さんのコード使わずとも何とかなりました。
ただ、JavaScriptで描画している部分はどうにもならない・・・
こればっかりは仕方ない見たいですね。

学校ではJava習ってるんで、C#を自主でやろうかな〜と思ってタブブラウザもどきを作っています。

310 :305:2009/08/06(木) 22:50:05
>>307
ビルドすれば左のコンポーネントのところに表示されるのですか?
継承しただけだと無理だと思うんだけど
継承したクラスを作ってその後どうすればいいんでしょうか?

311 :デフォルトの名無しさん:2009/08/06(木) 23:04:20
それだけで出るけど?

312 :デフォルトの名無しさん:2009/08/06(木) 23:17:00
試してみたが、普通に表示されるぞ?
VS2005 Standard でだが。

using System.Windows.Forms;

namespace MyControl {
public class MyDataGridView : DataGridView {
}
}


313 :デフォルトの名無しさん:2009/08/06(木) 23:18:08
ふと・・・public付け忘れなんてオチは却下だ。

314 :デフォルトの名無しさん:2009/08/06(木) 23:28:22
DataGridViewを継承って使い道が全く思いつかないんだが
外から弄り放題だからコンポーネントとしては失格だし

315 :296:2009/08/07(金) 00:12:14
>>309
JavaScriptか・・・
専門学校のときに似たようなの作らされたっけ
なんか、

url = e.Url.ToString();

これでurlを取得しようとしたら、なんかJavaScript:false:
こんなわけ分からん値が取得してた気がする。面倒になって他の奴に投げたがなんだったんだろう。

316 :デフォルトの名無しさん:2009/08/07(金) 00:28:08
WPFで、一般的なペイントツールを作ろうと思ったら、カンバス部分はどう実装するの?
はじめからInkCanvasが用意されてるけど、これと似た自前のクラスを作ることになるのかな

317 :305:2009/08/07(金) 00:37:53
>>314
弄り放題すぎて目的の関数見つけるのが大変なんです

318 :デフォルトの名無しさん:2009/08/07(金) 00:42:44
WiiRemoteについての質問です

wiiリモコンとバランスボードを制御するとき
どちらか片方ずつなら制御できたのですが
両方を同時に制御するにはどうすればいいですか?

319 :デフォルトの名無しさん:2009/08/07(金) 01:21:19
個別のライブラリに関しては提供元もしくは専用のフォーラムで聞いてください。

320 :デフォルトの名無しさん:2009/08/07(金) 08:18:32
DataGridViewを継承したやつって
実体はなんなの?
DLL?
Formにぺこって貼り付けるやつって、実体はなんですか?

321 :デフォルトの名無しさん:2009/08/07(金) 08:25:13
>>320
フォームデザイナーは見た目をいじるだけ。
あくまで出来上がるのはC#のソースコード。
ソースコードに何が書かれているかをよく見てご覧。

いくつか質問してるが、ソースコードに全部書いてある。

322 :デフォルトの名無しさん:2009/08/07(金) 09:35:02
抽象クラスとインターフェースって似てると思いますが、インターフェースで出来ないことを抽象クラスでやるってことなんでしょうか?

323 :デフォルトの名無しさん:2009/08/07(金) 10:24:52
>>332
それくらいググりなさいよっ、初心者のくせにっ!
http://blog.shos.info/archives/2005/02/c_tips_interface_abstract_clas.html

324 :デフォルトの名無しさん:2009/08/07(金) 10:37:34
機能は似ているが由来が違うと思えばいい。
インターフェイスという概念は必ずしもオブジェクト指向ではない。

325 :デフォルトの名無しさん:2009/08/07(金) 12:09:59
>インターフェイスという概念は必ずしもオブジェクト指向ではない。
そうか?
interfaceではstaticメソッドが作れないわけだから、
interfaceを使うと出来上がるものが必ずオブジェクトになると思うんだが?

326 :デフォルトの名無しさん:2009/08/07(金) 12:51:05
C#のinterfaceというキーワードは完全にクラス周辺の仕組みの一部。
ただし他から借りてきた概念だといいたいわけさ。
APIだってインターフェイスだがWin32APIはオブジェクト指向じゃないだろ。
COMやCORBAのインターフェイスになるとオブジェクト志向の風味が漂ってくる。
いわゆる分散オブジェクト。

327 :デフォルトの名無しさん:2009/08/07(金) 13:25:46
どう考えてもC#のインターフェースについて聞いてるだろ

328 :デフォルトの名無しさん:2009/08/07(金) 13:43:14
>>322
抽象クラスじゃできないことをインターフェースでやる場合もあるだろ
多重継承とか

329 :デフォルトの名無しさん:2009/08/07(金) 21:11:20
補色ってどう作ればいいのかな。

330 :デフォルトの名無しさん:2009/08/07(金) 21:15:15
>>329
補色っていってもいろいろ定義がありそうだけど、
一番普通のは単にRGBの1の補数でいいんじゃないの?

331 :デフォルトの名無しさん:2009/08/07(金) 21:17:06
>>330
なるほど。thx。

332 :デフォルトの名無しさん:2009/08/07(金) 23:22:32
C#でHPをローカルに保存するようなプログラムは作成可能でしょうか?
フレームに分かれていないページなら、CSSと画像などを気にしなければ簡単に作成することが出来ました。
ただ、フレーム分割されているページにも対応したプログラムの作成方法が分からず、そもそも出来るのかと頭を抱えています

333 :デフォルトの名無しさん:2009/08/07(金) 23:32:40
できなかったらIEだのFirefoxだのはどんな魔法を使ってるというのか

334 :デフォルトの名無しさん:2009/08/07(金) 23:36:00
テクマクマヤコンテクマクマヤコン

335 :デフォルトの名無しさん:2009/08/08(土) 00:03:56
WinFormsにおいて
ウィンドウがリサイズされたとき
子のコントロールがそれに合わせてリサイズしたり移動したりするには
どうすればいいでしょうか

336 :デフォルトの名無しさん:2009/08/08(土) 00:06:39
抽象的で答えにくいが
取り敢えずDockとかAnchorとかを使うとか

337 :デフォルトの名無しさん:2009/08/08(土) 04:05:46
ひょっとして
Image img = Properties.Resources.Image1;
のように、画像リソースを取得した場合って
img.Dispose();
しないとダメだったりする?

338 :デフォルトの名無しさん:2009/08/08(土) 04:42:24
>>337
不要

339 :デフォルトの名無しさん:2009/08/08(土) 04:46:44
>>338
行った場合って何か不都合が生じたりする?

340 :デフォルトの名無しさん:2009/08/08(土) 06:51:29
する

341 :デフォルトの名無しさん:2009/08/08(土) 09:16:54
>>333
どうやって実装するばいいのか分からず悩んでいます。

HtmlDocument doc = webBrowser1.Document ;
textBox2.Text = doc.GetElementsByTagName("html")[0].OuterHtml ;

メインページのhtmlしか取得できません。

238 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)