[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 01/29 10:32 / Filesize : 134 KB / Number-of Response : 576
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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

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

前スレ

ふらっとC#,C♯,C#(初心者用) Part29
pc11.2ch.net/test/read.cgi/tech/1216734995/

2 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 17:19:16 ]
[プログラム板] C#, C♯, C#相談室 Part47
pc11.2ch.net/test/read.cgi/tech/1214038282/

WPF(XAML,XBAP,.NET3.5)GUIプログラミング
pc11.2ch.net/test/read.cgi/tech/1211453941/

Live2
pc11.2ch.net/test/read.cgi/tech/1203674757/

初心者のためのプログラミング言語ガイド Part11
pc11.2ch.net/test/read.cgi/tech/1218282605/

3 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 17:20:08 ]
参考サイト。まずはここで検索してから。
www.google.co.jp/
homepage3.nifty.com/midori_no_bike/CS/
www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
dobon.net/vb/dotnet/
jeanne.wankuma.com/tips/
www.labasp.net/CsharpNote/

4 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 08:21:56 ]
おっつ
やっぱり立てたのね


5 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 10:38:34 ]
C#と直接関係ないのですが、マニュアルを書くときにメニューの
展開時の画面をキャプチャーするにはどうすればよいでしょう?
展開時に別のキャプチャー用の画像取り込みソフトを操作すると
展開していたメニューが引っ込んでしまいます。これを取り込むため
には通常はどのような方法で行うのでしょう。よろしくお願いします。

6 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 10:49:26 ]
キーでトリガにするとか、時間で撮ってくれるソフトとかあるよ。
まあオレはWindows標準の機能(PrintScreenキー)使ってるけど

7 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 12:29:30 ]
いちもつ

8 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 12:56:45 ]
普通にAlt + PrintScreenだろ普通は。
ソフト使うにしても>>6の言うようにホットキー設定すればいいし。
つかそんなことも分からんやつがC#で開発なんかできるのか?
C#どころかWindows質問スレレベルだし

9 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 13:00:57 ]
>>6>>8
>Alt + PrintScreen

わかりました。ありがとうございました!

10 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 13:39:23 ]
まあAltはメニュー出してるときは無理だけどなw
マルチディスプレイでAlt無しで2画面分丸ごととって切り取る。



11 名前:8 mailto:sage [2008/08/21(木) 14:40:41 ]
>>10
あ、ほんとだ盲点だわw失礼。
まあ全画面キャプチャから欲しいところだけ切り取ればいいよね。

12 名前:デフォルトの名無しさん [2008/08/21(木) 21:14:53 ]
>>11
そんな面倒なことをしないための方法を聞いているのだろ。
そんなことも分からんやつがC#で開発なんかできるのか?してんのか?
C#どころかWindows質問スレレベルに答えられていない。

13 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 21:37:34 ]
じゃあキミが答えてやれよ
質問者は満足して帰っちゃっただろうけど

14 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 21:51:41 ]
面倒だからビデオにでも撮れ

15 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 22:42:01 ]
ファイルにデータを追記しようと思うのですが、
ファイルの先頭に追記するのと末尾に追記するのではどちらが負荷がかかりますか?
また、新規ファイルに書き込むのと比べてどちらの負荷が大きいでしょうか?
よろしくお願い致します。

16 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 22:43:44 ]
>>15
先頭には追加できない。

17 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 23:05:58 ]
先頭に追加しようと思ったら、残りを全部後ろにずらさなきゃならない。
ってことだ。
分かるよな。


18 名前:デフォルトの名無しさん [2008/08/22(金) 00:30:29 ]
自分からテスト専門です、って宣言してる派遣テスターって何なの?

将来プログラマとかSEになりたい、とかならわかるけど。
向上心ないよね、頑固だし。
そういう派遣テスターって、仕様書は読めない、
テスト仕様書も作れない、テストプログラムも作れない
やれることは「テキトーにプログラムを触る」ことだけ。

俺は派遣プだけどさ、こういう派遣テスターがいると
派遣全体がバカにされるんだよ。
テスト専門派遣なんて氏んで欲しいよ、まったく。

今日も正社員の人が派遣テスターに仕様書を読んで
テスト仕様書を作ってください、って説教してたよ。
その派遣は頑固に「何故、仕様書が必要なんですか?」って
反論してたから、きっとテスト専門派遣テスターだな。
仕様書も読まず、テスト仕様書も作らず、ただテキトーに
プログラム触るだけで給料もらおうなんて頭おかしいんじゃねーの?

あ〜あ、あの派遣テスターが3ヵ月後に切られるまで、
仕様書も読まねーでテキトーにテストしたバグ票がまわってくんのかよ。
そんな糞なもん、読んで処理する派遣プの身にもなってくれよ。
うわ〜、しかもそいつが切られる3ヵ月以内に中間納品あるじゃねーか!
テスト仕様書もなしにテキトーにテストして納品か。
中間納品後にソッコウクレームでデスマ必至だな。俺の休みも返上かよ。

派遣専門テスターさんよ、少しは向上心持てよ!
頑固な性格直して仕様書読めよ!テスト仕様書作れよ!

19 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 07:43:23 ]
コピペ君が多いな

20 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 14:49:01 ]
>>15
ファイルの大きさや
>末尾に追記する
の方法による。下手すりゃ
>新規ファイルに書き込むのと
と同じになる。




21 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 15:05:59 ]
今あるファイル(■)がディスク上に
◆◆■■■■■◆◆ってあったら、ここに追記したら激しく断片化しない?
それとも、◆◆■■■■■□◆◆の様に常に余裕をみて割り当ててるの?
多少空き領域は断片化するかもしれないが、ファイルは断片化しにくいと思って毎回新しいファイルとして作ってた(その方が楽だし)
◆◆□□□□□◆◆■■■■■■■■

22 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 15:14:04 ]
結局全部読むならいっしょやん

23 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 15:25:39 ]
>>21
ただ記録しておくだけのログみたいなものなら別に断片化してもかまわないし、
後から何度も読むにしても断片化した大きなファイルを読むのと、
バラバラに配置された複数のファイルを読むのとでは時間にそれほど差はないと思うよ。

読み出すのに少しでも速度が必要ならば、予めある程度の大きさの領域を確保しておく他ない。

24 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 15:26:21 ]
>>21
お前さんがうだうだ考える程度のことはファイルシステムの設計者やWin32APIの設計者は考慮済みだと思うよ

25 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 15:37:45 ]
>>21
     [゚д゚] ・・・・。
     /[_]ヽ
      | |
◆◆□□□□□◆◆■■■■■■■■

26 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 15:39:18 ]
>>21
どうせ新しく書き出すなら、一旦別の名前で書き出してから
(古いのを削除し)本来の名前に変えるようにしたほうがいい。

こうすると、もし書込み中に死んでしまっても、古いファイルが残っていて安心できる。

27 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 16:34:02 ]
断片化を気にする男の人って・・・・

28 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 16:36:48 ]
そんなことより、きっちりかっちりシンメトリーかどうかを気にしろよ

29 名前:デフォルトの名無しさん [2008/08/22(金) 17:06:28 ]
普通の男なら気になるだろw

30 名前:デフォルトの名無しさん [2008/08/22(金) 17:07:30 ]
>>1




31 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 19:06:29 ]
ListBoxのオーナードローで、各項目に
UserControlを貼り付けるようなことってできるのでしょうか?

32 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 19:20:22 ]
>>31
WPFを使えば簡単にできるよ。オススメしたい。

オーナードローで多分できるとは思うけど、クリックイベントの処理とか面倒臭そう。
俺はオーナードロー使ったことないからあくまで想像だけど。


33 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 19:35:33 ]
知らないなら黙っててください
他の方お願いします

34 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 19:42:01 ]
>>32
ありがd
WPFちょっとさわってみます

35 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 20:37:08 ]
>>33何か面白いのか知らんが
うざいだけだからもうやめろ


36 名前:デフォルトの名無しさん [2008/08/22(金) 20:39:32 ]
想像でラクガキするのも同罪と思うな

37 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 20:43:15 ]
俺様棚上げクンw

38 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 20:44:36 ]
ほんと、知らなきゃ黙ってろって事、よくあるよね。
どんな神経してるんだろ。初心者スレで不確かな事言ってなんになるの?

39 名前:デフォルトの名無しさん [2008/08/22(金) 20:54:20 ]
猫でもわかるC#のホームページにC#フォーム編があるんですが、
これってVS2005の時にかかれたものみたいなんですが、VS2008でも
フォームを作るデフォルトは代わってないですか?これより、VS2008
のフォームを作る勉強したほうがいいですか?

40 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 21:00:18 ]
>>39
変わってないから安心しんさい



41 名前:39 mailto:sage [2008/08/22(金) 21:06:47 ]
>>40
ありがとうございます。このページは結構親切にのっていて、
本を1冊やると同じくらいいいので、得しました。
多謝です。2000円浮いた〜。

42 名前:836 [2008/08/22(金) 21:51:13 ]
前回の>858
返事がだいぶ遅くなってしまいました。
3行目だけほしいという処理で、ぜんぶを読めといわれたので、なんとかトライしてみました。
が、どうしてもぜんぶを読めずにいます。
ソースは次のとおり。iとsとsrの名前を変えただけです。
ご呈示いただいたところだけだと、読み込みファイル名がなかったりするので、それを足したりしました。
アドバイスよろしくお願いします。



43 名前:836 [2008/08/22(金) 21:53:05 ]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Diagnostics;
using System.Text.RegularExpressions;

class ReadWrite{
[STAThread]
public static void Main(string[] args) {
string fileName = args[0]; //引数をファイル名とします。
string[] lines = ReadAllText(fileName); //ReadAllTextは現在のコンテキスト内に存在しないそうです。どう定義したらいいんでしょう? それともこの行は不要?
using(StreamReader readContents = new StreamReader(fileName, System.Text.Encoding.Default));

{
string line = null;
int lineNumber = 0;
do {
line = readContents.ReadLine(); //readContentsは現在のコンテキスト内に存在しないそうです。定義の位置が問題でしょうか?
if(lineNumber == 3) {
Console.WriteLine(line);
break;
}
lineNumber++;
} while (line != null);
}}}


44 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 21:59:26 ]
ReadAllTextとreadContentsを定義しろよ

45 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 22:10:18 ]
ワロタ、usingの最後に余計なものが…

46 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 23:25:52 ]
>>43
1. ReadAllText を Google
2. 前スレ858をあと100回読む

47 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:06:37 ]
デリゲートってオブジェクト志向的には有りなんですか?
なんか積極的に使っていいのか分からんのだけど。

48 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:15:03 ]
オブジェクト指向の暗黒面に囚われてないかい?

49 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:21:46 ]
>>47
オブジェクト指向って何だと思ってるの?

50 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:32:53 ]
とりあえず「有り」か「無し」で。



51 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:35:08 ]
とりあえず、『とりあえず「有り」か「無し」』かを迫るような
単細胞な質問は「なし」だな。

52 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:42:48 ]
必要性があるから存在するにきまってるだろう

53 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:43:09 ]
2択にしても難しい問題だったんだ・・・

54 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:46:53 ]
使わないと実現できない処理がある以上「有り」としか言いようがないでしょ。
「オブジェクト指向だから,これは出来ません」って通らないよね?

55 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:50:29 ]
どうして「無し」と思うのか述べてみろよ。

56 名前:デフォルトの名無しさん [2008/08/23(土) 01:08:35 ]
暗黒面ってなんだよw
手続きの方がよっぽどカオスじゃんw

57 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 01:09:45 ]
>>50
この「無し」ってのは君が理解してないだけ

58 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 02:26:13 ]
UMLであらわせるれるかどうかと基準ならプロパティやenumだってなしだな。

59 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 07:51:57 ]
>>47オブジェクト志向的に……

有りだとする。
→オブジェクト指向万歳ってことでどんどん使え。

無しだとする。
→C#はオブジェクト指向だけじゃないマルチパラダイム言語だから、
オブジェクト指向に捕らわれずどんどん使え。

60 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 08:03:11 ]
プロパティの中身はメソッドの自動生成機能だし、
enumはクラスの自動生成機能でしょ?
delegateもメソッド1つのインターフェース作ったりするのと
同じじゃない?
ただの便利機能じゃないのか。



61 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 08:46:36 ]
 delegateは関数ポインタに近い機能と思えばよい、と何処かに書いてあった。
→ ということは、過去の遺物を引きずっているのではないか?
→ 俺の知ってる最新鋭のオブジェクト指向言語に似合わない!

ごめん、思考のトレースに失敗した。色々と無理があった。ごめん。


62 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 09:11:11 ]
結局、全ては機械語の構文糖衣なんだよ。

63 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 09:17:22 ]
オブジェクト指向の既存の機能を使って実現したものでも、
それがオブジェクト指向であるかどうかとは無関係。
例えシンタックスシュガーであっても概念的に違うものになりえる。

64 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 09:19:54 ]
>>62
それはいいすぎ
機能を実現するかどうかか、ではなくて、
どれだけ生産性を向上するかどうかがオブジェクト指向を使う意義なんだから

65 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 10:22:04 ]
つまり、delegateはオブジェクト指向の概念と合わない?

