おつりんこ
とりあえず まんこ と言っておこう
7 :
デフォルトの名無しさん :2006/07/22(土) 15:57:35
.NET1.1用のJPEG2000 Decoder教えてください。
8 :
デフォルトの名無しさん :2006/07/22(土) 18:27:33
ちーっす マルチスレッドの同期について教えて欲しいっす。 複数のスレッドで同じListのデータを取り出して、 データがなかったらデータが入るまで待機させたいんだけど、 なーんかいい方法ってないっすか? Sleepして待たすと結構泥くさい処理になるので Javaのwait+notifyAll見たいに特定条件満たしたら起こしてくれるようなのないっすか? 自分でまた監視用の別スレッド作ればいいだけかもしれないけど、 いい方法があるんならけちけちせずに教えて欲しいっす。 よろしくねー
放置
11 :
8 :2006/07/22(土) 18:50:40
>>9 本気なんすけど。
頼んますわ、マージーでー
断る
Javaにコンプレックス持っちゃってイヤねぇ、この人達は(^-^;
使えばいいじゃん
16 :
8 :2006/07/22(土) 19:43:12
ちょっとー ちゃんと知識ある回答者のーぞーむー かもーん
WaitもNotifyとかもなかったっけか?
18 :
8 :2006/07/22(土) 20:49:26
>>17 ないですです。
なんかいーほーほーありませんかねー
いやはや夏だねぇ
21 :
8 :2006/07/22(土) 21:55:05
>>19 ちゃうねん、ちゃうねん。
そーいうことじゃないんだよ、ないんだよ、なーいーんーだーよー。
デザインパターンでいえばWorker Threadなんだよー
やりたいのはーさー
エロいひとーおしえてくださいよー
>>18 ちょっとまてや、
WaitとPalse、PalseAllがあるだろ。
名前はNotifyじゃなかったが。
>>21 目の前に箸があるのにフォークが欲しいという神経もよくわからん。
System.Threading.ThreadPoolでもつかっとけ
26 :
デフォルトの名無しさん :2006/07/22(土) 22:50:41
こんにちわ。「緑のバイク 初めてのC#」内に下記の記述がありました。 以下引用 「 // やってはいけないプログラムの例(一部) (1) Form1_Closing() 内で e.Cancel = true はダメ! もし、そうすると、OS(Windows)が、「シャットダウン」できなくなってしまう! 」 とありますが、ではCancelしたいときはどうすればいいのでしょうか? お願いします。
>>24 表現間違ってる。
目の前に箸があるのに、チョップスティック欲しいって言ってるんだよ。
>>26 if (終了するかどうかのメッセージボックスを表示 != YES) e.Cancel = true;
.NET 2.0 以降は FormClose イベントに変更になって終了理由がわかるようになったのでこういうことも可能。
if (e.CloseReason == ユーザーによる終了) {
if (終了するかどうかのメッセージボックスを表示 != YES) e.Cancel = true;
}
>>26 メッセージボックスを出す
if (MessageBox.Show("終了しますか?") == DialogResult.OK){
e.Cancel = true;
}
30 :
29 :2006/07/22(土) 23:36:10
かぶったし、終了しますか?と聞いてオッケーの処理がキャンセルって・・・
いやがらせかよっ
private void Form1_FormClosing(object sender, FormClosingEventArgs e){ if (e.CloseReason == CloseReason.TaskManagerClosing){ if (MessageBox.Show("タスクマネージャによって終了しようとしています", this.Text, MessageBoxButtons.OKCancel) == DialogResult.Cancel){ e.Cancel = true; } } } 試しに実行してみたら、メッセージボックスが出ている途中でしばらくすると終了してしまう。 なぜ?
終了しますんか? いええ Cancel
>>32 タスクマネージャがメッセージボックスにもClose要求を出しているのかも。
ボタン以外の操作で閉じた場合はキャンセル扱いだったと思う。
35 :
26 :2006/07/23(日) 00:17:29
ありがとうございます。
メッセージボックスを使えばForm1_Closingの中にe.cancel=trueがあっても
いいんですね。
>>28 >>29 >>30 ワロタ
36 :
29 :2006/07/23(日) 00:34:54
37 :
26 :2006/07/23(日) 00:38:04
あほす
>>34 ,38
じゃあ「CloseReason.TaskManagerClosing」のメソッドってどういうときに使うの?
終了処理だろ。ログファイル閉じるとか。
>>41 タスクマネージャから閉じる時だけログファイルを閉じる?
いまいちよく分からないんだけど
タスクマネージャから閉じる時「も」ログファイルを閉じる タスクマネージャから閉じる時「は」「タスクマネージャから終了したとログ追記して」ログファイルを閉じる
>>32 どおり強制的にフォームを閉じられるのなら、
逆に「タスクマネージャから閉じる時はログを作らない」
などの処理をスルーする処理の方が実用的かな?
>>40 むしろTaskManagerClosingだから悠長にダイアログ出してないで
さっさと終了処理しなきゃならんことがわかるのは利点だろ?
普段はダイアログで終了確認してる場合でもさ。
>>45 場合に依るだろう。
原発の制御管理システムもWindowsベースのモノがあるし。
>>40 そのまんまだろ
OSから来た強制終了の要求に応える処理を入れるだけ
否定してもOSは強制終了させるんだから、抗っても無駄だし
原発で.NETねぇ…
>>48 原発の情報システム部門の人間だが、普通に使ってるぞ。
もちろん、使う部分によるがな。
ようは、適材適所ってだけ。
>>47 >強制終了の要求に応える処理
それは44の重複かな?
53 :
51 :2006/07/23(日) 13:49:05
粘着キモイねぇ
なにこの粘着
仮にプログラマーだとしても 向上心の欠片もないダメグラマーなんだろうな
これは恥ずかしいなw
これを納めるには
>>47 のレスしかない。
しかし、
>>47 のレスからは、明確に答えられるほどのスキルを持っているようには見受けられない。
結局、粘着呼ばわりして荒らすことで自分のアイデンティティを保つしかなかったようだ。
---47に同情しながら終了---
粘着キモイんですけどー
>>69 深呼吸して君が今やってる行為は何か。よく考えてみよう。
な?俺の言ったとおりでしょw
もう一目見ただけで粘着の素質十分だったし。
んでは。
おまんこぺろんちょ
なにこの粘着
>>8 これやるからカエレ
class BlockQueue<T> {
Queue<T> queue = new Queue<T>();
ManualResetEvent mre = new ManualResetEvent(false);
public void Enqueue(T item) {
lock (queue) {
queue.Enqueue(item);
mre.Set();
}
}
public T BlockDequeue() {
mre.WaitOne();
lock (queue) {
if (queue.Count == 1) {
mre.Reset();
}
return queue.Dequeue();
}
}
}
74 :
デフォルトの名無しさん :2006/07/23(日) 23:37:23
>>73 おいおい
Javaだけしか使えない馬鹿は相手にしない方がいいぞ
馬鹿がうつるから
本当にJavaだけプログラマはゴミだよな
消えて欲しい
っていうか、Javaがくそだろ。あんなの使えんよ。
76 :
デフォルトの名無しさん :2006/07/23(日) 23:59:09
セマフォやイベントなどの概念も知らないで マルチスレッド・プログラミングに挑む奴がいるんだね レール上しか走れないゴーカート言語Javaのプログラマは優秀だ
まったく俺が使う言語のスレは総じて荒れ放題だな
Lisp最強
EventInfo からそれを受け取る Object を得ることはできるしょうか? AddEventHandler でデリゲートを登録してるのだから、 EventInfo から デリゲートを取得し、そこから Object を得る方法が あるのでないかと思うのですが、 EventInfo のメンバには、GetRaiseMethod はあっても、 GetDelegate とか、GetObject とかないんですよねぇ・・・。
>>76 そこまで知ってて排他制御と言う概念にまで昇華出来ないのがC#プログラマの底の浅さ。
Java厨はJavaスレに引きこもってろよ
ケンカはやめて。二人を止めて。
>>79 定義に関する情報と実行時の特定のインスタンスなどに関わる情報を混同するな。
リフレクションでメソッドを指定してそのメソッドを持つインスタンスを返してくれって言ってるようなもんだぞ。
マルチモジュールアセンブリ (というよりも、モジュールの定義の別ファイル化) に
興味を持ち、以下を試してみました:
A.cs に public class A { public void MA() { } }
B.cs に public class B { public void MB() { } }
C.cs に [assembly: System.Reflection.AssemblyVersion("12.34.56.78")]
と記述して
csc /target:module /out:ABC.netmodule A.cs B.cs C.cs
al /target:library /out:ABC.dll ABC.netmodule
を実行した。
(※ .NET Framework: v2.0.50727)
上の操作で得られたアセンブリ ABC.dll を "Lutz Roeder's .NET Reflector"
(
http://www.aisto.com/roeder/dotnet/ ) でブラウズすると "ABC.dll" と
"ABC.netmodule" の 2 つのモジュールが表示されてしまいます。
モジュール "ABC.dll" の定義も空なので、どうにかして出てこないように
アセンブリをリンクしたいのですが、どうすればよいのでしょうか。
どうかご教授お願い致します。
意味が分からんし、そうしたい理由も理解できんな ABC.netmodule の情報を持ってなかったら ABC.dll はどうにもならんじゃないか
87 :
85 :2006/07/24(月) 09:01:50
>>86 一般的な形である、シングルモジュールアセンブリ:
┏ファイル ABC.dll━━━━┓
┃┌アセンブリ ABC──┐ ┃
┃│ ┌──────┐ │ ┃
┃│ │マニフェスト │ │ ┃
┃│ └──────┘ │ ┃
┃│┌モジュール ABC┐│ ┃
┃││┌────┐ ││┃
┃│││ 型定義 │ ││┃
┃││└────┘ ││┃
┃│└───────┘│┃
┃└─────────┘┃
┗━━━━━━━━━━━┛
ではなく、このような:
┏ファイル ABC.dll━━━┓
┃┌アセンブリ ABC─┐ ┃
┃│┌──────┐│┃
┃││ マニフェスト ││┃
┃│└──────┘│┃
┃└────────┘┃
┗━━━━━━━━━━┛
↓参照/依存
┏ファイル ABC.netmodule ━┓
┃┌─────────┐ ┃
┃│ 型定義 │ ┃
┃└─────────┘ ┃
┗━━━━━━━━━━━┛
形にしたいと考えています。アセンブリの持つ唯一のモジュールを
外部ファイルとして配置するということは不可能なのでしょうか。
88 :
85 :2006/07/24(月) 09:09:21
一番下の四角形は ┏ファイル ABC.netmodule━━━┓ ┃┌モジュール ABC.netmodule┐┃ ┃│ ┌────┐ │ ┃ ┃│ │ 型定義 │ │ ┃ ┃│ └────┘ │ ┃ ┃└───────────┘ ┃ ┗━━━━━━━━━━━━━┛ でした。AA を連投してしまい大変申し訳ありません。
>>87 ABC.dllにABC.dllとABC.netmoduleと二つのモジュールが並んで表示されているのは
マニフェストにアセンブリはABC.dllとABC.netmoduleから構成されるという情報が書かれているから。
ABC.netmoduleを削除して実行してみるとわかるがエラーになる。
90 :
デフォルトの名無しさん :2006/07/24(月) 11:25:38
VS2005使ってます。 System.Windows.Forms.TabPageを継承したUserControlを作るため、 新規ユーザーコントロールを作成し、 継承元をUserControl→TabPageにしたところ デザインページでGUIの設計が出来なくなってしまいました。 UserControl以外のコントロールを継承してデザインするにはどうしたらいいでしょうか?
"TabPageを継承したUserControl"ってありえないから。 普通にTabPageを継承したクラス作って中は空でもいいからビルド。 →ツールボックスにそのコントロールが表示される →ポトペタ
↑TabControlとTabPageを勘違いした。スマソ
><;
コンボボックスでキャレットの位置を取得するにはどうしたらいい? SelectionStartだと選択範囲の開始位置の取得になる。
TabPageっつーのはただの概念だから。 デザインページでコントロールを貼り付ける対象じゃないから。
>>87 不可能って、できてる思うんだが…?
何が気に入らないんだ?
100 :
85 :2006/07/24(月) 17:36:35
>>89 つまり、モジュールとは「アセンブリを構成するファイル」ということなのでしょうか。
そうだとすれば
>>85 のようになった原因や
>>86 の話と辻褄が合いますし。
System.Diagnostics.Process.Start(linkLabel1.Text); のようにリンクラベルから起動したExplorerのURL読み込み完了 を確認する方法はありませんか?
>>100 まあだいたいそんなもんだ。
DLL(つまりアセンブリ)自体が持つ事もできるけどな。
103 :
97 :2006/07/24(月) 18:46:16
TabPageは直接フォームに張ることができないから、 VSのGUIでレイアウトするのは不可能って結論なのでしょうか? 普通にUserControlを継承したクラスにいろいろ貼り付けて、 使う側でTabContorlにTabpage入れて、 そのTabPageにつくったUserControlはるしかないってことですか?
104 :
97 :2006/07/24(月) 20:22:15
>>103 PanelのVisibleでやってる。
106 :
97 :2006/07/24(月) 21:26:09
>>104-105 れすどうもです。
直接tabpage継承するのは諦めます。
ありがとうございました。
107 :
79 :2006/07/24(月) 22:22:30
>>83 レスありがとうございます。
意図が伝わらなかったようなので、質問の仕方を変えてみます。
PropertyInfo の GetValue に相当するものは、
EventInfo にはないのでしょうか?
AddEventHandler と RemoveEventHandler があるのに、
GetEventHandler(s) に相当するのがあれば解決なんですけど・・・。
プロパティには get アクセサがあるけどイベントには get アクセサはない。 そう言う事です。
でもリフレクションAPIをみると add/remove以外にも、なんか付けられるようだけど、あれは一体なんだろう
raise VBやらC++/CLIでは言語レベルでサポート
さすがC#
>>107 ああ、そういうことか。
言いたいことはわかったが、やっぱり無理。
なぜプロパティは可能かというと、プロパティというのは
取得、設定という機能が動作として定義されてて、それを呼び出せるから。
一方イベントは、追加と削除という動作が定義されてるだけ。
よって現在の設定リストを取得することはできない。
ぶっちゃけ、現在の設定リストがデリゲートとして存在してるかも保証できない。
イベントはあくまで「追加と削除」しかインターフェイスとして規定されてないから。
つうか、そんなことは分かっててやる方法がないか?ってことかな?
Componentだけが対象だとひょっとして不可能ではないかもしれないが、
汎用的な方法は
>>112 のとおり存在しないな。
MSILレベルではイベントの発火やその他の機能もイベントに関連づけること自体はできるみたいだな。 いずれにしても、標準化されてなかったりVBやC#から直接的には扱えない以上、今回の目的では使えないだろうが。
115 :
デフォルトの名無しさん :2006/07/25(火) 01:07:33
WinXPがスタンバイしようとするのをキャンセルするにはどうしたらいいでしょうか? 自分からスタンバイさせるのはApplication.SetSuspendState(PowerState.Suspend, false, false); とかでいけそうな感じなのですが。
116 :
85 :2006/07/25(火) 02:04:06
無事疑問が解決しました。 回答して下さった皆様、ありがとうございました。
>>115 なんかメッセージが来るから WndProc で受けてそれの Result でキャンセル
>>116 疑問解けたのならその内容を書いとけよ。
自動でアクティブな外部アプリケーションにキー入力したいのですが SendKeys.SendWait("{F1}"); としてもうまく動作しません。 なにかほかに必要な処理があるのでしょうか?
DirectInput は騙せない可能性があるような フックも騙せないよな
122 :
119 :2006/07/25(火) 08:26:44
ありがとうございます。 すいませんF1キーについては動作しておりました。。 ctrlキーとあわせた"^A"などのキー送信で動作していないようです・・・
123 :
119 :2006/07/25(火) 08:38:09
"^A" → "^a"にてうまく動作しました。 失礼しました!
他でもそういうのあったな、うちじゃ両方使えるけど
125 :
デフォルトの名無しさん :2006/07/25(火) 10:59:09
visualC#2005ExpresseditionでWordを操作するアプリケーションを作成しています。 ソリューションエクスプローラより 参照設定→参照の追加→COM→Microsoft word 11.0 object libraryを選択し、OKとしました。 そして、 using Word = Microsoft.Office.Interop.Word; と記載しました。 しかし、 警告1パスの形式が無効です。00 エラー2型または名前空間名 'Interop' は名前空間 'Microsoft.Office' に存在しません。アセンブリ参照が不足しています。D:\Software\MyApplication\gifu\gifu\CWord.cs831gifu エラー3名前空間 '<グローバル名前空間>' は、エイリアス 'Word' と競合する定義を含んでいますD:\Software\MyApplication\gifu\gifu\CWord.cs1312gifu エラー4名前空間 '<グローバル名前空間>' は、エイリアス 'Word' と競合する定義を含んでいますD:\Software\MyApplication\gifu\gifu\CWord.cs1412gifu エラー5名前空間 '<グローバル名前空間>' は、エイリアス 'Word' と競合する定義を含んでいますD:\Software\MyApplication\gifu\gifu\CWord.cs1512gifu エラー6名前空間 '<グローバル名前空間>' は、エイリアス 'Word' と競合する定義を含んでいますD:\Software\MyApplication\gifu\gifu\CWord.cs19435gifu エラー7型または名前空間名 'Interop' は名前空間 'Microsoft.Office' に存在しません。アセンブリ参照が不足しています。D:\Software\MyApplication\gifu\gifu\CMain.cs929gifu と言われてしまいました。 何が問題なのでしょうか。お仕事中申し訳御座いませんが、よろしくお願いします。
126 :
125 ◆tsGpSwX8mo :2006/07/25(火) 11:02:27
Word2003 WindowsXPsp2 ソース上部は、↓です。 using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Windows.Forms; using System.Drawing; using System.Drawing.Imaging; using Word = Microsoft.Office.Interop.Word; class CWord { #region Variables public Word.Application myAppli; public Word.Document myDoc; public Word.Selection mySel; private FileInfo fileinfo;
127 :
125 ◆tsGpSwX8mo :2006/07/25(火) 11:13:20
128 :
デフォルトの名無しさん :2006/07/25(火) 12:11:56
以下は作ってもらったプログラムですが、できれば以下の修正をお願いします。 @double a, s;を使わない。time(NULL)・double y, w = 0.0;も使わない。 A実行時にy[ ] =を表示しないで、数値のみを表示する。 #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <time.h> void main(void) { int i, j; double a, s; srand((unsigned)time(NULL)); printf("a s = "); scanf("%lf %lf", &a, &s); printf("a = %lf\n", a); printf("s = %lf\n", s); for(i = 0; i < 100; i++){ double y, w = 0.0; for(j = 0; j < 12; j++) w += (double)rand() / (double)RAND_MAX; y = s * (w - 6) + a; printf("y[%2d] = %lf\n", i, y); } getchar(); } スレ違いのときはスイマセン
スレ違いだろwwwwwwwwwwwwwwwwww
>>128 あなたが思っている以上にスレ違いです。
学校生活ってのは知識を磨くか要領を磨くかですわ。
勉強する気がなくて要領も悪い、なんて言うか今すぐその学校やめて別の道に進むべきだ。
いくらなんでもAぐらいはわかるだろ
132 :
128 ◆oBVIHc0QSg :2006/07/25(火) 12:22:54
屁理屈こかずに、さっさと答えて.NET
どうしてここC♯スレなんだぜ?
134 :
デフォルトの名無しさん :2006/07/25(火) 12:36:24
相談室 ≠ 宿題
お前ら親切だなw
親切 ≠ 迷惑がってる
138 :
デフォルトの名無しさん :2006/07/25(火) 13:36:44
xmlスキーマについて教えてください。 いま、test.xsd に次のようかかれているものとして <xsd:element name="test"> <xsd:complexType> <xsd:attribute name="no" type="xsd:int" use="required" /> <xsd:attribute default="0" name="type" type="xsd:int" use="optional" /> <xsd:attribute default="0" name="time" type="xsd:int" use="optional" /> </xsd:complexType> </xsd:element> xml には type と time の要素を省略して書いたとき <test no="100" /> XmlReader の MoveToNextAttributeで読んでくる要素の中に、省略により 期待する type="0" と time="0" が得られずに困っています。 なにか、XmlReaderの設定に抜けがあるでしょうか? XmlReaderSettings settings = new XmlReaderSettings(); settings.ValidationType = ValidationType.Schema; settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema; settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings; XmlUrlResolver resolver = new XmlUrlResolver(); resolver.Credentials = System.Net.CredentialCache.DefaultCredentials; settings.XmlResolver = resolver; settings.IgnoreWhitespace = true; settings.IgnoreComments = true; settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack); XmlReader reader = XmlReader.Create(file_name, settings); ・ ・
139 :
128 :2006/07/25(火) 15:40:09
お前らには難しすぎたようだなw
140 :
138 :2006/07/25(火) 15:54:23
Framework2.0推奨のXmlReaderによるものをやめて、いままでの XmlValidatingReaderにしたらちゃんと、省略要素もreaderに出現 するようになりました。 なにかsettings が足りないだけなのかな? とりあず、XmlValidatingReaderで対応しました。どなたか根本的な 原因わかりましたら、教えてください。
【開発環境】Visual C# 2005 Express Edition + WinXP
【開発中のプログラム】Web上からのファイルダウンロードアプリ
ダウンロードは出来るのですがその間アプリが固まります
BackgroundWorkerコントロールを使えば固まらなくはなりますが、例えば
listBox1.Text = i.ToString() + "個目のファイルをダウンロード中";
と表示させようとすると
《コントロールが作成されたスレッド以外のスレッドからコントロール 'label1' がアクセスされました。》
とエラーが出ます
どうすれば固まらずに、取得状況を表示させることが出来るでしょうか?
ヒントだけでもいいので教えてください
BackgroundWorkerやスレッド等のわかりやすいサンプルやC#リファレンスのあるサイトなんかも教えてもらえればありがたいです
僕は↓の2サイトくらいしか実用的なサイトを見つけられませんでした
ttp://www.geocities.jp/takamori700/index.htm ttp://www.atmarkit.co.jp/fdotnet/csharp_abc2/index/index.html
143 :
141 :2006/07/25(火) 16:42:02
今あれこれやってみました。 とりあえずBackgroundWorkerでいけそうな気がするので組み込んで試してみることにします ComplateメソッドとボタンのEnableを変更することである程度形になってきました まだ途中経過の表示はうまくいきません。実行中は途中経過を頭の中で想像してボーっと待ってる状態です。 ReportProgressメソッド /ProgressChanged イベント の使い方がいまいちわかってないような気がします
while文もしくはfor文内にてtimer.Intervalを利用しようとしたのですが 次々と処理が行われてしまい。timer.Intervalが意味をなしません。 while,for文ないにて処理を待機させるうまい方法はありませんでしょうか?
なんで Interval ? Thread.Sleep とか使うか、そもそもタイマ使うならループいらんだろ。
>>144 ループでセマフォ待ち。タイマでセマフォ解除。
これでメッセージループ相当のループが作れる。
URLを指定してHtmlDocumentを作成しようと以下のようにしたら、
private void button1_Click(object sender, EventArgs e)
{
mshtml.HTMLDocument doc = new mshtml.HTMLDocument();
mshtml.IHTMLDocument2 doc2 = doc.createDocumentFromUrl("
http://www.yahoo.co.jp/ ", null) ; // ★
this.textBox1.Text = doc2.body.innerText;
}
★の行で、
System.AccessViolationException: 保護されているメモリに読み取りまたは書き込み操作を行おうとしました。
他のメモリが壊れていることが考えられます。
というエラーが発生しました。
原因がわかりません。よろしくお願いします。(´・ω・`)
>>139 つーかさ、#って+を4つ組み合わせたようにも見えるだろ?ようするにあ
れだ、C#の#ってのは++++って意味なんだぜ。
なんつーか、つまりC#からすればCってのは4世代も昔の遺物だってこと。
いい加減お前の学校がいかに時代遅れかわかったか?
ねごとは寝て言えよな。
もうちょっと上手くやれよ
わるかったな、へたくそで。 いざ仕込んでみようと思っても 意外と難しいもんなんだよ。 お前にできんのか?上手な仕込みが。 人をけなす前にやってみろよ。
最後はねこ大好きだろが。
わざととか言われてもねぇ……
わ い 意 お 人 ?
た ん し き す
だ い ん ご
156 :
79 :2006/07/25(火) 23:47:39
>>108-114 そうですか〜。
ヘルプに書いてないから無理なのかなぁとは思ってましたが、
やっぱり無理っすか〜。
なんか別の方法考えてみます。
ありがとうございました。
そ ヘ や な あ
158 :
147 :2006/07/26(水) 07:55:52
あ、解決しました(・∀・) 意外と簡単なことだった。。。w
159 :
デフォルトの名無しさん :2006/07/26(水) 11:21:47
dictionary<string, string> dic = new dictionary<string, string>(); と定義した場合、 dic["hoge"] で、要素にアクセスできますが、これを、 dic[0] と、インデックスでアクセスする方法て何かないでしょうか?
ない
そのインデックスってどうやって決まるのさ
はじめからArrayListを使えばいいんじゃないかとかそういう話ではないのか
SortedListを使えばいいだろ
>>159 ハッシュをaddした順になめたいときってあるよね〜。
(phpだかperlは出来た気がする。)
キーを順番に格納するリストを作ればいいんじゃなかろうか。
dic[list[0]]
OrderedDictionary ジェネリックはないが。
dic.Values ではだめなのか?
>>166 SortedList<T> がそれにあたるんじゃね?
>>167 addしたときの順番は保証されない。
>>166 ソートされちゃってるからaddしたときの順番は保証されない。
今調べたけど、OrderedDictionary は全然別物か。 SortedList<T> の Values は挿入時の順序保ってないな。 dic.Values[i] でアクセスできるけど、キーでソートされた順序になってる。 挿入時の順序保存したいなら、Dictionary と ArrayList で2重に持つべきかなぁ。 どうせクラスのインスタンス全部参照渡しなんだし、 コレクションクラス2重に持ってもそんな言うほど領域使わないし。
stringならそうもいかないんじゃ?
NameValueCollection やや注意は必要かもしれんが、基本的には普通に使える。 ってかなんでOrderedDictionaryじゃだめなの?
173 :
デフォルトの名無しさん :2006/07/26(水) 17:53:10
う。。
色々ありがとうございます。
要は、インデックスの指定がstringでも、intでも使えたらと思いまして。
とりあえず、
>>165 さんと同じ結論で、Listにてインデックスもたせてますが、他にナイスな方法ないかなと。。。
でもOrderedDictionary もイけそうな感じですね。
特に挿入時の順序は意識していないので。。。
>>173 ふと思った、イテレータとかforeach構文とか知ってる?
> でもOrderedDictionary もイけそうな感じですね。 > 特に挿入時の順序は意識していないので。。。 つかな、OrderedDictionaryもNameValueCollection 普通にそういう目的で使えるものがあるのに、 なんでそれを使わんの?と俺は言いたいんだが。 どっちも追加順で保持されるようになってるぞ、念のため。
List<>は順番保持は保証されてないけど ぶっちゃけ保持されてるよね(´・ω・`)
>>177 List<T>が順番保持保証されてないなんてありえないだろ。
ハッシュか何かと勘違いしてるのかな?
多分ソート済みじゃないって記述を読み違えたんだと思うよ。
List<>をlist<>とかんちがいしてるんだろ
183 :
デフォルトの名無しさん :2006/07/27(木) 15:32:45
スクリプトみたいなものを作ってマウスを制御しようと思っているのですが プログラムからクリックと同じ動作をさせるにはどうしたらいいのでしょうか? sendkeyみたいなものがあればいいです。 使用バージョン:.net1.1
SendMessage
186 :
183 :2006/07/27(木) 15:44:09
あと、ドラッグ処理も追加したいのですが、マウス押しながら移動って どう処理したらいいですか? この処理もSendMessageを頼りに探せばいいですか?
188 :
183 :2006/07/27(木) 18:32:27
プログラムからマウスクリックまではできましたが、ドラッグ処理ができません。
ドラッグのエミュレートは無理 ドロップのエミュレートはできるけど
190 :
183 :2006/07/27(木) 19:37:39
>>189 ドロップするにはどうしたらいいのですか?
191 :
デフォルトの名無しさん :2006/07/27(木) 19:50:26
はじめまして。 最近プログラムを始めた初心者です。 C#で現在時刻をグリニッジ時間に変更するプログラムを作ろうとして 下記のプログラムを組みました。 DateTime dt = DataTime.Now; DateTime input; input = dt.ToUniversalTime(); しかし変換した時間はローカルの時間より1時間だけ前になっていました。 このプログラム、どこかおかしいですか? ちなみにローカルはJAPANESEです。 よろしくお願いします。
ヒント:うるう年
195 :
デフォルトの名無しさん :2006/07/27(木) 21:13:32
>>192 ,193
すみません。馬鹿な私にもう少しヒントを教えてください
スポポポポポポーン!!! 。 。 。 。 。 。 ゚ 。 。゚。゜。 ゚。 。 / // / / ( Д ) Д)Д))
夏だねぇ(´ー`)
何を当たり前のことを(ry
夏だねぇ厨うぜーよ
ナツガキタ
アタラシイアサガキタ
Webページに表示されている画像をフォーム内に ドラックドロップすることでDL保存し、ファイル名を取得したいのですが よい方法はありませんか?
ジンセイオワタ
>>204 まず実際にフォームに D&D して渡された IDataObject をじっくり調べろ。
話はそれからだ。
>>204 private void Form1_DragDrop( object sender, DragEventArgs e )
{
string[] fileName =( string[]) e.Data.GetData( DataFormats.FileDrop );
MessageBox.Show( fileName[0] );
}
private void Form1_DragEnter( object sender, DragEventArgs e )
{
if( e.Data.GetDataPresent( DataFormats.FileDrop ) )
e.Effect = DragDropEffects.All;
else
e.Effect = DragDropEffects.None;
}
208 :
204 :2006/07/28(金) 01:21:58
ありがとうございました!!!!!!!!!!
TextBoxでListViewのBeginUpdate()みたいなことをやるにはどうしたらいいでしょう? 具体的には以下の操作をしている間、再描画を抑止したいんです。 現在のスクロール状態(と選択状態)を記憶 ↓ Textの最後尾に文字列を追加 ↓ 最初の状態に戻す この操作自体は問題なくできているんですが、テキスト量が多くなってくると キャレットが行ったり来たりするせいで激しく画面がちらついて困っています。
WM_SETREDRAW
>>210 なるほどウィンドウメッセージ直接送るのが手っ取り早いですか。
WM_SETREDRAWしてみたら最初の状態を記憶する必要がなくなって
それは良かったんですが
テキストが描画されているエリアは相変わらずちらついてしまいます…。
ただスクロールバーは飛び回らなくなったんである程度は抑止できてるみたいです。
Visibleいじったらどうなる?
>>212 Visibleのオンオフ、Enableのオンオフ、どっちもちらつきます。
しかもこの方法を使うとフォーカスが次のコントロールに移ってしまいますし…。
Delphiの時みたいに更新中はコントロールのBitmapイメージ貼り付けるとか
しないとだめそうですね。
とりあえず色々アドバイス頂けましたが諦めることにしました。
ありがとうございます。
LockWindowUpdate
>>214 画面全体がちらつくという、もう何が何だかわからない状況になりましたw
他のウィンドウでDirectX使ってるせいかなぁ?
ダブルバッファは試した?
ネットワーク系のアプリを作ってて、本体のフォームのボタンを押すと 非同期POST送信をしてるんですが、 サーバへのPOST送信とサーバ出力受信は、非同期なんで別のスレッド化して実行されてる からだと思うんですが、このサーバとの送受信のときにMessageBoxを開いても、 本体のフォームに対してモーダルとならないんですが、どうしたらいいんでしょうか? エラーなどのMessageBoxが出たら、これを閉じるまでは 本体のフォームは操作できないようにしたいんです。
Control.BeginInvoke
refとoutの違いを教えてください
呼び出し先が初期化する必要があるかどうか
渡された変数に元々入っていた値を使うかどうか
223 :
217 :2006/07/28(金) 22:00:03
参考サイト:tp://uchukamen.com/Programming1/HTMLPost/index.htm#SEC5
の"非同期で POST する場合のパターン"で
フォームのボタンを押すとRequestが呼ばれるって感じです。
で、ReadCallBackとWriteCallBackでMessageBoxを呼んだときにフォームに対して
>>217 をしたいんだがわからねぇ…orz
>>218 だけでは、漏れには無理でした…orz
225 :
デフォルトの名無しさん :2006/07/28(金) 22:41:47
Bitmapに文字列を右端そろえで書こうと思い、 SizeF stringSize = g.MeasureString(str, fnt, bmp.Width); g.DrawString(str, fnt, b, bmp.Width - stringSize.Width , height); としたのですが、文字の一番右のピクセルがbmpの右端に揃わずにガタガタになってしまいます。 MeasureStringの素の値を使うと何か問題があるのでしょうか?
StringFormat 使えば良くね?
>>225 MeasureString メソッドは独立した文字列で使用するようにデザインされており、
グリフの突出に対応するための少量の余白を文字列の前後に含めます。
また、DrawString メソッドはグリフのポイントを調整して表示品質を最適化するため、
MeasureString で報告されるよりも狭い範囲に文字列が表示される可能性があります。
以上、ドキュメントより。
よくわかんないけど、ようするにMeasureString とDrawString で一致しないことがあるよ、て感じ?
質問です。 実行中のスレッドとは異なるスレッドのスタックトレースを取得するためにスレッドを一時停止状態にしたいのですが、 Thread.Suspend() と Thread.Resume() は deprecated だそうです。 .Net Framework 2.0 ではどのようにすればよいのでしょうか?
229 :
225 :2006/07/28(金) 23:42:30
レスありがとうございます。 stringformatでググってみて以下のようにしてうまくいきました。 StringFormat sf = new StringFormat(); sf.SetMeasurableCharacterRanges(new CharacterRange[]{new CharacterRange(0,str.Length)}); Region[] reg = g.MeasureCharacterRanges(str, fnt, new Rectangle(0, 0, 1000, 1000), sf); g.DrawString(str, fnt, b, bmp.Width - reg[0].GetBounds(g).Width , height);
230 :
デフォルトの名無しさん :2006/07/29(土) 00:13:56
C#1.0のときは匿名メソッドが無かったから
>>218 が大変だったなあ、とふと思った
>>223 非同期にPOSTしてるんだから、MessageBoxを開いてるのも非同期、
つまりもとのフォームから見たらモードレスだ。当然だ。
フォームのスレッド: →→→→┬→→→→→→→→→→→→→→
↓
POSTのスレッド: POST→→→MessageBox.Show
これが正しい
フォームのスレッド: →→→→┬→→→MessageBox.Show→→→→→→→→
↓ ↑
POSTのスレッド: POST→→→Control.Invoke
231 :
223 :2006/07/29(土) 09:13:43
>>218 ,230
invokeやらdelegateやらでググりまくってなんとか…
サーバ通信とフォーム処理は別々のクラスにしてて、
フォーム処理のクラスにMessageBox.show処理をするメソッドを書いて、
サーバのクラスでこの非同期POST送信、受信のときに
このメソッドをControl.BeginInvokeもしくは、Control.Invokeするようにしたら、
>>230 の下の処理の流れのようにできました。
上のやり方でいけたのですが、なんかおかしかったらご指摘お願いします。
私の説明も分かりづらいですが…
>>218 ,230
ありがとうございました。開発時間が限られてるので、助かりました。
まぁどうでもいいが、別スレッドでやるなら非同期にしなくてもいいよ
233 :
228 :2006/07/29(土) 10:56:46
調べてみたところ何やら代替手段がないようなので #pragma warning disable 0618 とでもすることにします。
イベントとデリゲートってどう使い分けてますか?
どうも何も、通知と委譲って分かりやすい違いだと思うが
イベントはデリゲート。
イベントハンドラーはデリゲート
使い分けるもんじゃねーナ。 イヴェントはデリゲートを使ってるだけ。
デリゲートな部分にはフェミニーナ軟膏
イベントはイベントハンドラを起動するために使う。 デリゲートはイベントを使えるようにする時に使う。 デリゲートは非同期呼び出しをする時に使う。 デリゲートはファンクタを作りたい時に使う。 以上。
えっ?
えっ?じゃねぇよ
247 :
246 :2006/07/29(土) 14:32:44
間違って送信してしまいました… |続いて、レンダリング(描画処理)のためのコードを記述します。クラスビューより |OnPaint イベントを選択し、右ボタンクリックによるコンテキストメニューから |[追加 - オーバーライド] を選択します。(図2) クラスビューでButtonBase内にOnPaintがありますが、ここで[追加 - オーバーライド] という項目が出ません。 よろしくお願いします。
自分で書けよ protected overrideまで打てばあと補完してくれるっしょ
例えば1つのフォームがあって、そのフォームから 何かの処理を担当するクラスのメソッドを呼んで 同期的に処理させているとき、処理経過を 呼出元フォームのステータスバーかなんかに 表示させたいとする。 この場合、処理クラスから呼出元フォームは見えない (相互参照を避けるために、処理クラスの参照を 呼出元フォームに渡さないように設計するのが普通) から、こういうときにデリゲートやイベントを使う。 漏れは以前はデリゲートを多用していたんだが、 最近ではもっぱらイベントを使うようにしている。 とくにVBでプログラムするときは、記述が容易だから イベントの方を使う。
250 :
249 :2006/07/29(土) 15:21:43
ごめん逆だ、 (相互参照を避けるために、呼出元フォームの参照を 処理クラスに渡さないように設計するのが普通) だ。
'MyCustomButtonControl.GradientButton' に 'GradientButton_Paint' の定義がありません。 D:\Projects\MyProjects\MyCustomButtonControl\MyCustomButtonControl\MyCustomButtonControl\GradientButton.Designer.cs となります…
>>248 むしろprotectedいらん。override[スペース]ってうってみな
253 :
246 :2006/07/29(土) 16:08:01
試してみた所、 protected override void OnPaint(PaintEventArgs pevent) に補完されます。 ひょっとすると、図2にあるような、プロパティーウィンドウにOnPaintが出ないので、そこが問題でしょうか?
それで問題があるのか?
2005では >右ボタンクリックによるコンテキストメニューから [追加 - オーバーライド] を選択します。 の機能は無くなってるのかな 必要ないとは思うけど
256 :
246 :2006/07/29(土) 16:40:06
自己解決しました。 GradientButton.csのデザイナで、名前を"Button1"から"GradientButton_Paint"に変更すると ビルド通りました。 ご助言ありがとうございました。
System.Windows.Forms.NotifyIcon のメッセージ通知先ウィンドウハンドルは、 どのようにしたら取得できますか? それとも、shell32.dll の Shell_NotifyIcon を使って、自前で用意するべきですか?
Shell_TrayWnd から辿っていけば見つかることは見つかるが。 それで何をしたいんだ?
>>258 あー、うん。1.1 でバルーン付けて欲しいって言われまして。
けど CodeProject に思いっきり探していたのあったんで、今回はそっち使います。
おさわがせしましたほんとすんません(;´Д`)
単純なデータクラスをカスタム属性を継承して定義すると [Hoge(Name="", DataType="", XXX=""]のように宣言できて、ちょっとかっこよくない? コンストラクタ書かなくて済むし。 (Hogeオブジェクトの配列がアプリの初期値として必要な場合)
261 :
デフォルトの名無しさん :2006/07/30(日) 10:46:27
D&DのGiveFeedbackイベントとQueryContinueイベントを DoDragDropを実行したControl以外から、キャッチする方法ってないですか? どのControlからDoDragDropされても、独自のドラッグエフェクトを出すようなControlを作りたいのですが。 例えば、TreeViewのサブクラスでTreeNodeを半透明化して表示して、 フィードバックのDragEffectで表示を変えるようにしたいです。
262 :
デフォルトの名無しさん :2006/07/30(日) 14:50:49
c#なんて中途半端な言語使うより visual basicの方が良くね?
だから前から言ってるじゃん、「両方使え」と。 おまいらどうしてどっちか一方に決めようとするの?(・∀・)
C#とVBならどっちでもい〜じゃん。ただJ#ならちょっと待って考えて欲しい。
267 :
デフォルトの名無しさん :2006/07/30(日) 15:27:00
クラス名からGUIDを求めるのはtypeof(classname).GUIDでいいとおもうのですが、 その逆はどうやってやるのでしょうか?
GetTyepFrom... があるだろ
269 :
デフォルトの名無しさん :2006/07/30(日) 16:44:02
実況用でWMP付ける理由が分からん
どうせまた例によって for(;;){ str = str + i; } みたいなびっくりするほどユートピアなプログラムを書くつもりだろ
ミスターサタンスレにまで宣伝してるな・・・
それがVIPPER
274 :
デフォルトの名無しさん :2006/07/30(日) 17:28:32
メッセージの多言語化対応ってどうやればいいのですか? VCみたいにメッセージをリソースとして別ファイルに定義しておいて 間単に読み込むことって標準で提供されてないですか?
されてる。 ローカリゼーションとかで MSDN 調べてみれ
C# の話というよりは、文字コードの話になってしまうのですが どなたか御存知でしたら教えてください。 System.Text.Encoding enc = System.Text.Encoding.GetEncoding("utf-8") byte[] dataBytes = System.Text.Encoding.ASCII.GetBytes(data) のように、文字列を UTF-8 に変換して、Linux に渡しています。 今試したなかでは、(株) (実際には1文字)なども正しく Linux に 渡せているのですが、Windows 側の文字列(unicode?) を UTF-8 に変換し、Linux に渡した時に Linux で認識できない文字列が発生する事は考えられますか?
UTF-8 で表現できない文字があるかもしれない。 Linux 側に対応するフォントがなければ表示できないかもしれない。
UTF-8 は Unicode の符号化形式の一つなので、Unicode の文字を扱う限り化けたりはしない。 フォントの問題で表示できなかったりはするだろうが。 非 Unicode な文字コードが絡んでくると問題も出てくるがね。Wave Dash とか。
279 :
276 :2006/07/30(日) 19:09:19
>> 277 ありがとうございます。 フォントについては Linux 側の問題なのであきらめるとして、 > UTF-8 で表現できない文字があるかもしれない。 これを調べる方法、情報のあるサイトなど御存知でしたら アドバイスを頂けるとうれしいです。 よろしくお願いします。
280 :
276 :2006/07/30(日) 19:14:15
>>278 ありがとうございます。
Windows (.NET Framework?) を使う上において、
非 Unicode な文字コードというのはあつかえるのでしょうか?
Windows 上の文字列は全て Unicode なのかな、と思っていましたが
誤解してますか?アドバイスよろしくお願いします。
>>280 「機種依存文字」でぐぐるといいと思うよ。
つかキーワード出してんだからそれ調べろよ。
283 :
デフォルトの名無しさん :2006/07/30(日) 19:57:11
型付データセットを作っていて、カラム名でSelect文とか作ってるんですけど カラム名を変更しても楽にするにはどうしたらよいですかね? 自分じゃ、カラム名をconstで宣言しといて、Select文はそれを使うとかくらいしか 思いつかないのですが、よい方法ありますか?
284 :
デフォルトの名無しさん :2006/07/30(日) 21:09:40
単純な質問ですいません。 C#でフォームの内側(枠をのぞいた部分)のサイズを取得する方法、または枠の太さを取得する方法はありますか?
Form.ClientSize
SystemInformation
287 :
ニート :2006/07/30(日) 23:49:19
C#でキーボードを自動で押下するプログラムを作成し、 某ネトゲで使用していたのですが、バージョンアップ以降 使えなくなりました・・・ keybd_eventのAPIを使ってキー押下を実行していたのですが、 この方法以外に何かありますでしょうか?(;´Д`) より低水準な方法ってなんでしょうか
ロボットにキーボードを押させる
ゲームに 『DirectInput を使用しない』 って設定があるかどうか確かめる
そもそも規約違反じゃね?
どう見てもBOTです 本当にありがとうございました
プログラムに罪はない! 使う人に罪があるんだ!
バージョンアップ以降ってことは不正ツール認定されて対策されたってことだろう
ハッカーならハッカーらしくじぶんでかいけつしる
誰がハッカーだよ
俺様はC#の世界でも頂点を取る男だ
三角形って底辺にも頂点ありますよね
C#は三角形だったのか
>>297 「辺」に「点」はない
「点」が存在した地点で「辺」は終わる
辺は点の集合だろ 点が至る所に存在するんだよ
おまえら算数からやり直して来い
頂点ってノードのことだよな
頂点といったらペニスの先っぽだろ
辺は面の端で線だ。 線は点の無限集合だ。
【開発環境】Visual C# 2005 Express Edition + Win2k 学校でC#を使い「画像を動かしてプログラムをつくる」ということを テーマにして勉強しています。 ですが、どうしても3つ以上の画像を動かそうものなら動きがガクガクに なって使い物にならなくなってしまっています。 画像は基本的に30×30のgifです(大きくてもせいぜい50*50)。 画像を動かすことのコツなどあれば教えていただきたいです 漠然とした質問ですいません。お願いします
そんな遅いわけない。 つ【directX】
Flash
ありがとうございます。 DirectXやFlashはまだやったことないのですが いい機会なので挑戦してみます
kbstate=device.GetCurrentKeyboardState(); で状態を得て、 「A」 が押されていないときの処理を書きたいとしたら どのようにすればいいですかね?
if ( !(「A」 が押されているとき) )
画像を動かしてプログラムを作る、ってよくわかんね
プロセスIDかウィンドウハンドルからその実行ファイルのパス取得する方法ありますか?
サンクス
317 :
デフォルトの名無しさん :2006/07/31(月) 23:34:08
ちくしょおおおおおおおおおおおおおおおおおおおおおお
ファイルハンドルからそれを使ってるプロセスを引っ張ってくる方法あるかね?
ありますよ
サンクス
321 :
デフォルトの名無しさん :2006/08/01(火) 10:47:13
ちくしょおおおおおおおおおおおおおおおおおおおおおお
はいはいおもしろいですね
「画像を動かしてプログラムをつくる」ってことは なんかグラフィカルな開発環境を使ってるのか、あるいはそれを作るのか。
画像を動かすプログラムを作るってことだろ で、同時にたくさん動かすとガクガクいうと 大人だったら少しはリア中の脳内を読んでやれよ
嫌味にマジレス
あるプログラムをC#2005で作ってるんですが .netFramework2.0上でしか動かせなく困っています。 特に 2.0特有の記述もしてないので .netFramework1.1上でも動作させたいのですが 方法はありますでしょうか? どうぞよろしくお願い致します。
.NET Framework SDK 1.1を直接使ってコンパイル
2003 でコンパイルする
C#2005のみでは無理ですか?
無理
332 :
デフォルトの名無しさん :2006/08/02(水) 14:07:24
MsBuildで1.1でコンパイルする方法だかソフトの紹介ページ無かったっけ?
configに書いときゃいいだろ。 まあゴチャゴチャすんのは確かだが。
これからC#を使ってみようと思うのですが C#で書いたプログラムはコンパイルするときに .NET1.1 用と .NET2.0 用(あるいはそれ以降のバージョン) という感じでいくつも配布用バージョン作る必要があるのでしょうか? あと、ソースを書くときもそれぞれのバージョンを 意識しておく必要があるのでしょうか?
>.NET1.1 用と .NET2.0 用(あるいはそれ以降のバージョン) >という感じでいくつも配布用バージョン作る必要があるのでしょうか? 全バージョンに対応したいならyes >あと、ソースを書くときもそれぞれのバージョンを >意識しておく必要があるのでしょうか? 全バージョンに対応したいならyes
まじですか 一昔前のブラウザのバージョンによってhtmlやjavascriptが 解釈の違いで苦労したようなことと同じようなことがあるのなら 使うのは止めようと思います
両対応にするなら.NET1.1で動くように書けばOK
2.0対応だけでおk
.NET Frameworkは基本的に上位互換があることになっているから、 普通はより下位のバージョンで動くものを配布すれば良いことになる。 しかし現実と理想は違うもので、完全に上位互換であるわけではないようだ。
>>336 フリーウェア書くつもりなら2.0対応だけでいいんじゃね?
企業内とか環境が限定されるならその限りじゃないけど
個人的には1.xのコードは書きたくないぽ
>>340 激しく胴衣
2.0使ったら1.xには戻りたくなくなる罠
2.0は糞
水掛け論
>>342 誰もが分かる煽りをするのは何故?
なんか面白いの?
3.0は神
4.0は糸冬
そしてD#へ
ネイティブコードが吐けないDなんて C#やC++/CLIにたいして何のメリットがあるんだ
350 :
デフォルトの名無しさん :2006/08/02(水) 18:47:51
次は「も〜っと! C」だろうが
どれみ#
D#はネイティブコードを吐けるかも知れないじゃないか!
>>350 1.0 = C#
1.1 = も〜っと!C
2.0 = Cドッカ〜ン!
3.0 = C ナ・イ・ショ
ListBox.DrawItem にて ListBox.ClientSize.Width に依存した処理をしているんですけど、 ListBox や、親 Form のサイズやスタイルが変更された際、どのイベントから ListBox.Reflesh を行うべきですか? Form や ListBox の Resize, StyleChanged イベントから Reflesh してみたんだけど、 ClientSize.Width が変更前の値なんですわ (・ω・`) 変更後の値を取るにはどうすれば……。
(ω・`)
すまんス。変更前の値なのは ListBox.MeasureItem のほうだ。 DrawItem ではちゃんと変更後の値になってる…… (´;ω;`) 変更って、非同期に行われるんだっけ?
(´;ω;`)
C++ で書いていた COM サーバーを、.net framework 上に 移植することになりました。 comvisible を true にするだけで、public なクラスが COM に 公開されることはわかりました。 このとき、COM に公開されるプロパティを動的に生成する方法はありますでしょうか? C++ の時は、IDispath::GetIDsOfNames と Invoke を自前で書く方法で対応していましたが、 これと同等のことは、C# でもできるでしょうか?
C# で作成した Windows アプリケーションから Excel ファイルを開いて マクロを実行する方法ってありますか?。参考になるページを教えて 頂けないでしょうか?
362 :
デフォルトの名無しさん :2006/08/03(木) 20:25:23
TreeViewコントロールを使って、Nodeを追加しているのですが、 キャプションが欠けます。 「〜〜〜追加する」とノードを追加すると、 「〜〜〜追加す」でキャプションが欠けてしまうのですが、調整する方法ありますか?
Bold か?
364 :
デフォルトの名無しさん :2006/08/03(木) 21:02:22
>>363 っぽいです。
Boldのせいで欠けるようです。。。
TreeView のフォントを Bold にしちまえ
Textに再度同じTextを設定すれば欠けずにすみませいた〜 ありがとうございます
System.Net.WebClient web = new System.Net.WebClient(); web.DownloadFile(ファイルのURL, 保存するファイル名); と処理してWebからファイルのDLをおこないたいのですが、 ファイルが存在しない場合、ダウンロードに失敗した場合などの処理は どのように記述すればよいでしょうか?
例外を処理する
369 :
367 :2006/08/04(金) 01:42:08
ありがとうございます。なんとか処理できました。
namespace A { class DDD { DDD(string s) { } } } namespace Test{ public partial class Form1 : Form{ public Form1(){ InitializeComponent(); } } namespace A{ //class DDD { } namespace B{ using DDD = A.DDD; public partial class Form1 : Form{ public Form1(){ new CAA(); A.DDD d = new DDD();//グローバルのA.DDDになんで行かないのか。 } } } } } こうかくとグローバルのA..DDDを見に行かないでTest.A.DDDにいってしまうんだけどこの仕様はコンパイラーのバグかね? グローバルのA.DDDに行かせたいときはどんな指定をさせればいい?
>>370 字下げがつぶれてよくわからんが、
using DDD = global::A.DDD じゃだめか。
インデント死んでたのでもう一度
namespace A{
class DDD { DDD(string s) { } }
}
namespace Test{
public partial class Form1 : Form{
public Form1(){
InitializeComponent();
}
}
namespace A{
//class DDD { }
namespace B{
using DDD = A.DDD;
public partial class Form1 : Form{
public Form1(){
new CAA();
A.DDD d = new DDD();//グローバルのA.DDDになんで行かないのか。
}
}
}
}
}
>>371 解決しますた。
半角スペース二つとタブは省略されるんだよ
・・・orz
&nbsp; 半角で
Test::Aの中ではTest::は省略できるから
戻り値が二次元配列になる関数はどうやって作成したらよいのでしょうか。 関数ポインタや配列とポインタについては調べたのですが、よくわかりません。 どなたかご教示ください。
>>377 C#の質問だよな?
public string [ , ] func() か public string [][] func() を用途に応じて使い分ける。
って思いっきり誤爆したwwwwwwwwごめwwwww
>>378 なるほど!!C#もやっているのでC#でやるときはそれを参考にします!教えてくださってどうもありがとうございました。
なんでときどきCスレと間違えるやつがいるんだろう 「C☆相談室」みたいに#を区切りと見間違えてるのかな
基底クラスA,その派生クラスBがあるとして List<B>をList<A>として扱う又は変換するもっともよい手立ては何ですか? ConvertAllしかない?
うん
>>384 たぶんやろうとしてることはリストそのものを変換する必要はないと思うぞ。
クラスAを引数に取る処理用メソッドにforeachで1要素ずつ渡すとかすれば
キャストも何も必要ない。
>>386-387 ありがとう。ジェネリックの分散と呼ぶんですね。
参考になります。
>>388 どんな設計が悪くて、どうすれば悪くないか具体的に例をだして
頂けると有難いです。なぜ設計が悪いとわかるのですか?
>>389 引数の型を具体化せずジェネリクスにすれば良いんじゃないか?
ICollectionとICollection<T>にまったく互換性がなかったのは泣けた。 IDictionary<K,V>.KeysをIDictionary.Keysと同様に使いたかっただけなんだけど。 ラッパ作るの単純作業でメンドイし。スニペットでもあればいいんだけど。
ペニスット
TreeViewで選択した行のIndexを取りたいのですが、 ListBoxのSelectedIndexにあたるものがなくて困ってます。 IndexOfやらSelectedIndicesやらで 取れるのかと思い色々やってみたのですが、 うまくいきませんでした。 ご教示していただきませんでしょうか?
395 :
393 :2006/08/07(月) 16:02:48
TreeView→ListViewの間違いですorz ListViewで詳細表示の時です。
>>395 SelectedIndicesで取れるはずだけど
VS2005で、DataGridViewのint型の列を、DataGridViewComboBoxColumnに設定して DisplayMemberをstring型のフィールドに、 ValueMemberをint型のフィールドに バインドさせて表示しているのですが、Ctrl+0でnull値をセルに入力した場合、 DataGridView.DataError [System.ArgumentException] = {"列 'カラム名' を Null に設定できません。DBNull を使用してください。"} が発生してしまいます。 DisplayMemberをint型のフィールドに設定している時は起きなかったんですが どうやって回避すればいいんでしょうか?
398 :
初心者 :2006/08/07(月) 21:47:27
いろいろ調べたのですが、どうも調べきれず質問させてください。 初歩的な質問かと思うのですが、 string str = @"C:\temp\test.txt"; のように"@"でエスケープが不要になっている文字列がある場合、 この先頭の"@"だけを削除するAPIはないのでしょうか? string型のRemoveなども試してみたのですが、 1バイト目を削除する、という指定をしたところ 上記の例では @"C:\temp\test.txt" ↑ の"C"が削除されてしまいました。 どなたかご存知の方ご教授ください。
くまー
>>398 @は文字列には含まれていない。あくまでもコンパイラが解釈するもの。
( ゚д゚)…
”C”が削除されてしまったってあんたwwww それ確認した時に@が文字としてはくっついていないことも確認できただろwwwwwww ネタばればれだからwwww
>>398 @"C:\temp\test.txt"
と
"C:\\temp\\test.txt"
は、どちらも
C:\temp\test.txt
を表す文字列を表記したコード
>>398 なぜそういう処理を思いついたんだ?
@はC#構文の一部なわけだが、そこに何故か注目してしまったお前の脳内が気になる
単なる思い違いならそれはそれでいいのだが
>>398 もしかして正規表現とかに突っ込むので
エスケープ文字を更にエスケープしたいってことか?
List や Array から重複した項目を削除する処理(stl の unique みたいな) はライブラリにありますでしょうか? 自分で書くしかないでしょうか?
ライブラリにあるかないかくらいドキュメント見ろよ
>>407 ContainsがTrueを返す限り、Removeを実行すりゃいい。
>>409 要求を満たしてないうえに激しく非効率的だぞ
411 :
初心者 :2006/08/08(火) 00:02:12
皆様 レスありがとうございます。 元々はシステム上、文字列の長さに上限があり、 @が付いた場合、規定の文字列長を超えるのではと思ったことがきっかけです。 >@はstrには含まれない >@は文字列には含まれていない。あくまでもコンパイラが解釈するもの。 上記についてなのですが、 例えば、 @str = @"c:\temp\test.txt"; //length = 16 Astr2 = "c:\\temp\\test.txt";//length = 16 Bstr3 = "c:\temp\test.txt"; //length=14 と文字列長が変わってくると思うのですが、 これはやはりstrに"@"は含まれないのでしょうか? とここまで書いてなんか自分が勘違いしている気が・・。 @、Aとも文字列長が同じ、Bはそもそもファイルパスとして成立していないですし・・。
3の ”\t" はタブ文字だよwww
そこまで分かってて何で @ に拘るんだろう
"c:\temp\test.txt" が表す文字列は c:\temp\test.txt ではなく c: emp est.txt
そんなくまー
DrawTextって文字数増やしながら重ね書きするとひどいことになりますか?
>>418 なんでもやってみることが大切 だと隣のおばあちゃんが言ってたぜ
またチャレンジ精神に満ち溢れた老人だな。
コンピューターおばあちゃん
ビジュアルばあさん
最近前都知事見ねぇな
それは「いじわるばあさん」だろ?
C++で作成したDLLをC#で読み込んでいます。 DLL側でTCARの配列(マルチバイトだから実質char)を返す関数をC#側でStringBuilderで受け取っています。 しかし、文字化けが起こってしまいます。 以下のような感じなのですが、どこを修正すればいいでしょう・・・ [DLL] extern "C" __declspec(dllexport) LPTSTR hoge() { TCHAR a[256]; a = "hogehoge"; return a; } [C#] static extern StringBuilder hoge(); この状態で呼び出すと4文字目ぐらいから文字化けします・・・
>>426 お前が「いいのか?」と疑問に思った理由は?
429 :
425 :2006/08/08(火) 15:39:23
>>427 そう思ってDllImportのCharSetに4パターン全部入れてみましたが全部だめでした。
>>428 Form1が複数有った場合にform1は常に自分が想定したform1になるの?
自分でいってておかしくなってきた。
>>426 参照をもったメンバ変数を直接見せずに GetInstanceのような公開用メソッドを使うべきなんだろうし、
TextBox1もオブジェクトを直に触らせずに必要な操作だけラップして公開すべきなんだろうけどね。
あとForm1がシングルインスタンスであることが前提になるから二重起動の防止の仕掛けも欲しいところだけど
入門サイトのレベルでそこまで求めるかどうかはそこの人しだいじゃないの。
>>431 二重起動とForm1がシングルインスタンスを前提とすることって関係なくね?
もしかしてstaticフィールドがプロセス間で共有されると思ってる?
>>432 すまん言葉の使い方を間違った。Form1から2つ以上インスタンスが作られるケース。
>>429 [return: MarshalAs(UnmanagedType.LPTStr)]とか?
それかポインタにいれちゃって取り出してみるとか。
>>425 その関数が返す文字列はスタックに一時的に確保されているものだから
関数を抜けるとその内容は保障されない。
そもそもそのコードコンパイルできるの?
437 :
デフォルトの名無しさん :2006/08/08(火) 18:09:03
クラスについて質問させてください。ある自作クラス Original_Class があり、 すでに生成済みのクラス original_class (Original_Class型) があるとして、 Original_Class oc = new Original_Class; oc = original_class; と Original_Class oc = original_class; の意味合いの違い(用途?)を教えてください。宜しくお願いします。
そもそもがおかしいから
>>437 初心者用スレいきだと思うけど。
>Original_Class oc = new Original_Class(); //←の間違いでしょ
>oc = original_class;
見た通り、クラスのインスタンスを作成している。
そのときコンストラクタ等でいろいろ作業して頑張ってクラス作ったのに
>oc = original_class;
でばっさりそのインスタンスへの参照を上書きして、古い方を参照させている。
コンストラクタで特別なことしてない限り(何か状態の変わるような糞をしてない限り)
まったく意味無し。新しいインスタンスは参照を失ってGC待ち。
>Original_Class oc = original_class;
は、単に参照をコピーしてるだけ。
×頑張ってクラス作ったのに ○頑張ってインスタンス作ったのに
>初心者用スレいきだと思うけど。 スレ違にも答えていただきありがとうございます。 >Original_Class oc = new Original_Class(); //←の間違いでしょ (;゚Д゚)そうでした。 Original_Class oc = new Original_Class(); oc = original_class; は意味なしな行為だったんですね。ご教授ありがとうございます。orz
たぶん
>>431 はフォームの複数表示の意味で回転だろうよ。
しかしむしろそのサイト読んだら誤解が増えそうで厳しい。
>>425 普通こうでしょ
char* hoge(char* buf){
strcpy(buf, "hogehoge");
return buf;
}
static extern void hoge(byte[] buf);
いい加減だから適当に修正してくれ。
menuStrip ってラジオボタンつーの? 排他的に項目選択できるのがないのな。 ダサ。
CheckState を Intermediate だったかにすれば 見た目だけはラジオボタンぽくなる
446 :
羊 :2006/08/09(水) 18:31:47
質問させて下さい。 開発環境はMicrosoft Visual Studio .NET 2003です。 DataGridをForm上で使用しているのですが、 キーとなる列を見てとある値が入っている行の一部のセルの色を変えたいのです。 どなたかご教授願えませんでしょうか? よろしくお願いします。
>>425 C#以前の問題としてそのエクスポート関数が最悪。
…時々この手のヤバいエクスポート関数のP/Invokeの質問をみるのだが
なんでなんだろう。
425のようなコードを書くやつ(== C/C++を使いこなせないやつ)にとって、C#はちょうどよい言語の1つ。
おれ生粋のド素人でC#しか知らないけど、
いきなりC++習いだしたら
>>425 みたいに書いてしまうだろうな。
C#の気分でスタックの変数返すメソッド書くと思う。
C++の勉強になりました
>>450 Win32ぜんぜん知らないんだけど、配列に文字列代入できんの?
返されるのは元の配列のポインタなのか代入されたポインタなのかどっちなの?
代入されたポインタなら少なくともスタックの変数じゃないと思うんだが…
>>452 配列に”代入”ではなく”コピー”
char s[256];
strcpy(s,"hoge");
とすると、
sというポインタ(文字型256バイトのメモリを指している)の
位置に、'h','o','g','e','\0'というデータ(5バイト)をコピーする
>>452 配列に文字列代入できない。できるのは配列の初期化のとき。
静的配列はスタックに確保される。もちろんそのアドレス返す関数はあぼーん。
つまりどうするのが正解?
456 :
443 :2006/08/10(木) 01:45:54
>>425 何かいい加減スレ違いなんだが、収拾つかなそうなので説明。
C/C++方面としてみてアウトなのとDLLエクスポート関数としてみてアウトな点がある。
・C/C++
1. スタック上に取った領域なのでポインタを返しても領域はすでに開放済み
2. 配列に代入してる
3. TCHAR使ってるんだから_T("hoge")で囲め
・DLL(あくまで「標準DLL」としてね)
1. 受け渡し領域は呼び出し側で確保するのが原則。そしてそれをパラメータでポインタを渡す。
これだけだとバッファオーバーの問題を持った関数になるためバッファサイズも一緒に渡す
のが普通(
>>443 はその点ではちょっと危ないが必要サイズが固定ならOK)。
2. TCHARはエクスポート関数に使っちゃだめ。AとWバージョン用意するか片方だけに。
TCHARはプリプロセッサによる処理なのでバイナリまで情報行かない。
3. __stdcallが原則。
4. .defファイルでエクスポートしないと名前に序数値がつく…と思ったけど呼べてる
らしいのが不思議(理由分かる人いる?)。
>>457 > 4. .defファイルでエクスポートしないと名前に序数値がつく…と思ったけど呼べてる
> らしいのが不思議(理由分かる人いる?)。
extern "C"
>>458 C++ほど意味不明なものはつかないが、それしても_とか@0とかは付くと
思ったけど…?気のせいかな
>>459 こら、C++の意味不明さと、Windows固有仕様の意味不明さをごっちゃにするな。
_とか@0が付くのはstdcallのときだけ。
425のhogeはおそらくcdeclのはずなので関数の頭に_が付くだけ。
ちなみに__declspec(dllexport)を書いておきながら、
DEFファイルも作れば何の修飾もない名前で公開することもできる。
>>460 いや、ごっちゃにしてるわけでは。MSコンパイラの命名規則なだけでそ
というかサンクス。なるほど、__cdeclの場合違うのか。
462 :
デフォルトの名無しさん :2006/08/10(木) 11:59:46
c++で作ったDLLをc#から呼びたいんだけど、 c++で struct test_struct { char *a; int size; }; void test(*test_struct); こんな感じに宣言されてるものはどうやって呼べば良いですか。 ちなみに構造体のaはc#側で領域を確保して、そのサイズをsizeにセット。 test関数でaに値を書き出すという構造です。
C#を始めて2週間のリアル工房のボクが来ましたよ。 間違ってたら指摘よろ ---------------------------------- [StructLayout( LayoutKind.Sequential )] struct test_struct { public IntPtr a; public int size; } [DllImport(...)] static extern void test( IntPtr pTS ); ---------------------------------- test_struct ts = new test_struct (); //... //aの領域確保、サイズセット //... IntPtr p = Marshal.AllocHGlobal( Marshal.SizeOf( ts ) ); Marshal.StructureToPtr( ts, p, true ); test( p ); ts = (test_struct)Marshal.PtrToStructure( p, typeof( test_struct ) ); Marshal.FreeHGlobal( p );
強引だなぁ。嫌いじゃないけど test(ref test_struct v); でいいはず。あとaはStringBuilderでいけない?駄目なら忘れて
DataGridViewの列の幅をアプリケーション設定でユーザ毎に設定することは可能ですか?
466 :
デフォルトの名無しさん :2006/08/10(木) 14:29:52
>>467 PropertyBindingのどの項目を設定すればいいのか教えていただけますか?
そりゃWidthでしょう ただしDataGridView本体じゃなくてDataGridViewTextBoxColumnの方で。
×DataGridViewTextBoxColumn ○そのDataGridViewColumn
数字の部分は数値として文字列を比較する方法って、.NETで提供されてる? エクスプローラでのソート順と同様の。 ex. "3" < "12"、 "abc3" < "abc12"
framework 1.1で System.Drawing.Printing.PageSettingsクラスの PaperSize.kind(Kindではない)の値を取りたいのですが方法は無いでしょうか? framework2だとrowKindだったか何かで取れるようですが、 1.1だと無理なのでしょうか? ググってみたらAPIがなんちゃらって書いてあったのですが そこからさっぱり進めません。 解決策を教えてくだい。
>>471 String.Compareがあるがな(´・ω・`)
>>472 >PaperSize.kind(Kindではない)
って何?
>>473 もちろん試した。文字列としてのみ比較可能だった。
カルチャを使えば曜日の文字(日, 月 ... 土)は
曜日順の結果を得ることもできたが、数字はダメっぽい。
あとVBも文字列操作に便利なものが多いから調べてみたけど、
要求を満たすものはなさそう。
C#でゲーム作りやってるのですが,お勧めの参考書ないでしょうか。 C#もDirectXも初めてで カスタムUIがさっぱりわからず苦戦してます ネット文献も尽きてきてしまいました 宜しくお願いします
ゲーム以前の知識が足りない
DirectXは勉強の題材には向かないと思うよ 普通にC#を勉強してからのほうがいい
アプリケーションがアクティブがないときに、 マウスクリックのイベントを拾って来たいのですが可能でしょうか? Timerクラスでなんとかできないかと試したのですがよくわかりません。。。 どなたかお願いします。
orz・・・アプリケーションがアクティブではないときに、 です。連投すいませんorz
アクティブでない時にはそもそもクリックされないと思うのだが。 クリックしたら自動的にアクティブになるしな。 まあグローバルフックとかその辺じゃね。
.NET ではマウスのグローバルフックはできないといわれている
つーかクリックでアクティブ化したときも Clickイベント起きてるけど?
ああ御免かんちがい
CLR VIA C# 2Ed 購入して勉強中… リッチャーって天才すぎです
>>482 できるよ、ちょい不安定だけど(・∀・)
>>475 自然順ソートって呼ばれてるんだ。
どうもありがとう。調べてみる。
>>469 自分でコード書いてやらないと出来ないのですか?
ウィザードとかあれば助かるのですが・・・
>>489 いやウィザードあるっしょ。
ただ直接プロパティ見れないから、ドキュメントアウトラインから当該Columnを
選択してプロパティ→(ApplicationSettings)→(PropertyBinding)
492 :
472 :2006/08/11(金) 12:00:11
>>473 System.Drawing.Printing.PaperSizeクラスの
kindというプロパティの事です。
Kindという別の値は取れるのですが、それじゃ困るので質問してみました。
ちょっと気になったんだけど、 PropertyBindingすると結構もっさりしない?
>>492 言ってることが分かりにくかったが、
生のintのことかな?
PaperSize.KindでとれるPaperKindはenumなんだから
intにキャストすればいいんじゃね?
495 :
472 :2006/08/11(金) 13:30:25
何か読み返してみるとまた訳分からん事言ってる気がしたので、ソース張ります。 System.Windows.Forms.PageSetupDialog page = new System.Windows.Forms.PageSetupDialog(); System.Drawing.Printing.PrintDocument doc = new System.Drawing.Printing.PrintDocument(); page.Document = doc; page.ShowDialog(); Console.WriteLine(page.PageSettings.PaperSize.kind); としたいけど一番最後の行ができないので、何とかなりませんか?って意味でしたorz
>>495 >>494 Console.WriteLine( (int)page.PageSettings.PaperSize.Kind );
>kindというプロパティ
なんてこの世に存在しない
497 :
472 :2006/08/11(金) 13:48:14
page.PageSettings.PaperSizeの部分を クイックウォッチで見てみると、kindは存在しているように見えるので、 内部的には持ってると思うんですが、違うのでしょうか。
publicじゃないから
>>497 内部的に持っていたとしても外部から見えるとは限らんでしょー
リフレクションかなにかで叩きなさい
コンソールアプリの出力をリッチテキストボックスに書き出す方法はどういう方法がありますでしょうか?
>>500 System.Diagnostics.Process
>>499 リフレクションというのを使えばprivateメンバ等の値も取得できるのですね。
ちょっとやってみます。有難うございました。
ブロック中の HttpWebRequest.GetRequestStream から即座に復帰させるために、Thread.Abort は適切ですか? HttpWebRequest.Abort では復帰しなかったのですが……。
>>502 あのねー、Reflector使えば分かるけどねー、
そのprivateなkind(PaperKind型)ってKindプロパティで取れるものとおなじだよ?
2.0のRawKindだってintにキャストしてるだけだよ〜
( ⌒ ) ポッポー
l | /
⊂(#・∀・) だから
>>494 でそう言ってるじゃないか!
/ ノ∪ もうやってらんないっすよ!!
し―-J |l| |
人ペシッ!!
(_)
)(__)(_
⌒) (⌒
⌒Y⌒
>>504 真に申し訳ないです。494は素で読み飛ばしてましたorz
でも
page.ShowDialog(); で表示されるダイアログで
"連続紙 15x9inch"を選択した場合
kind は 234
Kind は Custom
(int)page.PageSettings.PaperSize.Kind は 0
になっています。
うざかったらすまんです。消えまつ
>>505 うんこ投げてすまんかった。
Kindは特定の紙のタイプだとPaperKind.Customを返すようだね。
>うんこ投げてすまんかった。 お前素直で良いなw
消えるって言ったけど、最後に言わせておくれ。 「Reflection C# メンバ private」でググって解決できました うんこ投げてくれてありがとう〜。感謝してます
| | | | ∩ ジャーッ ゴボゴボ・・・ __ノ .| | | _ | | .| | ./ )ノ\__ヽ ヽ二二 ヽ -―- | | .//|\ノ(◎) _____/ /" ̄| ヽ∧_∧// .| / / / ( ;´Д`)  ̄ ̄\ | |/⌒゙ / / \ .\ヽ__ノ__,,./。 ゚ |\ .\ .\\::::::::::::::::: \\ ゚ ./  ̄ ̄ ̄ ̄ ̄ ̄ .\\::::::::::::::::: \\ | うんこ流します \\::::::::::::::::: \ .\_______ \\_:::::::::::_) ) ヽ-二二-―'
うぉぉぉかけたぁぁぁぁぁ ところでC#でMixinみたいにしたいんだが誰かいいアイデアないでしょうか。 Mixinしたいクラスをインタフェースとインプリメンテーションに分けて委譲してみたけどめんどくさすぎて気軽な実装に耐えないです・・・
>>223 と同じことで行き詰まってしまってます。
>>231 をもうちょっと詳しく教えて貰えないでしょうか?
Form1のbutton1のClickイベントハンドラで、BackgroundWorkerを開始して、
backgroundworker1のDoWorkイベントハンドラで、別に作ったClass1の処理をします。
その処理のメッセージをForm1のMessageBox.Showと同じように扱いたいのです。
Class1からどのようにしてForm1のメッセージを処理するメソッドを呼ぶのでしょうか。
>>511 C#3.0の拡張メソッドを使えば目の錯覚を起こせるかも
>>512 public partial class Form1 : Form
{
BackgroundWorker backGroundWorker = new BackgroundWorker();
public Form1()
{
InitializeComponent();
backGroundWorker.DoWork += new DoWorkEventHandler( backGroundWorker_DoWork );
backGroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler( backGroundWorker_RunWorkerCompleted );
}
private void button1_Click( object sender, EventArgs e )
{
backGroundWorker.RunWorkerAsync();
}
void backGroundWorker_DoWork( object sender, DoWorkEventArgs e )
{
Class1 class1 = new Class1();
class1.TestMethod( this );
}
void backGroundWorker_RunWorkerCompleted( object sender, RunWorkerCompletedEventArgs e )
{
MessageBox.Show( "complete" );
}
public void Report()
{
MessageBox.Show( "stop" );
}
}
続き class Class1 { delegate void DelegateForm(); public void TestMethod( Form1 form ) { for( int i = 0; i < 10; i++ ) { if( i == 5 ) form.Invoke( new DelegateForm( form.Report ) ); Thread.Sleep( 500 ); } } }
Formのサイズとか位置をバインディングしたら、体感速度が遅くなったよ。 Debugでやってるからかもしれないけど。
ListViewItemのタグに数字のテキストを入れています。 string型の変数にそのタグのテキストを代入することはできたのですが、 それをintの変数に代入できません。(下の式) 初歩的な質問で申し訳ないですが、ヒントで結構ですので 教えていただけませんでしょうか? (できない式) private void btnApply_Click(object sender, EventArgs e) { foreach (ListViewItem itm in lvwSkillTable.CheckedItems) { int tagNum; if (itm.Checked) tagNum = Convert.ToInt16(itm.Tag.ToString()); if (tagNum = 77) MessageBox.Show("できた"); //intに変換できたか確認 } } (できた式) private void btnApply_Click(object sender, EventArgs e) { foreach (ListViewItem itm in lvwSkillTable.CheckedItems) { string tagNum =null; if (itm.Checked) tagNum = itm.Tag.ToString(); MessageBox.Show(tagNum); //stringに変換できたか確認 } }
コピペミスってないとして そのできない方コンパイルできたっけ
いや、コンパイルできません。 型変換とか色々いじってはいるのですが、まだ出来ず・・・
>>520 君はVB使いかね?
コンパイルエラーはif (tagNum = 77) の所で出てるんじゃないの?
そうです。VB以外を覚えようとC#やりはじめたばっかりです。 >コンパイルエラーはif (tagNum = 77) の所で出てるんじゃないの? そのとおりです。ということは型変換に問題があるんじゃなくて、 ifのところにあるのですね。 調べてみます。
int tagNum; if( Int32.TryParse( itm.Tag.ToString(), out tagNum ) ) { MessageBox.Show( "できた" + tagNum ); } else { MessageBox.Show( "失敗" ); } ×if (tagNum = 77) ○if (tagNum == 77) つーか Convert.ToInt16って、shortにしたかったのか?
勝手に型変換が悪いと思って色々いじくっていたんですが、 tagNumを初期化してなかったのが原因なのですね。 int tagNum =0;とすることでコンパイルできました。 お騒がせしました&ありがとうございました。
>>523 予想:現在やっているのはVBの移植作業
>>521 VBって = 一つでいいの?
じゃあ
bool equal = string.Empty == "";
みたいな事出来ないの?まあ使わないけど。
Intならなんでもよかったので意味なく16にしました。 523の式のほうがスマートですね。 使わせていただきます。 真夜中にありがとうございます。
529 :
デフォルトの名無しさん :2006/08/12(土) 00:57:36
数値計算用のfortranのコードをC#に移植しています。 問題なく移植できているか確認するために、 各関数の入出力値をファイルに書き出して、 境界変数としてFortranのコードに与えて、出力が一致することを確かめています。 しかし、C#で実数値を文字列化して書き出すと、例えば 0.0000024835268656412763 ↓ 2.48352686564128E-06 = 0.00000248352686564128 となってしまい、微妙に値が変わってしまいます。 数値計算的に微分値などを求めるようなコードもあるため、 このあたりの僅かな差が出力に大きく影響を与えてしまいます。 何か解決方法は無いでしょうか?
>>528 なんか変な方向に誘導しちゃったようなので一応フォローしとくと
比較演算子は=じゃなくて==な
>>529 Decimal型使えば解決するかもしれない
decimal使えばマシになるんじゃね つか浮動小数使う時点で誤差はあきらめんといかんな
24835268656412763 …… 仮数部 54 ビットか。 Double は仮数部 24 ビットまでしか入んなかったような希ガスー。 C# って任意の精度を持つ浮動小数点なかったっけ? 探せばどこかにあると思うけど。
……適当すぎたな。すまん
>>532 は忘れてくれ。
タグに文字列なんて入れないで独自の構造体なりを持たせればいいのに。
>>514 ,515
出来ました!
>class1.TestMethod( this );
>public void TestMethod( Form1 form )
ここがポイントでした。
ずっとClass1のTestMethodでForm1をnewしていて・・・。
こうやってみると無茶な書き方だと思うのですが、そんな書き方思いもよらなかった。
何とか自力解決しようと思ったのですが、思い切って聞いてよかったです。
自力じゃ確実に無理でした。
どうもありがとうございました。
536 :
491 :2006/08/12(土) 02:36:08
出来たと思ったのですが、user.configに保存されません。 フォームのサイズとかは保存されているのですが… 他にも何か設定が必要なのでしょうか?
あれって一部うまくいかないのがあるから対応していないのかも フォームの最大化最小化とかバインディングさせようとすると とんでもないことになったことがあったような気ガス
RestoreBoundsじゃないとかいうオチですか?
>>515 ところで最後の
Thread.Sleep(500);
はなにか理由があるのでしょうか?
RestoreBoundsって手動のコードで使うときは信用できなくないですか? LocationChangedのときにプロパティみてもLocationが0,0だったり
RestoreBounds プロパティは、Form クラスの WindowState プロパティが Normal でない場合のみ有効です。
スレイプニルみたいなソフトを作りたいのですが、ちっとも分かりません。 早わかりとか、かんたんとか書いてあるのに全然難しいです。 入門ページとかは変数とかの話ばっかりで役に立ちません。どうすればいいですか。
諦めたら?
>>543 あきらめろ。お前にゃ無理。
あるいはふらっとスレにでも池。その前にその腐れ文章なんとかせんと、
向こうでも相手にしようがないけどな。
>>545 玄人でもないくせに説教されてもうざいだけだ。
決めつけ同士仲良くしろよw
釣りだろ。
ダメなやつは何をやってもダメ
551 :
玄人 :2006/08/13(日) 02:44:14
>>547 身に覚えがあるのかよ(プゲラ
いい加減気づけよ、厨房wwwwwwwwww
2ちゃんってほんと割り切って読まないと心やられるな。
553 :
デフォルトの名無しさん :2006/08/13(日) 03:41:46
>>543 >早わかりとか、かんたんとか書いてあるのに全然難しいです。
>入門ページとかは変数とかの話ばっかりで役に立ちません。
まずは、基礎をしっかり身に付けてからじゃないと。
難しいからといって投げ出すな。すぐに成果が出るものだと思うな。
ソフト開発に限らず、何事も基礎がしっかりしてなきゃ糞だ。
基礎をすっとばしてとにかく今回限りブラウザを作らなきゃいけないっていうなら、
そもそもC#じゃなくてVB.NETを使いな。基礎がわかってなくてもある程度動くコードが組めるから。
まぁURL入力してそのページを表示するだけのアプリならたぶん簡単に作れるよ。
スレイプニルと同程度なクオリティのアプリを作ることは不可能だろうがな。
>>553 スレ違い、つーか板違い
//チラシの裏 それにしても VC#2005は凄いな コードも書いてる途中からどんどん注意してくれるし 効率いい 参照渡しなのか値渡しなのか まだややこしいけど 間違っても即注意してくれるし 同じ事を期待してVC++2005を触ったら全然違う…… IntellisenceもBCBとそう変わらんのでは さらにManagedとUnManagedが入り乱れたコードは すんげーよみにくい //チラシの裏終わり
>>555 >IntellisenceもBCBとそう変わらんのでは
アホか。BCBの方が優秀
うぉぉぉぉ おれにMIXINをさせてくれぇぇぇぇぇ委譲は疲れた。 まじで頼みますヘジさん・・・
558 :
225 :2006/08/13(日) 16:47:37
>>225 で描画される文字列の大きさを取得する件について質問したものです。
>>229 にてstringformatを使ってうまくいったと書きましたが、
文字によってはやはりずれるようです。
やりたいことはDrawString()で描画する文字を完璧に右揃えにすることです。
描画基準座標から描画された文字の一番右端までが何ピクセルかを調べたいのですが、
>>229 の方法、
StringFormat sf = StringFormat.GenericTypographic;
StringFormat sf = StringFormat.GenericDefault;
ともに数ピクセルずれてしまいます。
ちなみに文字は半角・全角文字の混合です。
何か他に検討すべき項目があれば教えてください。
>>558 単に
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Far;
g.DrawString( str, font, bursh, rectf, sf );
じゃだめなの? >右揃え
560 :
225 :2006/08/13(日) 17:19:04
>>559 sf.Alignment = StringAlignment.Far;
やってみるのは初めてなのでやってみました。
("MS UI Gothic", 11.5f);でやってるのですが、
右端の文字が”と” ”り” の場合で1pixelずれてしまってます。
やはり1pixelくらいは諦めた方がいいんでしょうか・・・
それはフォント的にはスレてない。見た目上ズレてるように感じるだけ。 " とa" " りa" で比較すればよく分かる。
562 :
225 :2006/08/13(日) 17:38:51
レスどうもです。 右端の文字が 番 と り をStringAlignment.Far; でbmpに書き出してペイントで800%にしてピクセル数えたところ 番の右端を0とすると と = -2pix り = -1pixなのですが… とa、りaでやってみます。
563 :
225 :2006/08/13(日) 17:42:33
訂正 右端の文字がそれぞれ と=-1pix り=0 a=0pix でした。
フォント右端をピクセルまで揃えるなんて殆ど不可能じゃないか? フォントのグリフごとに右端のピクセルの位置が違うから。 バッファに描画してみて、 ピクセルをスキャンして右端のピクセル位置取得 →差分だけ実際に描画するときずらす とか妄想したけど、そこまでする必要があるんか?
P/Invoke で GetTextMetrics でも試してみれば?
566 :
225 :2006/08/13(日) 20:31:10
諦めるってのが最適解ですかね… もっと簡単にできるのかと思ってました。 お騒がせしました。
MS UI GOTHICってずれるんじゃないの?等幅フォントでやれば?
Stack<>をToArray()したときの要素の順番がPop順ってことに 気付くまで1時間ハマッタ(;´Д`)
しかも Stack<int> stack2 = new Stack<int>( stack1); ってコンストラクタで初期化したときも逆順になると気付くまで更に30分(;´Д`)
コントローラをクリックしてもグラフィックが変化しないようにするにはどうすればよいのでしょうか. 例えばButtonをクリックするとButtonがへこむエフェクトが表示されますがそういうのを一切無効 にしてButtonの絵が描かれた画像をクリックしているような感じにしたいのです. 誰かやり方分かる人いますか?
ControlPaintでボタンを描くというのはアリか?
572 :
570 :2006/08/14(月) 04:12:36
ControlPaintで用意されていないコントローラも書きたいんです.
>>569 むむホントだ。
StackにはCloneがあるけどStack<T>にはないから単純にコピー作れねぇ。
MemberwiseClone はProtectedだし使いにくい。
574 :
デフォルトの名無しさん :2006/08/14(月) 09:04:01
プログラムの実行時にリストボックスにオンマウスで説明?というか コメント?みたいなものが表示されるようにしたいのですがどのように すればよいでしょうか? イメージとしては.NETのエディタで入力中にリストボックスが出てくるときに オンマウス?で表示される説明のようなものです。 お願いします。
リストボックスなどのコントロールにマウスがオンしたときのイベントを拾えばいい
576 :
574 :2006/08/14(月) 10:09:30
>>575 ありがとうございます。
>>574 の機能=XMLコメントというんですかね?
説明出てくる機能が標準で装備されてるのかと思ったら違ったのかな・・
ToolTip みたいなのを想像しているんちゃう?
「XMLコメント」ってソースに書くコメント?
これからC#の勉強をしようと思うんですが、おすすめの入門書とかありませんか?
581 :
デフォルトの名無しさん :2006/08/14(月) 16:30:04
TrueDBGrid1を使用しているのですが、グリッドにIME変換では出てこない文字の、 庋「たな」(まだれに支えるの文字)などを、セルにペーストすると、?と表示されるのですが、 何かご存知の方いらっしゃいますか? セルにフォーカスを当て、カーソルを表示させた状態でペーストすれば、きちんと文字が表示されるのですが、 フォーカスだけ当てて、ペーストすると、?と表示されます。
金払ってるならメーカーに聞け
Flash
585 :
デフォルトの名無しさん :2006/08/15(火) 16:08:57
コンボボックスを使っていて、前に選択されていたItemのインデックスを保持しておくにはどうしたらよいでしょうか? Clickイベントで、コンボがクリックされた時にその時点のインデックスを保持すれば、 とりあえず変更前のインデックスは保持できるのですが、マウスホイールをコロコロ転がすとクリックイベントが発生しないので、 前のインデックスが保持できません。 SelectedIndexChangedでは今のインデックスしか取れないし、何か手はないでしょうか?
>>585 SelectedIndexChangedみたいな選択変更系のイベントで
前選択時のイベントが渡されてくる奴が確かあった。
それ系のイベントハンドラを(実際にプログラム書いて)
全部調べてみるべし。
587 :
586 :2006/08/15(火) 16:31:04
前選択時のイベントが渡されてくる奴が確かあった。・・・・・・× 前選択時のインデックスが渡されてくる奴が確かあった。・・・○ ゴメソ
>8 フリーターがいちいち仕事を探す方式より、 派遣会社に登録して仕事を貰う方が楽。
public class Foo{ pubic bar(Object o) pubic bar(Object o,Object o2) pubic bar(Object o,Object o2,Object o3) } というクラスをCOMに公開すると、メソッド名が bar,bar_2,bar_3 名前に変換されてしまいます。 この変換なしにクラスを公開したい場合はどうすれば良いでしょうか?
cからもアクセスできる仕様だから引数ちがいの名前同じ関数は無理じゃないか
ListViewの高速化でアドバイスがほしい。 通常、大量の行を一度に追加すると時間を要するが、追加後の動作は速い。 一方、仮想化すると動作が軽くなる代わりに、扱いがめんどうで高速でスクロールするとちらつく。 スレッドでリアルタイムに追加したらどうかと考えたが、 AddRangeでの追加を複数回に分割したところで動作に変化はなかった。 public MyClass(){ Thread t = new Thread( new ThreadStart( setListView1 ) ); t.Start(); } void setListView(){ int lvSize = 10000; ListViewItem lvi; ListViewItem[] lviArray = new ListViewItem[ lvSize ]; for( int i = 0; i < lvSize; i++ ) { lvi = new ListViewItem( i.ToString() ); lviArray[ i ] = lvi; } Invoke( new setListViewItemDelegate( setListView2 ) ); } void setListView2(){ listView1.Items.AddRange( lviArray ); } ListView.AddRangeって、Form上のコントロールのときに時間がかかるけど、 親コントロールを持たないListViewだと高速なんだな。 それならと、先に行を追加しておいたListViewをFormに登録してみたら、 今度はFormへの登録時に時間がかかった。 どうしたら読み込みも速くスクロールもちらつかない、なんて動作を実現できる?
BeginUpdate 〜 EndUpdate は使わんの? 一度に登録するんなら効果少ないかもしれないけど。
>>592 書き漏らしていた。Begin...も試した。
void setListViewItems()
{
listView1.BeginUpdate();
listView1.Items.AddRange( items );
listView1.EndUpdate();
}
挙動はまったく変化なしだった。
ダブルバッファを有効にしてもちらつく?
>>594 ビンゴ、それだ!
DoubleBufferedなんてのがあったんだ。これなら仮想ListViewでもいける。
true/falseと使い分けられるってことは、使用時に何かデメリットがあるのかな。
その辺調べてみる。ありがとう。
あ、それから別スレッドで Add するのはまずいぞ。Invoke 経由で呼ばないと。 でそうすると別スレッド使う意味が無くなる。
>>596 いや、Invoke 経由で呼んでるように見えるんだけどなw 後半は同意だが
おお本当だ。すまんかった。 いやほら this. も listView1. も付いてないと、なんかこう見えなくてさ。
599 :
591 :2006/08/15(火) 23:41:41
>>596-598 すまぬ。ソースはオリジナルに似せて適当にでっち上げた物ゆえ。
あと、threadやinvokeもほとんど使ったことなくて、手当たり次第に試しただけ。
訊いて勉強になった。
DoubleBufferを有効にするとマウス選択の矩形領域が半透明になるんだよな どういう仕組みになってんだか
データベースアプリを作ってます。 テーブルに新しいフィールドを追加しました。 これをデータベースダイアグラムに反映させるところまではできたのですが、 TableAdapter に反映させる方法がわかりません。 どうしたら良いのでしょうか?
アホな質問かもしれませんが教えてください。 win32のハンドルとか受けるときにIntPtr使えって見たんですが、 ULONG_PTR は UIntPtr 使わなくって大丈夫ですか? ULONG_PTR の実体が Int32 や Int64 の範囲を越える場合ってありえるんですか?
ポインタはポインタだし。 0x7FFFFFFF 超えたところでマイナスになるだけだから気にすんな。 同様に DWORD を Int32 で受けても構わないぞ。
604 :
574 :2006/08/16(水) 00:32:00
>>577 ありがとうございます。toolTipを検索してみたところこれで解決できそうです。
ありがとうございました
605 :
デフォルトの名無しさん :2006/08/16(水) 01:39:43
Visual C# 2005 Express Edition でプログラムを作っている のですが、これで作ったプログラムをフリーソフトとして配布 してもいいのですか?
だめです
いいです
製品買えや(#゚Д゚)ゴルァ!!
商用利用もOK
軍事利用もOK
611 :
デフォルトの名無しさん :2006/08/16(水) 01:56:49
いいみたいですね。 ありがとう。
あーあ…。
>>613 のリンク先の
>Visual Studio 2005 Express Edition があれば Visual Studio は必要ありませんか。
>Visual Studio 2005 Express Edition は、他の Visual Studio 2005 製品ラインとはどのように違いますか。
この質問への回答ってどうなんだろう?
個人で開発するならExpress Editionで十分だと思うんだけどなぁ。
個人で開発って、要するにホビーじゃないか? プロフェッショナルってのは字義通り「それで金を稼ぐ」ことだろうし。
プロフェッショナルで個人で開発してないやつがいないとでも?
プロだったら Express Edition で十分なはず。 コントロールの配置ぐらいにしか使わないんだから。 あとは普通にコマンドラインからコンパイラやal.exe使うし、 シングルモジュールアセンブリしか作れない開発環境なんか 特に必要ない
>>617 >あとは普通にコマンドラインからコンパイラやal.exe使うし、
全盛期の遺物乙
619 :
617 :2006/08/16(水) 09:06:00
>>618 おまいal.exe使わないの?珍しいね。
それで効率的なアセンブリ構成が実現できるの?w
620 :
デフォルトの名無しさん :2006/08/16(水) 09:12:25
リストビューからIEのお気に入りのショートカット(.url)をクリックして axWebBrowser1に表示させたいのですが、「ファイルのダウンロード-セキュリティの警告」 という画面が出て直接表示されません。 「開く」を押すと新しいIEが開いてそこに表示されてしまいます。 これをセキュリティ警告を出さず、直接表示させるにはどのようにすれば良いでしょうか。
Winアプリを作るならEEで十分
正直これだけのもんフリーで出されるとBorlandの立つ瀬がねえな (すでに自壊してるが) かつてのNetscapeつぶしを訪仏させなくもない Turbo Exp. にはほんの少しだけ期待しておこう
>>619 たぶん618はコマンドラインからということに反応したのだと思う。
625 :
620 :2006/08/16(水) 10:23:32
そこで聞けことだろ……
627 :
620 :2006/08/16(水) 10:31:23
あ。すみません。ここの過去スレだと勘違いしてました。 ありがとう。逝ってきます
>>623 Borlandマジ終わったな。
ALMに力を入れるということなんだが、
はっきり一手、ALMとIDEって両輪なんだけどな。
C# で利用できる C++ のSTLの multiset ってありませんか?
STL.NET は C++ からじゃないと使え無くないですか?
データベースアプリを作ってます。 TableAdapter.Insert() を使おうと思うんですが、 ID値が Identity 指定してある場合は、 どのようにコードを書けばいいんでしょうか?
はっきりいって大抵はマルチモジュールいらん。 管理や手間の方がマイナスになる。 alを使わないのが珍しいだって?
なんだジャグ配列って。あんなややこしいもん使わないな。
じゃあIList<IList<T>>とか使うといいよ
WebRequest を使って ftp サーバにアクセスしているんですが、 Proxy プロパティを設定しない場合、「インターネットオプション」のプロキシ設定の 「HTTP の」 Proxy が使われてしまうんでしょうか・・・? (「インターネットオプション」で ftp の proxy を空(直接接続)に設定していても 以下のコードで、なぜか http の箇所で指定している proxy が使われる。) try { WebRequest req = WebRequest.Create( url ); WebResponse res = req.GetResponse(); } catch (Exception ex) { MessageBox.Show(ex.Message); } 環境は C# 2005 Express Ed., Windows XP Pro. です。
HttpWebRequest.Proxy の解説見れ。そこからのリンクも。
640 :
デフォルトの名無しさん :2006/08/17(木) 00:03:21
WebResponseを使用した際に受信したヘッダを見たいのですが、 どうすればいいですか?
641 :
638 :2006/08/17(木) 00:23:49
dクス。 > 要求でプロキシがサポートされていて、プロキシが Proxy プロパティを使用して明示的に > 設定されていない場合、DefaultWebProxy プロパティによって、すべての WebRequest > インスタンスが使用するプロキシが設定されます。 との記述が DefaultWebProxy の項にあったけど、つまり HttpWebRequest でも FtpWebRequest でも、1つの DefaultWebProxy が使われているから、http の proxy になってしまう ということなんだろうか・・・ FTP の proxy はレジストリを読むなりしないと自動設定は無理なんかな。 関係ないけど、HttpWebRequest というキーワードに google.co.jp では1件もヒットしない・・。 すぐ直ると思うけど。
s/Header/Headers/
644 :
デフォルトの名無しさん :2006/08/17(木) 01:03:53
>>642 どうもです。
そのheader プロパティというのを使えば、HTTP/1.0 200 OK
とか見れるのですか?
とりあえず試してから書けよ
646 :
デフォルトの名無しさん :2006/08/17(木) 02:27:12
DataGridView の一番左の灰色の列を消したいんですが、 どうすればいいんでしょうか? ヘルプを見ましたが、わかりませんでした。
RowHeadersVisibleプロパティ
GraphicsクラスのDrawStringメソッドって 引数のFontに等幅フォントを指定しても 微妙に等幅にならずに、数ピクセルずれませんか? たとえばMS ゴシック。 ラベルでTextプロパティに設定した時はきっちり等幅だけど DrawStringで表示したときはずれるんです.... しかもサイズもちょっとちっちゃくなって。 テキストを部分的に色分けして表示したいので DrawStringを使って描画していきたいのですが この問題があってちょっと困ってます。
データの中身に応じて、DataGridViewの行に色を付けたいのです。 可能なのでしょうか? 検索しても、クリックした行の色を変えるくらいしか見つかりませんでした。
一行ずつ追加していって、 追加するときに色を変えれば良いんじゃない?
CellPaintingで色変えるんじゃないの?
DataSetとデータバインディングしています。 DataGirdViewかDataSet 1行づつの読み込みを検知するイベントがあるのでしょうか?
RowsAdded?
RowPrePaint
RowsPrePaintを見ましたが、イベントが難しすぎました。 違うような気がします。 無理かな。。
DataGridViewで列毎にCharacterCasingを設定することは可能なのでしょうか? 可能なら設定の仕方を教えてください
お前には無理
659 :
647 :2006/08/17(木) 18:18:56
なんだこのDataGridView3連発・・・
解決してないけどね&heart;
今斬新なアンカーを見た
664 :
デフォルトの名無しさん :2006/08/17(木) 20:30:42
プログラム初心者です。 WinCEでプログラムを走らせているのですが、 その時の文字のエンコードをUnicodeに変更しなくてはいけません。 Shift_JISからの変更だったので下のようなプログラムを書いて見ました。 StringBuilder _DataArry; string DataArry = _DataArry.Tostring(); byte[] test = Encoding.Unicode.GetBytes(DataArry); DataArry = Encoding.Unicode.Getstring(test); しかし、ビルドをすると 引数を'1'個指定できる、メソッド'GetString'のオーバーロードはありません。 とエラーが出てしまいます。 どこがいけないか、どなたか教えていただけませんか?
>>664 String にUnicodeもShift-JISもない
取りあえずマルチは氏ねば良いと思う
>>667 黙れバカ。知らないんだったら素直にごめんなさいって謝れよ!
669 :
664 :2006/08/17(木) 21:35:47
答えていただいた方、ありがとうございました。 ふらっとに行って見ます。
/\___/\ / / ヽ ::: \ | (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ,,ノ(、_, )ヽ、,, | < まーた始まった | ,;‐=‐ヽ .:::::| \_______ \ `ニニ´ .:::/ /`ー‐--‐‐―´´\
おまんこ
673 :
デフォルトの名無しさん :2006/08/18(金) 13:57:58
____,....
,. ‐';ニ"´ニイ:i!:、ヽ:.:`ヽ、_
/.:///:.イ:.|:|:|i:.:ヽ:.、ヽ:、ヽ、
:.:/:/./://:|:.:|:!:|:|i:.:.:゙,:.:.:.リ:.ヽ\
./:.:/:/:.:.//ハ:.:i:.:l:.:.i:.:.:i:.ヽ`:|:!:.:ヽヽ
:.:/.:/:.:./:.l!::.:.ハ:.V:.;、:i:.:.|:.:.ヽ|:.i:.i:.:.',:.゙:,
/l!:/.:.:/|!.|:.:./ハ:',:|:ヽ:、|!:.:.:.ハ:.||:.',:.i:、:',
!|l,:!:.:.:.:|.| |レ/∧:l:メ!:.ヽ:.:|:.|/:.i:.リ:、',:|:.i:.i
:|l.|:.:.:.:|!.:|:.//¬i:.{‐、.:|.ト、:l:|、:.!:.:.i:ヽ|:.|:|
i:.:| |:.:.|l:.:.l/ィ示ヽミ !.メ| 〉ヽ!:|_!:.|:i.:N:.|
:.:.l!:l、.:.:l、:l`ヽ::ノ_, ' リ |i |.,.ィl、.|::!||:.メ:リ
、:.l!.N、:い!. !く:::ソ } |:.:|/:/
!:i、.i!リ ヽ! , `~ /|:ノ:/
:.i|:iN ` .: ノ /:!レ/′
:、l:|ハ 、____ /::i/'′
小| ヽ `''ー‐`'' /|/l
:.:トヽ \ / r‐-、r‐-、r‐-、r‐-、
N|`ヽ ヽ、 , '´ ┌───────┤ || || ||_..._|‐───────┐
``'''‐- ..,_ iT"´ | ー──────‐ |_...._|| ||_...._|ヽ_,ノ. ─────── |
、_ ``''‐N、 | .ヽ_,.ノ|.-‐.|ヽ_,ノ |
`ヽ、 i | ─────────. `ー' ー‐─────────‐ |
、 `ヽ、 | |
>>670 「ついでにお前も氏んでおくか?」とほざき .|
、`ヽ、 \ | | ──────────‐ :. ──────────‐ |
\ \ ヽ.|ヽ | その24時間後に醤油を一気飲みして自害 |
ヽ ヽ | \ | ──────────‐ :. ──────────‐ |
これはなつかしいAA
TabControl のページを切り替えるための「タブ名」が書かれたところ に強制的にフォーカスを移すにはどうすればいいでしょうか? TabControl.Focus(); TabPage.Focus(); としても、「タブ名が書かれたところ」には移動しませんでした。 どなたかご存知ですか? ちなみに .NET CF1.0 で試しています。
676 :
デフォルトの名無しさん :2006/08/18(金) 16:27:04
GetRequestStreamの動作が遅いのですが、早くする方法 はないですか?
>>675 TabControl.SelectedTabプロパティ。
>>678 変数みたいにささっと扱いたいときにプロパティ
それ以外はメソッド
一行目に書いてある。 「一般的に、メソッドは操作を表し、プロパティはデータを表します。」
VIPPERに好かれて困っています
http://ex16.2ch.net/test/read.cgi/news4vip/1155903854/ >>1 (巨乳・ナンパ多し) 会社の先輩
年齢:23歳 年齢:33歳 ♂
彼氏いない暦:半年 彼女いない暦:恐らく年齢
身長:158a 身長:160cmくらい
体重:51` 体重:80`くらい
先輩は
>>1 がVIPPERとは知らない
Sサイズのシャツから肉がはみ出てる
変にオサレぶってかっこつけてキモイ。
でもオバサマには人気ある
上司とすげー仲良い(信頼されてる)
メールの内容
「今日は楽しかったおo(^ω^)o 注)一緒に帰っただけ
また月曜に会おうNe星
ちゃんとお風呂入るんだおwwwww」
「俺はインターネッツに詳しい」と豪語(ry
会社が終わるとロッカー前で毎日待ち伏せ
→同じ路線なので着いてこられる
→「本屋に寄るから」と断ると一緒に来る
→「今度一緒に映画行こうか(^ω^)」
→断ると以下ループ
>>678 VSのオブジェクトブラウザを開いて、適当なクラス(フォームとか)について
どんなのがプロパティで、どんなのがメソッドなのか眺めてみると
参考に成増ですよ。
プロパティでも処理が書けちゃうってとこがよくないよな
処理かかないならパブリック変数でええがな
EventArgs派生クラスだとpublic readonlyな変数にしちゃうことしばしば。 あとは根本的なものとしてプロパティは複数引数渡せない。やりようはあるだろうけど。
Microsoft.VisualStudio.Shell.Interop ってどうやれば使えるの? ヘルプにも載ってないし。 VS2005からなくなったんですか?
名前からして使用意義が微妙だが。 %windir%\assembly\gac\アセンブリ完全限定名\ 以下にアセンブリが入ってるから、 コマンドプロンプトでフルパス取得してダイアログのファイル名に突っ込めば参照できる。
DataGrideViewを使ってみようとプロパティを眺めていたら頭が痛くなってきた。 簡単な使い方の説明と、メンバ、特に描画に関するプロパティの項目の違いなどを、 絵付きで解説したら十分一冊の本になりそう。 というか出して欲しい。
プロパティを眺めてるだけで痛くなるような頭ってことだろ
最適化のために結構癖があったり、ComboBox型の列とか結構複雑でおまけに WindowsFormsのComboBoxからは想像できない挙動になっていたり、 普通にMSDNからだけだとかなり工数かかる内容だと思われ。
つまりライターに仕事の余地を残すMSの商法か
EnvDTE を使えばプロジェクトを作ったり、 フォームを作ったりできますが、 EnvDTE で作ったフォームにボタンとかラベルとか 追加するにはどうしたらよいのでしょうか?
693 :
686 :2006/08/19(土) 20:56:50
☞
>>687 ありがとう。参照できるようになった。
引数に char を渡した時、char を取るオーバーロードがなかった場合に 勝手に他の数値型のオーバーロードを見に行くのはどうにかならんかな……。
暗黙に変換できる型でオーバロードすると読みづらくないか? bool equals(object o); bool equals(MyType t);
どちらに渡しても同じ動作することが 『可能な限り』 保障されるべきだとか個人的には思っていたり。
変数の名前を文字列化する方法は有りますでしょうか? 変数の名前と値を出力するために、毎回、 Trace.WriteLine("foo is "+foo.ToString()); と書くのは面倒なので、 Cプリプロセッサの # みたいなのがあれば、 void debug(foo){ Trace.WriteLine( #foo "is "+foo.ToString()); } としたいなぁと思いまして。
無い
つか今更 printf デバッグってのも……
マルチスレッド関係だとprintfデバッグ結構有効では。 適当に重要所にDebug.Printを埋め込んであるとチーム的にわかりやすいような気がする。
Printデバッグ使わないでどうやって実行させながらチェックするのさ。
ブレークポイント
C#にprintfなんてあったか?
.NET2.0ならDebug.Printが使えるよ
Dignostice.Debug.WriteLine Dignostice.Debug.Print Console.Write どれも同じに見えるんですけど、使い分けはどうすればよいの?
>>705 Debug と Console は全く用途が異なるでしょうに
クリックできないフォームって作れませんか? ・半透明 ・「WWW用」「メールサーバー」などの文字を表示 ・終了や設定変更はタスクトレイアイコンから行う。 画面に表示されているけど、普段の操作には影響を及ぼさないような そんな感じです。
WindowスタイルをTransparentに設定すればできたはず。 protected override System.Windows.Forms.CreateParams CreateParams{ get{ CreateParams cp; cp = base.CreateParams; cp.ExStyle = cp.ExStyle | 0x00000020;//WS_EX_TRANSPARENT return cp; } } かな
Debug.***はReleaseビルドするとコードが出力されないので便利 Debug.PrintはFormatが使えるから短くかける Debug.Write〜はオブジェクトが引数のオーバロードがあるから楽
BackgroundWorkerを、デザイナで貼り付けたりして使うんじゃなくて Componentとは一切関係の無いクラスの中でオブジェクトを作って使ってもいいの? アプリケーション自体はFormを持った普通のものなんだけど
いいんじゃね
>>709 おぉぉいつもDebug.Writeline(string.Format(
とかやってたよ。さんくすこ。
713 :
710 :2006/08/20(日) 21:57:40
Reflectorで調べてみたら特に問題無さそうに見える… でも知れば知るほどそんなに良いものではないように感じられてきたので 直接スレッドを使うことにするよ
714 :
707 :2006/08/20(日) 22:02:16
>>708 さんのやつを使ったらうまくいきました。
サンクス
直接スレッドのほうがそんな良いものではないだろうに。
>>713 いやいや素直に BackgroundWorker つかっとけ。
今、ストリーミングを再生・録音するソフトを作りたいと思っています。 できればC#かVB.NETで。。。 「Windows Media Player」や「Net Transport」もあるけど、 単純な機能だけに絞った再生・録音ソフトを自分で作りたいんです。 参考になる書籍とかサイトを教えていただければありがたいです。 開発を始めたら、一緒に情報共有していきたいです。(・∀・)
今、世界を支配する国家を作りたいと思っています。 できればユーラシアかアメリカ大陸で。。。 「中華人民共和国」や「アメリカ合衆国」もあるけど、 単純な支配機能だけに絞った帝国を自分で作りたいんです。 参考になる書籍とかサイトを教えていただければありがたいです。 開発を始めたら、一緒に専制統治していきたいです。(・∀・)
719 :
717 :2006/08/21(月) 10:53:40
ワロタ
721 :
717 :2006/08/21(月) 11:15:45
>>718 Managed DirectX : DirectShow
DirectShowってそんな恐ろしい機能だったのか
DirectShowは「ファイル」の再生とキャプチャの機能しか持ってないよ。 「ストリーム」の再生や保存機能は持ってない。
>>724 それはMicrosoft.DirectX.AudioVideoPlaybackじゃまいか
「DirectShow」がファイルの再生とキャプチャしかできなかったら話にならん
ただ、DirectShowはManaged DirectX(9.0c)にはないんで、COM版かDLLを呼び出して使うしかないはず
727 :
726 :2006/08/21(月) 18:03:58
訂正 COM版かDLLを呼び出して使うしかないはず ↓ COM版のDLLを呼び出して使うしかないはず 言い回しがくどいかな 要はCOM版のDirectShowを使えって事
728 :
724 :2006/08/21(月) 21:07:08
あ、ごめん。 「ファイル」の再生とキャプチャの機能しか持ってないよ。 というのは間違いだたね。 漏れが言いたかったのは後半のことで、 ストリームで流れ込んでくるWAVEデータを取り込む 機能やそれをファイルに落とす機能までは持ってないよ ということです。失礼しました。
729 :
デフォルトの名無しさん :2006/08/22(火) 04:43:55
ListView
C# の相談って言うより .NET の相談だな
>>731 まあ、ライブラリ全部.NETに依存してるんだからしょうがない。
WindowsServer2007やVistaの次からは、運用管理でも.NETを使うようになるんだな。
まあ.NETはOSの一部になる(はず)だから意識して.NETを使ってると思うIT Proはいないだろうね 今はCOMが管理インタフェース(WMI)の背景技術にいるけど意識なんてしてないだろうし スクリプトにしても、COMにはWSH、.NETにはMSHがあるけど、きっとほとんどのIT ProはWSHでCOMがどうのなんて意識せず、TechNetスクリプトセンターのコピペ以上の意識は無いだろうな 何の話だったっけ
>>734 が聞きかじった半端な知識を披露して恥をかく話じゃないの?
夏も終わりまであと少し
ムツカシイ言葉で厨をイジメるスレはココですか?
COMを馬鹿にするな。 作る側になることなんて一生ないんだろうな〜て思ってたけど 今ごろになって舞い降りてきやがった。 古典的なDLLをC#から使いたかったわけなんだけど 仲介役ににはもってこいだな。COM
あいかわらず学生が多いな、このスレは・・・(´・ω・`)
おまんこ
仲介役ならC++/CLIなどで.NETなラッパも作るという手段もある。 まあでもそういうCOMの使い方もありかな。
逆にCOMから.Netで作ったDllって使えないの?
使える。MSDN 見れ。
C#でBandObject作るやつとかもそうだよね
夏夏ってうるせぇんだよ! 10年以上春休みが続いてる俺の気持ちを察しろ!
751 :
750 :2006/08/23(水) 10:04:50
誤爆しました orz
イ`
public partial class APPEntry { IEnumerable<int> BottomTop { get { yield return 1; yield return 2; yield return 3; } } IEnumerator<int> BT { get { yield return 1; yield return 2; yield return 3; } } } すまんがBottomTopは何でコンパイル通るの?暗黙の変換でもついてるのか?
IEnumerable と IEnumerator どっちでもいいんだよ
BTのほうだとコンパイラが勝手にIEnumerableを実装したクラスを生成するってことかいな?
とりあえず yield はきもい
757 :
755 :2006/08/23(水) 11:52:25
ごめん。BottomTopの方ですね・・・orz
>750 なんの話なのか気になるのは俺だけ? w
System.Uri のコンストラクタで Uri(string uriString, bool dontEscape) が Obsolate で dontEscape が常に false として扱われてしまうんだけど Shift_JIS などでエンコーディングされたアドレスの Uri インスタンスを 作るにはどうすればいいの
テキストボックスの背景に画像を貼り付けたいんですが できますか?
できます
画像の縦横比を保ったままフォームのサイズに合わせて フルに写すように画像をリサイズするとなるとめんどくさそう。
>>759 デコードして食わせりゃ委員ジャマイカ?
>>762 Transform使えば一行でできるでしょ
private void aa(int[] values) { ・・・・ } 上のような関数に2次元配列を int[,] a = {{1, 2}, {3, 4}}; aa(a[0]); こんな感じで使う事はC#は出来ないのでしょうか? 出来た言語もあったと思うのですが・・・。 上記のような事をするには、 2次元関数を一次元に変えるか 2次元関数ごと送るように関数を変えるしかないのでしょうか。
ジャグ配列を使うとか int[][] a = { new int[] { 1, 2 }, new int[] { 3, 4 } };
ジャグ配列では問題なく動きました。 が、配列が大きいと結構遅くなりますね・・・。
もしaaを書き変えられるとして俺なら、 aaの引数をIListにして、さらに767のようなことができるよう、 自分で2次元配列の特定の要素だけを参照できるようなIListを実装する。
>>767 そういうときはaaの引数の型はIEnumerable<int>にした方がいいんじゃないの
静的クラスを関数の引数(Object型)に渡すのって出来ないんですか? 関数名(クラス名); とやってもコンパイラが「'クラス名' は '型' ですが、'変数' のように使用されています。」と言ってきてビルドできません。
関数名(System.Type type) として、 関数名(typeof (ClassName));
774 :
772 :2006/08/24(木) 20:02:52
>>773 ありがとうございます、知識が一つ増えました
ただ、.Net Frameworkのメソッドに渡したかったので引数の型は変更できません
と思ったら、
public XmlSerializer (Type type)にtypeof(静的クラス名)を渡した時点で
「静的型は、パラメータや戻り値の型としては使用できません。」と言われました
もしかして
>>772 もこう言われるのかも知れません
ちょっと実行してきます
静的クラスはシリアライズできなくて当然だろが おまいに必要なのは静的クラスじゃなくてシングルトンだ
776 :
772 :2006/08/24(木) 20:35:26
静的クラスであっても
>>773 はできますね
>「静的型は、パラメータや戻り値の型としては使用できません。」
はXmlSerializerが言ってくるメッセージでした
ただTypeを渡しても中身は渡せないような…
そもそも静的クラスの型が参照できる範囲では静的クラスを渡す必要がないので
こういう作り方をするなってことですね、失礼しました
え?
静的クラスを渡すって…… 静的クラスはインスタンス化できませんよ
……静的クラスとは何を指す? static のついた内部クラスのことか?
> ただTypeを渡しても中身は渡せないような… リフレクション(GetMethodとか)を使えばTypeオブジェクトが表す静的クラスのメソッドを呼び出したりできるよ 意味があるかは別だけど
まぁだから根本的に静的要素、動的要素の区別がついてないんだよ Reflectionがあるから、Cとかよりややこしいのは確かだがな
>>782 thx。static 制約付きのツールキット用のクラスね
784 :
デフォルトの名無しさん :2006/08/25(金) 08:13:09
.Netで簡易2chブラウザ作ってるんですが、 書き込み前のクッキー取得の際にRefererとUser-AgentをPOSTすると、りふぁら情報がありませんと返ってきます 板のトップページのURLをbyte型になおして送ってるつもりなんですが… どうしたらうまく行きますでしょうか…
>>784 なぜ byte 型に直す?
HttpWebRequest 使ってるなら Referer と UserAgent に string セットすれば良いはずだけど。
786 :
784 :2006/08/26(土) 01:51:31
>>785 ありがとうございます
なんとかなりました
次にこの取得したcookieを保持して
>>784 の方法で書き込みデータをPOSTしようとしたのですが、クッキー確認のページが返ってきます
PONとかHAPだとかという値は取得できたことは確認できているのですが、
どうすればクッキーを保持した状態で書き込みできるんでしょうか?
てめえはTwintailのソースでも読んでろよ
>>786 HttpWebRequest.Cookies に、毎回同じ CookieContainer のインスタンスを代入してリクエスト飛ばせばOK。
クッキー帰ってきたら自動的に CookieContainer に入っていくから、次回もそのコンテナを使うの。
>>787 実は twintail は↑みたいにしてないんだ。なぜか。
>>786 HttpWebRequestのHeaders.Setにクッキーもセットしたら?
>>728 ストリームのURLを抽出したり、通信プロトコルの解析まで
するような機能は持ってないからな、DirectShowは。
byte[] 内の指定された位置から始まり、'\0'で終わる ユニコード文字列を string にするにはどうしたらよいのでしょうか? 二つ連続して'\0'が並んでるところを検索して長さを測り、 Encoding.GetString(byte[],Int32,Int32) を呼び出すより スマートなやりかたがあったら教えてください。
unsafe内で、文字列の開始位置へのポインタをchar*にキャストし、 それをコンストラクタへ渡すということはできないかい?
793 :
デフォルトの名無しさん :2006/08/26(土) 14:54:48
VS2005を使っています。 ダイアログの文字列などを「日本語」と「日本語(ひらがなのみ)」で 切り替えられるようにしたいのです。 Localizableをtrueにして「ひらがな」の文字列を 恐らく誰も使わないであろうLanguageで設定する以外の方法で、 簡単に実現する方法はありませんか?
普通にリソースに突っ込んどいて 条件でどちらを読むか指定したらいいんでない? コントロールのテキストだったら数が多いと手動でやるのは大変だけど メッセージボックス程度なら簡単でしょ >恐らく誰も使わないであろうLanguage に設定したら、OSがその言語設定になっていないと でてこないっしょ
C#の読み方がわかりません
796 :
デフォルトの名無しさん :2006/08/26(土) 19:02:52
ShowDialog()でモーダルフォームを出すのですが ある一つのフォームの場合のみ、親フォームをクリックできてしまいます。 その他はちゃんとモーダルになってます。 どうすればモーダルになるでしょうか?
何を言っているかがわかりません
>>795 シープラプラのプラプラ がくっついたヤツ
しーすみとも
しーしゃーぶ
>>796 親と同じスレッドでShowDialogしてるか確かめる
ガスタムコントロールてExpress Editionでも作れるんですか
どうして作れないと思ったか知りたい
>>794 レスThxです
やっぱり楽をする方法はない、ってことですね・・・
806 :
デフォルトの名無しさん :2006/08/27(日) 08:44:40
テキストボックスに背景を表示する方法を調べているんですが textboxを継承したクラスにonpaintをオーバーライドしてやれば できるんでしょうか?
>>804 スレ違い
どっかいけ!!
くそ教えて君
>>807 じぶんなりにやってできなかったので質問してます。
カレイにスルー
じゃあ自分のレベルにふさわしいところに行けよ
できるかできないか聞いてるだけなのに
OnPaint自前描画でごりごりやれば何でもできる
>>813 ありがとうございます。もう少し勉強してみます。
でたな! 何も教えないセコセコ君!
質問のレベルに見合った解答が付く。 ただそれだけのことだ。
TextBoxってOnPaintとか呼ばれないっしょ Paintイベントで何かやっても無駄っぽ
2ちゃんで質問なんかしたってダメ。 みんな人間の意地悪な本性むき出しだからね。 匿名掲示板だからしかたないよ・・・
>>818 くだらない煽りを入れるな。
マジレスしてくれている人達に失礼だろ。
>>818 取り敢えず、お前が意地悪だという事はよくわかった。
でも誰でも意地悪をむき出しにするとは思うな。引き籠もり君。
でもさぁ、2ちゃんみたいな匿名掲示板だと、 人って攻撃的で意地悪になるもんだよ。 あとスケベや差別根性なんかもむき出しだよね(・∀・)
日本人は特に、ね
はいはい、極論極論 木を見て森を見ず 一を知って十を語る ウリナラマンセー
なにこの安全でない流れ
もっとセキュアなスレにしろよ
List<string>のTypeをとるとSystem.Collection.Generic.List~1[[System.String,mscorelib,ver・・・・]]となかのstringが長い名前になる。 Find(List<string> strList)のようなメソッドのMethodInfoのParameterをとるとSystem.Collection.Generic.List~1[System.String]とみじかいなまえになる。 この違いはなんなんだらう・・・
MessageBox.Show( type.ToString() ); MessageBox.Show( type.FullName ); の差?
828 :
デフォルトの名無しさん :2006/08/27(日) 21:44:45
cookiesの話ですが、 Getcookiesクラス、kakikomiクラスというものを作って Getcookiesクラスで得たクッキーはkakikomiクラスでも保持されているものなんですか? それともちゃんと渡さないとだめなんでしょうか?
ながさじゃないかな
>Getcookiesクラス、kakikomiクラスというものを作って お前が作ったクラスの仕様を聞いてどうする。
Getcookiesクラスという名前が気に食わない
それを言うならkakikomiもだ
833 :
デフォルトの名無しさん :2006/08/27(日) 22:04:29
>>830 dsyn
仮引数をどうしたらいいかなと考えていまして・・・・
>>833 ここはエスパースレじゃありませんことよ
>>827 そのようですた・・・おrz
ILファイルの読み込みでジェネリック周りにはまってまして書き込んでしまいますた。
>>823 その言い方自体が、まさに2ちゃんねる的だよね
むしかえすな池沼
838 :
デフォルトの名無しさん :2006/08/28(月) 02:01:48
webBrowser1.Navigate で表示したページから移動したことを確認するためにはどうしたらいいんでしょうか?
Navigatingでフラグでも立てたらどうか。
840 :
デフォルトの名無しさん :2006/08/28(月) 03:47:46
イベントでぐぐればいいんでしょうか? 少し資料が少なくて困っています・・・・
>>837 それもいかにも2ちゃんねる的な喋り方の見本ですね
>>828 Getcookiesクラスのクッキーはkakikomiクラスでは保持されない仕様だよ
>>840 資料も何も
クラスライブラリのリファレンス見ろとしか。。
最低それ見てからごちゃごちゃ言いなさいよ
「9割以上はこの2つの無償情報源から派生している」 ↑どうやって調べた?
846 :
デフォルトの名無しさん :2006/08/29(火) 15:15:56
一つづつ吐き出されてきた文字列をListviewで表示するために カラム数づつ配列にブチ込むにはどうしたらいいでしょうか?
StringBuilderの配列にブチ込んでいけば
>>844 MSDNはよくできてると思うが、ものによっては説明が足りない(かなりある)
そこを調べた人がブログなどを書いたものが出回ってるわけだが。
まあでも@ITとかどぼんのTIPSの9割はMSDNにのってることだと思うよ
>>846 ListViewItem の配列に入れちゃ駄目なのか?
あーどうしても分からない。。
ASP.NET1.0で、
ttp://www4.atwiki.jp/nishi/pages/54.htmlを参考にして DataGridにプログラム内で動的にTemplateColumnを追加してみた。
んで、TemplateClolumnのHeaderTemplateに
TableCell tableCell = new TableCell();
ImageButton imageButton = new ImageButton();
imageButton.ID = "hoge";
tableCell.Controls.Add(imageButton);
//この後ヘッダーのセルにtableCellを追加
という感じでImageButtonを追加するプログラムを書く。
が、このImageButtonを押した時のイベントが発生しない。
ググって見たところ、
ttp://www.ailight.jp/blog/kazuk/archive/2005/02/10/4369.aspx が
行けるかなぁと思って↓のように書いてみたけど、やはりNavigationButtonClickは無反応・・・
どうすれば、DataGridに動的に追加したTemplateClolumnのImageButtonのイベントを発生させられますか?
public void DataGridItemCreated(object sender, DataGridItemEventArgs e){
if(e.Item.ItemType == ListItemType.Header ){
ImageButton imageButton = (ImageButton)e.Item.FindControl("hoge");
//イベントセット
imageButton.Click += new System.Web.UI.ImageClickEventHandler(NavigationButtonClick);
}
}
//ImageButtonのイベント
public void NavigationButtonClick(object sender, System.Web.UI.ImageClickEventArgs e){
//ImageButtonの処理【ここを通って欲しい】
}
TabControl にフォーカスを移動させずに、選択するタブの変更って可能? SelectedIndex と SelectedTab だと TabControl にフォーカスされてしまう。
タブを変更した後フォーカスを移動させればいいじゃないか
あ〜、HTMLでシコシコ画面作ってた頃が懐かしい さよならJava もう君に夢中だよ・・・C#
>>854 それは本当に java だったのか、もう一度よく考えろ
ListViewでViewがDetailの時に 選択変更イベントが左右のキーを押したときでも出てしまうのって何とかならないですかね?
>>853 すまん、それを書いてなかった。
それをすると TabControl とフォーカスを維持したいコントロールの両方が
一瞬ちらつくというか挙動が見苦しいんだ。
Exceptionをcatchするなと書いてあります ではどうやって何の例外かわからないのを受けるですか?
どこに書いてるんだ? 自分が処理できない例外を catch するな、と言う事だ。 つか何の例外か分からないってのに問題がある。
昔やったのが、自作の例外を返す関数をきめうちで try {} catch(Exception) {} で囲ったら実は返ってきてたのが IndexOutofRangeException で、それをなんでこの 自作例外が返ってくるんだと2時間ばかし悩んだとかあるな。
javaやってる奴は大概 try{} catch(Exception ex){ ex.printStackTrace(); } でエラー処理完了だとおもっとる。 オラクルのエンタープライズマネージャコンソールとか DOS窓にNullPointerExceptionとかエラーがズラズラ出まくっとる
>>858 どんなエラーが起きてもそこで終わらせるつもりならOK
863 :
デフォルトの名無しさん :2006/08/30(水) 12:31:04
int型の整数をtextBox.Text =〜に表示させるためにはどうしたらいいんでしょうか・・・・ Cでは全部printfでできたけど・・・・
Int32 hoe = 32; textBox.Text = hoe.ToString();
865 :
デフォルトの名無しさん :2006/08/30(水) 12:40:44
>>858 一括りにキャッチするのはパフォーマンスが悪いって事でしょ
得体の知れない例外をキャッチしたところで握りつぶすしかないから それなら無視して実行停止させたほうがマシってことでしょ
C#でRS-232と通信する場合ってVBのクラス使う以外ないのん?
標準ライブラリにありまっせ。IOの下のSerialかPortだったか。
まじすか。サンクス
871 :
デフォルトの名無しさん :2006/08/30(水) 20:00:33
LinearGradientBrush とか SolidBrush のインスタンスって いっぱいあるとリソースをいっぱい圧迫しますか? ペイントツールで、塗りつぶし用の色の一覧を出すときは、 Brush の配列を持っているんじゃなくて、 Brush を作るのに必要な情報だけを入れるクラスをつくっておいて そちらに入れておくべきでしょうか?
あてずっぽうで答えるとdisposeがあるくらいだから良くないでしょう。 colorの配列でよろしがな
874 :
デフォルトの名無しさん :2006/08/31(木) 06:53:03
今までJavaやってきてC#に乗り換えようかと思ってるんだけど お勧めの本とかあります?
876 :
デフォルトの名無しさん :2006/08/31(木) 08:56:57
実行時にエラーになります。解決するにはどうすれば良いですか? public bool printFile(String file) { bool result = false; InternetExplorer app = new InternetExplorerClass(); app.Visible = pvisible; Object tmp = Type.Missing; app.Navigate(file, ref tmp, ref tmp, ref tmp, ref tmp); while (app.Busy) { System.Threading.Thread.Sleep(500); } if (pvisible) { app.ExecWB(OLECMDID.OLECMDID_PRINTPREVIEW2, OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT, ref tmp, ref tmp); } else { app.ExecWB(OLECMDID.OLECMDID_PRINT2, OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT, ref tmp, ref tmp); } app.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(app); return result; } System.Runtime.InteropServices.COMException はハンドルされませんでした。 Message="登録されていないドロップ先の登録を解除しています (HRESULT からの例外: 0x80040100 (DRAGDROP_E_NOTREGISTERED))" Source="Interop.SHDocVw" ErrorCode=-2147221248 StackTrace: 場所 SHDocVw.InternetExplorerClass.ExecWB(OLECMDID cmdID, OLECMDEXECOPT cmdexecopt, Object& pvaIn, Object& pvaOut)
STAThread か?
879 :
876 :2006/08/31(木) 23:14:44
>>877 Mainがあるファイルには、
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
と書いてあります
多分自動生成されたそのまま
別スレッドでやってますとかいわんだろうな
>>879 NavigateComplete2でExecWBやってみたら例外は出なかったよ。
何も起きなかったけど。
P/InvokeなコントロールをWebにはっつけて、 クライアントから実行できる?CAS次第?
883 :
876 :2006/09/01(金) 00:04:42
起動したら出てくるGUI画面でボタンを押したら IEでプリントアウトするようにしたいんですけど 別のメソッドが有ったりしますか?
885 :
デフォルトの名無しさん :2006/09/01(金) 02:23:23
SP-2 が出る前に発売された VS 2002 や 2003 なら動くだしょ
DoDragDropでドラッグ&ドロップを開始するプログラムを書いています。 通常だとドラッグ&ドロップの処理が完了するまでスレッドをブロックしてしまうのですが、 ドラッグ&ドロップ中もマウスホイールなどのイベントを処理したいと思っています。 そこで試しに次のように別スレッドでDoDragDropを呼ぶようにしたのですが、 DoDragDropが返り値DragDropEffects.Noneですぐに帰ってきていまいます。 protected override void OnMouseMove(MouseEventArgs args) { List<string> files = new List<string>(); ... Thread thread = new Thread(delegate(object p){ DragDropEffects result = this.DoDragDrop( new DataObject(DataFormats.FileDrop, ((List<string>)p).ToArray()), DragDropEffects.All); // result == DragDropEffects.None }); thread.Start(files); } このような時はどのように書けばよいのでしょうか?
888 :
デフォルトの名無しさん :2006/09/01(金) 23:08:55
他人の作った void func(void** p){ int N = 色々計算する; *p = malloc(N); } というCの関数をC#から呼び出したいのですが [DllImport("aaa")] static extern voidl func(... 引数のところはなんと書けば良いのでしょう? byte[] で受けたいのですがサイズがわからないとマーシャリング不能でしょうか?
static extern void func(ref IntPtr p); かなー?
だね。よく考えなくてもマーシャリングは不可能ですわ。
無効でメモリ確保するのなんか怖くてしょうがないな
他に関数があってそれで何バイト取られたか判定できることがわかったので 一旦 static extern voidl func(.ref IntPtr) で返してもらってC#側でMarshal.Copyでbyte[]に変換することにしました。 ありがとうございました。
893 :
デフォルトの名無しさん :2006/09/02(土) 00:47:39
public string[] Readfile(string filename) { System.IO.StreamReader hReader = new System.IO.StreamReader(filename, System.Text.Encoding.Default); string[] Buffer; for (int i = 0; i < hReader.Peek(); i++) { Buffer[i] = hReader.ReadLine(); } } 上で宣言したはずの 「Buffer」が未定義と言われるのですが・・・・
894 :
デフォルトの名無しさん :2006/09/02(土) 00:50:49
Java質問スレを潰したので凱旋報告です ここから先はC#erが仕切ります
>>893 string[] Buffer = new string[なんたらかんたら];
897 :
893 :2006/09/02(土) 00:57:25
あーそういうことですか。 わかりましたー ありがとうございます
ほんまに困ってんねん
899 :
デフォルトの名無しさん :2006/09/02(土) 01:04:34
おれSUGEEEEEEEEEEEEEE!!!
900 :
893 :2006/09/02(土) 01:05:41
ところで、 string[] Buffer = new string[なんたらかんたら]; の [なんたらかんたら] ってのは配列の長さですよね?
>>900 そうだよ。途中で足りなくなりそうだったらRezie()を。
×Rezie() ○Resize()
903 :
デフォルトの名無しさん :2006/09/02(土) 02:11:10
質問です。 Control.BeginInvokeの後はEndInvokeを呼ばなくてもよくて Delegate.BeginInvokeの後は、必ずEndInvokeを呼ばないといけないって認識で合ってますか。
その前にBufferて名前はやめとけ。
どの前だよっ!!
>>903 Control.EndInvokeが呼ばれるまで状態(戻り値とか)が保存されるので
どっちも駄目なような。
ていうかワーカースレッドなんて少々止まってもいいし、UIスレッドが
何らかの理由でとまっていると鬼のようにBeginInvokeが溜まっていくから
ほとんどの状況でInvoke以外俺は要らない。
あなたがいらないかなんて聞いてません><
>>907 ならこういったらいいか。必要な状況が経験上ほとんど想定できない。
個人的には、事前先読みに使っているぐらいだな。EndInvokeを呼ぶのが
メドイ。呼ぶためにPoolつかったら逆に重くなったし。
それでもバリバリ使っている人もいるかもしれないから「俺は」つけた
だけなんだけど。
すいません。Type#GetFields で継承クラスの private なメンバを含めるにはどうすればいいのでしょうか。 FlatternHierarchy では private なメンバが含まれなくて……。・゚・(ノД`)・゚・。
>>907 > Control.EndInvokeが呼ばれるまで状態(戻り値とか)が保存されるので
> どっちも駄目なような。
これってメモリリークみたいに徐々にメモリを消費していくってこと?
それともコントロールにつき1つだけ保存されて、
残りは自動的に破棄されたりするようになってるのかな。
>>912 いや、それ含めてもダメだった orz
>>913 了解……。やっぱり子クラスからアクセスできないフィールドは GetFields では取得できないんスかね……。
とりあえず BaseType たどります。ありがとうございました orz
フィールドに限らず祖先の private は見られない、と言うか派生クラスが情報を持ってない
privateを見れたらprivateにする意味が無いんじゃないの
917 :
デフォルトの名無しさん :2006/09/02(土) 21:30:06
配列変数というものを使ってみようとしてるのですが、エラーが出ます。 int[] xx; xx = new int[3]; 本に書いてあるとおりそのままやってるのですが、これだとエラーが出ます。 なぜなのでしょうか?
エラーでないよ どこか違うところに問題があるはず エラーメッセージと該当する行を確認
あうあ よくわからなくなってきた ↓みたいにやってるとエラーでるのですが、 static void Main() { Application.Run(new Form1()); } int[] xx; //● xx = new int[3];//●● private void button1_Click(object sender, System.EventArgs e) { }
うあ、 すいません、間違って書き込みしてしまいました。
とりあえず、レスありがとうございます。
>>921 のやり方だとエラーが出るのですが、↓だとエラーがでない。
もうよく分からなくなってきました。
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
int[] xx; //●●
xx = new int[3];//●●
}
>>922 xx = new int[3];
みたいなものは Statement って呼ばれるんだけど、Statement は Method 内でしか記述できないよん
>>921 は Method 外に書いてあるからエラー。
>>922 は Method 内で書いてあるからOK
うああああ そういうことなのですね、よくわかりました。 ありがとうございました。
int[] xx = new int[3]; なら921でもOK
つか、ちゃんとエラーメッセージ見りゃいいじゃんよお(・∀・)
厳しいこと言わせてもらうと、エラーメッセージ書くのはプログラミングじゃなくても基本。
質問に答える人はエラーメッセージがわかってれば
>>920 のように困ったりはしない。
プログラム作る人はユーザーにエラーメッセージを書いてもらう立場なんだからしっかりしてくれ。
C#でAPIを呼ばないといけなくなったのですが
GetLastErrorのWin32エラーコードから;et@ei^ytyr。mkf3ljpyt?
MarshaliHRESULT:
[email protected] @rt@
throw;
わかってるならHresult経由でいいんでは Exception e = Marshal.GetExceptionForHR(Marshal.GetHRForLastWin32Error());
931 :
デフォルトの名無しさん :2006/09/03(日) 22:41:00
プログラム開始時に 引数があるかどうかを調べたいのですが string[] cmds = new string[5]; cmds[1] = ""; cmds = System.Environment.GetCommandLineArgs(); //引数未入力時 if (cmds[1] == "") { これですと、引数が無いときにif文で 「インデックスが配列の境界外です。」とエラーが出てしまいます。 どうすればいいのでしょうか?
cmds = System.Environment.GetCommandLineArgs(); とした時点で cmds = new string[5]; cmds[1] = ""; は完全に無意味になってるぞ cmds.Length で引数の個数を見るこった
>>932 解決しました。
ありがとうございます!
なぜ cmds に立て続けに代入したのか、聞かせてくれないか?
935 :
デフォルトの名無しさん :2006/09/03(日) 22:52:33
C#でJoypadのステータスを取得できるようになりましたが キーボード入力のようにJoypadからイベントを起すことが できるのでしょうか? 素朴な質問です。
自分でJoypadの状態を監視して入力があったらイベントを起こすクラスを書けばいい
937 :
デフォルトの名無しさん :2006/09/03(日) 22:56:27
むずかしそうですね。
>>934 ココで聞く前に、
引数無いときはcmd[1]に要素が無いから代入してみたら…
などと、無駄なことを何回か試行錯誤してました。
939 :
デフォルトの名無しさん :2006/09/03(日) 23:03:04
監視するということはスレッドを使いますか?
940 :
デフォルトの名無しさん :2006/09/03(日) 23:07:40
BackgroundWorkerコントロールとかですか?
941 :
デフォルトの名無しさん :2006/09/03(日) 23:09:43
とにかくやってみます。 ありがとうございました。
任意のキャプションで任意の個数のボタン(例:リンゴ/ミカン/バナナ)を表示できる MessageBox みたいなクラスはライブラリにありますか? java の JOptionPane.showOptionDialog みたいなことがしたいんです。 ヘルプは見たし、ぐぐってもみましたが、 MessageBox はそういう使い方はできなさそうだし、 自力では見つけられませんでしたのでよろしくお願いします。
>>942 ちょっと無理かなー
自前で作っちゃったほうが早いですよー
C#.NETを勉強しようと思いますが、CやC++の知識は必須ですか。 また、今までDelphiを使ってきましたが、VC#も同じようなRADなのですか。
HTML の Unicode 参照文字 (& とか " とか " とか) を実体に変換するメソッドってあります?
>>944 必須と不要の中間くらい。あるに越したことはないです。
そして RAD です。
>>945 HttpUtility とかいうクラスなかったっけ
>>947 うあ。すまん。& とか " とかを & や " に変換させたいと言いたかったんだ orz
まあ良いや。
HttpUtility.HtmlDecode ですね。ちょっと試してみますー
やばい間に合わへん
デリゲートわかんねーよ
デリゲート?ただの関数ポインタじゃん。
ネイティブアプリから、 .netFrameworkがインストールされているかどうか 調べる方法はありますか?
>>952 %SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\csc.exeなど
ディレクトリの特定のファイルを調べるので十分だと思う。
あとは、CorBindToRuntimeExで実際に起動してみるというのはどう?
954 :
942 :2006/09/04(月) 23:07:00
>>943 やっぱないですか。
どうもありがとうございました。
956 :
887 :2006/09/05(火) 04:26:52
>>887 ですが、できないのでしょうか?
割とありそうな要求だと思うので不可能ではないと思うのですが・・・
>>956 >通常だとドラッグ&ドロップの処理が完了するまでスレッドをブロックしてしまうのですが、
ブロックされるのはマウスとキーボードのイベントでスレッドではない。
ドラッグドロップのためにフックされている。
別スレッドでDoDragDroをつかうことは見当はずれなだけではなく、
GUIに関する操作はGUIが所属するスレッド中で行うという原則にも反する。
ドラッグドロップ中にリストコントロールのスクロールを行いたい場合は
マウスカーソルがリストコントロールの上部または下部にある時に
DragOverイベントでスクロール処理を行うようにコーディングする。
これと同様の処理をエクスプローラがやっているので参考にできる。
958 :
887 :2006/09/05(火) 08:20:03
>>957 レスどうもありがとうございます。
DragOverの方はカーソルがクライアント領域外に出た後に追跡できないのがいささか不便ですが、何とかなりそうです。
マウスホイールの方はやはり無理でしょうか?
たとえばfirefoxではドラッグ操作中でもホイールによるスクロールが可能なので、これも不可能ではないと思うのですが。
ご存知の方がいましたらよろしくお願いします。
>>958 Control.WndProc でごりごり書くしかないんじゃないかな。
どういうプロトコルでマウスホイールがイベントが処理されているかは自分で調べるしかなさそうだけど。
SetWindowsHookExでマウスにフックかければできるんじゃね?
ドラッグイベントって領域でた後でもReleaseみたいな命令発行しなきゃ取れなかったっけ?
962 :
デフォルトの名無しさん :2006/09/05(火) 10:29:36
ドラッグ中のマウス処理(自動スクロール)とかは、 QueryContinueDragで処理するのが定石。 ホイールは無理だが。 あと、DoDragDropの呼び出しタイミングは二つある。 一つはMouseMoveで、ドラッグサイズ以上に動いた瞬間。 もう一つは、MouseMoveでクライアントウインドウを出たタイミング。 後者の方法は、基本的にウインドウに閉じたD&DでMouseDown+Move+Upで処理する事にして、 他のウインドウにはみ出した場合のみDoDragDropを使う。 この場合は、D&Dがウインドウ内に収まっている場合はホイールに応答できる。
963 :
デフォルトの名無しさん :2006/09/05(火) 12:55:01
うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ
うこんのカ
965 :
デフォルトの名無しさん :2006/09/06(水) 02:32:55
Control.Captureでいいじゃん なんでフックする必要あるんだ?
966 :
プログラム自体初心者 :2006/09/06(水) 10:01:38
CreateProcessWithLogonを使用して一般ユーザーにAdmin権限でProcessを実行させようと思っています。 MSDNなどを見ても、ソースコードの書き方がイマイチわかりません。 どなたかヒントだけでも頂けないでしょうか?差し出がましいですが、サンプル書いてもらえると助かります。 よろしくお願いいたします。
>>966 落ちついてスレタイをよく見ろ。
つ Win32API質問箱 Build45
968 :
プログラム自体初心者 :2006/09/06(水) 10:58:58
>>967 失礼しました。
本スレに書き込みました。
969 :
887 :2006/09/06(水) 11:10:22
みなさんレスありがとうございます。 WndProcをオーバーライドしてみましたが、やはりドラッグ中はホイールイベントが来ませんでした。 フックという方法は思いつきませんでしたが、さすがにこれならできそうな気がするのでやってみようと思います。
970 :
887 :2006/09/06(水) 12:32:46
フックでやってみたところ、うまくホイールイベントを取得できました。 こんな感じです。 _hookProc = delegate(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode >= 0 && lParam != IntPtr.Zero) { if (ドラッグ中なら) { MSG msg = (MSG)Marshal.PtrToStructure(lParam, typeof(MSG)); if (msg.message == WM_MOUSEWHEEL) { int lp = (int)msg.lParam; int wp = (int)msg.wParam; Point pt = this.PointToClient(new Point((int)(lp & 0x0000ffff), (int)((lp & 0xffff0000) >> 16))); MouseButtons btns = MouseButtons.None; int b = (int)(wp & 0x0000ffff); if ((b & MK_LBUTTON) != 0) btns |= MouseButtons.Left; if ((b & MK_RBUTTON) != 0) btns |= MouseButtons.Right; if ((b & MK_MBUTTON) != 0) btns |= MouseButtons.Middle; if ((b & MK_XBUTTON1) != 0) btns |= MouseButtons.XButton1; if ((b & MK_XBUTTON2) != 0) btns |= MouseButtons.XButton2; int delta = (short)((wp & 0xffff0000) >> 16); this.OnMouseWheel(new MouseEventArgs(btns, 0, pt.X, pt.Y, delta)); } } } return CallNextHookEx(_hhk, nCode, wParam, lParam); }; _hhk = SetWindowsHookEx(WH_GETMESSAGE, _hookProc, IntPtr.Zero, AppDomain.GetCurrentThreadId()); ・WH_MOUSEによるフックだとホイールのデルタ情報が取得できないようです。 ・コールバックのデリゲートはGCを避けるためにメンバのフィールド等に保持する必要があるようです。
WH_MOUSEなら コールバックのlParamからMOUSEHOOKSTRUCTEXを取得して そのメンバのmouseDataのHIWORDを見ればOK
972 :
887 :2006/09/06(水) 13:39:41
>>971 早速そのようにしたところうまく取得できました。
どうもありがとございます。
ネイティブ呼び出しで struct S { LPCWSTR text; } void func(S* s); て構造体をC#で宣言しなきゃいかんのですが メンバ「text」は何と定義すればいいのでしょう? IntPtrで宣言してMarshal.ToHGlobalUniで取ったポインタ代入? S s; s.text= Marshal.ToHGlobalUni("あああ");
DllImport 関連では動きさえすればどんな風に宣言してもOKだと思ってる string でも動くんじゃね
975 :
デフォルトの名無しさん :2006/09/06(水) 17:08:54
WebRequestでWEBページを取得したいんですが、
なぜか自分以外のPCへ要求するとタイムアウトが発生してしまいます。
関係あるかわからないけど
[プロジェクト]-[プロパティ]-[セキュリティ]は完全に信頼する・・・にしてます。
try{
WebRequest webReq = HttpWebRequest.Create("
http://yahoo.co.jp ");
webReq.Method = "GET";
webReq.Timeout = 1000;
WebResponse webRes = webReq.GetResponse();
}catch (Exception ex) {
Console.WriteLine(ex.Message);
}
ファイアーウォールは?
マルチ乙
978 :
デフォルトの名無しさん :2006/09/06(水) 17:32:24
IEからは見れます。
>>978 わけの分かんないこと言ってんじゃないよ
もう来なくていいよ
>>974 さすがに駄目だった。C#でメモリ管理したくないからCでラップするか
>>975 webReq.GetResponse() は実装されていない。
は?
>>981 あれま。他の所でバグってたか。
もう一回チャレンジします。ありがとう。
struct S{ [MarshalAs(UnmanagedType.LPWStr)] String text; } とやったらうまくいった。ありがとう。
LPWSTR を string にしてしまうとメモリの解放の機会を失ってしまわないか?
C#でサッカー日本代表がブラジル代表に3-0で勝つプログラムを つくりたいんですが、できますか?
while(!サッカー日本代表がブラジル代表に3-0で勝った) { Thread.Sleep(1000); }
果報は寝て待てってか?
>>986 Marshal.FreeHGlobalとか呼ぶのやだからこれにしたんだけど
>>985 だとFreeしてくれないの?
構造体をrefで渡したらマーシャラが解放してくれない?
string は BStr で指定されたのを除けば CoTaskMemFree を使って解放しようとするはず CoTaskMem 以外から確保したモン以外は多分解放し損ねる
とはいえ状況にも依るな まずこっちで確保する場合は問題ないか
理解力不足だなあ 開放されるよ
いま馬鹿ほどループさせてんだけどメモリ使用量はふえないなあ。 大丈夫かな。
お礼に新スレを立てた。
998 :
sage :2006/09/06(水) 22:41:43
998
1000 :
デフォルトの名無しさん :2006/09/06(水) 22:43:38
1000get!!!!!!!!!!!!!!!!!!!!!!!!!!!!!111111111111
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。