08/09/06 10:30:51
>>330
eventだから = はできない。delegateむき出しならできるのだけど。
332:デフォルトの名無しさん
08/09/06 10:37:15
難しいな~
結局>>308のやり方が正解なの?
333:デフォルトの名無しさん
08/09/06 10:52:20
・初期化の時
・ボタンを押した時
・タイマーで指定した時間が来た時
にそれぞれやることが混ざってるので、まずはそれを分けるべし。自分なりでいいから。
334:デフォルトの名無しさん
08/09/06 11:01:25
つまり、タイマーで時間が来た時
×ボタンをくりかえす
○ボタンそのものでなく、ボタンの中のやりたいことをくりかえす
ってことか
335:デフォルトの名無しさん
08/09/06 11:03:11
いや冷静にやりたいこと整理しなって。
毎回イベントハンドラに追加する必要がどこにある?
じゃ追加はだめなら=ならいい?って発想がもうおかしい。
=でいったい何するつもりだ?
336:デフォルトの名無しさん
08/09/06 11:04:12
JavaScript しか使ったことないのかな?
JSと違って、タイマーStart後は一定周期で毎回デリゲートが呼ばれる
タイマーを設定するのは最初の1回(Loaded中)のみでOK
ボタンの押下時にタイマー始めたいなら、+= を Loaded に、Start() を ButtonClick に
あるいは、if(timer.Tick == null) timer.Tick += xxx
337:デフォルトの名無しさん
08/09/06 11:07:58
そもそもタイマーはデザイン画面で貼りつければすむ話。
そしたらどっちのタイマーでも問題ない。
まWindowsタイマーでいいけどな。
イベントハンドラもデザイン画面で作ったらそれでしまい。
338:デフォルトの名無しさん
08/09/06 11:10:12
>>336それもちょっとおかしいぜ?
339:デフォルトの名無しさん
08/09/06 11:35:08
もうVBAでいいよ。やるきあるならVBだな。
340:デフォルトの名無しさん
08/09/06 11:48:12
何が違うんだよw
VBでも同じ結果になるのは目に見えてる。
341:デフォルトの名無しさん
08/09/06 11:49:13
JScriptもあるよw
342:デフォルトの名無しさん
08/09/06 11:51:24
VBならイベントを宣言的に作れる点?
343:311
08/09/06 12:11:25
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
textBox1.Text = "a";
}
もしかしてツールからフォームだしてダブルクリックして
これでいいの?
344:デフォルトの名無しさん
08/09/06 12:16:09
>>343
その状態で、Form1.Designer.csの
InitializeComponent()の中で何をやってくれているか観察してみ
345:デフォルトの名無しさん
08/09/06 12:19:52
>>343
意味はないけどそれであってるw
System.Windows.Forms.TimerはInvokeいらないよ
346:デフォルトの名無しさん
08/09/06 12:32:14
>>344
おおすげえwwこんなのがあったのかww
ちなみにこれの違いってなんなの?
this.button1 = new System.Windows.Forms.Button();
private System.Windows.Forms.Button button1;
347:デフォルトの名無しさん
08/09/06 12:44:46
上は式で下はメンバの宣言だから全く別種の要素だけど
348:デフォルトの名無しさん
08/09/06 14:01:14
>>343
そういうのがまあたいていの場合の普通のやり方。
ちょっといろいろデザイナ触ってみた方がいいんじゃないかな。
349:デフォルトの名無しさん
08/09/06 14:38:49
File.Move()って一つ一つファイルを移動しても
まとめて移動するのに比べてオーバーヘッドありませんか?
350:デフォルトの名無しさん
08/09/06 19:44:46
r―――‐ 、
|なにして遊ぶ?|
`ー―v―― ''
∧,,∧ ∧,,∧
∧,,∧ (´・ω・) (・ω・`). ∧,,∧ r――――‐ 、
( ´・ω).(O┬O) (O┬O) (ω・´ ) < 公園でかくれんぼ!|
( O┬O ∧,,∧. ∧,,∧)┬O ) `─―――─‐ '
◎-J┴◎( ´・) (・` )┴し-◎
( .__ l) (l __ )
`uロu'. `uロu'
r――.ヘ―──―‐ 、
|じゃあ公園まで競争だ! |
`ー―――──‐ '
351:デフォルトの名無しさん
08/09/06 21:43:31
Visual C# 2008 でアプリケーションを作ったんですが、
うちでは動くのに、友人のPCだと動きません。
.NET Frameworkのバージョンが、うちは3.5で、
友人のPCが2.0なのが原因じゃないかと思うんですが、
下位バージョンの.NET Fameworkでも動くアプリを作るには、
どうすればいいのでしょうか?
352:デフォルトの名無しさん
08/09/06 21:45:26
プロジェクト→プロパティ
対象のフレームワーク
353:デフォルトの名無しさん
08/09/06 21:56:34
それやっても向こうに2.0 SP1入れるかバージョンリダイレクトかけるかしないと動かなくないか?
354:デフォルトの名無しさん
08/09/06 22:18:24
素直にsetup作ればいいのに。
なんだか昔のVBerみたいな偏屈に見えるよ。
ちなみに、SP1の機能使ってなければSPなしの2.0環境でも動くんじゃないの?
つーか2.0はWin2000や98用が今のところ用意されてないSP2とかもうグダグダだな。
355:デフォルトの名無しさん
08/09/06 23:24:16
C#でのASP関連の質問はどこで聞けばいいの?WebProg板にASP.NETスレあるけど、やたら過疎ってるみたいなんだけど。
356:デフォルトの名無しさん
08/09/06 23:45:26
C#でASP……できたっけ?
てのはともかくここでもそこでも好きにすりゃ良いんじゃね
357:デフォルトの名無しさん
08/09/06 23:55:57
>>353
なんでやねん
まあSPでの変更点に引っかかる可能性はわずかにはあるが。
358:396
08/09/07 08:59:27
エクスプローラの機能限定版(ドラッグ&ドロップが出来ないエクスプローラ)
的なファイル管理ツールを作ろうと思っています。
サンプルとなるものってどこかに無いでしょうか?
開発ツールはC#(VS2008)です。
359:デフォルトの名無しさん
08/09/07 09:13:23
C#とは直接関係ないですが、ユーザーコントロールの件。
VisualStudio のソース用のテキストエディタには左側にブレークポイントを
置くエリアがありますが、あれはPanelコントロールのようなものなんでしょうか?
あのような機能のものを作ろうとした場合、ソーステキスト側のスクロール、
Fontのサイズ、行間距離、折り返しの有無とその変化などにすべて対応する
必要がありますが、簡単に実現する方法はないものでしょうか?
360:デフォルトの名無しさん
08/09/07 09:37:16
やった事無いけど、テキストボックスにSendMessageで
EM_SETRECTで左に余白を作り
EM_GETFIRSTVISIBLELINEで先頭行の番号を取得し
EM_GETLINECOUNTで表示されてる行数を取得して・・とかやればいけるんじゃね?
361:デフォルトの名無しさん
08/09/07 10:55:56
>>359
煽るわけじゃないが、そんな調子でそんな高機能なユーザーコントロールを
作ろうと思ってるわけ?
ちょっと考えれば分かると思うが、たまたま君が実装したいと思っているに過ぎない機能を
都合よく「簡単に」実現してくれる既存のコントロールなんてあるわけないじゃん。
362:デフォルトの名無しさん
08/09/07 11:01:53
>>361
まだ夏休みですか
363:デフォルトの名無しさん
08/09/07 12:45:30
>>362
消えろゴミ
364:デフォルトの名無しさん
08/09/07 12:53:25
>>362
ところであなたは大学卒業しました?
365:デフォルトの名無しさん
08/09/07 13:02:04
フフ、>>364は大卒じゃないのよ
366:デフォルトの名無しさん
08/09/07 13:05:22
>>365=中卒ニート
367:デフォルトの名無しさん
08/09/07 14:28:28
Fラン共うぜぇよ
368:デフォルトの名無しさん
08/09/07 15:13:02
↑Gラン
369:デフォルトの名無しさん
08/09/07 16:02:47
Bラン
370:デフォルトの名無しさん
08/09/07 16:15:35
学歴話が好きな奴の人物類型というのは
(1) 学歴コンプレックスのある人間(秋葉原の事件の容疑者タイプ)
(2) 学歴以外に縋るものがないタイプ(かなり古いが宮沢喜一系)
(3) 学歴コンプの奴を煽って楽しむタイプ(マミーなんとか的な幼稚系)
こんなところか。
どっちにしろ他人よりもむしろ「救いがない本人自身を語ってるだけ」、という
簡単で明白な事実に気づくだけの知能が欠けているのは全てのタイプに共通しているようだな。
371:デフォルトの名無しさん
08/09/07 17:01:36
>>359
>簡単に実現する方法はないものでしょうか?
ありません。
".NET エディタ コントロール"で検索してみると
みんな苦労してるのがわかると思う。
372:デフォルトの名無しさん
08/09/07 17:23:37
>>370
そういうあなたは中卒ですか?
373:デフォルトの名無しさん
08/09/07 18:52:58
ごめんなさい、脳卒中です
374:351
08/09/07 23:10:19
>>352
>>353
>>354
遅くなりましたがありがとうございます。
プロパティから対象フレームワークの設定はできました。
友人のPCで試してみます。
375:デフォルトの名無しさん
08/09/08 02:07:17
何この自演臭い酷い流れは
376:デフォルトの名無しさん
08/09/08 02:09:34
黙れ自演厨
377:デフォルトの名無しさん
08/09/08 06:29:54
早く前の流れに戻らないかしら。
378:デフォルトの名無しさん
08/09/08 06:34:38
>>373
×ごめんなさい、脳卒中です
○ごめんなさい、中卒脳です
379:デフォルトの名無しさん
08/09/08 14:31:04
>>371
>ありません
やはりそうでしたか。
>".NET エディタ コントロール"で検索してみると
>みんな苦労してるのがわかると思う。
わかりました。どうもありがとうございました。ではまた。
380:デフォルトの名無しさん
08/09/08 15:38:29
C#2.0で質問です。
Winアプリを作成しようとしています。
WEBアプリであればSessionのコレクションに特定のKey名でシリアライズできるオブジェクトを入れて
各画面で遷移した後も使いまわせるようにできると思うのですが
Winアプリで同じようなことを実現するにはどのようにすればよいでしょうか?
エントリポイントの
static void Main()
{
}
この辺りでRunさせる前に作成して保持しておきたいのです。
何か良い方法があればご教授いただけませんか?
381:デフォルトの名無しさん
08/09/08 16:16:44
静的なHashtableにでも入れときゃいいんじゃない?
俺はやらんけど。
382:デフォルトの名無しさん
08/09/08 17:00:07
>>380
遷移実行は遷移を管理するObjectに依頼する。
画面は遷移引渡し用Method、遷移元取り込み用Methodを用意する。
383:デフォルトの名無しさん
08/09/08 17:24:44
>>381-382
レスありがとうございます。
>>381
その方法だとすごく簡易にできそうです。
>>382
画面で順々に渡していくわけですね。
遷移絡みで一元管理ができそうです。
今回は一寸時間もあるので>>381+>>382の手法を組み合わせて
勉強しながら進めてみようと思います。
ありがとうございました。
384:デフォルトの名無しさん
08/09/08 18:12:38
>>378
ちょwwくそワロタww
385:デフォルトの名無しさん
08/09/08 18:32:55
何この糞ップリww
386:デフォルトの名無しさん
08/09/08 23:08:02
一般に、大卒以上の学歴を有しながら、中卒以下の人間を指す
387:デフォルトの名無しさん
08/09/08 23:23:51
にっぽんサイコー!:?BS11「にっぽんサイコー!」第1回2008/3/9(日)放送
URLリンク(www.team-nippon.com)
まあ一辺聴いてみてください。いかに日本が自民党に巻き上げられて官僚やゼネコンに配ってるかwわかります。
いかに口うまく騙されてるかwわかります。
日本Channel:築地があふれた!!壊すな築地7.12東京大行進
URLリンク(www.love-nippon.com)
ソトコト 憂国呆談
URLリンク(www.sotokoto.net)
断固田中康夫を首相にしましょう!!
388:デフォルトの名無しさん
08/09/08 23:34:08
VC#2008Express SP1でプログラム書いてるんですが、PerformanceCounterが思ったとおりに動いてくれません。
CategoryName : Processor
の
CounterName : % Idle Time
や
CounterName : % Processor Time
などの値を取得すると「0」しか返ってこない。
MemoryのAvailable MBytesや% Committed Bytes In Useなどは正しい値が返される。
正しい値とは、perfmon.exeで表示している値との比較。
Processorの% Idle Timeなどの常に「0」と表示される値は
perfmon.exeでは全部0以外の値が表示されている。
という状況です。
ソースの該当部分は
PerformanceCounter pc1;
pc1 = new PerformanceCounter();
pc1.CategoryName = "Processor";
pc1.CounterName = "% Idle Time";
pc1.InstanceName = "_Total";
Console.WriteLine(pc1.NextValue());
です。
どこかの掲示板で同じ症状で悩んでる人がいたんですが、誰もレスつけてなくて解決できたのかもわからない状況…
なにか間違っているところありますか?
389:デフォルトの名無しさん
08/09/08 23:55:35
while(true){
Console.WriteLine(pc1.NextValue());
System.Threading.Thread.Sleep(100);
}
ちょい試してみな
390:388
08/09/09 00:01:03
>389
あぁぁぁぁorz
わかりますた…
% Idle Timeとかって初期値が必ず0なのね…
はずかしぃぃぃ
391:デフォルトの名無しさん
08/09/09 00:51:30
System.Environment.CurrentDirectory;
のような感じでファイル名も取得したいのですがどうしたらいいでしょうか?
System.Environment.CurrentDirectory ディレクトリの情報しか取得してくれないんです
392:デフォルトの名無しさん
08/09/09 00:52:50
>>391
何のファイル名を取得したいの?
393:デフォルトの名無しさん
08/09/09 00:56:06
実行ファイルのパスなら、
Application.ExecutablePath
394:デフォルトの名無しさん
08/09/09 00:56:24
>>392
説明不足ですいません
URLリンク(dobon.net)
ここを参考にして、右クリックメニューからプログラムを開くようにしたんですが、
その右クリックしたファイル名を取得したいんです。
どうしたらいいでしょうか。
395:デフォルトの名無しさん
08/09/09 03:53:27
>>394
右クリックメニューからどのプログラムで開くように設定したの?
登録したプログラムが君の作ったプログラムだったらMain関数の引数がまさしくファイル名になるけど、
たとえばnotepad.exeで開くようにしたのだったら当然ファイル名を取得することはできないよ?
notepad.exeは君の作ったプログラムじゃないから当たり前なんだけどさ。
何がしたいのか全然想像できん。
相当初心者みたいだから、もっと具体的に説明してくれないと答えにくい質問だわ。
396:デフォルトの名無しさん
08/09/09 05:21:33
>>394
ようわからんが
Main(string[] args)
{
string fileName = args[0];
}
でいいんじゃね?
ちなみに、リンク先の方法は「フォルダ」をプログラムに関連づける方法だから、
「ファイル」を関連づけたいなら
URLリンク(dobon.net)
こっちの方だと思うんだけど。
397:デフォルトの名無しさん
08/09/09 12:06:27
List<string> a = new List<string>();
a.add("aaa");
・・・
ときて、aの要素すべてを"\\"で連結してひとつの文字列にしたい
398:デフォルトの名無しさん
08/09/09 12:12:30
String.Join
399:デフォルトの名無しさん
08/09/09 12:19:25
サンクス
string.Join("\\", a.ToArray());
でできた
400:デフォルトの名無しさん
08/09/09 13:42:05
>>395はリンク先読んでからレスしろよw
401:395
08/09/09 15:08:47
>>400
当然読んだに決まってるじゃん。
リンク先のサンプルは右クリックメニューにオリジナルメニューを追加させるようなアプリのサンプルなんだから、
右クリックで開かれるファイル名を取得したいという質問自体が意味不明なんだよ。
あくまでレジストリにキーを追加するだけのアプリと、コマンドライン引数を取得することは全く結びつかない。
コマンドライン引数を取得したいのならばそう言えばいいだけで、リンク先の記事は何の意味もなさないんだよ。
402:デフォルトの名無しさん
08/09/09 15:40:12
政治板にあった的確なAAを紹介します!!
↓
【選挙前】 郵政民営化に賛成か否か 国民投票です
自民党↓ 小泉
, - ,----、
(U( )
| |∨T∨
(__)_) 国民様、へへへーっ
↓
↓
【選挙後】
自民党↓ ガソリン暫定税率維持
後期高齢者制度制定
∧_∧ 日雇い派遣 制限撤廃
( ´∀`) 郵政造反組復党
( /,⌒l & 天下り先独法の特別会計ジャジャ漏れは完全に温存 !!
| /`(_)∧_0. & 二人の総理投げ出し他人事で辞任!
(__)(´∀`; )⊃⌒⊃ ← ← ← (一般民間人)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
403:デフォルトの名無しさん
08/09/09 16:18:33
ageろよww
404:デフォルトの名無しさん
08/09/09 19:14:16
コピペ君って馬鹿だな、まで読んだ。
405:デフォルトの名無しさん
08/09/09 21:29:25
>>396
ありがとうございます。
期待していた動きをさせることができました。
406:デフォルトの名無しさん
08/09/10 11:30:15
メソッドの引数にプロパティがたくさんあるクラスを渡そうとしています。
引数を渡す時に ref をつけて渡した方が、実行速度上 ( 微々たるものかもしれませんが ) 有利になるのでしょうか。
ref を付けずに渡すと、メソッドに渡す時に引数がコピーされると、プログラミング c# に書かれていました。
どうなのでしょうか?
407:デフォルトの名無しさん
08/09/10 11:31:53
用途による としか言いようがない
408:デフォルトの名無しさん
08/09/10 11:32:39
されない。
そう書いてあったならその本が間違ってる。
もしくは値型についての話と混同してる。
409:デフォルトの名無しさん
08/09/10 11:33:50
厳密にはクラスでも引数はコピーされるが、今の話はそういう話ではないはず。
410:デフォルトの名無しさん
08/09/10 11:36:47
大きな値型なら速くなる
クラスなら付けない方がたぶん速い
411:デフォルトの名無しさん
08/09/10 11:37:43
そうじゃなくて、そのメソッドをよく呼ぶときに実行速度が問題となるってこと。
412:デフォルトの名無しさん
08/09/10 11:42:57
>>407-411
お返事ありがとうございます。
なかなか難しいですね。
私の理解としては、メソッドの引数が、
クラスの場合→インスタンスのアドレスが渡される ( コピーされない )
値型の場合→ボックス化?され ( つまりコピーされ ) 渡される
という理解ですが、良いのでしょうか?
クラスの場合に、そのクラス中に値型のフィールドが含まれることもあるかと思いますが、そちらはよく分かってません。
413:デフォルトの名無しさん
08/09/10 11:43:13
refキーワードは速度じゃなく、メンバの使われ方が問題なんだが
414:デフォルトの名無しさん
08/09/10 11:44:14
よく考えなくても分かるけど、参照がコピーされたのに、参照に含まれる一部が実体とかおかしいだろ
415:デフォルトの名無しさん
08/09/10 11:47:40
意味が分かりませんw
416:デフォルトの名無しさん
08/09/10 11:47:47
>>414
なるほど。
では、まとめると、
クラスの場合→インスタンスのアドレスが渡される ( コピーされない )
クラスのメンバに値型が含まれる場合→インスタンスがコピーされアドレスが渡される
値型の場合→ボックス化?され ( つまりコピーされ ) 渡される
という理解ですが、良いのでしょうか?
417:デフォルトの名無しさん
08/09/10 11:52:17
とりあえずいろいろコード書いて試してみりゃいいよ
418:デフォルトの名無しさん
08/09/10 11:57:14
>>416
これ読んどけ。じっくり読むと理解できるから。流して読むと川俣ワールド迷走することになるが
URLリンク(www.atmarkit.co.jp)
419:デフォルトの名無しさん
08/09/10 12:06:54
>>414だいぶ混乱してる。
少なくとも今の話にはボックス化は無関係。
ただしコピーされるってのは間違ってない。
値型メンバはクラスのインスタンスにそのまま埋め込まれてる。
参照型メンバはクラスのインスタンスに、まあ君の理解で言うとアドレスが埋め込まれてる。
420:デフォルトの名無しさん
08/09/10 12:09:11
>>416
× クラスのメンバに値型が含まれる場合→インスタンスがコピーされアドレスが渡される
○ クラスのメンバに値型が含まれる場合→インスタンスを保持している変数のアドレスが渡される
// 例
class Hoge {
private string msg;
Hoge(string s) {
msg = s;
}
public override string ToString() {
return msg;
}
static void foo(ref Hoge fuga) {
// Main関数のhogeが指しているインスタンスが別のものになる。
fuga = new Hoge("Foo");
}
static void Main(string[] args) {
Hoge hoge = new Hoge("Hello");
Console.WriteLine(hoge.ToString());
foo(ref hoge);
Console.WriteLine(hoge.ToString());
}
}
421:デフォルトの名無しさん
08/09/10 12:15:25
値型は実体がコピーされる。
ただし、参照型に含まれる値型は値型の参照がコピーされる。
以上
422:デフォルトの名無しさん
08/09/10 12:15:53
もう難しすぎる!
423:デフォルトの名無しさん
08/09/10 12:16:01
>>413
XNA Frameworkとか覗いてみたらわかるよ
決して良い使い方だとは言えないんだけど
424:デフォルトの名無しさん
08/09/10 12:23:02
そういう人が書いた記事よりもMSDNを熟読するほうがいいよ。
425:デフォルトの名無しさん
08/09/10 12:24:31
そりゃC#のボキャブラリだけで考えていたら難しいだろう
Cかアセンブラで関数のメカニズム(スタックフレーム)について
勉強してから戻ってくるといいよ
そういえばMSILの逆アセンブラなんかもあったような
426:デフォルトの名無しさん
08/09/10 12:30:05
でたらめが入りまじってるから、
ちゃんとした書籍で調べることをお薦めする。
ああ、ひと目でわかるとか、あんなのは駄目だぜ。
こちらはVB版だが、確か同じ間違いの記述がある。
427:デフォルトの名無しさん
08/09/10 13:35:40
>>417-426
スタックやヒープなどからいろいろと勉強して理解してみます。
アドバイスありがとうございます。
逆に ref を使うときってどういう時に使ってますか?
428:デフォルトの名無しさん
08/09/10 13:42:06
たまにprivateメソッドで実装の都合で使うかも
外から見えるメンバには絶対使わないな
outは稀に使うけど
429:デフォルトの名無しさん
08/09/10 14:31:35
確かにrefはめったにない。
outはたまに使う。
430:デフォルトの名無しさん
08/09/10 14:34:39
COMインターフェイス絡みだと[In] refなんてザラだけどこのスレ的にはあんまり関係ないな
431:デフォルトの名無しさん
08/09/10 14:39:29
C#2.0 Winアプリで超基本を教えてください。
DataTableをDataSourceプロパティにバインドしたときは
ValueMemberとDisplayMemberを指定することでSelectedItemからTextとValueが別々に取得可能ですが
自分で
コンボ.Items.Add
メソドを使用して項目を追加する場合に SelectedItemからTextとValueを別々に取得できるようにするにはどのようにすればよいでしょうか?
自分でデータテーブルを作成するときに加工しておけばよいのでしょうが、
それはしない方向で実現する手段があればお教えください。
具体的には
データベースにId Name のカラムがありそれぞれ int,string の型になっています。
この先頭に * 全て という項目を入れたいのですが
DBから取得してきたDataTableのId列はint型なので先頭項目を挿入できないのです。
値を取得してきた際、*でなければ全て数値であることが保障されているという前提です。
よろしくお願いします。
432:デフォルトの名無しさん
08/09/10 15:39:31
DBNullでいいじゃん?とは思うけど
stringのプロパティ二つ持ったクラス用意
DisplayMember/ValueMemberにそれぞれのプロパティ名設定
一つずつ用意したクラスに詰替え
Items.AddよりDataSourceに配列として設定した方がよくね?
433:デフォルトの名無しさん
08/09/10 15:45:45
>>432
>Items.AddよりDataSourceに配列として設定した方がよくね?
確かに・・・
まず提案していただいた方法試してみます!
ありがとうございました。
434:デフォルトの名無しさん
08/09/10 17:16:10
DBの項目がIntならそのまま更新できないから「全て」が選ばれたときにどうやって更新するのかは気になるところ
435:デフォルトの名無しさん
08/09/10 17:26:13
ArgumentNullExceptionをスローするときに
引数名を文字列で直接指定するのって格好悪い気がするんだけどいい方法ある?
436:デフォルトの名無しさん
08/09/10 17:27:24
気のせいだ
437:デフォルトの名無しさん
08/09/10 17:39:51
>>435
ない。
リファクタリングと相性が悪いので、どうにかしようという話が出てたが
まだ実現していない。
438:デフォルトの名無しさん
08/09/10 18:05:24
internal static Exception ArgumentNull(Delegate method, int paramIndex) {
ParameterInfo[] parameters = method.Method.GetParameters();
return new ArgumentNullException(parameters[paramIndex].Name);
}
void Hoge(object arg) { throw ArgumentNull(new Action<object>(Hoge), 0); }
こういうのはどうだろう
439:デフォルトの名無しさん
08/09/10 18:11:12
今度は引数の数や順番の変更に弱くなるぞ
440:デフォルトの名無しさん
08/09/10 22:58:27
質問です。
WinXPにてadmin権限でログイン後
作成したアプリをインストーラからインストール。
アプリは、カレントディレクトリに対してフォルダを作成したり
ファイルをダウンロードしたりします。
admin権限でログインしているときはうまく動作するのですが、
フォルダに、ユーザからのアクセス件が無いので動作しません。
以下のコードでアクセス権を付加しようとしていますがうまくいきません。
どこが間違っているでしょうか?
System.Security.AccessControl.DirectorySecurity dSecurity =
Directory.GetAccessControl(Application.StartupPath);
dSecurity.AddAccessRule(
new System.Security.AccessControl.FileSystemAccessRule(
System.Environment.UserName,
System.Security.AccessControl.FileSystemRights.FullControl,
System.Security.AccessControl.AccessControlType.Allow
));
Directory.SetAccessControl(Application.StartupPath, dSecurity);
441:440
08/09/10 23:00:07
質問訂正です。
WinXPにてadmin権限でログイン後
作成したアプリをインストーラからインストール。
アプリは、カレントディレクトリに対してフォルダを作成したり
ファイルをダウンロードしたりします。
admin権限でログインしているときはうまく動作するのですが、
権限無しのユーザでログインすると
フォルダにユーザからのアクセス件が無いので動作しません。
以下のコードでアクセス権を付加しようとしていますがうまくいきません。
どこが間違っているでしょうか?
System.Security.AccessControl.DirectorySecurity dSecurity =
Directory.GetAccessControl(Application.StartupPath);
dSecurity.AddAccessRule(
new System.Security.AccessControl.FileSystemAccessRule(
System.Environment.UserName,
System.Security.AccessControl.FileSystemRights.FullControl,
System.Security.AccessControl.AccessControlType.Allow
));
Directory.SetAccessControl(Application.StartupPath, dSecurity);
442:デフォルトの名無しさん
08/09/10 23:25:25
>>441
フォルダのアクセス権がないユーザーが、そのフォルダのアクセス権を変更することはできない。
当たり前のことですな。
443:デフォルトの名無しさん
08/09/10 23:32:08
お前馬鹿かよ。
何やろうとしてるか冷静に考えてみろ。
444:デフォルトの名無しさん
08/09/11 00:08:28
C#もVBと同じ Optional 引数は使えますか?
445:デフォルトの名無しさん
08/09/11 00:27:28
いいえ
446:デフォルトの名無しさん
08/09/11 00:43:03
adminとuserがひとつのアプリを共有し
ファイルディレクトリ操作を行う場合
どういう実装をすればいいのでしょうか?
447:デフォルトの名無しさん
08/09/11 01:05:23
userに権利が無い操作を、できなくすればいいのでない?
448:441,446
08/09/11 01:51:14
>447
自分がadminかそうじゃないかを知る方法ってあるのですか?
元々その辺から調べてたのですが全くわかりませんでした。
449:デフォルトの名無しさん
08/09/11 06:02:46
>>448
WindowsIdentityとWindowsPrincipalの組み合わせで。
URLリンク(www.atmarkit.co.jp)
450:デフォルトの名無しさん
08/09/11 11:40:40
C# 2.0のアプリケーション構成ファイルで接続文字列を設定し
DbProviderFactoriesクラスからGetFactoryメソッドを使用した上でDBへ接続を行いたいと思っています。
構成ファイルの方は設定しており
<add name="プロジェクト名.Properties.Settings.ConnectionString"
connectionString="Provider=HOGE-;Data Source=hogehoge"
providerName="System.Data.?????" />
このような記述がされております。
このときPG側から接続文字列の設定を読み取ることは標準でできるのですが ProviderName
の部分(System.Data.?????)を取得するにはどのようにすればいいのでしょうか?
設定ファイルの設定はC#の「プロジェクトの設定のエディタを使用しております。
よろしくお願いいたします。
451:441
08/09/11 14:55:32
>449 ありがとうございました。ようやく前進できました。
もうひとつ質問ですが、
System.Net.WebClient でファイルのDLを行う場合、
拡張子exeのファイルは環境によっては弾かれるということはありえますか?
拡張子exeのファイルは拡張子を変えてDLしたあとリネームした方がいいのでしょうか?
それとも、zipファイルとしてDLしたあと展開するのがベターでしょうか?
452:デフォルトの名無しさん
08/09/11 22:11:46
C#でWindowsの音量(マスターとか、WAVEとか、ラインインとか)を
直接操作できるような方法ってあるんでしょうか?
453:デフォルトの名無しさん
08/09/11 22:16:22
Win32API
454:デフォルトの名無しさん
08/09/11 22:17:24
C# api MIXIERCAPS あたりで検索して味噌
455:デフォルトの名無しさん
08/09/11 22:20:22
err
s/MIXIERCAPS/MIXERCAPS/
456:デフォルトの名無しさん
08/09/11 23:07:10
>>450
これ以上ないくらい普通に取れるが、どこで引っかかってるの?
457:デフォルトの名無しさん
08/09/12 09:01:18
>>456
おはようございます。
Properties.Settings.Default.ConnectionString
で接続文字列は取得できるのですが
Properties.Settings.Default.ProviderName
というプロパティが存在せず取得できないということです。
458:デフォルトの名無しさん
08/09/12 11:42:58
コンテキストメニュー「1」又は「2」からフォーム「A」を
開くときに、フォーム「A」はどちらのコンテキストメニューから
開かれたのか知るためにはどうすればいいのでしょうか。
459:デフォルトの名無しさん
08/09/12 11:51:46
DataGridViewの表示がやたらと遅いんですが、
改善策はあるんでしょうか?
フォームにDataGridViewを置いて起動→
10行くらい適当に入力→
最小化、最大化で、上から順にズラズラと再描画されています。
PCは最近のものなのでスペックは悪くありません。
460:デフォルトの名無しさん
08/09/12 13:16:45
>>458
フォームAにそういうプロパティを実装する。
あとは呼び出す前に設定するだけ。
461:デフォルトの名無しさん
08/09/12 15:30:53
Form1にシリアル通信をしてオープンしている状態で、別のフォーム(Form2)を呼び出して、
そのまま通信しようとするとエラーが起きてしまいます。
どうすればよいでしょうか?
462:デフォルトの名無しさん
08/09/12 15:32:27
エラー(笑)
463:デフォルトの名無しさん
08/09/12 15:36:04
エラーというかポートが閉じられているとでます。
464:デフォルトの名無しさん
08/09/12 16:02:51
何がでるって?
465:デフォルトの名無しさん
08/09/12 16:08:04
'System.InvalidOperationException' のハンドルされていない例外が System.dll で発生しました。
追加情報: ポートは閉じられています。
です
466:デフォルトの名無しさん
08/09/12 16:10:00
>そのまま通信しようとすると
って具体的に何したの
467:デフォルトの名無しさん
08/09/12 16:12:08
データを送ろうとしてます。
Form1からは正常に動きます
468:デフォルトの名無しさん
08/09/12 16:29:07
ズコー
469:デフォルトの名無しさん
08/09/12 16:35:43
いいよいいよー
470:デフォルトの名無しさん
08/09/12 17:02:41
Form2はForm1からシリアルのインスタンスもらってそれを操作しようとしたの?
スレッドは単一?
471:デフォルトの名無しさん
08/09/12 17:08:46
はい
472:デフォルトの名無しさん
08/09/12 18:41:45
メル欄ふざけてるの?
473:デフォルトの名無しさん
08/09/12 18:55:07
はい
474:デフォルトの名無しさん
08/09/12 19:27:06
>>473
違う
>>472
違う
非アクティブ状態でも、シリアルポートはOPENにしたいんだーーーーーーーーーーーーーーーーーー
475:デフォルトの名無しさん
08/09/12 19:29:54
メル欄真面目なの?
476:デフォルトの名無しさん
08/09/12 19:47:56
まじめです。
マジレス頼みます
477:デフォルトの名無しさん
08/09/12 20:18:23
VBのMSCommじゃないんだから(いやMSComm使ったってそうだが)Formの状態と
SerialPortクラスの例外は普通は何の関係もないはずだが。
っていうかまずハンズオンか何かにあったサンプルコードを理解するところから
はじめたらどう?
478:デフォルトの名無しさん
08/09/13 01:11:49
シリアルポートって1つしかOPEN出来ないとかそういう話じゃなくて?
479:デフォルトの名無しさん
08/09/13 14:24:46
は?
480:デフォルトの名無しさん
08/09/13 17:28:02
め?
481:デフォルトの名無しさん
08/09/13 17:32:19
は?
482:デフォルトの名無しさん
08/09/13 17:47:15
め?
483:デフォルトの名無しさん
08/09/13 17:48:11
学?
484:デフォルトの名無しさん
08/09/13 17:49:12
園?
485:デフォルトの名無しさん
08/09/13 17:58:03
Windows フォームアプリで、System.Threading.Timer で一定時間ごとにある操作をしてフォームに文字列を表示しています。(30ms 毎に Timer が起動)
文字列はちゃんと表示されているのですが、フォームの他のコントロールが描画されず真っ白のままです。
System.Windows.Forms だと正しく動作するのですが、どうしたらよいのでしょうか?
486:デフォルトの名無しさん
08/09/13 18:07:52
System.Windows.Forms を使う
487:デフォルトの名無しさん
08/09/13 18:10:02
>>485
できた。
this.Update();
Application.DoEvents();
を追加した。
488:デフォルトの名無しさん
08/09/13 18:29:34
DoEvents()が出てきたら何か考え方がおかしいと疑ったほうがよい
489:デフォルトの名無しさん
08/09/13 20:28:52
>>487
残念だが多分正しくは出来てない気がする。
デバッグ実行したら例外になったりしないか?
まあ見てないから分からんけども。
490:デフォルトの名無しさん
08/09/14 03:52:20
ずっと動かしてたら落ちるだろうなあ
491:デフォルトの名無しさん
08/09/14 09:00:39
>>488-490
確かに表示は更新することは出来ましたが、
フォームを終了させると例外が発生しています。
タイマの delegate でフォームを更新させるために呼んでいる Invoke メソッドで InvalidOperationException が発生しました。
30ms 毎に Timer を起動していますが、行っている処理の時間がかかりすぎて、次の30ms までに終了せず、タイマが ThreadPool にたまりすぎなのだろか?
492:デフォルトの名無しさん
08/09/14 11:10:13
どんな処理してるわけ?
493:デフォルトの名無しさん
08/09/14 11:56:13
毎回起動しなおしてんの?
494:デフォルトの名無しさん
08/09/14 12:08:16
ま、Invokeはハンドルが破棄された後に呼び出すと例外になるので、
とりあえずInvokeする前にハンドルがあるか確認するか、
確実を期するなら自前でフラグ管理と同期を行うか、
まあ少なくともどっちかは必要。
その上で他にも問題があるかはまた別の話。
495:デフォルトの名無しさん
08/09/14 12:20:56
30msごとにタイマー起動してフォームを更新っていったいどんな処理しているの?
その設計自体を根本から見直す方が先決だと思うんだけれど。
496:デフォルトの名無しさん
08/09/15 22:27:11
色んな要求あるんだから、お前の小さい視点でレスするな
497:デフォルトの名無しさん
08/09/15 22:45:46
点に大きいも小さいもないよ。
498:デフォルトの名無しさん
08/09/15 22:48:30
ん?悔しかったの?w
499:デフォルトの名無しさん
08/09/16 04:08:33
デリゲートは標準でマルチキャストですが
シングルキャストデリゲートってどう作るんですかね?
500:デフォルトの名無しさん
08/09/16 09:56:21
C#ってよりCLRじゃ無理
501:デフォルトの名無しさん
08/09/16 10:04:09
あれってデリゲートが今みたいに積極的にイベント以外に使われるようになることを
想定してなかったんだろうな
今作り直すならイベントハンドラは別扱いとかコンテナは別にするとかになりそう
502:デフォルトの名無しさん
08/09/16 19:31:30
>>501
なぜデフォでマルチキャストなのかって疑問は確かにあるけどそれはない。
だって関数ポインタの自然な発展形である以上、
その用途をイベントだけに見積もるなんてありえん。
503:デフォルトの名無しさん
08/09/16 19:34:08
また俺のわからない話をする
504:デフォルトの名無しさん
08/09/16 19:43:20
最初はシングルキャストと厳密に分けてたけどうざいだけでメリットがあんまなかったからやめたのさ。
505:デフォルトの名無しさん
08/09/16 19:59:17
関数ポインタを引数にとるアンマネージ関数にマルチキャストデリゲートを渡しても
ちゃんと全部呼んでくれる。
神経質に使い分ける必要もないのかな。
506:499
08/09/16 20:13:47
どうも
class Program
{
//計算を委託できる
public Func<double, double, double> Calc;
private double a, b;
public Program(double a, double b){
this.a = a;
this.b = b;
}
private double DefaultCalc(double a, double b){
return a + b;
}
public void Action(){
double result;
if (Calc != null)
result = Calc(a, b);
else
result = DefaultCalc(a, b);
Console.WriteLine("計算結果:{0}", result);
}
}
class Test
{
static void Main(string[] args){
Program program = new Program(12, 42);
program.Calc += ((a, b) => a * b);
program.Calc += ((a, b) => a / b);
program.Action();
}
}
507:499
08/09/16 20:14:33
↑みたいなプログラムだとマルチキャストの意味が全くないし
間違えて+=で委託先を追加したら気づかずに余計な処理をさせちゃうこともあり得るので
どうせならシングルキャストを作れればいいのにと思いましたが
private Func<double, double, double> calc;
public Func<double, double, double> Calc
{
get
{
this.calc = value;
}
}
みたいなプロパティを追加すればいいだけだと気づきました、すみません
508:499
08/09/16 20:15:19
setだった
509:デフォルトの名無しさん
08/09/16 20:17:06
setオンリーのプロパティはガイドライン違反
SetCalcメソッドにしようね
510:デフォルトの名無しさん
08/09/16 20:20:36
>>509
そんなガイドラインあったっけ?
VBなんて普通にWriteOnlyなんていう組み込みのキーワードまであるんだけど。
511:デフォルトの名無しさん
08/09/16 20:23:09
>>510
URLリンク(msdn.microsoft.com)(VS.80).aspx
512:デフォルトの名無しさん
08/09/16 20:47:43
<>で囲まれてる文字列を最小一致で全部取り出すにはどうしたらいいですか?
<html><body></body></html>なら、
html body /body /htmlを取り出してリストに突っ込むようなことです
最小一致なのでhtml><body></body></htmlが取り出されると困ります
よろしくおねがいします
513:デフォルトの名無しさん
08/09/16 20:57:44
>>509>>511
そうでしたか、
わざわざどうもです
>>512
char[] separator = {'<', '>'};
string str = "<html><body></body></html>";
str.Split(separator, StringSplitOptions.RemoveEmptyEntries);
っていうのはどうでしょう
514:512
08/09/16 21:17:12
>>513
うまくいきました
本当にありがとうございます。
515:デフォルトの名無しさん
08/09/16 22:15:33
>>512
ちなみに、.NET の正規表現的には \<.*?\> で行ける。
*? で最小一致。
516:デフォルトの名無しさん
08/09/16 22:55:41
>>515
ついでに先読み、戻り読みも入れて (?<=<).*?(?=>) で
>>513>>514
Split使うなら、ゴミが入らないようにしないと
str.Split('<').Skip(1).Select(s => s.Split('>')[0])
因みに、以下の場合はおそらく構文エラーなので適当に
- 1回目のSplitで空文字列がある(ただし、#0は除く)
- 2回目のSplitで要素数が2でないか、#0が空
517:デフォルトの名無しさん
08/09/16 23:05:38
横やりだけどSkip()って初めて見るけど新しく追加されたメソッドか?
518:デフォルトの名無しさん
08/09/16 23:06:47
>>517
LINQ
519:デフォルトの名無しさん
08/09/17 01:06:42
LINQまったく使ってないなぁ
最初は興味あったけど構文が異質すぎて使えない
520:デフォルトの名無しさん
08/09/17 01:14:33
クエリ式を使わないLinqもありだよ。C#のクエリ式ではSkipはサポートされていない。
VBではサポートされている。
521:デフォルトの名無しさん
08/09/17 01:28:02
ゴミって空文字かな?
StringSplitOptions.RemoveEmptyEntries
でおkのような気がす
そういう感じで行くなら
str.Split(new char[]{ '<' , '>' }).Where(s => s != "")
の方が俺好みだば
クエリ構文はまったくわからないなぁ
まったく使わなそうな気がするのでそこだけ勉強すらしてないなぁ。。
522:デフォルトの名無しさん
08/09/17 01:42:24
>>521
いや、こういう事
<html><body>ゴミ</body></html>
523:デフォルトの名無しさん
08/09/17 11:17:23
ああなるほど把握
524:デフォルトの名無しさん
08/09/17 14:56:32
パブリックメンバにDictinaryを含むクラスをシリアライズしたいのだけど、
IDictionary実装クラスはシリアル化できないと怒られます。
KeyValuePair構造体の配列に変換してからシリアル化するのがいいのかと考えたんですが、
デシリアライズの時にどうすればいいのか・・・
どなたか助言いただけると助かります
525:デフォルトの名無しさん
08/09/17 15:09:15
配列にしたとしても、KeyValuePair(のプロパティ)が変更可能でないから駄目じゃないか
俺は変更可能なKeyValuePairとDictionaryのラッパー作って対処したが
526:デフォルトの名無しさん
08/09/17 15:25:42
Dictionaryでset可能なプロパティって気持ち悪いな
IXmlSerializableの実装でも書くか?
527:デフォルトの名無しさん
08/09/17 15:42:24
C#でH8/3069の制御って出来ますか?
528:デフォルトの名無しさん
08/09/17 15:54:41
うん
529:デフォルトの名無しさん
08/09/17 16:13:30
返答ありがとうございます
もう少し具体的な質問が出来るようになるまで自分で勉強しようと思います
530:524
08/09/17 17:29:27
結局パブリックプロパティで、
Dictionaryのkeyとvalueの2次元配列を取得、
Setterでは2次元配列のループでDictionaryにkeyvaluepairを格納していくような設計にしました。
やはりDictionaryはカプセル化した方が良かったですね。
ただデシリアライズ時のパフォーマンスがどうなるかは?ですが。
531:デフォルトの名無しさん
08/09/17 18:49:57
>>528
え゙ ?H8向けのコンパイラ(実行環境)ってあるの?
532:デフォルトの名無しさん
08/09/17 18:55:26
↑アホ
533:デフォルトの名無しさん
08/09/17 19:38:33
いや、俺の方がもっとアホ
534:デフォルトの名無しさん
08/09/17 19:46:40
>>531
H8は(というか今時のマイコンはほとんどそうだと思うけど)実機とIDEで
デバッグができるはず。
まあでもマイコンの開発にデバッガなんて俺はいらないと思うけどね。
少なくとも俺は使ったことも必要性を感じたこともないよ。
535:デフォルトの名無しさん
08/09/17 22:42:02
タイマーで10ミリ秒毎にフォーム上のマウスカーソルの座標を取得し、
マウスに合わせて画像も一緒に移動させる。
更に、クリックした場所に画像を固定する。
ってなことをやってみたんですが、
移動時など、ものっすごい画像がチラついてしまいますorz
やっぱこういうのはDirectXなどを使ったほうが良いのでしょうか?
536:デフォルトの名無しさん
08/09/17 23:06:50
本当にそれは10ミリ秒毎にする必要はあるのか?
537:デフォルトの名無しさん
08/09/17 23:08:53
>10ミリ秒毎
意味あると思ってんのか?
538:デフォルトの名無しさん
08/09/17 23:23:14
100fpsなんて格ゲでもやらんぜ
539:535
08/09/18 00:39:58
3連発でダメ出しされるとは・・・orz
最初100ミリ秒でやったんですが、
マウスの動きに若干遅れるんで、10ミリ秒にしてみました。
意味は全然考えてませんでした。すいません。。
これは仕様から考え直したほうが良さげですね。
お騒がせしました&ありがとうございました。
540:デフォルトの名無しさん
08/09/18 01:14:11
タイマでやらんでもできるっしょ。
ボードゲームのソースでも拾ってくれば?
541:デフォルトの名無しさん
08/09/18 01:33:08
C#というわけではないのですが、ファイル管理ソフトでファイル内
文字列まで見て該当ファイルを見つけるという検索がありますが、
あれは文字列の形式やフォーマットあるいはエンコードなどをすべて
のケースで調べているのでしょうか?
たとえばExcelやワードなどのファイルの場合は、それをテキスト形式
で取り込んで調べるのでしょうか?
542:デフォルトの名無しさん
08/09/18 01:36:38
>>541
うぜえ、なんだこいつ
場違いなんだよ消えうせろクソ餓鬼
543:デフォルトの名無しさん
08/09/18 03:05:33
>>540
画像をマウスと一緒に動かすのは、とりあえず諦めました。
で、オセロとか見てたんですが、置く画像が正方形なら簡単だけど、
長方形も混在してると、途端に難しくなりますね。
ゲーム系のプログラムは全然やったこと無かったんで、
もっと単純な物も参考にしてやってみます。
544:デフォルトの名無しさん
08/09/18 03:52:15
>>543
PanelとかPictureBoxとかのMouseMove/MouseClickイベントで十分ぽい匂いがした。
545:デフォルトの名無しさん
08/09/18 07:56:55
struct Vect
{
public Point[] Points;
}
private void init()
{
Vect v = new Vect();
v.Points = new Point[] { new Point(2, 3), new Point(3, 4) };//これだといける
v.Points = { new Point(2, 3), new Point(3, 4) };//これだとエラーが出る
}
なぜエラーがでるのでしょうか?どういう違いがあるのでしょうか?
546:デフォルトの名無しさん
08/09/18 08:00:00
Point[] Points = { new Point(2, 3), new Point(3, 4) };
こんな感じで記述するといけるんですが・・
547:デフォルトの名無しさん
08/09/18 08:29:26
>>545
new Point[] を省略していいのは変数宣言の時だけ。
548:デフォルトの名無しさん
08/09/18 15:22:45
省略できるのしらんかったw
549:デフォルトの名無しさん
08/09/18 17:28:56
menustripコントロールで出来て、toolstripコントロールだと出来ないことってありますか?
toolstripならアイコンだけじゃなくて文字でも表示できるのでmenustripを使う意味はあるのかなと思いました。
550:デフォルトの名無しさん
08/09/18 19:24:28
C#Builderのプロジェクトファイル群をVC#対応へ移行するにはどのようにするのでしょうか?
551:デフォルトの名無しさん
08/09/18 21:06:14
エラー 1 型または名前空間名 'Drawing' は名前空間 'System' に存在しません。アセンブリ参照が不足しています。
どこいっちゃったのよ。
552:デフォルトの名無しさん
08/09/18 21:13:25
Drawingの前にSystemつけるかusing System.Drawing;じゃないか
553:デフォルトの名無しさん
08/09/18 21:18:55
スレタイに C井 が足りない
554:デフォルトの名無しさん
08/09/18 21:20:07
C丼は足りてる
555:デフォルトの名無しさん
08/09/18 21:24:26
.net1.0からの移植
using System.Drawing;でエラーが出た もう意味がわからない
556:デフォルトの名無しさん
08/09/18 21:27:33
※ C丼: コチュジャン丼。豚肉と温野菜をコチュジャンで甘辛くした物をご飯の上に載せた物
557:デフォルトの名無しさん
08/09/18 21:31:10
ソリューションエクスプローラーの参照設定にSystem.Drawing入ってるか?
558:デフォルトの名無しさん
08/09/18 21:33:20
「System」だけ参照設定に入ってるけど、一つ一つやらなきゃいけないの?
なんか似たようなエラー30個もある
559:デフォルトの名無しさん
08/09/18 21:35:48
なるほど解決しました
エラー減っていくのが楽しいです
ありがとう
560:デフォルトの名無しさん
08/09/18 21:38:59
現金な奴だw
561:デフォルトの名無しさん
08/09/18 21:40:21
じゃあ、C丼について語ろうか
562:デフォルトの名無しさん
08/09/18 21:43:23
丼だけ~ ?
563:デフォルトの名無しさん
08/09/18 23:42:56
C#で、Formに張り付いているTextBoxを、
マウスドラッグされた場所に移動する場合どの
メソッドをしようすればいいでしょうか?
564:デフォルトの名無しさん
08/09/19 00:41:50
メソッドは使用しない。
プロパティなら使用する。
565:デフォルトの名無しさん
08/09/19 00:42:08
private bool clicked = false;
Point beforeLocation;
private void textBox1_MouseDown(object sender, MouseEventArgs e)
{
clicked = true;
beforeLocation = textBox1.PointToScreen(e.Location);
}
private void textBox1_MouseMove(object sender, MouseEventArgs e)
{
if (clicked && (beforeLocation != null))
{
Point afterLocation = textBox1.PointToScreen(e.Location);
textBox1.Left += (afterLocation.X - beforeLocation.X);
textBox1.Top += (afterLocation.Y - beforeLocation.Y);
beforeLocation = afterLocation;
}
}
private void textBox1_MouseUp(object sender, MouseEventArgs e)
{
clicked = false;
}
超適当で作ってみたけど正しいかはわかんない
566:デフォルトの名無しさん
08/09/19 01:03:03
もうちょっとシンプルに
int mx, my;
bool mDown;
private void textBox1_MouseDown(object sender, MouseEventArgs e)
{
mx = e.X;
my = e.Y;
mDown = true;
}
private void textBox1_MouseMove(object sender, MouseEventArgs e)
{
if (!mDown) return;
this.textBox1.Left += e.X - mx;
this.textBox1.Top += e.Y - my;
}
private void textBox1_MouseUp(object sender, MouseEventArgs e)
{
mDown = false;
}
567:デフォルトの名無しさん
08/09/19 04:36:53
msdnドキュメントをオフラインで使用したいのですが
どこでダウンロードできますか?
568:デフォルトの名無しさん
08/09/19 04:42:58
Download Centre
569:デフォルトの名無しさん
08/09/19 07:45:52
2005用のしかないんだけど、2008にも使えるの?
570:デフォルトの名無しさん
08/09/19 09:24:58
すみません、、、質問させていただきます。
for文を利用して、偶数表示をするWEB画面を作成する課題がでました。
解答例)2,4,6,8,10
結果は、10が表示されます。デバッグしたら、
2,4,6,8もif文の中をとっているのに表示されません、、、
提出期限は昨日の夜まででした、、、ほんとに
どうしていいか分かりません。教えてください。
for (int i = 1; i <= 10; i++)
{
if (i % 2 == 0)
{
litShowAns.Text = Convert.ToString(i) + "、";
}
}
litShowAnsはliteralのIDです。
ヒントは文字列の結合らしいのですが。。。何で文字列の結合が必要なのか分かりません。
571:デフォルトの名無しさん
08/09/19 09:36:30
>>570
Aという変数に2から10まで入れたとして、最後に入ってるのは10だろ?
572:デフォルトの名無しさん
08/09/19 09:37:32
>>570
文字列の結合を調べましたか? 試しましたか?
i がそれぞれの値のとき、何が起こっているか自分なりに説明できますか?
573:デフォルトの名無しさん
08/09/19 09:49:15
>>570
litShowAns.Text += Convert.ToString(i) + "、";
574:デフォルトの名無しさん
08/09/19 09:54:16
>>570
for (int i = 2; i <= 10; i+=2)
{
string str += Convert.ToString(i) + "、";
}
litShowAns.Text=str;
575:デフォルトの名無しさん
08/09/19 09:55:15
間違えた
string str ="";
for (int i = 2; i <= 10; i+=2)
{
str += Convert.ToString(i) + "、";
}
litShowAns.Text=str;