66 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 10:24:54 ]
なんでそうなるんぞ

67 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 10:29:31 ]
delegateは、関数ポインタをクラスでラップしたものだね。

68 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 10:51:16 ]
女の子はデリケートだぞっ!

69 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 11:07:20 ]
関数ポインタというより委譲モデルを簡略化したと考えれば
オブジェクト指向から外れてないと思うけどね。
javaのlistener/adapter型の委譲モデルも意地悪を言えば、
内部クラスや匿名クラスはオブジェクト指向かどうか疑わしいよ。


70 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 11:17:50 ]
そうそう、関数ポインタって説明はあまり良い方向ではないと思う。
「処理」をカプセル化してオブジェクトとして扱えるようにしたもの
という方向の方が、今時の思想にマッチしてる。
もちろん単純に関数ポインタイメージで使うことはできるが。




71 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 11:22:59 ]
デリゲートに好きして

72 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 11:25:16 ]
デリゲートのスコープの外の変数もちゃんと見れて、そのまんまで、あちこち受け渡しできるんだもんな。
すげーよ。

73 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 11:26:50 ]
>>72
どういうこと?
詳しく

74 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 11:32:29 ]
クロージャということ、これはさすがにオブジェクト指向というより関数型。

75 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 11:36:39 ]
レキシカルクロージャとかいうやつ?
よくしらんけど

76 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 12:00:31 ]
クロージャってオブジェクト的とも見ることができる
詳しくはSICP

77 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 14:48:31 ]
オブジェクト指向とは・・・ただの言葉じゃ

78 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 15:23:01 ]
オブジェクト指向=良いもの
オブジェクト指向との合致度が高い言語=いい言語

そんな盲目的な思い込みが罠なんだ

79 名前:デフォルトの名無しさん [2008/08/23(土) 16:19:42 ]
関数ポインタに毛が生えて好き物ってのでいいよ。

80 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 10:33:34 ]
オブジェクト指向もパフォーマンス悪いし、匙加減が重要



81 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 11:34:37 ]
C#でMDI フォームアプリを作成しています。

子フォームを最大化すると親フォームのメインメニューにアイコンが
表示されるのですが、これを非表示にするにはどうすればよろしいでしょうか?

82 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 11:29:13 ]
Dictionary<key,value>で、valueを指定してkeyを探すことはできますか?

83 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 11:43:02 ]
.Firstとか.Selectとか
あとはforeach

84 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 11:45:08 ]
SelectじゃなくてWhereだった…

85 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 12:00:28 ]
>>83
ありがとうございます。
FirstやSelectは初めて知りました。
しかし、なんでDictionaryにはFindやFindAllが無いんだろう

86 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 12:09:43 ]
Key使わない検索じゃDictionaryの旨みが無いから?

87 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 21:56:40 ]
まあ、検索スピード欲しけりゃ逆引きの方のDictionaryも用意すべきだし。

88 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 22:59:26 ]
class 逆引きつきDictionary<TKey, TValue> : IDictionary<TKey, TValue>{
private Dictionary<TKey, TValue> 順引き辞書;
private Dictionary<TValue, TKey> 逆引き辞書;

void Add(TKey key, TValue value){
順引き辞書.Add(key, value);
逆引き辞書.Add(value, key);
}
bool Remove(TKey key){
TValue v = 順引き辞書[key];
逆引き辞書.Remove(v);
return 順引き辞書.Remove(key);
}
TKey 逆引き(TValue value){
return 逆引き辞書[value];
}

}

これはねーか

89 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 23:05:56 ]
valueが重複したらアウトじゃねえかw

90 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 23:50:12 ]
なるへそじゃあ
void Add(TKey key, TValue value){
if(逆引き辞書.ContainsKey(value))
throw new valueが重複してますよExeption();
順引き辞書.Add(key, value);
逆引き辞書.Add(value, key);
}
っていう風になるのか?



91 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 08:06:34 ]
>>90
それか、逆引きの側は Dictionary<Value, HashSet<Key>>。

92 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 13:34:59 ]
フォーム内にWebBrowserコントロールを追加しているのだが、
その中の任意のポイントにクリックを発生させるにはどうしたらよいのだろう?

Cursor.Position = webBrowser1.PointToScreen(new Point(webBrowser1.Location.X + 50, webBrowser1.Location.Y + 50));
のような感じでマウスカーソルを希望するところに持っていくことはできたのだが、
そこにクリックを発生させる方法がわからない。

もしかしたらSendMessageでLEFTDOWN->LEFTUPでクリックを送ればいいのかと思ったけど、
今度はwebBrowser1のいわゆるhWndを取得する方法がわからない。

誰かお助け下さい。

93 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 13:38:18 ]
SendInputが一番楽じゃね

94 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 13:52:00 ]
Flashなどの組み込みオブジェクトではなく単にリンクやボタンなどのHTMLエレメントなどを
操作したいというのであればHTMLDOMつかってInvokeMember(マネージDOMの場合)で
Clickメソッドを実行したほうが楽と思われるが。
まあ、わざわざマウスクリックをしたいといってるから組み込みオブジェクトの可能性が高いなw
SendMessageではなく、mouse_eventというAPIを使ってみれば?こっちだとhWnd不要だから

95 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 14:05:03 ]
>>93
なるほど、そんな関数があったのね。
homepage3.nifty.com/midori_no_bike/CS/index.html?userIO.268
ここを見て、うまくいきました。
ありがとうございます。

96 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 14:20:30 ]
private setの自動プロパティにreadonlyが付けられたらいいのに
コンストラクタで初期化して以降変更しないものでも
自動プロパティが便利だからついreadonlyフィールド使わなくなっちゃうんだよね
独り言

97 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 14:22:28 ]
aho

98 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 16:35:53 ]
{0}をコンソールに表示する方法おしえてください

99 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 16:40:24 ]
Console.Write("{0}");

100 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 16:43:46 ]
エスケープの方法はヘルプの「複合書式設定」参照



101 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 16:54:47 ]
public struct MyStruct
{
public MyStruct(long value)
{
this.TotalValue = value;
}
[FieldOffset(0)]
public long Total;
[FieldOffset(0)]
public short Value1;
[FieldOffset(2)]
public short Value2;
[FieldOffset(4)]
public short Value3;
[FieldOffset(6)]
public short Value4;
}

//コンパイルエラー
フィールド 'Value1~4' は、コントロールが呼び出し元に返される前に割り当てられている必要があります。




ちゃんと割り当てられてるじゃんね。意外とコンパイラもお馬鹿さんだな。
まーどーでもいいことなんだけど、過疎ってるからネタを投下してみた


102 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 16:56:14 ]
struct MyStruct{
public MyStruct(long value){
this.TotalValue = value;
}
[FieldOffset(0)]
public long TotalValue;
[FieldOffset(0)]
public short Value1;
[FieldOffset(2)]
public short Value2;
[FieldOffset(4)]
public short Value3;
[FieldOffset(6)]
public short Value4;
}

コードミスったのはご愛敬で

103 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 16:57:24 ]
[StructLayout(LayoutKind.Explicit)]
struct MyStruct{
public MyStruct(long value){
this.TotalValue = value;
}
[FieldOffset(0)]
public long TotalValue;
[FieldOffset(0)]
public short Value1;
[FieldOffset(2)]
public short Value2;
[FieldOffset(4)]
public short Value3;
[FieldOffset(6)]
public short Value4;
}

属性付け忘れもご愛敬で。。。
スレ汚しすまない

104 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 17:02:22 ]
いや、コンストラクタで初期値セットせな

105 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 17:04:39 ]
Console.Writeline("{{0}}", 10);



{10}

を期待したところ

ぶーぶー

言われました

>>100さん、ありがとうございます
おかげさまで解決しました

>>99さん、二度とくんな

106 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 17:06:11 ]
98 :デフォルトの名無しさん [↓] :2008/08/28(木) 16:35:53
{0}をコンソールに表示する方法おしえてください

105 :デフォルトの名無しさん [↓] :2008/08/28(木) 17:04:39
>>99さん、二度とくんな

wwwwwwwwwwwwww

107 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 17:10:40 ]
>>99はたしかに{0}が出力される。
引数無いとそのまま出るみたいよ。
よって、>>98の質問の答えにはなってる。

108 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 17:11:20 ]
つーか最初から>>105の内容で質問すりゃいいのに。

109 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 17:20:27 ]
100の先もエスケープには限界あるから分けて出力する必要があるかもよって書いてるしな

110 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 17:28:45 ]
夏だねぇ



111 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 18:24:32 ]
>>110
そのセリフはちょびっと遅いぞ。
言ってみたかったの?
来年またトライしてみよう!

112 名前:デフォルトの名無しさん [2008/08/28(木) 19:24:54 ]
一生懸命勉強して、大きなプログラマになるんだ!

113 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 20:14:11 ]
System.Security.AllowPartiallyTrustedCallersAttribute
というエラーが出てJScriptからDLLを呼び出せません…

呼び出せるDLLと呼び出せないDLLがあるのですけれども
どこが違うのでしょうか?よろしくお願いします m(_ _)m

www.isla-plata.org/wiki/pukiwiki.php?%B3%AB%C8%AF%A5%EA%A5%BD%A1%BC%A5%B9%2FJScript%2F%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8%A4%AB%A4%E9.Net%20Framework%A5%AF%A5%E9%A5%B9%A4%F2%CD%F8%CD%D1%A4%B9%A4%EB%A1%CA%A5%CE%A5%A6%A5%CF%A5%A6%CA%D4%A1%CB

114 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 20:35:51 ]
・セキュリティ上好ましくない為、部分的に信頼されたアセンブリは、厳密な名前付きのアセンブリを呼び出す事ができない。
それだと不便なのでAllowPartiallyTrustedCallersAttributeが付いた物に限り、利用可能になっている。

詳しくはMSDN見て来い

115 名前:デフォルトの名無しさん [2008/08/29(金) 02:06:09 ]
 public int hoge(ここでエンターキー)

    ↓

 public int hoge
 {

 }

上のようにエンターキーでブロックが自動挿入されるように出来ないでしょうか?
VBから移行してきたばかりなので入力に手間取ってしまいます。

116 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 02:09:24 ]
一生VBやってればいいよ
こっちくんな

117 名前:115 mailto:sage [2008/08/29(金) 02:11:02 ]
自己解決しました
自動で複数行ブロックが挿入されるようにすると全部複数行になってしまうんですね・・・

118 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 02:12:01 ]
>>116
はじめまして。

119 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 02:27:04 ]
C#はいちいち面倒なことが多くて、やっぱりVBの方がいいですよ。

120 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 02:28:40 ]
ID出してくれええ



121 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 02:49:25 ]
誰だお前?死ねよ

122 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 03:59:15 ]
言語に優劣をつける気はないが、VBの
If a = b Then
だけはどーーしても違和感&不安になる

123 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 04:00:27 ]
自分の場合、ときどきIf a == b Thenって書いちゃうよ。


124 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 09:15:44 ]
VBの場合>>115みたいな機能が無いとタイプ量が多すぎるからな
C#でもifとかforとか使うときにコードスニペットが使えるよ

125 名前:デフォルトの名無しさん [2008/08/29(金) 10:08:03 ]
c# から Windows のスタートメニューを開きたいのだけれど、どうやったらできますか?
SendKeys.Send("^{ESC}");
としても開けませんでした。

126 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 10:28:05 ]
>>125
[DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
const uint WM_SYSCOMMAND = 0x112, SC_TASKLIST = 0xf130;
private void button1_Click(object sender, EventArgs e) {
 SendMessage(this.Handle, WM_SYSCOMMAND, new IntPtr(SC_TASKLIST), IntPtr.Zero);
}

127 名前:デフォルトの名無しさん [2008/08/29(金) 10:40:16 ]
>>126
早々にありがとうございますm(__)m
ばっちりです。

128 名前:デフォルトの名無しさん [2008/08/29(金) 18:06:00 ]
TcpClient の受信処理で1024Byteずつ受信してメモリストリームに書き出しています。
NetworkStreamのDataAvailableが続きのデータがあるにもかかわらず、
FALSEを返して受信が終了してしまいます。
下記サイトでも同じ問題が記載されています。
www.niseko.or.jp/BlogX2/categoryview.aspx/UPnP

現在do〜while間にSleep(50)を入れると正常に受信できるのですが、
他にも解決策はありませんか?

  //クライアントとの間の通信につかうストリームを取得
  NetworkStream ns = server2.GetStream(); //server2は、TcpClient

  //クライアントから送られたデータを受信する
  System.IO.MemoryStream ms = new System.IO.MemoryStream();
  byte[] resBytes = new byte[1024];
  int resSize;
  do
  {
    //データの一部を受信する
    resSize = ns.Read(resBytes, 0, resBytes.Length);
    //受信したデータを蓄積する
    ms.Write(resBytes, 0, resSize);
    Thread.Sleep(50); //ここで50ミリ秒スリープさせると正常に受信できる
  } while (ns.DataAvailable);
  string responsStrings = enc.GetString(ms.ToArray());

129 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 18:12:45 ]
Readの返値で判断するのが吉

130 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 18:15:22 ]
リンク先見ずに書いたけどリンク先でもそう結論してんじゃんか
何が悲しいのかさっぱり理解できないが

