ふらっとC#,C♯,C#( ..
159:デフォルトの名無しさん
08/08/31 04:48:31
>>156
C#はMSだけ追いかけていればいいけど、JavaはSun以外からもいろいろ
出てくるのがしんどい。
160:デフォルトの名無しさん
08/08/31 05:41:00
もうDしかない!
161:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/08/31 07:19:10
フォームデザイナでイベントを定義してあれば、勝手に呼ばれるだろ。
163:デフォルトの名無しさん
08/08/31 07:30:39
Linq to xml の事で少し手ほどきしてください
XmlSerializer 等を使うと、適当に作ったクラスを一発でシリアライズできますが
同様な感じで、適当に作ったクラスから XElement を作る方法で良い方法はありますでしょうか?
またその逆も簡単にできそうであれば教えてください。
現状ではXmlSerializerをStringWriterを経由させているのですが、なんとなくバカっぽいので・・・
164:デフォルトの名無しさん
08/08/31 07:34:47
>>162
デザイナで終了XToolStripMenuItem_Clickのプロパティから
Clickイベントのドロップダウン一覧にForm1_FormClosingが出てこないので
定義できないのですが、ほかに方法があるでしょうか?
165:デフォルトの名無しさん
08/08/31 07:38:22
>>164
デザイナでフォームのイベントを見てみ
ここでイベントを割り当てれば、イベントハンドラ定義が追加される。
フォームデザイナでどういうことをすると、どういうコードが追加されるのか
確認してみるといいよ。
166:デフォルトの名無しさん
08/08/31 07:44:32
終了XToolStripMenuItem_Clickからフォームを閉じたいって言うこと?
でもe.Cancel=true;って書いてるし何がしたいんだかよくわかんね
167:デフォルトの名無しさん
08/08/31 07:48:10
>>163
ぐぐったらこんなのがヒットした。
URLリンク(www.hanselman.com)
XDocumentのCreateWriterメソッドがポイントみたいね。
168:デフォルトの名無しさん
08/08/31 07:53:43
>>165
>>デザイナでフォームのイベントを見てみ
これはデザイナのプロパティウィンドウのイベントボタンを押したときの一覧ですよね?
>>161はここからダブルクリックで追加したコードですが
終了XToolStripMenuItem_ClickもForm1_FormClosingもどちらにも
お互い出てこないのでイベントハンドラを共有できないのですがどうすれば良いですか?
169:デフォルトの名無しさん
08/08/31 07:59:03
>>164
ボタンからは普通にフォームを閉じるなりアプリを終了するなりすればいい。
>>165ができていれば、フォームが閉じられる前にFormClosingを拾えるはず。
で、イベントがキャンセルされてフォームは閉じられない。
何がしたいんだ?
170:デフォルトの名無しさん
08/08/31 08:11:58
>>166
実際にはかなり複雑な分岐処理が書かれているので、ほとんど省略してます。
>>169
VBだと
Form1_FormClosing(sender,e)
で行けた様な気がしたので気になってDesigner.csでEventHandlerを直接いじっても
FormClosedも共有できないみたいだし、C#の仕様ということでしょうか?
171:デフォルトの名無しさん
08/08/31 08:25:58
ボタンから閉じないけど同じ処理をしたいのなら別な関数として書いてそれを両方から呼び出したほうがよくね?
172:デフォルトの名無しさん
08/08/31 08:28:48
片方が
EventArgs
もう片方が
FormClosingEventArgs
つまりそういうことだ
173:デフォルトの名無しさん
08/08/31 08:37:04
>>170
Form1_FormClosingにブレークポイントを設定したら、フォームを閉じるときに
ちゃんと呼ばれるか?
呼ばれるなら、終了メニューにApplication.Exit();とかthis.close();とか書けば
いいっしょ。
174:デフォルトの名無しさん
08/08/31 11:28:13
KeyedCollection使うときにGetKeyForItemをオーバーライドするためだけに
それぞれ派生クラス作るのってアホらしくない?
デリゲートでキーを返す派生クラスを一つだけ作るとか?
175:デフォルトの名無しさん
08/08/31 18:44:33
それでもいいと思うが ObjectModel 内のクラスの存在理由とかそんなの
勘違いしてないか?
176:デフォルトの名無しさん
08/08/31 22:06:54
日本語対応のフォントのみを取得する方法ってあります?
FontFamilyでインストールされてるフォントを全部取得することはできたんですが
そこから欧文フォントとかを除く方法がわかりません。
177:デフォルトの名無しさん
08/09/01 14:03:41
>>170
クラスとキャストの概念が分かってないみたいだねぇ。さすがVB。
Form1_FormClosing(sender,new FormClosingEventArgs())
やりたいのはこれかな?
178:170
08/09/01 18:00:03
>>171
やっぱりそれが一番勝手が良いですね。
>>172
ようするに、キャストできない型なのでそのままだと呼び出せないということでしょうか。
>>173
なんか一番わかりやすいのでthis.close();を使ってます。
>>177
例えば
Form1_FormClosing(sender, new FormClosingEventArgs(CloseReason.None, true));
見たいにコンストラクタを初期化してやるとエラーにならないんですが
引数なしだとエラーになります。
型が違うイベントを呼び出すときは、毎回コンストラクタを初期化しないと
呼び出せないということでしょうか。
クラスとキャストの概念がわかってるかどうかは自信がありませんがキャストは出来ませんよね?
179:デフォルトの名無しさん
08/09/01 19:28:40
>>178
>>177の言ってることもトンチキだから気にしない。
君が分かってないのは>>177の言ってるようなことじゃない。
君が分かってないのはイベントとイベントハンドラだよ。
イベントハンドラ(例えばForm1_FormClosing())というのは、
イベント(例えばフォームが閉じられた)時に「呼ばれる」ものであって、
それを呼び出すと何かが起こる(例えばフォームが閉じる)わけではないよ。
VBの人にありがちな倒錯だね。
原因と結果が逆立ちしてる。
180:170
08/09/01 19:46:54
>>179
あー、そうか
一般論としてはイベントとイベントハンドラについて理解してるつもりだったけど
今回の件に関しては全く理解できてなかったということですね (^^;
ものすごく本末転倒なことを聞いてましたね、精進します
みなさん、有難うございました
181:デフォルトの名無しさん
08/09/01 19:47:29
VS2008sp1のインテリセンス日本語化はいつなんでしょうか?
182:デフォルトの名無しさん
08/09/01 19:54:20
>>178
とりあえず新規のWinFormプロジェクトを作る。
フォームデザイナでフォームを選択し、イベントハンドラの
FormClosingをダブルクリックする。
Form1_FormClosingにMessageBox.Show("FormClosing");
を書く。
実行する。
メニューを追加し、終了メニューにthis.close();と書く。
実行する。
これでイベントの流れの概略がわかるか?
FormClosingをダブルクリックする前後にForm1.Designer.csも
見てみるといい。
183:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/01 21:16:20
スレッドを作り終わった瞬間に削除される。
185:デフォルトの名無しさん
08/09/01 21:16:42
>>183
どう考えてもすぐに破棄されるに決まってる。
186:デフォルトの名無しさん
08/09/01 21:17:47
まあnullになるは意味不明だけどな。
187:デフォルトの名無しさん
08/09/01 21:28:43
匿名デリゲートを使うと、nullにならない事が確認できるよ
188:デフォルトの名無しさん
08/09/02 10:48:39
>>187
usingに使う変数の宣言は()内じゃなくてもいいんだよ
ローカル変数でもフィールドでもおk
189:183
08/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:デフォルトの名無しさん
08/09/02 15:31:18
そんなわけない
191:デフォルトの名無しさん
08/09/02 15:34:06
まあほとんどの場合Disposedだろうな
192:デフォルトの名無しさん
08/09/02 15:35:58
objが
193:デフォルトの名無しさん
08/09/02 16:45:03
>>190
お前はプログラミングするんじゃねーぞ
194:デフォルトの名無しさん
08/09/02 16:51:02
ローカル変数が何時までも残ってたらローカルじゃないでしょ
195:デフォルトの名無しさん
08/09/02 16:53:58
>>194
何の話?
196:189
08/09/02 18:44:51
ありがとうございました。
thread内でNetworkStreamを閉じるなど、コードを書き換えて検討し直してみます。
197:デフォルトの名無しさん
08/09/02 19:07:50
適当なディレクトリ内のファイルを列挙して、キューにどんどん突っ込んでいきたいのですが、
Directory.GetFilesなどではそのディレクトリのファイルを全て列挙するまで結果を得ることが出来ません、、、
ファイルを1つずつキューに入れていくためには、WinAPIを呼ぶしかないのでしょうか。
198:デフォルトの名無しさん
08/09/02 19:13:27
どんなストレージ使ったら問題になるのか分からないがまあその通り
フロッピーとかか
199:デフォルトの名無しさん
08/09/02 19:14:25
>>196
いや、ちゃんと調べたほうがいい、間違いが混ざってる。
200:デフォルトの名無しさん
08/09/02 19:51:37
質問です
1.findControlを使用して、コンテンツページからマスタページのDataListを取得
2.staticなメソッドに取得したDataListを渡して、DataListへの設定を行う。
3.画面表示
こうすると、DataListへの設定が反映されません。
staticなメソッドで行わずにコンテンツページ内でDataListへの設定を行った場合は
問題なく動くのですがなぜでしょうか。
201:デフォルトの名無しさん
08/09/02 20:28:54
若干怪しい部分はあるが、具体的なコードがないとわからない。
特にstaticメソッド辺り。
202:デフォルトの名無しさん
08/09/03 12:02:08
List<string,string> ls = new List<string,string>();
というような二次元の動的な配列を作りたいのですが
どうすればいいのでしょうか。
203:デフォルトの名無しさん
08/09/03 12:12:52
List<List<string>>
要素にアクセスするときはls[r][c]
204:デフォルトの名無しさん
08/09/03 12:17:42
有り難うございます。試してみます。
205:デフォルトの名無しさん
08/09/03 19:50:51
すみません、質問いいですか?
複数端末から同一ファイルをFilesystemWatcherで監視します。
んでファイルが来たらファイルを読みたいんですが
この場合、排他制御はどうしたらベストでしょうか?
お願いします。
206:デフォルトの名無しさん
08/09/03 21:31:03
何いってんのかわからん
207:デフォルトの名無しさん
08/09/03 21:34:08
おまえうざいんですけど
208:デフォルトの名無しさん
08/09/03 22:10:33
正直俺にも何言ってんのかわからんよ。
ぼんやりとは伝えたい方向が推測できないわけではないが。
プログラミング勉強する前に日本語できちんと自分の意図を
伝える練習した方がいいんじゃないのか?
209:デフォルトの名無しさん
08/09/03 22:14:03
おいおい>>205の文章は普通に言ってることはわかるだろw
サーバサイドの話でしょ。
俺はそっち方面知らんから答えられんけど。
210:デフォルトの名無しさん
08/09/03 22:14:49
>>205
やりたいことの説明が足りないのは確かだな。
1) 書き込まれたファイルを複数の監視しているPCのうちどれか1台が処理する。
2) 全部で処理する。
3) 全部で処理するが並列では処理させない。
並列処理といってるから1か3の可能性が高いが、
ファイルを書き出すのが完了した状態を判断したいということかもしれない。
211:デフォルトの名無しさん
08/09/03 22:32:29
>>209
なんだよ 「サーバサイドの話」ってww
FileSystemWathcerクラスは確かにUNCパスも使えるけど、基本的に
IOの話であって、「ローカルサイド(嗤)」の話だがな。
第一、FileSystemWatherが監視するのはディレクトリであって、ファイルじゃ
ないし。
そもそも「複数端末から同一ファイルを」監視しているはずなのに、「ファイルがきたら」
「ファイルを読みたい」って全く意味不明。ファイルは存在しているの?存在している
なら「ファイルがくる」ってどういう意味? 存在していないなら「同一ファイルを監視する」
っていったいどういうこと?
あ、なんかだんだんわかってきたぞ!!
たとえば \\server\dir を複数マシンから監視して、hoge.txt ファイルが新しく
作られたら、それを読み込みたいんだけれど、複数マシンからアクセスするので
排他制御をなんとかしたいということなんだろうか????
Created イベントで新しいファイルの名前がhoge.txtだったら、単純にreadモードで
FileStreamに読み込めばいいだけだと思うんだが…。
212:デフォルトの名無しさん
08/09/03 22:35:48
かなり意地悪だけど、
複数の端末が接続されている計算機において、
それぞれの端末から起動したプロセスで
あるファイルを監視(FileSystemWatcherを利用)。
ファイルが作成されたら、何らかの排他制御をしつつ
そのファイルの読み取りを行う。
というマルチユーザ環境での話と解釈できなくもない
213:デフォルトの名無しさん
08/09/03 22:51:52
>>209
お前の言ってることが一番分からんわ!
214:デフォルトの名無しさん
08/09/03 22:53:33
多分最初に処理を開始した一台だけが処理する制御ってことなんだろうな、多分だがな。
215:デフォルトの名無しさん
08/09/03 22:57:45
IPを変えるのってどうやればいいか教えてください!!
216:デフォルトの名無しさん
08/09/03 22:58:20
回線切って考えてみればいいと思うよ
217:デフォルトの名無しさん
08/09/03 23:42:00
だいたい皆さんのおっしゃる通りです。
言葉足らずすみませんでした。
\\server\のテキストファイルを複数の端末から監視し
(生成タイミングはサーバー次第)
生成されたら読み込んでフォームに表示したいのですが
複数の端末が同時にファイルアクセスするので例外が出てしまいます
(すべての端末で読み込みはしたい)
こんな感じですが・・・
218:デフォルトの名無しさん
08/09/03 23:47:11
普通に読み取り共有で開けないんだっけ?
219:デフォルトの名無しさん
08/09/03 23:51:41
同時にファイルアクセスって聞いただけで冷や汗が出てくる
220:デフォルトの名無しさん
08/09/03 23:52:51
ファイルアクセスされているかどうか調べられるんですか?
221:デフォルトの名無しさん
08/09/04 00:02:27
リードオンリーなら、同時にアクセスしても、普通に読めそうな気がするけど。
222:デフォルトの名無しさん
08/09/04 00:10:28
ファイル管理するクラスなりなんなりを置いて、それに読んでもらう方がよくね
リモートで呼び出しして
223:デフォルトの名無しさん
08/09/04 00:27:58
>>211
おまえ、きも、しね
224:デフォルトの名無しさん
08/09/04 00:32:59
共有モードを指定する。
これでファイルをメモ帳で開いてる場合でもエラーにならない。
new FileStream("file", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
write側とread側の間の排他はいろいろ方法はあるが、
別名で書き出して書き出しが終わったらrenameというのが一番無難。
rename後の名前で監視しておけば書き出し途中は見えない。
225:デフォルトの名無しさん
08/09/04 00:38:33
そのためにわざわざサービスあげるのかい
226:デフォルトの名無しさん
08/09/04 06:16:43
RichTextBoxの改行の幅って調節できますか?
改行すると、一文字分くらい空いてしまうんですが。
227:デフォルトの名無しさん
08/09/04 07:49:01
自演で回答に導くとはなかなかやるな
228:デフォルトの名無しさん
08/09/04 18:59:32
エンターブレイン、ツクール最新作「アクションゲームツクール」を発表、XBOX360/XNAにも対応
URLリンク(news4xbox.blogspot.com)
229:200
08/09/04 19:26:48
>>201
レスありがとうございます
自己解決しました
別ページに遷移した場合、前ページのcsでセットしたものは
リセットされるという事を知らなかったのが理由でした
マスタページの初期処理で必ず処理を行うようにする事で解決しました
・・・が、遷移する度に毎回処理ってなんか無駄だよなぁ・・・
上のやり方以外で前ページでセットした内容を次ページに持ち越す事って出来ないのでしょうか
230:デフォルトの名無しさん
08/09/04 19:39:17
何をしようとしてるのかよく分からない…
単にページ間でのデータ引き渡し?
231:デフォルトの名無しさん
08/09/04 19:42:18
これって
URLリンク(codezine.jp)
良さそうだけど使った人いる?
URLリンク(grid.g1sys.com)
動画を見る限り簡単そう。
でも、掲示板に何も情報ないし。
URLリンク(grid.g1sys.com)
232:デフォルトの名無しさん
08/09/04 22:13:34
宣伝乙以外に感想がありません
233:デフォルトの名無しさん
08/09/04 22:17:11
なんかCodeZineってすっかり企業の宣伝記事ばっかりになっちゃったね。
翔泳社らしいというか、往時のVBマガジンを彷彿とさせるものがある。
234:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/04 22:30:19
GUIスレッド以外のスレッドからコントロールにちょっかい出しちゃいけません
236:デフォルトの名無しさん
08/09/04 22:44:57
じゃあプログラム中にテキストボックスの中身変えたいときはどうすりゃいいのよ?
237:デフォルトの名無しさん
08/09/04 22:47:10
GUIスレッドからやるかInvokeすればいいじゃない
238:デフォルトの名無しさん
08/09/04 22:47:16
invokeしろぼけ
239:デフォルトの名無しさん
08/09/04 22:50:10
>これが出たからmsdnで簡単そうだった対策をやったんだけど
>また出る
>なんで?あんまり意味はわかってない
ちゃんとできてないんだろうとしか言いようがない。
どうやったのか書いてみそ。
240:デフォルトの名無しさん
08/09/04 22:56:06
ちょwwinvoke見たけどよくわかんね
GUIスレッドって何かわからない、スレッドに分けてないと思うんだけどフォーム.csに全部書いてるし
どうやったかって書いてるとおりだと思うんだけど・・・
241:デフォルトの名無しさん
08/09/04 23:05:21
Thread つくって Start してるのに分けてないとはお前はなにを
言っているんだ
242:デフォルトの名無しさん
08/09/04 23:08:05
スレッドの勉強あんまりしてないよ・・・
なんでテキストボックス2にnullを代入できないんだよ・・・
多分2回目のループの時だと思うんだけど・・・
243:デフォルトの名無しさん
08/09/04 23:09:56
>>240
ここにわかりやすく書いてある。
「Windowsフォームで別スレッドからコントロールを操作するには?」
URLリンク(www.atmarkit.co.jp)
244:デフォルトの名無しさん
08/09/04 23:12:01
>>243
ありがとう。でも今見てた。
メソッドの呼び出しみたいな例なんだけど
俺は単純にヌルを代入したいだけなんだけど
それにフォーカスが関係あるの?
245:デフォルトの名無しさん
08/09/04 23:18:45
>>244
フォーカスじゃない、スコープ。
246:デフォルトの名無しさん
08/09/04 23:19:04
いちいちうるせえなあ。
ここで得られた回答が理解できないのは
偏に己の不勉強が原因なんだから精進しろよ
247:デフォルトの名無しさん
08/09/04 23:19:57
243のコードは別のスレッドからGUIのフォーカスを変更したい場合の例で、フォーカスは関係ない。
248:デフォルトの名無しさん
08/09/04 23:33:25
今ちょっとやってみたんだけど次はラベルで出た
テキストとかラベルとか一個一個全部メソッド作ってデリゲートで呼び出さないといけないの?
249:デフォルトの名無しさん
08/09/04 23:38:42
つラムダ式
250:デフォルトの名無しさん
08/09/04 23:40:03
>>249
ありがとう。もう明日にするわ
251:デフォルトの名無しさん
08/09/04 23:40:59
ラムダ式とかwww
より混乱を招くだろ
>>250
おやすみ
252:250
08/09/04 23:42:04
>>251
ちょww何??
簡単な方法あるんだったら教えてよ
253:デフォルトの名無しさん
08/09/04 23:42:58
多分スレッドを作らなければいいだけだと思うけど
254:デフォルトの名無しさん
08/09/04 23:46:32
マルチスレッド禁止
255:デフォルトの名無しさん
08/09/04 23:54:44
スレッドとか消して
ボタン1の最初でテキストボックスにヌルを代入
のがループ2週目でまた”コントロールが作成されたスレッド以外のスレッドからコントロール 'textBox2' がアクセスされました”
なんで2週目なの?どうすりゃいいの?
256:デフォルトの名無しさん
08/09/04 23:55:50
うるちゃい
257:デフォルトの名無しさん
08/09/04 23:59:29
1周目と2周目で何が違うのか全くわからん
デバック無しだとどうもならないのにデバック有りだと止まるし
258:デフォルトの名無しさん
08/09/05 00:00:19
スレッドは理解するんじゃない、感じるんだ
259:デフォルトの名無しさん
08/09/05 00:03:03
ちゃんと再コンパイルしてるか?
260:デフォルトの名無しさん
08/09/05 00:10:02
だめだやっぱりできない
再コンパイル?ビルドはしてる
なんで順番どうりに代入してるはずなのに・・・2週目から・・・・
261:デフォルトの名無しさん
08/09/05 00:10:52
Control.CheckForIllegalCrossThreadCalls = false;
262:デフォルトの名無しさん
08/09/05 00:27:13
ソースさらせよ
263:デフォルトの名無しさん
08/09/05 00:36:40
プログラミングが下手な人って大抵説明や質問も下手だよね
264:デフォルトの名無しさん
08/09/05 00:54:28
君には向いてないとしか言い様がない
265:デフォルトの名無しさん
08/09/05 00:55:31
思考の整理ができないんだろ。
自分の頭の中がぐちゃぐちゃなのに、
コンピューターの中なんて理解できるはずがない。
266:デフォルトの名無しさん
08/09/05 01:04:31
初心者を煽る奴は死ぬべき
267:デフォルトの名無しさん
08/09/05 01:05:54
と初心者が申しております。
268:デフォルトの名無しさん
08/09/05 02:33:05
カッコつけてC#からやるからじゃね?やっぱ、基本はVBっしょ。
269:デフォルトの名無しさん
08/09/05 02:37:02
書き方違うだけで基本はほとんど同じだから。
270:デフォルトの名無しさん
08/09/05 02:38:14
いや、ポインタとか安易に使うと危ないよ
271:デフォルトの名無しさん
08/09/05 02:47:28
VBの話をする奴はスレを荒らしたいだけ
272:デフォルトの名無しさん
08/09/05 03:14:25
なんでそんなこまごまと別スレッドからコントロールにアクセスする必要があるんだ。
いろいろやるならひとまとめでメソッドにして、メソッド自体をInvokeで呼ぶとかできるだろ。
ま、いまだに何がしたいのか良く分からないんだけどな。
273:デフォルトの名無しさん
08/09/05 03:46:56
ちょっとこれを見てくれ
ニコニコ動画のアカウントが必要かもしれんが
URLリンク(com.nicovideo.jp)
274:デフォルトの名無しさん
08/09/05 05:14:38
ん、C#コミュ作れと?
それとも、なぜかJavaがDとC#を敵視してる所について突っ込むべきか?
って、C,C++もないのか。
275:デフォルトの名無しさん
08/09/05 05:26:06
見て欲しかったらアカも置いてけ
276:デフォルトの名無しさん
08/09/05 06:32:16
Perl,Python,Java,Ruby,D言語があってC#がなかったら
なんか負けた気になるじゃないか
277:デフォルトの名無しさん
08/09/05 10:56:16
教えてください。
カスタムボタンクラスで派生したカスタムボタンコントロールで
CustButton.PerformClick();
を実行してもクリックイベントが発生しません。
どうしたらイベントが発生する様になるのでしょうか?m(_ _)m
278:デフォルトの名無しさん
08/09/05 10:58:09
OnClickオーバーライドしてるとか
279:デフォルトの名無しさん
08/09/05 11:02:25
OnClickはオーバライドしてません。
ボタンをマウスで直接クリックしている場合は問題ありません。
PerformClick();を実行してもイベントが発生しないのです。
280:デフォルトの名無しさん
08/09/05 11:04:54
変数名でも間違えてるんじゃねーの?
CustButton1.PerformClick()とか
281:デフォルトの名無しさん
08/09/05 11:09:58
直接Buttonから派生してるんだったら変なことしてない限りは
なにも変わらないはずだけど
282:デフォルトの名無しさん
08/09/05 11:13:09
Enabledがfalseだとか
283:デフォルトの名無しさん
08/09/05 11:13:58
原因みつけました。(はじめから見つけられないお馬鹿な私TT)
public CustomButton()
{
// この呼び出しは、Windows.Forms フォーム デザイナで必要です。
InitializeComponent();
// TODO: InitComponent 呼び出しの後に初期化処理を追加してください。
//this.SetStyle(ControlStyles.Selectable, false);
}
こうしました。クラスを作った際、自動生成された様です。
this.SetStyle(ControlStyles.Selectable, true);
ご迷惑おかけしました。ありがとうございました。
284:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/05 12:04:09
System.Windows.Forms.Timerを使うか、
Control.invoke
286:デフォルトの名無しさん
08/09/05 12:08:33
ありがとう
invokeの使い方が昨日からよくわからないんだよな
button1_Click()にinvoke使えばいいの?
287:デフォルトの名無しさん
08/09/05 12:09:03
ぐぐれよ
288:デフォルトの名無しさん
08/09/05 13:35:32
つかタイマーでは何やってんの?
いまいち有り得ない使い方をしてそうだが…
289:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/05 14:08:32
> timer.Elapsed += new ElapsedEventHandler(button1_Click);
一番重要なところで途切れてたのか……
291:デフォルトの名無しさん
08/09/05 14:09:08
はじめまして。
OpenCVを使って書いた関数をC#で使いたいのですが、
どのようにしたらよいのでしょうか?
開発環境は
Visual Stadio 2005
Visual C# 2005
Open CV
です。
またオススメの書籍などありましたら是非教えていただきたいです。
292:デフォルトの名無しさん
08/09/05 14:10:27
素直にWindows.Forms.Timer使えよ
293:デフォルトの名無しさん
08/09/05 14:11:58
>>289
ループじゃなくてタイマだろ?
取りあえずSystem.Timers.Timerの解説読めばスレッド使ってんのはすぐわかる。
で例外メッセージの一部「コントロールが作成されたスレッド以外のスレッド」辺りでググれば
Invokeの使い方とか見つかるだろ。
まあ素直にSystem.Windows.Forms.Timer使えよ。
294:デフォルトの名無しさん
08/09/05 14:24:04
ありがとう。
そうだ、Tickの使い方がわからなくてこっちでやったんだ
Forms.timerとの違いとかわからないんで調べてやってみる
295:デフォルトの名無しさん
08/09/05 14:29:25
その前にタイマの使い方が異常
296:デフォルトの名無しさん
08/09/05 14:32:45
その場しのぎの独学だから全然わからないんだ
みんなは何でこれがタイマの普通の使い方だとかわかるわけ?長い経験?
297:デフォルトの名無しさん
08/09/05 14:33:11
静的メンバにタイマセットしてイベントの度に作り直してセットし直しって、裏ですごい動きになってるぞ
298:デフォルトの名無しさん
08/09/05 14:37:32
でもほとんどコピーの羅列だよ?
299:デフォルトの名無しさん
08/09/05 14:38:12
別に経験長くなくても分かる
と思うけど頭の悪さは人それぞれだからなケケケ
まあTimerの機能、動きを普通に理解してりゃ明らか
300:デフォルトの名無しさん
08/09/05 14:39:57
コピーってなあに…?
301:デフォルトの名無しさん
08/09/05 14:40:12
C初めてから4ヶ月だぜ
まさか遅いのか?
302:デフォルトの名無しさん
08/09/05 14:40:52
↑おまえの頭の悪さは異常w
303:デフォルトの名無しさん
08/09/05 14:41:28
コピーはmsdnの部分的なコピー
今form.timerでやったらエラー無くなったみたい。ありがとう
304:デフォルトの名無しさん
08/09/05 14:51:59
>>296
普通の使い方云々はわからんが、
同じことをやるTimerインスタンスを何度も作り直してるのが不自然なのはわかる。
あと、“button1_Click”の中で自身をイベントハンドラに設定してるコードとかどうなんだろうな
305:デフォルトの名無しさん
08/09/05 15:34:43
>>291
>OpenCVを使って書いた関数
というのが何をさすのか分からんが、C/C++でOpenCVの関数を呼び出しているコードを流用したいのならば
dll形式でコンパイルしてDLLImport。
C#でOpenCVの関数を扱いたいだけならManagedOpenCVかShaperCVでググれ
306:デフォルトの名無しさん
08/09/05 15:45:01
部分コピーが危険なことくらい理解できるだろう?
いいから直したソース晒してみな。
高い確率でまだ異常だと思うから。
きっとみんなでよってたかって突っ込んで崖っぷちまで追い詰めてくれるぜ。
307:デフォルトの名無しさん
08/09/05 16:35:54
もしも自動車の部品を適当にぶった切って適当につなげてまともに走るのなら、そのプログラムは動くだろう
308:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/05 17:03:07
>>224
このファイルの共有アクセスの制御に関して質問です。
FileStreamによる制御では読み込みや書き込みなどの自分のファイルアクセス中の
アクセス制御を行うということだと思いますが、これを「こちらがファイルを開いて読み込み、
データを変更して次に書き込むまでの間」、ずっと誰にも書き込みさせないようにしたい
場合は、
そのFileStreamでOpenした状態をそのまま維持(=開きっぱなしに)しておくということで
実現することになるかと思いますが、その場合は何か弊害が起こりうるものでしょうか?
その場合は弊害がない(開きっぱなしにしないような)方法があるでしょうか?ありましたら
その方法を教えてください。
なお編集中という情報をどこかの専用ファイルに書いておいてそれを読んで先客がいたら
書き込まない、というような方法ですと、他のソフトで編集された場合は制御できないため
そうした方法ではなく、目的のファイルに対して直接アクセス制御する方法であることが
望ましいのでした。よろしくお願いします。
310:デフォルトの名無しさん
08/09/05 17:09:17
>>309
Lock
Unlock
311:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/05 17:25:53
>>310
どうもです!
FileStream.Lock メソッド
FileOpen 関数(VB用)
などあるようですが、いずれも読み取り中など、Openしている間の
アクセス制御のように思われるのですが、FileStream.Close() を
実行した後でもLockが効いている状態が実現できるでしょうか?
313:デフォルトの名無しさん
08/09/05 17:36:53
>>311
おかしすぎてワロタ
後で時間があったらつっこんでやるw
314:デフォルトの名無しさん
08/09/05 18:38:36
>>273-276
作れと?
なら、作るとも。
URLリンク(com.nicovideo.jp)
315:デフォルトの名無しさん
08/09/05 20:34:43
よくわからんがどうすりゃいいんだよ岩永さん
316:デフォルトの名無しさん
08/09/05 21:55:32
作っただけだから放置でもいいと思う。
317:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/05 22:46:20
Timer作り捨てするとメモリリークするんじゃなかったっけ
319:デフォルトの名無しさん
08/09/05 23:47:28
>>308がちょっとかわいそう
320:311
08/09/06 07:07:18
>>317
俺は+=使ってないけど・・・内部ではそうなってるってこと?
要するにメモリ的に問題があると?
321:デフォルトの名無しさん
08/09/06 07:15:28
+=は脆弱性があるから使わないべき
322:311
08/09/06 07:31:30
じゃあタイマのメモリが問題なの?
323:デフォルトの名無しさん
08/09/06 08:20:49
>>321
まじ?
324:デフォルトの名無しさん
08/09/06 09:02:01
>>320
> textBox1.Text += "a";
のことを言ってる? これは何が起こるかわかりやすくするためかと……
イベントハンドラにイベント足し続けてるから、
発生してるイベントが指数関数的に増えてるよ、ってことを言いたいのだと思うのだけど、
実行してみた?
……>>319 も言うように、>>308 が綺麗なコードを書いてるので読んだらいいと思うよ、うん
325:デフォルトの名無しさん
08/09/06 09:27:50
>>323
釣られるな
326:311
08/09/06 09:48:08
317やってみたら時間が経ったらバグった
おんなじことがイベントハンドラで起こるってこと?
イベントハンドラの意味とかよくわかってないけど
327:デフォルトの名無しさん
08/09/06 09:56:39
>>326
>>311 でも同じような倍倍ゲームになってるというのは分かる?
328:デフォルトの名無しさん
08/09/06 10:18:01
>>327
ボタン1実行中にボタン1が実行で・・・って事ですか?
329:デフォルトの名無しさん
08/09/06 10:21:31
タイマー時刻が来るたびに += してたらそりゃなぁ。
330:デフォルトの名無しさん
08/09/06 10:25:45
てことは+=じゃなくて=ならいいの・・・かな?
331:デフォルトの名無しさん
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
黙れ自演厨
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4745日前に更新/134 KB
担当:undef