DataAvailableがtrue返すのは多分その時点でネットワークからは読み取り終わってるから
Read前なのでバッファには残ってる



131 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 18:18:51 ]
なんか適当なことを書いてしまった
DataAvailableがtrueになるのはバッファにデータが溜まってるとき
Read連続で呼び出すとネットワークからの読み取りが遅れた場合にfalseを返すのは当然

132 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 18:34:28 ]
MSDNを正確に読めよ

133 名前:128 mailto:sage [2008/08/29(金) 18:55:56 ]
>>129
Readの返値で判断するのが吉

このReadの返り値は自分で用意したバッファサイズが返るだけのようですが・・
(resBytesのサイズ)

>>131
了解です。
100分の5秒遅れただけでfalseでは使えないと言うことですね。
MSDNのサンプルに騙されたか・・

1byteずつ読んでエンコードしてCONTENT_LENGTHを読んだ方が確実ですね。


134 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:00:56 ]
もっぺんReadの解説読んでこい

135 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:02:06 ]
Visual C# 2008 Expressを使ってるんですけども
デバッグビルドとリリースビルドはどうやって切り替えるんでしょうか

136 名前:デフォルトの名無しさん [2008/08/29(金) 19:13:05 ]
MSDNはたまに意味不明なところもあるけど、それは君の技術力が足りなすぎていて理解できないだけ

137 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:17:07 ]
>>135
FAQだね
Expressをインストールしたらまずやるべきこと
ツール→オプション→すべての設定を表示 にチェック
プロジェクトおよびソリューション
→ビルド構成の詳細を表示・常にソリューションを表示・作成時に新しいプロジェクトを保存
にチェック

138 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:19:54 ]
NetworkStream..::.Read メソッド

パラメータ

buffer
型 : array< System..::.Byte >[]()[]

Byte 型の配列。NetworkStream から読み取られたデータを格納するメモリ内の場所です。

offset
型 : System..::.Int32

データの格納を開始する buffer 内の場所。

size
型 : System..::.Int32

NetworkStream から読み取るバイト数。

戻り値
型 : System..::.Int32

NetworkStream から読み取るバイト数。

139 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:20:17 ]
APIぐらいちゃんと読めよ

140 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:27:44 ]
>>138まだ続きがあるだろ。
解説
このメソッドは、データをbufferパラメータに読み込み、正常に読み込まれたバイト数を返します。
読み取ることができるデータが存在しない場合、Readメソッドは0を返します。
Read操作は、sizeパラメータで指定されたバイト数に達するまで、使用できるデータをすべて読み取ります。
リモート ホストが接続をシャットダウンし、使用できるデータがすべて受信されると、
Readメソッドはすぐに完了して、0バイトを返します。




141 名前:128 mailto:sage [2008/08/29(金) 19:30:03 ]
おわ!理解不足だったか
MSDNからコピってきました。
なにがいけないんだろう?

// Examples for CanRead, Read, and DataAvailable.

// Check to see if this NetworkStream is readable.
if(myNetworkStream.CanRead){
  byte[] myReadBuffer = new byte[1024];
  StringBuilder myCompleteMessage = new StringBuilder();
  int numberOfBytesRead = 0;

  // Incoming message may be larger than the buffer size.
  do{
    numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length);

    myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));

  }
  while(myNetworkStream.DataAvailable);

  // Print out the received message to the console.
  Console.WriteLine("You received the following message : " + myCompleteMessage);
}
else
{
  Console.WriteLine("Sorry. You cannot read from this NetworkStream.");
}

142 名前:128 mailto:sage [2008/08/29(金) 19:41:00 ]
あ、Readの解説ありがとうございます。

resSize = ns.Read(resBytes, 0, resBytes.Length);
if (resSize == 0)
  break;

とすればいいわけですね。
これは>>131さんが言っている、
Read連続で呼び出すとネットワークからの読み取りが遅れた場合にfalseを返す
に対応できますね。

みなさまありがとうございます。
50にもなって初めてのプログラミング、何もかもが分からないことだらけです。

143 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:51:36 ]
年齢は関係ないだろ

144 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 20:03:15 ]
うむ、年齢は関係ないな。学ぼうとする気持ちが大事。

145 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 20:09:01 ]
新手の煽りか?

146 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 20:59:39 ]
50歳からのプログラミング

147 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 21:11:58 ]
暴れる50代は多いな。
pc11.2ch.net/test/read.cgi/tech/1204552981/738


148 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 21:25:12 ]
>>137
遅レスですがありがとうございました

149 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 01:13:19 ]
VBから移動組だけどはコードがシンプルでいいなあ
インテリセンスがもうちょっと使いやすかったらよいんだけど

150 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 01:52:54 ]
VC++からの移行組としてはインテリセンスがちゃんと効くだけで満足です



151 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 02:31:56 ]
JavaやらVBやらやってきたけど、Javaは言語の構造というかなんかすきになれなくて
VBは簡単すぎて(;´д`)ってかんじがしてたんだけど、ようやく自分に最適な言語をみつけた。

152 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 02:37:52 ]
そうですか。

153 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 03:11:32 ]
>VBは簡単すぎて
の意味がわからん。簡単な方がいいだろ

154 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 03:31:52 ]
そのJavaは言語の構造ってのは何のこと?
謎が多い奴だ・・・

155 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 03:42:29 ]
Javaは周辺技術を追いかけるのに疲れたってのはあるな。

156 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 03:47:38 ]
C#も凄いけどな。それよか、VBは追いかける必要なく得て、いつも言語に組み込んじゃう。だからVBの追いかけなくていいし、面倒ないからいいかなと思うよ。

157 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 04:22:32 ]
VBでなれちゃうと他に乗り換えるのがめんどくさくなってくる。

158 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 04:37:42 ]
それはない

159 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 04:48:31 ]
>>156
C#はMSだけ追いかけていればいいけど、JavaはSun以外からもいろいろ
出てくるのがしんどい。

160 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 05:41:00 ]
もうDしかない!



161 名前:デフォルトの名無しさん [2008/08/31(日) 07:06:41 ]
private void 終了XToolStripMenuItem_Click(object sender, EventArgs e)
{

}

↑から↓を呼び出すにはどう書けばよいのでしょうか?

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
}

162 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 07:19:10 ]
フォームデザイナでイベントを定義してあれば、勝手に呼ばれるだろ。

163 名前:デフォルトの名無しさん [2008/08/31(日) 07:30:39 ]
Linq to xml の事で少し手ほどきしてください
XmlSerializer 等を使うと、適当に作ったクラスを一発でシリアライズできますが
同様な感じで、適当に作ったクラスから XElement を作る方法で良い方法はありますでしょうか?
またその逆も簡単にできそうであれば教えてください。
現状ではXmlSerializerをStringWriterを経由させているのですが、なんとなくバカっぽいので・・・

164 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 07:34:47 ]
>>162
デザイナで終了XToolStripMenuItem_Clickのプロパティから
Clickイベントのドロップダウン一覧にForm1_FormClosingが出てこないので
定義できないのですが、ほかに方法があるでしょうか?

165 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 07:38:22 ]
>>164
デザイナでフォームのイベントを見てみ
ここでイベントを割り当てれば、イベントハンドラ定義が追加される。
フォームデザイナでどういうことをすると、どういうコードが追加されるのか
確認してみるといいよ。

166 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 07:44:32 ]
終了XToolStripMenuItem_Clickからフォームを閉じたいって言うこと?
でもe.Cancel=true;って書いてるし何がしたいんだかよくわかんね

167 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 07:48:10 ]
>>163
ぐぐったらこんなのがヒットした。
ttp://www.hanselman.com/blog/MixingXmlSerializersWithXElementsAndLINQToXML.aspx

XDocumentのCreateWriterメソッドがポイントみたいね。

168 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 07:53:43 ]
>>165
>>デザイナでフォームのイベントを見てみ

これはデザイナのプロパティウィンドウのイベントボタンを押したときの一覧ですよね?
>>161はここからダブルクリックで追加したコードですが
終了XToolStripMenuItem_ClickもForm1_FormClosingもどちらにも
お互い出てこないのでイベントハンドラを共有できないのですがどうすれば良いですか?

169 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 07:59:03 ]
>>164
ボタンからは普通にフォームを閉じるなりアプリを終了するなりすればいい。
>>165ができていれば、フォームが閉じられる前にFormClosingを拾えるはず。
で、イベントがキャンセルされてフォームは閉じられない。

何がしたいんだ?

170 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 08:11:58 ]
>>166
実際にはかなり複雑な分岐処理が書かれているので、ほとんど省略してます。

>>169
VBだと

Form1_FormClosing(sender,e)

で行けた様な気がしたので気になってDesigner.csでEventHandlerを直接いじっても
FormClosedも共有できないみたいだし、C#の仕様ということでしょうか?




171 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 08:25:58 ]
ボタンから閉じないけど同じ処理をしたいのなら別な関数として書いてそれを両方から呼び出したほうがよくね?

172 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 08:28:48 ]
片方が
EventArgs
もう片方が
FormClosingEventArgs
つまりそういうことだ

173 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 08:37:04 ]
>>170
Form1_FormClosingにブレークポイントを設定したら、フォームを閉じるときに
ちゃんと呼ばれるか?
呼ばれるなら、終了メニューにApplication.Exit();とかthis.close();とか書けば
いいっしょ。

174 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 11:28:13 ]
KeyedCollection使うときにGetKeyForItemをオーバーライドするためだけに
それぞれ派生クラス作るのってアホらしくない?
デリゲートでキーを返す派生クラスを一つだけ作るとか?

175 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 18:44:33 ]
それでもいいと思うが ObjectModel 内のクラスの存在理由とかそんなの
勘違いしてないか?

176 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:06:54 ]
日本語対応のフォントのみを取得する方法ってあります?
FontFamilyでインストールされてるフォントを全部取得することはできたんですが
そこから欧文フォントとかを除く方法がわかりません。

177 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 14:03:41 ]
>>170
クラスとキャストの概念が分かってないみたいだねぇ。さすがVB。

Form1_FormClosing(sender,new FormClosingEventArgs())

やりたいのはこれかな?

178 名前:170 mailto:sage [2008/09/01(月) 18:00:03 ]
>>171
やっぱりそれが一番勝手が良いですね。

>>172
ようするに、キャストできない型なのでそのままだと呼び出せないということでしょうか。

>>173
なんか一番わかりやすいのでthis.close();を使ってます。

>>177
例えば
Form1_FormClosing(sender, new FormClosingEventArgs(CloseReason.None, true));
見たいにコンストラクタを初期化してやるとエラーにならないんですが
引数なしだとエラーになります。
型が違うイベントを呼び出すときは、毎回コンストラクタを初期化しないと
呼び出せないということでしょうか。
クラスとキャストの概念がわかってるかどうかは自信がありませんがキャストは出来ませんよね?

179 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 19:28:40 ]
>>178
>>177の言ってることもトンチキだから気にしない。
君が分かってないのは>>177の言ってるようなことじゃない。

君が分かってないのはイベントとイベントハンドラだよ。

イベントハンドラ(例えばForm1_FormClosing())というのは、
イベント(例えばフォームが閉じられた)時に「呼ばれる」ものであって、
それを呼び出すと何かが起こる(例えばフォームが閉じる)わけではないよ。

VBの人にありがちな倒錯だね。
原因と結果が逆立ちしてる。

180 名前:170 mailto:sage [2008/09/01(月) 19:46:54 ]
>>179
あー、そうか
一般論としてはイベントとイベントハンドラについて理解してるつもりだったけど
今回の件に関しては全く理解できてなかったということですね (^^;
ものすごく本末転倒なことを聞いてましたね、精進します
みなさん、有難うございました



181 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 19:47:29 ]
VS2008sp1のインテリセンス日本語化はいつなんでしょうか?

182 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 19:54:20 ]
>>178
とりあえず新規のWinFormプロジェクトを作る。
フォームデザイナでフォームを選択し、イベントハンドラの
FormClosingをダブルクリックする。
Form1_FormClosingにMessageBox.Show("FormClosing");
を書く。
実行する。

メニューを追加し、終了メニューにthis.close();と書く。
実行する。

これでイベントの流れの概略がわかるか?
FormClosingをダブルクリックする前後にForm1.Designer.csも
見てみるといい。

183 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:01:50 ]
usingについての質問です

ネットワークプログラミングをしているのですが、通信が終わったときにNetworkStreamを閉じようと思い、以下のようなコードを書きました。

using( NetworkStream Stream = new NetworkStream(socket, true) )
{

事前の処理

Thread newthread = new Thread(Func);
newthread.Start(new object[] { Stream, newthread });
}

このような場合、NetworkStreamはどのように扱われるのでしょうか?
# threadの処理が終わるまで保持される?
# newthread.Startが呼ばれたあとにDispose()されてStreamはnullになる?


184 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:16:20 ]
スレッドを作り終わった瞬間に削除される。

185 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:16:42 ]
>>183
どう考えてもすぐに破棄されるに決まってる。


186 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:17:47 ]
まあnullになるは意味不明だけどな。

187 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:28:43 ]
匿名デリゲートを使うと、nullにならない事が確認できるよ

188 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 10:48:39 ]
>>187
usingに使う変数の宣言は()内じゃなくてもいいんだよ
ローカル変数でもフィールドでもおk

189 名前:183 mailto:sage [2008/09/02(火) 15:24:14 ]
皆様ありがとうございました。
# nullにならない、usingの使い方に関しては大変勉強になりました。

もう一つ質問させてください。

上のようなコードで、例えばFunc内で、

void Func(object obj)
{
NetworkStream newStream = (NetworkStream)((object[])obj)[0];

byte[] abBuffer = new byte[256];
newStream.Read(abBuffer,0,256);

}

などの操作を行った場合、NetworkStreamは既に破棄されており、利用できないのでしょうか。

190 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 15:31:18 ]
そんなわけない



191 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 15:34:06 ]
まあほとんどの場合Disposedだろうな

192 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 15:35:58 ]
objが

193 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 16:45:03 ]
>>190
お前はプログラミングするんじゃねーぞ


194 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 16:51:02 ]
ローカル変数が何時までも残ってたらローカルじゃないでしょ

195 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 16:53:58 ]
>>194
何の話?

196 名前:189 mailto:sage [2008/09/02(火) 18:44:51 ]
ありがとうございました。

thread内でNetworkStreamを閉じるなど、コードを書き換えて検討し直してみます。

197 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 19:07:50 ]
適当なディレクトリ内のファイルを列挙して、キューにどんどん突っ込んでいきたいのですが、
Directory.GetFilesなどではそのディレクトリのファイルを全て列挙するまで結果を得ることが出来ません、、、
ファイルを1つずつキューに入れていくためには、WinAPIを呼ぶしかないのでしょうか。

198 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 19:13:27 ]
どんなストレージ使ったら問題になるのか分からないがまあその通り
フロッピーとかか

199 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 19:14:25 ]
>>196
いや、ちゃんと調べたほうがいい、間違いが混ざってる。

200 名前:デフォルトの名無しさん [2008/09/02(火) 19:51:37 ]
質問です
1.findControlを使用して、コンテンツページからマスタページのDataListを取得
2.staticなメソッドに取得したDataListを渡して、DataListへの設定を行う。
3.画面表示

こうすると、DataListへの設定が反映されません。
staticなメソッドで行わずにコンテンツページ内でDataListへの設定を行った場合は
問題なく動くのですがなぜでしょうか。



201 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 20:28:54 ]
若干怪しい部分はあるが、具体的なコードがないとわからない。
特にstaticメソッド辺り。


202 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 12:02:08 ]
List<string,string> ls = new List<string,string>();
というような二次元の動的な配列を作りたいのですが
どうすればいいのでしょうか。

203 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 12:12:52 ]
List<List<string>>
要素にアクセスするときはls[r][c]

204 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 12:17:42 ]
有り難うございます。試してみます。

205 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 19:50:51 ]
すみません、質問いいですか?

複数端末から同一ファイルをFilesystemWatcherで監視します。
んでファイルが来たらファイルを読みたいんですが
この場合、排他制御はどうしたらベストでしょうか?

お願いします。

206 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 21:31:03 ]
何いってんのかわからん

207 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 21:34:08 ]
おまえうざいんですけど

208 名前:デフォルトの名無しさん [2008/09/03(水) 22:10:33 ]
正直俺にも何言ってんのかわからんよ。
ぼんやりとは伝えたい方向が推測できないわけではないが。

プログラミング勉強する前に日本語できちんと自分の意図を
伝える練習した方がいいんじゃないのか?

209 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 22:14:03 ]
おいおい>>205の文章は普通に言ってることはわかるだろw
サーバサイドの話でしょ。
俺はそっち方面知らんから答えられんけど。

210 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 22:14:49 ]
>>205
やりたいことの説明が足りないのは確かだな。
1) 書き込まれたファイルを複数の監視しているPCのうちどれか1台が処理する。
2) 全部で処理する。
3) 全部で処理するが並列では処理させない。
並列処理といってるから1か3の可能性が高いが、
ファイルを書き出すのが完了した状態を判断したいということかもしれない。




211 名前:デフォルトの名無しさん [2008/09/03(水) 22:32:29 ]
>>209

なんだよ 「サーバサイドの話」ってww
FileSystemWathcerクラスは確かにUNCパスも使えるけど、基本的に
IOの話であって、「ローカルサイド(嗤)」の話だがな。

第一、FileSystemWatherが監視するのはディレクトリであって、ファイルじゃ
ないし。

そもそも「複数端末から同一ファイルを」監視しているはずなのに、「ファイルがきたら」
「ファイルを読みたい」って全く意味不明。ファイルは存在しているの?存在している
なら「ファイルがくる」ってどういう意味? 存在していないなら「同一ファイルを監視する」
っていったいどういうこと?

あ、なんかだんだんわかってきたぞ!!
たとえば \\server\dir を複数マシンから監視して、hoge.txt ファイルが新しく
作られたら、それを読み込みたいんだけれど、複数マシンからアクセスするので
排他制御をなんとかしたいということなんだろうか????

Created イベントで新しいファイルの名前がhoge.txtだったら、単純にreadモードで
FileStreamに読み込めばいいだけだと思うんだが…。


212 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 22:35:48 ]
かなり意地悪だけど、

複数の端末が接続されている計算機において、
それぞれの端末から起動したプロセスで
あるファイルを監視(FileSystemWatcherを利用)。
ファイルが作成されたら、何らかの排他制御をしつつ
そのファイルの読み取りを行う。

というマルチユーザ環境での話と解釈できなくもない

213 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 22:51:52 ]
>>209
お前の言ってることが一番分からんわ!


214 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 22:53:33 ]
多分最初に処理を開始した一台だけが処理する制御ってことなんだろうな、多分だがな。


215 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 22:57:45 ]
IPを変えるのってどうやればいいか教えてください!!

216 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 22:58:20 ]
回線切って考えてみればいいと思うよ

217 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 23:42:00 ]
だいたい皆さんのおっしゃる通りです。

言葉足らずすみませんでした。

\\server\のテキストファイルを複数の端末から監視し
(生成タイミングはサーバー次第)
生成されたら読み込んでフォームに表示したいのですが
複数の端末が同時にファイルアクセスするので例外が出てしまいます
(すべての端末で読み込みはしたい)

こんな感じですが・・・

218 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 23:47:11 ]
普通に読み取り共有で開けないんだっけ?


219 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 23:51:41 ]
同時にファイルアクセスって聞いただけで冷や汗が出てくる

220 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 23:52:51 ]
ファイルアクセスされているかどうか調べられるんですか?



221 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:02:27 ]
リードオンリーなら、同時にアクセスしても、普通に読めそうな気がするけど。

222 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:10:28 ]
ファイル管理するクラスなりなんなりを置いて、それに読んでもらう方がよくね
リモートで呼び出しして

223 名前:デフォルトの名無しさん [2008/09/04(木) 00:27:58 ]
>>211

おまえ、きも、しね

224 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:32:59 ]
共有モードを指定する。
これでファイルをメモ帳で開いてる場合でもエラーにならない。
new FileStream("file", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)

write側とread側の間の排他はいろいろ方法はあるが、
別名で書き出して書き出しが終わったらrenameというのが一番無難。
rename後の名前で監視しておけば書き出し途中は見えない。

225 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:38:33 ]
そのためにわざわざサービスあげるのかい


226 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 06:16:43 ]
RichTextBoxの改行の幅って調節できますか?
改行すると、一文字分くらい空いてしまうんですが。

227 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 07:49:01 ]
自演で回答に導くとはなかなかやるな

228 名前:デフォルトの名無しさん [2008/09/04(木) 18:59:32 ]
エンターブレイン、ツクール最新作「アクションゲームツクール」を発表、XBOX360/XNAにも対応
news4xbox.blogspot.com/2008/09/xbox360xna.html

229 名前:200 mailto:sage [2008/09/04(木) 19:26:48 ]
>>201
レスありがとうございます
自己解決しました

別ページに遷移した場合、前ページのcsでセットしたものは
リセットされるという事を知らなかったのが理由でした
マスタページの初期処理で必ず処理を行うようにする事で解決しました

・・・が、遷移する度に毎回処理ってなんか無駄だよなぁ・・・
上のやり方以外で前ページでセットした内容を次ページに持ち越す事って出来ないのでしょうか

230 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 19:39:17 ]
何をしようとしてるのかよく分からない…
単にページ間でのデータ引き渡し?




231 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 19:42:18 ]
これって
codezine.jp/article/detail/2930

良さそうだけど使った人いる?

grid.g1sys.com/

動画を見る限り簡単そう。

でも、掲示板に何も情報ないし。
grid.g1sys.com/bbs/patio.cgi


232 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:13:34 ]
宣伝乙以外に感想がありません

233 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:17:11 ]
なんかCodeZineってすっかり企業の宣伝記事ばっかりになっちゃったね。
翔泳社らしいというか、往時のVBマガジンを彷彿とさせるものがある。

234 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:26:15 ]
private void button_Click( object sender, EventArgs e)
{ private Thread demoThread = null;

this.demoThread =
new Thread(new ThreadStart(this.ThreadProcSafe));

this.demoThread.Start();
}

private void ThreadProcSafe()
{
this.TextBox.Text = null;
}

”有効ではないスレッド間の操作 コントロールが作成されたスレッド以外のスレッドからコントロール アクセスされました”
これが出たからmsdnで簡単そうだった対策をやったんだけど
また出る
なんで?あんまり意味はわかってない

235 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:30:19 ]
GUIスレッド以外のスレッドからコントロールにちょっかい出しちゃいけません

236 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:44:57 ]
じゃあプログラム中にテキストボックスの中身変えたいときはどうすりゃいいのよ?

237 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:47:10 ]
GUIスレッドからやるかInvokeすればいいじゃない

238 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:47:16 ]
invokeしろぼけ

239 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:50:10 ]
>これが出たからmsdnで簡単そうだった対策をやったんだけど
>また出る
>なんで?あんまり意味はわかってない

ちゃんとできてないんだろうとしか言いようがない。
どうやったのか書いてみそ。


240 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:56:06 ]
ちょwwinvoke見たけどよくわかんね
GUIスレッドって何かわからない、スレッドに分けてないと思うんだけどフォーム.csに全部書いてるし
どうやったかって書いてるとおりだと思うんだけど・・・



241 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:05:21 ]
Thread つくって Start してるのに分けてないとはお前はなにを
言っているんだ

242 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:08:05 ]
スレッドの勉強あんまりしてないよ・・・
なんでテキストボックス2にnullを代入できないんだよ・・・
多分2回目のループの時だと思うんだけど・・・

243 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:09:56 ]
>>240
ここにわかりやすく書いてある。
「Windowsフォームで別スレッドからコントロールを操作するには?」
www.atmarkit.co.jp/fdotnet/dotnettips/312ctrlinvoke/ctrlinvoke.html

244 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:12:01 ]
>>243
ありがとう。でも今見てた。
メソッドの呼び出しみたいな例なんだけど
俺は単純にヌルを代入したいだけなんだけど
それにフォーカスが関係あるの?


245 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:18:45 ]
>>244
フォーカスじゃない、スコープ。

246 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:19:04 ]
いちいちうるせえなあ。
ここで得られた回答が理解できないのは
偏に己の不勉強が原因なんだから精進しろよ

247 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:19:57 ]
243のコードは別のスレッドからGUIのフォーカスを変更したい場合の例で、フォーカスは関係ない。

248 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:33:25 ]
今ちょっとやってみたんだけど次はラベルで出た
テキストとかラベルとか一個一個全部メソッド作ってデリゲートで呼び出さないといけないの?

249 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:38:42 ]
つラムダ式

250 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:40:03 ]
>>249
ありがとう。もう明日にするわ



251 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:40:59 ]
ラムダ式とかwww
より混乱を招くだろ
>>250
おやすみ

252 名前:250 mailto:sage [2008/09/04(木) 23:42:04 ]
>>251
ちょww何??
簡単な方法あるんだったら教えてよ

253 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:42:58 ]
多分スレッドを作らなければいいだけだと思うけど

254 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:46:32 ]
マルチスレッド禁止


255 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:54:44 ]
 スレッドとか消して
ボタン1の最初でテキストボックスにヌルを代入
のがループ2週目でまた”コントロールが作成されたスレッド以外のスレッドからコントロール 'textBox2' がアクセスされました”
なんで2週目なの?どうすりゃいいの?

256 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:55:50 ]
うるちゃい

257 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:59:29 ]
1周目と2周目で何が違うのか全くわからん
デバック無しだとどうもならないのにデバック有りだと止まるし

258 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 00:00:19 ]
スレッドは理解するんじゃない、感じるんだ

259 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 00:03:03 ]
ちゃんと再コンパイルしてるか?

260 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 00:10:02 ]
だめだやっぱりできない
再コンパイル?ビルドはしてる
なんで順番どうりに代入してるはずなのに・・・2週目から・・・・



261 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 00:10:52 ]
Control.CheckForIllegalCrossThreadCalls = false;

262 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 00:27:13 ]
ソースさらせよ

263 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 00:36:40 ]
プログラミングが下手な人って大抵説明や質問も下手だよね

264 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 00:54:28 ]
君には向いてないとしか言い様がない

265 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 00:55:31 ]
思考の整理ができないんだろ。
自分の頭の中がぐちゃぐちゃなのに、
コンピューターの中なんて理解できるはずがない。

266 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 01:04:31 ]
初心者を煽る奴は死ぬべき

267 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 01:05:54 ]
と初心者が申しております。

268 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 02:33:05 ]
カッコつけてC#からやるからじゃね?やっぱ、基本はVBっしょ。

269 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 02:37:02 ]
書き方違うだけで基本はほとんど同じだから。

270 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 02:38:14 ]
いや、ポインタとか安易に使うと危ないよ



271 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 02:47:28 ]
VBの話をする奴はスレを荒らしたいだけ

272 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 03:14:25 ]
なんでそんなこまごまと別スレッドからコントロールにアクセスする必要があるんだ。
いろいろやるならひとまとめでメソッドにして、メソッド自体をInvokeで呼ぶとかできるだろ。

ま、いまだに何がしたいのか良く分からないんだけどな。


273 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 03:46:56 ]
ちょっとこれを見てくれ
ニコニコ動画のアカウントが必要かもしれんが

com.nicovideo.jp/search/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0?mode=t

274 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 05:14:38 ]
ん、C#コミュ作れと?
それとも、なぜかJavaがDとC#を敵視してる所について突っ込むべきか?

って、C,C++もないのか。

275 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 05:26:06 ]
見て欲しかったらアカも置いてけ

276 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 06:32:16 ]
Perl,Python,Java,Ruby,D言語があってC#がなかったら
なんか負けた気になるじゃないか

277 名前:デフォルトの名無しさん [2008/09/05(金) 10:56:16 ]
教えてください。
カスタムボタンクラスで派生したカスタムボタンコントロールで
CustButton.PerformClick();
を実行してもクリックイベントが発生しません。
どうしたらイベントが発生する様になるのでしょうか?m(_ _)m

278 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 10:58:09 ]
OnClickオーバーライドしてるとか

279 名前:デフォルトの名無しさん [2008/09/05(金) 11:02:25 ]
OnClickはオーバライドしてません。
ボタンをマウスで直接クリックしている場合は問題ありません。
PerformClick();を実行してもイベントが発生しないのです。

280 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 11:04:54 ]
変数名でも間違えてるんじゃねーの?

CustButton1.PerformClick()とか



281 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 11:09:58 ]
直接Buttonから派生してるんだったら変なことしてない限りは
なにも変わらないはずだけど

282 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 11:13:09 ]
Enabledがfalseだとか

283 名前:デフォルトの名無しさん [2008/09/05(金) 11:13:58 ]
原因みつけました。(はじめから見つけられないお馬鹿な私TT)

public CustomButton()
{
// この呼び出しは、Windows.Forms フォーム デザイナで必要です。
InitializeComponent();

// TODO: InitComponent 呼び出しの後に初期化処理を追加してください。
//this.SetStyle(ControlStyles.Selectable, false);
}
こうしました。クラスを作った際、自動生成された様です。
this.SetStyle(ControlStyles.Selectable, true);
ご迷惑おかけしました。ありがとうございました。

284 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 12:00:37 ]
namespace Wbhbh
{
public partial class Form1 : Form
{
private static System.Timers.Timer timer;

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = null;

timer = new System.Timers.Timer(30000);
timer.Enabled = false;
Random rnd = new Random();
string a = rnd.Next(1, 5).ToString();
textBox1.Text = a;

昨日のなんだけど、これで2週目にtextBox1.Text = null;ここで
有効ではないスレッド間の操作: コントロールが作成されたスレッド以外のスレッドからコントロール 'textBox1' がアクセスされました。
ってなるんだけどどうして?どうしたら解決しますか?

285 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 12:04:09 ]
System.Windows.Forms.Timerを使うか、
Control.invoke


286 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 12:08:33 ]
ありがとう
invokeの使い方が昨日からよくわからないんだよな
button1_Click()にinvoke使えばいいの?

287 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 12:09:03 ]
ぐぐれよ

288 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 13:35:32 ]
つかタイマーでは何やってんの?
いまいち有り得ない使い方をしてそうだが…


289 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 13:59:40 ]
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = null;

timer = new System.Timers.Timer(30000);
timer.Enabled = false;
Random rnd = new Random();
string a = rnd.Next(1, 5).ToString();
textBox1.Text = a;
timer.Elapsed += new ElapsedEventHandler(button1_Click);
timer.Interval = rnd.Next(1, 5) * 30000;
timer.Enabled = true; // timer

上の最後の産業を飛ばしてた
invokeとか全然わからんし・・・
なんでループでテキストを書き直すのができないんだ・・・

290 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:08:32 ]
> timer.Elapsed += new ElapsedEventHandler(button1_Click);

一番重要なところで途切れてたのか……



291 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:09:08 ]
はじめまして。
OpenCVを使って書いた関数をC#で使いたいのですが、
どのようにしたらよいのでしょうか?

開発環境は
Visual Stadio 2005
Visual C# 2005
Open CV
です。
またオススメの書籍などありましたら是非教えていただきたいです。


292 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:10:27 ]
素直にWindows.Forms.Timer使えよ

293 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:11:58 ]
>>289
ループじゃなくてタイマだろ?
取りあえずSystem.Timers.Timerの解説読めばスレッド使ってんのはすぐわかる。
で例外メッセージの一部「コントロールが作成されたスレッド以外のスレッド」辺りでググれば
Invokeの使い方とか見つかるだろ。

まあ素直にSystem.Windows.Forms.Timer使えよ。

294 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:24:04 ]
ありがとう。
そうだ、Tickの使い方がわからなくてこっちでやったんだ
Forms.timerとの違いとかわからないんで調べてやってみる

295 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:29:25 ]
その前にタイマの使い方が異常

296 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:32:45 ]
その場しのぎの独学だから全然わからないんだ
みんなは何でこれがタイマの普通の使い方だとかわかるわけ?長い経験?

297 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:33:11 ]
静的メンバにタイマセットしてイベントの度に作り直してセットし直しって、裏ですごい動きになってるぞ


298 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:37:32 ]
でもほとんどコピーの羅列だよ?

299 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:38:12 ]
別に経験長くなくても分かる
と思うけど頭の悪さは人それぞれだからなケケケ

まあTimerの機能、動きを普通に理解してりゃ明らか


300 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:39:57 ]
コピーってなあに…?



301 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:40:12 ]
C初めてから4ヶ月だぜ
まさか遅いのか?

302 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:40:52 ]
↑おまえの頭の悪さは異常w

303 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:41:28 ]
コピーはmsdnの部分的なコピー

今form.timerでやったらエラー無くなったみたい。ありがとう

304 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 14:51:59 ]
>>296
普通の使い方云々はわからんが、
同じことをやるTimerインスタンスを何度も作り直してるのが不自然なのはわかる。

あと、“button1_Click”の中で自身をイベントハンドラに設定してるコードとかどうなんだろうな

305 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 15:34:43 ]
>>291
>OpenCVを使って書いた関数
というのが何をさすのか分からんが、C/C++でOpenCVの関数を呼び出しているコードを流用したいのならば
dll形式でコンパイルしてDLLImport。

C#でOpenCVの関数を扱いたいだけならManagedOpenCVかShaperCVでググれ

306 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 15:45:01 ]
部分コピーが危険なことくらい理解できるだろう?
いいから直したソース晒してみな。
高い確率でまだ異常だと思うから。

きっとみんなでよってたかって突っ込んで崖っぷちまで追い詰めてくれるぜ。


307 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 16:35:54 ]
もしも自動車の部品を適当にぶった切って適当につなげてまともに走るのなら、そのプログラムは動くだろう

308 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 16:59:24 ]
private System.Timers.Timer timer;
private Random rnd;

private void Form1_Load(object sender, EventArgs e)
{
timer = new System.Timers.Timer(30000);
timer.Elapsed += OnTimedEvent;
rnd = new Random();
}

private void button1_Click(object sender, EventArgs e)
{
timer.Enabled = !timer.Enabled;
}

private void OnTimedEvent(object source, System.Timers.ElapsedEventArgs e)
{
Invoke((Action)delegate
{
int num = rnd.Next(1, 5);
textBox1.Text = num.ToString();
timer.Interval = num * 30000;
});
}
こんな感じなことがやりたいんだと俺は予想するぜ

309 名前:デフォルトの名無しさん [2008/09/05(金) 17:03:07 ]
>>224
このファイルの共有アクセスの制御に関して質問です。

FileStreamによる制御では読み込みや書き込みなどの自分のファイルアクセス中の
アクセス制御を行うということだと思いますが、これを「こちらがファイルを開いて読み込み、
データを変更して次に書き込むまでの間」、ずっと誰にも書き込みさせないようにしたい
場合は、

そのFileStreamでOpenした状態をそのまま維持(=開きっぱなしに)しておくということで
実現することになるかと思いますが、その場合は何か弊害が起こりうるものでしょうか?

その場合は弊害がない(開きっぱなしにしないような)方法があるでしょうか?ありましたら
その方法を教えてください。

なお編集中という情報をどこかの専用ファイルに書いておいてそれを読んで先客がいたら
書き込まない、というような方法ですと、他のソフトで編集された場合は制御できないため
そうした方法ではなく、目的のファイルに対して直接アクセス制御する方法であることが
望ましいのでした。よろしくお願いします。


310 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 17:09:17 ]
>>309
Lock
Unlock



311 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 17:19:57 ]
public partial class Form1 : Form
{
static System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = null;
Random rnd = new Random();
myTimer.Tick += new EventHandler(button1_Click);

string a = rnd.Next(1, 5).ToString();
textBox1.Text = a;

myTimer.Interval = rnd.Next(1, 5) * 30000;
myTimer.Start(); Application.DoEvents();

これ直したコードです
もうエラーでてないけどおかしいところツッコミまくってください

312 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 17:25:53 ]
>>310
どうもです!

FileStream.Lock メソッド
FileOpen 関数(VB用)

などあるようですが、いずれも読み取り中など、Openしている間の
アクセス制御のように思われるのですが、FileStream.Close() を
実行した後でもLockが効いている状態が実現できるでしょうか?


313 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 17:36:53 ]
>>311
おかしすぎてワロタ
後で時間があったらつっこんでやるw


314 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 18:38:36 ]
>>273-276
作れと?
なら、作るとも。
com.nicovideo.jp/community/co4785

315 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 20:34:43 ]
よくわからんがどうすりゃいいんだよ岩永さん

316 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 21:55:32 ]
作っただけだから放置でもいいと思う。

317 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 22:12:09 ]
>>311
とりあえず、ランダム使っちゃうと何が起こってるか把握できなくなるから、いったん除去って、

{
 //textBox1.Text = null;
 //Random rnd = new Random();
 myTimer.Tick += new EventHandler(button1_Click);

 // 変化がわかるように変更
 textBox1.Text += "a";

 myTimer.Interval = 10000;
 myTimer.Start(); // Application.DoEvents();
}

くらいに変更してみると、おかしいところの一部が分かると思うんだ……
もし、この動作を狙ってたとしたら余計なお節介失礼。

318 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 22:46:20 ]
Timer作り捨てするとメモリリークするんじゃなかったっけ

319 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 23:47:28 ]
>>308がちょっとかわいそう

320 名前:311 mailto:sage [2008/09/06(土) 07:07:18 ]
>>317
俺は+=使ってないけど・・・内部ではそうなってるってこと?


要するにメモリ的に問題があると?



321 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 07:15:28 ]
+=は脆弱性があるから使わないべき

322 名前:311 mailto:sage [2008/09/06(土) 07:31:30 ]
じゃあタイマのメモリが問題なの?

323 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 08:20:49 ]
>>321
まじ?

324 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 09:02:01 ]
>>320
> textBox1.Text += "a";
のことを言ってる? これは何が起こるかわかりやすくするためかと……

イベントハンドラにイベント足し続けてるから、
発生してるイベントが指数関数的に増えてるよ、ってことを言いたいのだと思うのだけど、
実行してみた?


……>>319 も言うように、>>308 が綺麗なコードを書いてるので読んだらいいと思うよ、うん

325 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 09:27:50 ]
>>323
釣られるな

326 名前:311 mailto:sage [2008/09/06(土) 09:48:08 ]
317やってみたら時間が経ったらバグった
おんなじことがイベントハンドラで起こるってこと?
イベントハンドラの意味とかよくわかってないけど

327 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 09:56:39 ]
>>326
>>311 でも同じような倍倍ゲームになってるというのは分かる?

328 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:18:01 ]
>>327
ボタン1実行中にボタン1が実行で・・・って事ですか?

329 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:21:31 ]
タイマー時刻が来るたびに += してたらそりゃなぁ。

330 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:25:45 ]
てことは+=じゃなくて=ならいいの・・・かな?



331 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:30:51 ]
>>330
eventだから = はできない。delegateむき出しならできるのだけど。

332 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:37:15 ]
難しいな〜
結局>>308のやり方が正解なの?


333 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:52:20 ]
・初期化の時
・ボタンを押した時
・タイマーで指定した時間が来た時
にそれぞれやることが混ざってるので、まずはそれを分けるべし。自分なりでいいから。

334 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 11:01:25 ]
つまり、タイマーで時間が来た時
×ボタンをくりかえす
○ボタンそのものでなく、ボタンの中のやりたいことをくりかえす
ってことか


335 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 11:03:11 ]
いや冷静にやりたいこと整理しなって。
毎回イベントハンドラに追加する必要がどこにある?
じゃ追加はだめなら=ならいい?って発想がもうおかしい。
=でいったい何するつもりだ?


336 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 11:04:12 ]
JavaScript しか使ったことないのかな?

JSと違って、タイマーStart後は一定周期で毎回デリゲートが呼ばれる
タイマーを設定するのは最初の1回(Loaded中)のみでOK
ボタンの押下時にタイマー始めたいなら、+= を Loaded に、Start() を ButtonClick に
あるいは、if(timer.Tick == null) timer.Tick += xxx


337 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 11:07:58 ]
そもそもタイマーはデザイン画面で貼りつければすむ話。
そしたらどっちのタイマーでも問題ない。
まWindowsタイマーでいいけどな。

イベントハンドラもデザイン画面で作ったらそれでしまい。


338 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 11:10:12 ]
>>336それもちょっとおかしいぜ?

339 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 11:35:08 ]
もうVBAでいいよ。やるきあるならVBだな。

340 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 11:48:12 ]
何が違うんだよw
VBでも同じ結果になるのは目に見えてる。




341 名前:デフォルトの名無しさん [2008/09/06(土) 11:49:13 ]
JScriptもあるよw

342 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 11:51:24 ]
VBならイベントを宣言的に作れる点?

343 名前:311 mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 12:16:09 ]
>>343
その状態で、Form1.Designer.csの
InitializeComponent()の中で何をやってくれているか観察してみ

345 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 12:19:52 ]
>>343
意味はないけどそれであってるw
System.Windows.Forms.TimerはInvokeいらないよ

346 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 12:32:14 ]
>>344
おおすげえwwこんなのがあったのかww

ちなみにこれの違いってなんなの?
this.button1 = new System.Windows.Forms.Button();
private System.Windows.Forms.Button button1;

347 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 12:44:46 ]
上は式で下はメンバの宣言だから全く別種の要素だけど

348 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 14:01:14 ]
>>343
そういうのがまあたいていの場合の普通のやり方。
ちょっといろいろデザイナ触ってみた方がいいんじゃないかな。


349 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 14:38:49 ]
File.Move()って一つ一つファイルを移動しても
まとめて移動するのに比べてオーバーヘッドありませんか?

350 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 19:44:46 ]
       r――――――‐ 、
       |なにして遊ぶ?|
       `ー――v――― ''
           ∧,,∧  ∧,,∧
      ∧,,∧ (´・ω・) (・ω・`). ∧,,∧    r――――――――‐ 、
     ( ´・ω).(O┬O) (O┬O) (ω・´ )  < 公園でかくれんぼ!|
     ( O┬O ∧,,∧. ∧,,∧)┬O )   `─――――――─‐ '
      ◎-J┴◎(  ´・) (・`  )┴し-◎
           ( .__ l) (l __ )
              `uロu'. `uロu'
       r―――.ヘ―────―‐ 、
       |じゃあ公園まで競争だ! |
       `ー―――――────‐ '





351 名前:デフォルトの名無しさん [2008/09/06(土) 21:43:31 ]
Visual C# 2008 でアプリケーションを作ったんですが、
うちでは動くのに、友人のPCだと動きません。

.NET Frameworkのバージョンが、うちは3.5で、
友人のPCが2.0なのが原因じゃないかと思うんですが、
下位バージョンの.NET Fameworkでも動くアプリを作るには、
どうすればいいのでしょうか?

352 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 21:45:26 ]
プロジェクト→プロパティ
対象のフレームワーク

353 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 21:56:34 ]
それやっても向こうに2.0 SP1入れるかバージョンリダイレクトかけるかしないと動かなくないか?

354 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 22:18:24 ]
素直にsetup作ればいいのに。
なんだか昔のVBerみたいな偏屈に見えるよ。

ちなみに、SP1の機能使ってなければSPなしの2.0環境でも動くんじゃないの?
つーか2.0はWin2000や98用が今のところ用意されてないSP2とかもうグダグダだな。

355 名前:デフォルトの名無しさん [2008/09/06(土) 23:24:16 ]
C#でのASP関連の質問はどこで聞けばいいの?WebProg板にASP.NETスレあるけど、やたら過疎ってるみたいなんだけど。

356 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 23:45:26 ]
C#でASP……できたっけ?

てのはともかくここでもそこでも好きにすりゃ良いんじゃね

357 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 23:55:57 ]
>>353
なんでやねん
まあSPでの変更点に引っかかる可能性はわずかにはあるが。


358 名前:396 [2008/09/07(日) 08:59:27 ]
エクスプローラの機能限定版(ドラッグ&ドロップが出来ないエクスプローラ)
的なファイル管理ツールを作ろうと思っています。
サンプルとなるものってどこかに無いでしょうか?
開発ツールはC#(VS2008)です。

359 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 09:13:23 ]
C#とは直接関係ないですが、ユーザーコントロールの件。

VisualStudio のソース用のテキストエディタには左側にブレークポイントを
置くエリアがありますが、あれはPanelコントロールのようなものなんでしょうか?
あのような機能のものを作ろうとした場合、ソーステキスト側のスクロール、
Fontのサイズ、行間距離、折り返しの有無とその変化などにすべて対応する
必要がありますが、簡単に実現する方法はないものでしょうか?


360 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 09:37:16 ]
やった事無いけど、テキストボックスにSendMessageで

EM_SETRECTで左に余白を作り
EM_GETFIRSTVISIBLELINEで先頭行の番号を取得し
EM_GETLINECOUNTで表示されてる行数を取得して・・とかやればいけるんじゃね?



361 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 10:55:56 ]
>>359
煽るわけじゃないが、そんな調子でそんな高機能なユーザーコントロールを
作ろうと思ってるわけ?

ちょっと考えれば分かると思うが、たまたま君が実装したいと思っているに過ぎない機能を
都合よく「簡単に」実現してくれる既存のコントロールなんてあるわけないじゃん。

362 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 11:01:53 ]
>>361
まだ夏休みですか

363 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 12:45:30 ]
>>362
消えろゴミ

364 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 12:53:25 ]
>>362
ところであなたは大学卒業しました?

365 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 13:02:04 ]
フフ、>>364は大卒じゃないのよ

366 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 13:05:22 ]
>>365=中卒ニート


367 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 14:28:28 ]
Fラン共うぜぇよ

368 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:13:02 ]
↑Gラン

369 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:02:47 ]
Bラン

370 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:15:35 ]
学歴話が好きな奴の人物類型というのは

(1) 学歴コンプレックスのある人間(秋葉原の事件の容疑者タイプ)
(2) 学歴以外に縋るものがないタイプ(かなり古いが宮沢喜一系)
(3) 学歴コンプの奴を煽って楽しむタイプ(マミーなんとか的な幼稚系)

こんなところか。
どっちにしろ他人よりもむしろ「救いがない本人自身を語ってるだけ」、という
簡単で明白な事実に気づくだけの知能が欠けているのは全てのタイプに共通しているようだな。



371 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:01:36 ]
>>359
>簡単に実現する方法はないものでしょうか?

ありません。

".NET エディタ コントロール"で検索してみると
みんな苦労してるのがわかると思う。

372 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:23:37 ]
>>370
そういうあなたは中卒ですか?

373 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 18:52:58 ]
ごめんなさい、脳卒中です

374 名前:351 mailto:sage [2008/09/07(日) 23:10:19 ]
>>352
>>353
>>354
遅くなりましたがありがとうございます。
プロパティから対象フレームワークの設定はできました。
友人のPCで試してみます。

375 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 02:07:17 ]
何この自演臭い酷い流れは

376 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 02:09:34 ]
黙れ自演厨

377 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 06:29:54 ]
早く前の流れに戻らないかしら。

378 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 06:34:38 ]
>>373
×ごめんなさい、脳卒中です
○ごめんなさい、中卒脳です

379 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 14:31:04 ]
>>371
>ありません

やはりそうでしたか。

>".NET エディタ コントロール"で検索してみると
>みんな苦労してるのがわかると思う。

わかりました。どうもありがとうございました。ではまた。


380 名前:デフォルトの名無しさん [2008/09/08(月) 15:38:29 ]
C#2.0で質問です。

Winアプリを作成しようとしています。
WEBアプリであればSessionのコレクションに特定のKey名でシリアライズできるオブジェクトを入れて
各画面で遷移した後も使いまわせるようにできると思うのですが
Winアプリで同じようなことを実現するにはどのようにすればよいでしょうか?

エントリポイントの
static void Main()
{
}

この辺りでRunさせる前に作成して保持しておきたいのです。
何か良い方法があればご教授いただけませんか?



381 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 16:16:44 ]
静的なHashtableにでも入れときゃいいんじゃない?
俺はやらんけど。


382 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 17:00:07 ]
>>380
遷移実行は遷移を管理するObjectに依頼する。
画面は遷移引渡し用Method、遷移元取り込み用Methodを用意する。

383 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 17:24:44 ]
>>381-382
レスありがとうございます。

>>381
その方法だとすごく簡易にできそうです。

>>382
画面で順々に渡していくわけですね。
遷移絡みで一元管理ができそうです。

今回は一寸時間もあるので>>381+>>382の手法を組み合わせて
勉強しながら進めてみようと思います。

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


384 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:12:38 ]
>>378
ちょwwくそワロタww

385 名前:デフォルトの名無しさん [2008/09/08(月) 18:32:55 ]
何この糞ップリww

386 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 23:08:02 ]
一般に、大卒以上の学歴を有しながら、中卒以下の人間を指す

387 名前:デフォルトの名無しさん [2008/09/08(月) 23:23:51 ]

にっぽんサイコー!:?BS11「にっぽんサイコー!」第1回2008/3/9(日)放送
www.team-nippon.com/team_nippon/cgi-bin/player.pl?channel=j_channel&order=25&mode=0&self=1

まあ一辺聴いてみてください。いかに日本が自民党に巻き上げられて官僚やゼネコンに配ってるかwわかります。
いかに口うまく騙されてるかwわかります。

日本Channel:築地があふれた!!壊すな築地7.12東京大行進
www.love-nippon.com/cgi-bin/player.pl?channel=j_channel&order=1&mode=0&self=0

ソトコト 憂国呆談
www.sotokoto.net/yukokuhodan/yukoku_2.html#upside2

断固田中康夫を首相にしましょう!!



388 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 23:55:35 ]
while(true){
Console.WriteLine(pc1.NextValue());
System.Threading.Thread.Sleep(100);
}

ちょい試してみな

390 名前:388 mailto:sage [2008/09/09(火) 00:01:03 ]
>389
あぁぁぁぁorz
わかりますた…
% Idle Timeとかって初期値が必ず0なのね…
はずかしぃぃぃ



391 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 00:51:30 ]
System.Environment.CurrentDirectory;
のような感じでファイル名も取得したいのですがどうしたらいいでしょうか?

System.Environment.CurrentDirectory ディレクトリの情報しか取得してくれないんです

392 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 00:52:50 ]
>>391
何のファイル名を取得したいの?

393 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 00:56:06 ]
実行ファイルのパスなら、
Application.ExecutablePath

394 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 00:56:24 ]
>>392
説明不足ですいません
ttp://dobon.net/vb/dotnet/system/explorecontextmenu.html
ここを参考にして、右クリックメニューからプログラムを開くようにしたんですが、
その右クリックしたファイル名を取得したいんです。
どうしたらいいでしょうか。

395 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 03:53:27 ]
>>394
右クリックメニューからどのプログラムで開くように設定したの?
登録したプログラムが君の作ったプログラムだったらMain関数の引数がまさしくファイル名になるけど、
たとえばnotepad.exeで開くようにしたのだったら当然ファイル名を取得することはできないよ?
notepad.exeは君の作ったプログラムじゃないから当たり前なんだけどさ。

何がしたいのか全然想像できん。
相当初心者みたいだから、もっと具体的に説明してくれないと答えにくい質問だわ。

396 名前:デフォルトの名無しさん [2008/09/09(火) 05:21:33 ]
>>394

ようわからんが

Main(string[] args)
{
string fileName = args[0];
}

でいいんじゃね?
ちなみに、リンク先の方法は「フォルダ」をプログラムに関連づける方法だから、
「ファイル」を関連づけたいなら
dobon.net/vb/dotnet/system/associatedapp.html
こっちの方だと思うんだけど。

397 名前:デフォルトの名無しさん [2008/09/09(火) 12:06:27 ]
List<string> a = new List<string>();
a.add("aaa");
・・・

ときて、aの要素すべてを"\\"で連結してひとつの文字列にしたい

398 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:12:30 ]
String.Join

399 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:19:25 ]
サンクス

string.Join("\\", a.ToArray());
でできた


400 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 13:42:05 ]
>>395はリンク先読んでからレスしろよw



401 名前:395 mailto:sage [2008/09/09(火) 15:08:47 ]
>>400
当然読んだに決まってるじゃん。
リンク先のサンプルは右クリックメニューにオリジナルメニューを追加させるようなアプリのサンプルなんだから、
右クリックで開かれるファイル名を取得したいという質問自体が意味不明なんだよ。
あくまでレジストリにキーを追加するだけのアプリと、コマンドライン引数を取得することは全く結びつかない。
コマンドライン引数を取得したいのならばそう言えばいいだけで、リンク先の記事は何の意味もなさないんだよ。

402 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:40:12 ]

 政治板にあった的確なAAを紹介します!!
          ↓

【選挙前】 郵政民営化に賛成か否か 国民投票です

    自民党↓ 小泉
    , - ,----、
    (U(    )  
    | |∨T∨   
    (__)_)    国民様、へへへーっ
          ↓
          ↓
【選挙後】
自民党↓   ガソリン暫定税率維持
         後期高齢者制度制定
   ∧_∧    日雇い派遣 制限撤廃
  ( ´∀`)     郵政造反組復党
  (   /,⌒l     & 天下り先独法の特別会計ジャジャ漏れは完全に温存 !!
  | /`(_)∧_0.  & 二人の総理投げ出し他人事で辞任!
  (__)(´∀`; )⊃⌒⊃   ← ← ← (一般民間人)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


403 名前:デフォルトの名無しさん [2008/09/09(火) 16:18:33 ]

ageろよww


404 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 19:14:16 ]
コピペ君って馬鹿だな、まで読んだ。

405 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 21:29:25 ]
>>396
ありがとうございます。
期待していた動きをさせることができました。

406 名前:デフォルトの名無しさん [2008/09/10(水) 11:30:15 ]
メソッドの引数にプロパティがたくさんあるクラスを渡そうとしています。
引数を渡す時に ref をつけて渡した方が、実行速度上 ( 微々たるものかもしれませんが ) 有利になるのでしょうか。
ref を付けずに渡すと、メソッドに渡す時に引数がコピーされると、プログラミング c# に書かれていました。
どうなのでしょうか?


407 名前:デフォルトの名無しさん [2008/09/10(水) 11:31:53 ]
用途による としか言いようがない

408 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:32:39 ]
されない。
そう書いてあったならその本が間違ってる。
もしくは値型についての話と混同してる。


409 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:33:50 ]
厳密にはクラスでも引数はコピーされるが、今の話はそういう話ではないはず。


410 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:36:47 ]
大きな値型なら速くなる
クラスなら付けない方がたぶん速い



411 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:37:43 ]
そうじゃなくて、そのメソッドをよく呼ぶときに実行速度が問題となるってこと。

412 名前:デフォルトの名無しさん [2008/09/10(水) 11:42:57 ]
>>407-411
お返事ありがとうございます。
なかなか難しいですね。

私の理解としては、メソッドの引数が、
クラスの場合→インスタンスのアドレスが渡される ( コピーされない )
値型の場合→ボックス化?され ( つまりコピーされ ) 渡される
という理解ですが、良いのでしょうか?

クラスの場合に、そのクラス中に値型のフィールドが含まれることもあるかと思いますが、そちらはよく分かってません。





413 名前:デフォルトの名無しさん [2008/09/10(水) 11:43:13 ]
refキーワードは速度じゃなく、メンバの使われ方が問題なんだが

414 名前:デフォルトの名無しさん [2008/09/10(水) 11:44:14 ]
よく考えなくても分かるけど、参照がコピーされたのに、参照に含まれる一部が実体とかおかしいだろ

415 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:47:40 ]
意味が分かりませんw

416 名前:デフォルトの名無しさん [2008/09/10(水) 11:47:47 ]
>>414
なるほど。

では、まとめると、
クラスの場合→インスタンスのアドレスが渡される ( コピーされない )
クラスのメンバに値型が含まれる場合→インスタンスがコピーされアドレスが渡される
値型の場合→ボックス化?され ( つまりコピーされ ) 渡される
という理解ですが、良いのでしょうか?


417 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:52:17 ]
とりあえずいろいろコード書いて試してみりゃいいよ

418 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:57:14 ]
>>416

これ読んどけ。じっくり読むと理解できるから。流して読むと川俣ワールド迷走することになるが

www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_006/cs2_006_01.html

419 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:06:54 ]
>>414だいぶ混乱してる。
少なくとも今の話にはボックス化は無関係。
ただしコピーされるってのは間違ってない。
値型メンバはクラスのインスタンスにそのまま埋め込まれてる。
参照型メンバはクラスのインスタンスに、まあ君の理解で言うとアドレスが埋め込まれてる。


420 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:15:25 ]
値型は実体がコピーされる。
ただし、参照型に含まれる値型は値型の参照がコピーされる。

以上

422 名前:デフォルトの名無しさん [2008/09/10(水) 12:15:53 ]
もう難しすぎる!

423 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:16:01 ]
>>413
XNA Frameworkとか覗いてみたらわかるよ
決して良い使い方だとは言えないんだけど

424 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:23:02 ]
そういう人が書いた記事よりもMSDNを熟読するほうがいいよ。

425 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:24:31 ]
そりゃC#のボキャブラリだけで考えていたら難しいだろう
Cかアセンブラで関数のメカニズム(スタックフレーム)について
勉強してから戻ってくるといいよ

そういえばMSILの逆アセンブラなんかもあったような

426 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:30:05 ]
でたらめが入りまじってるから、
ちゃんとした書籍で調べることをお薦めする。

ああ、ひと目でわかるとか、あんなのは駄目だぜ。
こちらはVB版だが、確か同じ間違いの記述がある。

427 名前:デフォルトの名無しさん [2008/09/10(水) 13:35:40 ]
>>417-426
スタックやヒープなどからいろいろと勉強して理解してみます。
アドバイスありがとうございます。

逆に ref を使うときってどういう時に使ってますか?


428 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 13:42:06 ]
たまにprivateメソッドで実装の都合で使うかも
外から見えるメンバには絶対使わないな
outは稀に使うけど

429 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 14:31:35 ]
確かにrefはめったにない。
outはたまに使う。


430 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 14:34:39 ]
COMインターフェイス絡みだと[In] refなんてザラだけどこのスレ的にはあんまり関係ないな



431 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 15:39:31 ]
DBNullでいいじゃん?とは思うけど
stringのプロパティ二つ持ったクラス用意
DisplayMember/ValueMemberにそれぞれのプロパティ名設定
一つずつ用意したクラスに詰替え
Items.AddよりDataSourceに配列として設定した方がよくね?

433 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 15:45:45 ]
>>432

>Items.AddよりDataSourceに配列として設定した方がよくね?
確かに・・・

まず提案していただいた方法試してみます!
ありがとうございました。

434 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:16:10 ]
DBの項目がIntならそのまま更新できないから「全て」が選ばれたときにどうやって更新するのかは気になるところ


435 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:26:13 ]
ArgumentNullExceptionをスローするときに
引数名を文字列で直接指定するのって格好悪い気がするんだけどいい方法ある?

436 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:27:24 ]
気のせいだ

437 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:39:51 ]
>>435
ない。

リファクタリングと相性が悪いので、どうにかしようという話が出てたが
まだ実現していない。

438 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 18:11:12 ]
今度は引数の数や順番の変更に弱くなるぞ

440 名前:デフォルトの名無しさん mailto:sage [2008/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 mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 23:25:25 ]
>>441
フォルダのアクセス権がないユーザーが、そのフォルダのアクセス権を変更することはできない。
当たり前のことですな。

443 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 23:32:08 ]
お前馬鹿かよ。
何やろうとしてるか冷静に考えてみろ。


444 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 00:08:28 ]
C#もVBと同じ Optional 引数は使えますか?


445 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 00:27:28 ]
いいえ

446 名前:デフォルトの名無しさん [2008/09/11(木) 00:43:03 ]
adminとuserがひとつのアプリを共有し
ファイルディレクトリ操作を行う場合
どういう実装をすればいいのでしょうか?

447 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 01:05:23 ]
userに権利が無い操作を、できなくすればいいのでない?

448 名前:441,446 mailto:sage [2008/09/11(木) 01:51:14 ]
>447
自分がadminかそうじゃないかを知る方法ってあるのですか?
元々その辺から調べてたのですが全くわかりませんでした。

449 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 06:02:46 ]
>>448
WindowsIdentityとWindowsPrincipalの組み合わせで。
www.atmarkit.co.jp/fdotnet/dotnettips/347rolebasesec2/rolebasesec2.html

450 名前:デフォルトの名無しさん mailto:sage [2008/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 mailto:sage [2008/09/11(木) 14:55:32 ]
>449 ありがとうございました。ようやく前進できました。

もうひとつ質問ですが、
System.Net.WebClient でファイルのDLを行う場合、
拡張子exeのファイルは環境によっては弾かれるということはありえますか?

拡張子exeのファイルは拡張子を変えてDLしたあとリネームした方がいいのでしょうか?
それとも、zipファイルとしてDLしたあと展開するのがベターでしょうか?

452 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 22:11:46 ]
C#でWindowsの音量(マスターとか、WAVEとか、ラインインとか)を
直接操作できるような方法ってあるんでしょうか?

453 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 22:16:22 ]
Win32API

454 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 22:17:24 ]
C# api MIXIERCAPS あたりで検索して味噌

455 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 22:20:22 ]
err
s/MIXIERCAPS/MIXERCAPS/

456 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:07:10 ]
>>450
これ以上ないくらい普通に取れるが、どこで引っかかってるの?


457 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 09:01:18 ]
>>456
おはようございます。

Properties.Settings.Default.ConnectionString
で接続文字列は取得できるのですが
Properties.Settings.Default.ProviderName
というプロパティが存在せず取得できないということです。


458 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:42:58 ]
コンテキストメニュー「1」又は「2」からフォーム「A」を
開くときに、フォーム「A」はどちらのコンテキストメニューから
開かれたのか知るためにはどうすればいいのでしょうか。

459 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:51:46 ]
DataGridViewの表示がやたらと遅いんですが、
改善策はあるんでしょうか?
フォームにDataGridViewを置いて起動→
10行くらい適当に入力→
最小化、最大化で、上から順にズラズラと再描画されています。
PCは最近のものなのでスペックは悪くありません。

460 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 13:16:45 ]
>>458
フォームAにそういうプロパティを実装する。
あとは呼び出す前に設定するだけ。



461 名前:デフォルトの名無しさん [2008/09/12(金) 15:30:53 ]
Form1にシリアル通信をしてオープンしている状態で、別のフォーム(Form2)を呼び出して、
そのまま通信しようとするとエラーが起きてしまいます。
どうすればよいでしょうか?

462 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 15:32:27 ]
エラー(笑)

463 名前:デフォルトの名無しさん mailto:sage(笑) [2008/09/12(金) 15:36:04 ]
エラーというかポートが閉じられているとでます。

464 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 16:02:51 ]
何がでるって?

465 名前:デフォルトの名無しさん mailto:sage(笑) [2008/09/12(金) 16:08:04 ]
'System.InvalidOperationException' のハンドルされていない例外が System.dll で発生しました。

追加情報: ポートは閉じられています。

です

466 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 16:10:00 ]
>そのまま通信しようとすると
って具体的に何したの

467 名前:デフォルトの名無しさん mailto:sage(笑) [2008/09/12(金) 16:12:08 ]
データを送ろうとしてます。
Form1からは正常に動きます

468 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 16:29:07 ]
ズコー

469 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 16:35:43 ]
いいよいいよー

470 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 17:02:41 ]
Form2はForm1からシリアルのインスタンスもらってそれを操作しようとしたの?
スレッドは単一?



471 名前:デフォルトの名無しさん mailto:sage(笑) [2008/09/12(金) 17:08:46 ]
はい

472 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 18:41:45 ]
メル欄ふざけてるの?

473 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 18:55:07 ]
はい

474 名前:デフォルトの名無しさん mailto:sage(笑) [2008/09/12(金) 19:27:06 ]
>>473
違う

>>472
違う

非アクティブ状態でも、シリアルポートはOPENにしたいんだーーーーーーーーーーーーーーーーーー


475 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:29:54 ]
メル欄真面目なの?

476 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:47:56 ]
まじめです。
マジレス頼みます

477 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 20:18:23 ]
VBのMSCommじゃないんだから(いやMSComm使ったってそうだが)Formの状態と
SerialPortクラスの例外は普通は何の関係もないはずだが。

っていうかまずハンズオンか何かにあったサンプルコードを理解するところから
はじめたらどう?

478 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 01:11:49 ]
シリアルポートって1つしかOPEN出来ないとかそういう話じゃなくて?

479 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 14:24:46 ]
は?

480 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:28:02 ]
め?



481 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:32:19 ]
は?

482 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:47:15 ]
め?

483 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:48:11 ]
学?

484 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:49:12 ]
園?

485 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:58:03 ]
Windows フォームアプリで、System.Threading.Timer で一定時間ごとにある操作をしてフォームに文字列を表示しています。(30ms 毎に Timer が起動)
文字列はちゃんと表示されているのですが、フォームの他のコントロールが描画されず真っ白のままです。
System.Windows.Forms だと正しく動作するのですが、どうしたらよいのでしょうか?


486 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 18:07:52 ]
System.Windows.Forms を使う

487 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 18:10:02 ]
>>485
できた。
this.Update();
Application.DoEvents();
を追加した。

488 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 18:29:34 ]
DoEvents()が出てきたら何か考え方がおかしいと疑ったほうがよい

489 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 20:28:52 ]
>>487
残念だが多分正しくは出来てない気がする。
デバッグ実行したら例外になったりしないか?
まあ見てないから分からんけども。

490 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 03:52:20 ]
ずっと動かしてたら落ちるだろうなあ



491 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 09:00:39 ]
>>488-490
確かに表示は更新することは出来ましたが、
フォームを終了させると例外が発生しています。
タイマの delegate でフォームを更新させるために呼んでいる Invoke メソッドで InvalidOperationException が発生しました。
30ms 毎に Timer を起動していますが、行っている処理の時間がかかりすぎて、次の30ms までに終了せず、タイマが ThreadPool にたまりすぎなのだろか?


492 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 11:10:13 ]
どんな処理してるわけ?


493 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 11:56:13 ]
毎回起動しなおしてんの?

494 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 12:08:16 ]
ま、Invokeはハンドルが破棄された後に呼び出すと例外になるので、
とりあえずInvokeする前にハンドルがあるか確認するか、
確実を期するなら自前でフラグ管理と同期を行うか、
まあ少なくともどっちかは必要。

その上で他にも問題があるかはまた別の話。


495 名前:デフォルトの名無しさん [2008/09/14(日) 12:20:56 ]
30msごとにタイマー起動してフォームを更新っていったいどんな処理しているの?
その設計自体を根本から見直す方が先決だと思うんだけれど。


496 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 22:27:11 ]
色んな要求あるんだから、お前の小さい視点でレスするな

497 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 22:45:46 ]
点に大きいも小さいもないよ。

498 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 22:48:30 ]
ん?悔しかったの?w

499 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 04:08:33 ]
デリゲートは標準でマルチキャストですが
シングルキャストデリゲートってどう作るんですかね?

500 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 09:56:21 ]
C#ってよりCLRじゃ無理



501 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 10:04:09 ]
あれってデリゲートが今みたいに積極的にイベント以外に使われるようになることを
想定してなかったんだろうな
今作り直すならイベントハンドラは別扱いとかコンテナは別にするとかになりそう

502 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 19:31:30 ]
>>501
なぜデフォでマルチキャストなのかって疑問は確かにあるけどそれはない。
だって関数ポインタの自然な発展形である以上、
その用途をイベントだけに見積もるなんてありえん。

503 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 19:34:08 ]
また俺のわからない話をする

504 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 19:43:20 ]
最初はシングルキャストと厳密に分けてたけどうざいだけでメリットがあんまなかったからやめたのさ。

505 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 19:59:17 ]
関数ポインタを引数にとるアンマネージ関数にマルチキャストデリゲートを渡しても
ちゃんと全部呼んでくれる。
神経質に使い分ける必要もないのかな。

506 名前:499 mailto:sage [2008/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 mailto:sage [2008/09/16(火) 20:14:33 ]
↑みたいなプログラムだとマルチキャストの意味が全くないし
間違えて+=で委託先を追加したら気づかずに余計な処理をさせちゃうこともあり得るので
どうせならシングルキャストを作れればいいのにと思いましたが
private Func<double, double, double> calc;
public Func<double, double, double> Calc
{
get
{
this.calc = value;
}
}
みたいなプロパティを追加すればいいだけだと気づきました、すみません

508 名前:499 mailto:sage [2008/09/16(火) 20:15:19 ]
setだった

509 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 20:17:06 ]
setオンリーのプロパティはガイドライン違反
SetCalcメソッドにしようね

510 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 20:20:36 ]
>>509
そんなガイドラインあったっけ?
VBなんて普通にWriteOnlyなんていう組み込みのキーワードまであるんだけど。



511 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 20:23:09 ]
>>510
msdn.microsoft.com/ja-jp/library/ms229006(VS.80).aspx

512 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 20:47:43 ]
<>で囲まれてる文字列を最小一致で全部取り出すにはどうしたらいいですか?
<html><body></body></html>なら、
html body /body /htmlを取り出してリストに突っ込むようなことです
最小一致なのでhtml><body></body></htmlが取り出されると困ります
よろしくおねがいします

513 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 20:57:44 ]
>>509>>511
そうでしたか、
わざわざどうもです
>>512
char[] separator = {'<', '>'};
string str = "<html><body></body></html>";
str.Split(separator, StringSplitOptions.RemoveEmptyEntries);
っていうのはどうでしょう

514 名前:512 mailto:sage [2008/09/16(火) 21:17:12 ]
>>513
うまくいきました
本当にありがとうございます。

515 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 22:15:33 ]
>>512
ちなみに、.NET の正規表現的には \<.*?\> で行ける。
*? で最小一致。

516 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 23:05:38 ]
横やりだけどSkip()って初めて見るけど新しく追加されたメソッドか?

518 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 23:06:47 ]
>>517
LINQ

519 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 01:06:42 ]
LINQまったく使ってないなぁ
最初は興味あったけど構文が異質すぎて使えない

520 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 01:14:33 ]
クエリ式を使わないLinqもありだよ。C#のクエリ式ではSkipはサポートされていない。
VBではサポートされている。



521 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 01:28:02 ]
ゴミって空文字かな?
StringSplitOptions.RemoveEmptyEntries
でおkのような気がす
そういう感じで行くなら
str.Split(new char[]{ '<' , '>' }).Where(s => s != "")
の方が俺好みだば

クエリ構文はまったくわからないなぁ
まったく使わなそうな気がするのでそこだけ勉強すらしてないなぁ。。

522 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 01:42:24 ]
>>521
いや、こういう事

<html><body>ゴミ</body></html>

523 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 11:17:23 ]
ああなるほど把握

524 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 14:56:32 ]
パブリックメンバにDictinaryを含むクラスをシリアライズしたいのだけど、
IDictionary実装クラスはシリアル化できないと怒られます。

KeyValuePair構造体の配列に変換してからシリアル化するのがいいのかと考えたんですが、
デシリアライズの時にどうすればいいのか・・・

どなたか助言いただけると助かります

525 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 15:09:15 ]
配列にしたとしても、KeyValuePair(のプロパティ)が変更可能でないから駄目じゃないか
俺は変更可能なKeyValuePairとDictionaryのラッパー作って対処したが

526 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 15:25:42 ]
Dictionaryでset可能なプロパティって気持ち悪いな
IXmlSerializableの実装でも書くか?

527 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 15:42:24 ]
C#でH8/3069の制御って出来ますか?

528 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 15:54:41 ]
うん

529 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 16:13:30 ]
返答ありがとうございます
もう少し具体的な質問が出来るようになるまで自分で勉強しようと思います

530 名前:524 mailto:sage [2008/09/17(水) 17:29:27 ]
結局パブリックプロパティで、
Dictionaryのkeyとvalueの2次元配列を取得、
Setterでは2次元配列のループでDictionaryにkeyvaluepairを格納していくような設計にしました。

やはりDictionaryはカプセル化した方が良かったですね。
ただデシリアライズ時のパフォーマンスがどうなるかは?ですが。




531 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 18:49:57 ]
>>528
え゙ ?H8向けのコンパイラ(実行環境)ってあるの?

532 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 18:55:26 ]
↑アホ

533 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 19:38:33 ]
いや、俺の方がもっとアホ

534 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 19:46:40 ]
>>531
H8は(というか今時のマイコンはほとんどそうだと思うけど)実機とIDEで
デバッグができるはず。

まあでもマイコンの開発にデバッガなんて俺はいらないと思うけどね。
少なくとも俺は使ったことも必要性を感じたこともないよ。

535 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 22:42:02 ]
タイマーで10ミリ秒毎にフォーム上のマウスカーソルの座標を取得し、
マウスに合わせて画像も一緒に移動させる。
更に、クリックした場所に画像を固定する。
ってなことをやってみたんですが、
移動時など、ものっすごい画像がチラついてしまいますorz
やっぱこういうのはDirectXなどを使ったほうが良いのでしょうか?

536 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 23:06:50 ]
本当にそれは10ミリ秒毎にする必要はあるのか?

537 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 23:08:53 ]
>10ミリ秒毎
意味あると思ってんのか?


538 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 23:23:14 ]
100fpsなんて格ゲでもやらんぜ

539 名前:535 mailto:sage [2008/09/18(木) 00:39:58 ]
3連発でダメ出しされるとは・・・orz
最初100ミリ秒でやったんですが、
マウスの動きに若干遅れるんで、10ミリ秒にしてみました。
意味は全然考えてませんでした。すいません。。
これは仕様から考え直したほうが良さげですね。
お騒がせしました&ありがとうございました。

540 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 01:14:11 ]
タイマでやらんでもできるっしょ。
ボードゲームのソースでも拾ってくれば?



541 名前:デフォルトの名無しさん [2008/09/18(木) 01:33:08 ]
C#というわけではないのですが、ファイル管理ソフトでファイル内
文字列まで見て該当ファイルを見つけるという検索がありますが、
あれは文字列の形式やフォーマットあるいはエンコードなどをすべて
のケースで調べているのでしょうか?

たとえばExcelやワードなどのファイルの場合は、それをテキスト形式
で取り込んで調べるのでしょうか?

542 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 01:36:38 ]
>>541
うぜえ、なんだこいつ
場違いなんだよ消えうせろクソ餓鬼

543 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 03:05:33 ]
>>540
画像をマウスと一緒に動かすのは、とりあえず諦めました。
で、オセロとか見てたんですが、置く画像が正方形なら簡単だけど、
長方形も混在してると、途端に難しくなりますね。
ゲーム系のプログラムは全然やったこと無かったんで、
もっと単純な物も参考にしてやってみます。

544 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 03:52:15 ]
>>543
PanelとかPictureBoxとかのMouseMove/MouseClickイベントで十分ぽい匂いがした。

545 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 08:00:00 ]
Point[] Points = { new Point(2, 3), new Point(3, 4) };

こんな感じで記述するといけるんですが・・

547 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 08:29:26 ]
>>545
new Point[] を省略していいのは変数宣言の時だけ。

548 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 15:22:45 ]
省略できるのしらんかったw

549 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 17:28:56 ]
menustripコントロールで出来て、toolstripコントロールだと出来ないことってありますか?
toolstripならアイコンだけじゃなくて文字でも表示できるのでmenustripを使う意味はあるのかなと思いました。

550 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 19:24:28 ]
C#Builderのプロジェクトファイル群をVC#対応へ移行するにはどのようにするのでしょうか?



551 名前:デフォルトの名無しさん [2008/09/18(木) 21:06:14 ]
エラー 1 型または名前空間名 'Drawing' は名前空間 'System' に存在しません。アセンブリ参照が不足しています。

どこいっちゃったのよ。

552 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 21:13:25 ]
Drawingの前にSystemつけるかusing System.Drawing;じゃないか

553 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 21:18:55 ]
スレタイに C井 が足りない

554 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 21:20:07 ]
C丼は足りてる

555 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 21:24:26 ]
.net1.0からの移植

using System.Drawing;でエラーが出た もう意味がわからない

556 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 21:27:33 ]
※ C丼: コチュジャン丼。豚肉と温野菜をコチュジャンで甘辛くした物をご飯の上に載せた物

557 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 21:31:10 ]
ソリューションエクスプローラーの参照設定にSystem.Drawing入ってるか?

558 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 21:33:20 ]
「System」だけ参照設定に入ってるけど、一つ一つやらなきゃいけないの?
なんか似たようなエラー30個もある

559 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 21:35:48 ]
なるほど解決しました
エラー減っていくのが楽しいです
ありがとう

560 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 21:38:59 ]
現金な奴だw



561 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 21:40:21 ]
じゃあ、C丼について語ろうか

562 名前:デフォルトの名無しさん [2008/09/18(木) 21:43:23 ]
丼だけ〜 ?

563 名前:デフォルトの名無しさん [2008/09/18(木) 23:42:56 ]
C#で、Formに張り付いているTextBoxを、
マウスドラッグされた場所に移動する場合どの
メソッドをしようすればいいでしょうか?

564 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 00:41:50 ]
メソッドは使用しない。
プロパティなら使用する。

565 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 04:36:53 ]
msdnドキュメントをオフラインで使用したいのですが
どこでダウンロードできますか?

568 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 04:42:58 ]
Download Centre

569 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 07:45:52 ]
2005用のしかないんだけど、2008にも使えるの?

570 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 09:36:30 ]
>>570
Aという変数に2から10まで入れたとして、最後に入ってるのは10だろ?

572 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 09:37:32 ]
>>570
文字列の結合を調べましたか? 試しましたか?

i がそれぞれの値のとき、何が起こっているか自分なりに説明できますか?

573 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 09:49:15 ]
>>570
litShowAns.Text += Convert.ToString(i) + "、";

574 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 09:54:16 ]
>>570
for (int i = 2; i <= 10; i+=2)
{
  string str += Convert.ToString(i) + "、";
}
litShowAns.Text=str;

575 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 09:55:15 ]
間違えた

string str ="";
for (int i = 2; i <= 10; i+=2)
{
  str += Convert.ToString(i) + "、";
}
litShowAns.Text=str;






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<134KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef