C♯, C#相談室 Part33

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C♯, C#相談室 Part32
http://pc8.2ch.net/test/read.cgi/tech/1149934230/

過去スレは>>2-5あたり。
※スレタイに「#」を入れても消えちゃうので新スレ立てる人は要注意だ。
2デフォルトの名無しさん:2006/07/22(土) 12:00:20
3デフォルトの名無しさん:2006/07/22(土) 12:01:09
4デフォルトの名無しさん:2006/07/22(土) 12:01:48
5デフォルトの名無しさん:2006/07/22(土) 12:09:32
おつりんこ
6デフォルトの名無しさん:2006/07/22(土) 14:37:08
とりあえず まんこ と言っておこう
7デフォルトの名無しさん:2006/07/22(土) 15:57:35
.NET1.1用のJPEG2000 Decoder教えてください。
8デフォルトの名無しさん:2006/07/22(土) 18:27:33
ちーっす
マルチスレッドの同期について教えて欲しいっす。
複数のスレッドで同じListのデータを取り出して、
データがなかったらデータが入るまで待機させたいんだけど、
なーんかいい方法ってないっすか?

Sleepして待たすと結構泥くさい処理になるので
Javaのwait+notifyAll見たいに特定条件満たしたら起こしてくれるようなのないっすか?

自分でまた監視用の別スレッド作ればいいだけかもしれないけど、
いい方法があるんならけちけちせずに教えて欲しいっす。
よろしくねー
9デフォルトの名無しさん:2006/07/22(土) 18:39:21
>>8
煽りだって解釈でいいのかな?
10デフォルトの名無しさん:2006/07/22(土) 18:42:43
放置
118:2006/07/22(土) 18:50:40
>>9
本気なんすけど。
頼んますわ、マージーでー
12デフォルトの名無しさん:2006/07/22(土) 19:00:32
断る
13デフォルトの名無しさん:2006/07/22(土) 19:23:11
>>11
Javaで作れ、カス
14デフォルトの名無しさん:2006/07/22(土) 19:35:16
Javaにコンプレックス持っちゃってイヤねぇ、この人達は(^-^;
15デフォルトの名無しさん:2006/07/22(土) 19:40:25
使えばいいじゃん
168:2006/07/22(土) 19:43:12
ちょっとー
ちゃんと知識ある回答者のーぞーむー
かもーん
17デフォルトの名無しさん:2006/07/22(土) 20:00:53
WaitもNotifyとかもなかったっけか?
188:2006/07/22(土) 20:49:26
>>17
ないですです。
なんかいーほーほーありませんかねー
19デフォルトの名無しさん:2006/07/22(土) 20:54:49
>>8
イベントオブジェクト
20デフォルトの名無しさん:2006/07/22(土) 21:07:08
いやはや夏だねぇ
218:2006/07/22(土) 21:55:05
>>19
ちゃうねん、ちゃうねん。
そーいうことじゃないんだよ、ないんだよ、なーいーんーだーよー。

デザインパターンでいえばWorker Threadなんだよー
やりたいのはーさー
エロいひとーおしえてくださいよー
22デフォルトの名無しさん:2006/07/22(土) 22:02:57
>>21
オマエ ウザイ クサイ
23デフォルトの名無しさん:2006/07/22(土) 22:18:22
>>18
ちょっとまてや、
WaitとPalse、PalseAllがあるだろ。
名前はNotifyじゃなかったが。
24デフォルトの名無しさん:2006/07/22(土) 22:21:34
>>21
目の前に箸があるのにフォークが欲しいという神経もよくわからん。
25デフォルトの名無しさん:2006/07/22(土) 22:25:19
System.Threading.ThreadPoolでもつかっとけ
26デフォルトの名無しさん:2006/07/22(土) 22:50:41
こんにちわ。「緑のバイク 初めてのC#」内に下記の記述がありました。
以下引用

// やってはいけないプログラムの例(一部)

(1) Form1_Closing() 内で e.Cancel = true はダメ!

もし、そうすると、OS(Windows)が、「シャットダウン」できなくなってしまう!

とありますが、ではCancelしたいときはどうすればいいのでしょうか?
お願いします。
27デフォルトの名無しさん:2006/07/22(土) 22:52:01
>>24
表現間違ってる。

目の前に箸があるのに、チョップスティック欲しいって言ってるんだよ。
28デフォルトの名無しさん:2006/07/22(土) 23:23:23
>>26
if (終了するかどうかのメッセージボックスを表示 != YES) e.Cancel = true;

.NET 2.0 以降は FormClose イベントに変更になって終了理由がわかるようになったのでこういうことも可能。
if (e.CloseReason == ユーザーによる終了) {
    if (終了するかどうかのメッセージボックスを表示 != YES) e.Cancel = true;
}
29デフォルトの名無しさん:2006/07/22(土) 23:33:48
>>26
メッセージボックスを出す
if (MessageBox.Show("終了しますか?") == DialogResult.OK){
e.Cancel = true;
}
3029:2006/07/22(土) 23:36:10
かぶったし、終了しますか?と聞いてオッケーの処理がキャンセルって・・・
31デフォルトの名無しさん:2006/07/22(土) 23:41:50
いやがらせかよっ
32デフォルトの名無しさん:2006/07/23(日) 00:06:22
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;
  }
 }
}

試しに実行してみたら、メッセージボックスが出ている途中でしばらくすると終了してしまう。
なぜ?
33デフォルトの名無しさん:2006/07/23(日) 00:08:32


    終了しますんか?


    いええ   Cancel



34デフォルトの名無しさん:2006/07/23(日) 00:12:13
>>32
タスクマネージャがメッセージボックスにもClose要求を出しているのかも。
ボタン以外の操作で閉じた場合はキャンセル扱いだったと思う。
3526:2006/07/23(日) 00:17:29
ありがとうございます。
メッセージボックスを使えばForm1_Closingの中にe.cancel=trueがあっても
いいんですね。

>>28>>29>>30
ワロタ
3629:2006/07/23(日) 00:34:54
>>35
オレは笑われてもしゃーないけど>>28を笑ったらアカンやろ
3726:2006/07/23(日) 00:38:04
>>36
すみません
38デフォルトの名無しさん:2006/07/23(日) 03:40:31
>>32
それがOSとして当然の動作だから
39デフォルトの名無しさん:2006/07/23(日) 03:42:40
あほす
40デフォルトの名無しさん:2006/07/23(日) 05:52:23
>>34,38
じゃあ「CloseReason.TaskManagerClosing」のメソッドってどういうときに使うの?
41デフォルトの名無しさん:2006/07/23(日) 05:57:00
終了処理だろ。ログファイル閉じるとか。
42デフォルトの名無しさん:2006/07/23(日) 07:32:57
>>41
タスクマネージャから閉じる時だけログファイルを閉じる?
いまいちよく分からないんだけど
43デフォルトの名無しさん:2006/07/23(日) 07:40:16
タスクマネージャから閉じる時「も」ログファイルを閉じる
タスクマネージャから閉じる時「は」「タスクマネージャから終了したとログ追記して」ログファイルを閉じる
44デフォルトの名無しさん:2006/07/23(日) 07:57:52
>>32どおり強制的にフォームを閉じられるのなら、
逆に「タスクマネージャから閉じる時はログを作らない」
などの処理をスルーする処理の方が実用的かな?
45デフォルトの名無しさん:2006/07/23(日) 08:53:57
>>40
むしろTaskManagerClosingだから悠長にダイアログ出してないで
さっさと終了処理しなきゃならんことがわかるのは利点だろ?
普段はダイアログで終了確認してる場合でもさ。
46デフォルトの名無しさん:2006/07/23(日) 08:55:41
>>45
場合に依るだろう。
原発の制御管理システムもWindowsベースのモノがあるし。
47デフォルトの名無しさん:2006/07/23(日) 11:31:35
>>40
そのまんまだろ
OSから来た強制終了の要求に応える処理を入れるだけ
否定してもOSは強制終了させるんだから、抗っても無駄だし
48デフォルトの名無しさん:2006/07/23(日) 12:55:07
原発で.NETねぇ…
49デフォルトの名無しさん:2006/07/23(日) 13:05:56
>>48
よく考えるとまぁ、恐ろしい話だわね。
50デフォルトの名無しさん:2006/07/23(日) 13:38:18
>>48
原発の情報システム部門の人間だが、普通に使ってるぞ。
もちろん、使う部分によるがな。

ようは、適材適所ってだけ。
51デフォルトの名無しさん:2006/07/23(日) 13:44:02
>>47
>強制終了の要求に応える処理
それは44の重複かな?
52デフォルトの名無しさん:2006/07/23(日) 13:45:30
>>51
粘着うざいー
5351:2006/07/23(日) 13:49:05
>>52
初めて書き込んだんだが?
54デフォルトの名無しさん:2006/07/23(日) 13:51:45
>>53
ほら粘着だよー
55デフォルトの名無しさん:2006/07/23(日) 13:58:36
粘着キモイねぇ
56デフォルトの名無しさん:2006/07/23(日) 14:00:12
つーか>>52はプログラマーじゃないんだろ
57デフォルトの名無しさん:2006/07/23(日) 14:01:11
>>56
プログラマですよー
58デフォルトの名無しさん:2006/07/23(日) 14:02:20
なにこの粘着
59デフォルトの名無しさん:2006/07/23(日) 14:02:35
仮にプログラマーだとしても
向上心の欠片もないダメグラマーなんだろうな
60デフォルトの名無しさん:2006/07/23(日) 14:03:29
>>59
アホは無視しとけ
62デフォルトの名無しさん:2006/07/23(日) 14:09:41
これは恥ずかしいなw
63デフォルトの名無しさん:2006/07/23(日) 14:14:13
これを納めるには>>47のレスしかない。
しかし、>>47のレスからは、明確に答えられるほどのスキルを持っているようには見受けられない。
結局、粘着呼ばわりして荒らすことで自分のアイデンティティを保つしかなかったようだ。

---47に同情しながら終了---
64デフォルトの名無しさん:2006/07/23(日) 14:16:38
ここで明かされる>>47 != >>51の新事実w
65デフォルトの名無しさん:2006/07/23(日) 14:18:54
66デフォルトの名無しさん:2006/07/23(日) 14:20:35
>>65
>>62 >>63ははずれ。>>60は俺。
67デフォルトの名無しさん:2006/07/23(日) 14:25:52
>>26-67まとめて氏ね
68デフォルトの名無しさん:2006/07/23(日) 14:26:32
>>67
善良な市民が大量に巻き込まれてるぞw
69デフォルトの名無しさん:2006/07/23(日) 14:30:48
粘着キモイんですけどー
70デフォルトの名無しさん:2006/07/23(日) 14:33:32
>>69
深呼吸して君が今やってる行為は何か。よく考えてみよう。


な?俺の言ったとおりでしょw
もう一目見ただけで粘着の素質十分だったし。

んでは。
71デフォルトの名無しさん:2006/07/23(日) 14:55:01
おまんこぺろんちょ
72デフォルトの名無しさん:2006/07/23(日) 14:56:55
なにこの粘着
73デフォルトの名無しさん:2006/07/23(日) 21:16:38
>>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だけプログラマはゴミだよな
消えて欲しい
75デフォルトの名無しさん:2006/07/23(日) 23:50:12
っていうか、Javaがくそだろ。あんなの使えんよ。
76デフォルトの名無しさん:2006/07/23(日) 23:59:09
セマフォやイベントなどの概念も知らないで
マルチスレッド・プログラミングに挑む奴がいるんだね

レール上しか走れないゴーカート言語Javaのプログラマは優秀だ
77デフォルトの名無しさん:2006/07/24(月) 00:02:44
まったく俺が使う言語のスレは総じて荒れ放題だな
78デフォルトの名無しさん:2006/07/24(月) 00:05:15
Lisp最強
79デフォルトの名無しさん:2006/07/24(月) 00:05:49
EventInfo からそれを受け取る Object を得ることはできるしょうか?

AddEventHandler でデリゲートを登録してるのだから、
EventInfo から デリゲートを取得し、そこから Object を得る方法が
あるのでないかと思うのですが、
EventInfo のメンバには、GetRaiseMethod はあっても、
GetDelegate とか、GetObject とかないんですよねぇ・・・。
80デフォルトの名無しさん:2006/07/24(月) 00:23:19
>>76
そこまで知ってて排他制御と言う概念にまで昇華出来ないのがC#プログラマの底の浅さ。

81デフォルトの名無しさん:2006/07/24(月) 00:24:45
Java厨はJavaスレに引きこもってろよ
82デフォルトの名無しさん:2006/07/24(月) 01:53:17
ケンカはやめて。二人を止めて。
83デフォルトの名無しさん:2006/07/24(月) 05:16:32
>>79
定義に関する情報と実行時の特定のインスタンスなどに関わる情報を混同するな。
リフレクションでメソッドを指定してそのメソッドを持つインスタンスを返してくれって言ってるようなもんだぞ。

84デフォルトの名無しさん:2006/07/24(月) 05:17:52
>>80
??
85デフォルトの名無しさん:2006/07/24(月) 07:21:50
マルチモジュールアセンブリ (というよりも、モジュールの定義の別ファイル化) に
興味を持ち、以下を試してみました:
    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" の定義も空なので、どうにかして出てこないように
アセンブリをリンクしたいのですが、どうすればよいのでしょうか。

どうかご教授お願い致します。
86デフォルトの名無しさん:2006/07/24(月) 07:28:26
意味が分からんし、そうしたい理由も理解できんな
ABC.netmodule の情報を持ってなかったら ABC.dll はどうにもならんじゃないか
8785:2006/07/24(月) 09:01:50
>>86
一般的な形である、シングルモジュールアセンブリ:

┏ファイル ABC.dll━━━━┓
┃┌アセンブリ ABC──┐ ┃
┃│ ┌──────┐ │ ┃
┃│ │マニフェスト  │ │ ┃
┃│ └──────┘ │ ┃
┃│┌モジュール ABC┐│ ┃
┃││┌────┐  ││┃
┃│││ 型定義 │  ││┃
┃││└────┘  ││┃
┃│└───────┘│┃
┃└─────────┘┃
┗━━━━━━━━━━━┛
ではなく、このような:

┏ファイル ABC.dll━━━┓
┃┌アセンブリ ABC─┐ ┃
┃│┌──────┐│┃
┃││ マニフェスト ││┃
┃│└──────┘│┃
┃└────────┘┃
┗━━━━━━━━━━┛
    ↓参照/依存
┏ファイル ABC.netmodule ━┓
┃┌─────────┐ ┃
┃│   型定義      │ ┃
┃└─────────┘ ┃
┗━━━━━━━━━━━┛
形にしたいと考えています。アセンブリの持つ唯一のモジュールを
外部ファイルとして配置するということは不可能なのでしょうか。
8885:2006/07/24(月) 09:09:21
一番下の四角形は

┏ファイル ABC.netmodule━━━┓
┃┌モジュール ABC.netmodule┐┃
┃│    ┌────┐    │ ┃
┃│    │ 型定義 │    │ ┃
┃│    └────┘    │ ┃
┃└───────────┘ ┃
┗━━━━━━━━━━━━━┛

でした。AA を連投してしまい大変申し訳ありません。

89デフォルトの名無しさん:2006/07/24(月) 10:05:17
>>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以外のコントロールを継承してデザインするにはどうしたらいいでしょうか?
91デフォルトの名無しさん:2006/07/24(月) 11:31:33
"TabPageを継承したUserControl"ってありえないから。

普通にTabPageを継承したクラス作って中は空でもいいからビルド。
→ツールボックスにそのコントロールが表示される
→ポトペタ
92デフォルトの名無しさん:2006/07/24(月) 11:33:32
↑TabControlとTabPageを勘違いした。スマソ
93デフォルトの名無しさん:2006/07/24(月) 11:33:47
>>91 の言ってることと>>90ことが同じように見えるのは自分だけか?
94デフォルトの名無しさん:2006/07/24(月) 11:41:13
>>93
煽るだけならすっこんでろ。
95デフォルトの名無しさん:2006/07/24(月) 11:59:41
><;
96デフォルトの名無しさん:2006/07/24(月) 12:55:39
コンボボックスでキャレットの位置を取得するにはどうしたらいい?
SelectionStartだと選択範囲の開始位置の取得になる。
97デフォルトの名無しさん:2006/07/24(月) 15:13:38
TabPageっつーのはただの概念だから。
デザインページでコントロールを貼り付ける対象じゃないから。
98デフォルトの名無しさん:2006/07/24(月) 15:15:36
>>97
コンテナも知らんのか。お前は。
99デフォルトの名無しさん:2006/07/24(月) 16:04:22
>>87
不可能って、できてる思うんだが…?
何が気に入らないんだ?
10085:2006/07/24(月) 17:36:35
>>89
つまり、モジュールとは「アセンブリを構成するファイル」ということなのでしょうか。
そうだとすれば >>85 のようになった原因や >>86 の話と辻褄が合いますし。
101デフォルトの名無しさん:2006/07/24(月) 18:20:57
System.Diagnostics.Process.Start(linkLabel1.Text);
のようにリンクラベルから起動したExplorerのURL読み込み完了
を確認する方法はありませんか?
102デフォルトの名無しさん:2006/07/24(月) 18:43:07
>>100
まあだいたいそんなもんだ。
DLL(つまりアセンブリ)自体が持つ事もできるけどな。
10397:2006/07/24(月) 18:46:16
TabPageは直接フォームに張ることができないから、
VSのGUIでレイアウトするのは不可能って結論なのでしょうか?

普通にUserControlを継承したクラスにいろいろ貼り付けて、

使う側でTabContorlにTabpage入れて、
そのTabPageにつくったUserControlはるしかないってことですか?
10497:2006/07/24(月) 20:22:15
>>103
漏れは普通にそうしてるよ(・∀・)
105デフォルトの名無しさん:2006/07/24(月) 20:26:43
>>103
PanelのVisibleでやってる。
10697:2006/07/24(月) 21:26:09
>>104-105
れすどうもです。

直接tabpage継承するのは諦めます。
ありがとうございました。
10779:2006/07/24(月) 22:22:30
>>83
レスありがとうございます。

意図が伝わらなかったようなので、質問の仕方を変えてみます。

PropertyInfo の GetValue に相当するものは、
EventInfo にはないのでしょうか?

AddEventHandler と RemoveEventHandler があるのに、
GetEventHandler(s) に相当するのがあれば解決なんですけど・・・。
108デフォルトの名無しさん:2006/07/24(月) 22:49:33
プロパティには get アクセサがあるけどイベントには get アクセサはない。
そう言う事です。
109デフォルトの名無しさん:2006/07/24(月) 23:20:21
でもリフレクションAPIをみると
add/remove以外にも、なんか付けられるようだけど、あれは一体なんだろう
110デフォルトの名無しさん:2006/07/24(月) 23:25:11
raise
VBやらC++/CLIでは言語レベルでサポート
111デフォルトの名無しさん:2006/07/24(月) 23:33:20
さすがC#
112デフォルトの名無しさん:2006/07/25(火) 00:35:34
>>107
ああ、そういうことか。
言いたいことはわかったが、やっぱり無理。
なぜプロパティは可能かというと、プロパティというのは
取得、設定という機能が動作として定義されてて、それを呼び出せるから。
一方イベントは、追加と削除という動作が定義されてるだけ。
よって現在の設定リストを取得することはできない。
ぶっちゃけ、現在の設定リストがデリゲートとして存在してるかも保証できない。
イベントはあくまで「追加と削除」しかインターフェイスとして規定されてないから。
113デフォルトの名無しさん:2006/07/25(火) 00:37:42
つうか、そんなことは分かっててやる方法がないか?ってことかな?
Componentだけが対象だとひょっとして不可能ではないかもしれないが、
汎用的な方法は>>112のとおり存在しないな。
114デフォルトの名無しさん:2006/07/25(火) 00:45:15
MSILレベルではイベントの発火やその他の機能もイベントに関連づけること自体はできるみたいだな。
いずれにしても、標準化されてなかったりVBやC#から直接的には扱えない以上、今回の目的では使えないだろうが。

115デフォルトの名無しさん:2006/07/25(火) 01:07:33
WinXPがスタンバイしようとするのをキャンセルするにはどうしたらいいでしょうか?

自分からスタンバイさせるのはApplication.SetSuspendState(PowerState.Suspend, false, false);
とかでいけそうな感じなのですが。
11685:2006/07/25(火) 02:04:06
無事疑問が解決しました。
回答して下さった皆様、ありがとうございました。
117デフォルトの名無しさん:2006/07/25(火) 05:46:48
>>115
なんかメッセージが来るから WndProc で受けてそれの Result でキャンセル
118デフォルトの名無しさん:2006/07/25(火) 07:43:02
>>116 
疑問解けたのならその内容を書いとけよ。
119デフォルトの名無しさん:2006/07/25(火) 07:58:59
自動でアクティブな外部アプリケーションにキー入力したいのですが
SendKeys.SendWait("{F1}");
としてもうまく動作しません。
なにかほかに必要な処理があるのでしょうか?

120デフォルトの名無しさん:2006/07/25(火) 08:08:38
DirectInput は騙せない可能性があるような
フックも騙せないよな
121デフォルトの名無しさん:2006/07/25(火) 08:26:20
>>119
メモ帳とか電卓で試してみたら?
122119:2006/07/25(火) 08:26:44
ありがとうございます。
すいませんF1キーについては動作しておりました。。
ctrlキーとあわせた"^A"などのキー送信で動作していないようです・・・
123119:2006/07/25(火) 08:38:09
"^A" → "^a"にてうまく動作しました。
失礼しました!
124デフォルトの名無しさん:2006/07/25(火) 09:06:23
他でもそういうのあったな、うちじゃ両方使えるけど
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

と言われてしまいました。
何が問題なのでしょうか。お仕事中申し訳御座いませんが、よろしくお願いします。
126125 ◆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;
127125 ◆tsGpSwX8mo :2006/07/25(火) 11:13:20
解決しました。

WOrd2003をインストールする際に表示される
インストール部品の選択画面にて、
[.NET プログラミング サポート] をインストールしない設定にしていたために、
http://www.microsoft.com/japan/msdn/office/office2003/OfficePrimaryInteropAssembliesFAQ.aspx#officeprimaryinteropassembliesfaq_gettingtheoffice2003pias
PIA(http://www.microsoft.com/japan/msdn/library/ja/jpstagsdk/html/stconTrustIAs.asp)が
インスコールされておらず、それが原因で、
Microsoft.Office.Interopを参照できなかったみたいです。

とりあえず解決したので、ご報告しました。ばいばーい。
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();
}
スレ違いのときはスイマセン
129デフォルトの名無しさん:2006/07/25(火) 12:14:25
スレ違いだろwwwwwwwwwwwwwwwwww
130デフォルトの名無しさん:2006/07/25(火) 12:15:30
>>128
あなたが思っている以上にスレ違いです。

学校生活ってのは知識を磨くか要領を磨くかですわ。
勉強する気がなくて要領も悪い、なんて言うか今すぐその学校やめて別の道に進むべきだ。



131デフォルトの名無しさん:2006/07/25(火) 12:16:31
いくらなんでもAぐらいはわかるだろ
132128 ◆oBVIHc0QSg :2006/07/25(火) 12:22:54
屁理屈こかずに、さっさと答えて.NET
133デフォルトの名無しさん:2006/07/25(火) 12:23:34
どうしてここC♯スレなんだぜ?
134デフォルトの名無しさん:2006/07/25(火) 12:36:24
>>128
C ≠ C♯
135デフォルトの名無しさん:2006/07/25(火) 12:37:24
相談室 ≠ 宿題
136デフォルトの名無しさん:2006/07/25(火) 12:43:52
お前ら親切だなw
137デフォルトの名無しさん:2006/07/25(火) 13:14:00
親切 ≠ 迷惑がってる
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);
   ・
   ・
139128:2006/07/25(火) 15:40:09
お前らには難しすぎたようだなw
140138:2006/07/25(火) 15:54:23
Framework2.0推奨のXmlReaderによるものをやめて、いままでの
XmlValidatingReaderにしたらちゃんと、省略要素もreaderに出現
するようになりました。
なにかsettings が足りないだけなのかな?
とりあず、XmlValidatingReaderで対応しました。どなたか根本的な
原因わかりましたら、教えてください。
141デフォルトの名無しさん:2006/07/25(火) 15:54:39
【開発環境】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
142デフォルトの名無しさん:2006/07/25(火) 15:59:21
>>141
コントロールさわるならReportProgressメソッド /ProgressChanged イベント

http://www.google.co.jp/search?sourceid=navclient&ie=UTF-8&q=C%23+%E3%83%9E%E3%83%AB%E3%83%81%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89

143141:2006/07/25(火) 16:42:02
今あれこれやってみました。
とりあえずBackgroundWorkerでいけそうな気がするので組み込んで試してみることにします
ComplateメソッドとボタンのEnableを変更することである程度形になってきました
まだ途中経過の表示はうまくいきません。実行中は途中経過を頭の中で想像してボーっと待ってる状態です。
ReportProgressメソッド /ProgressChanged イベント の使い方がいまいちわかってないような気がします
144デフォルトの名無しさん:2006/07/25(火) 19:03:27
while文もしくはfor文内にてtimer.Intervalを利用しようとしたのですが
次々と処理が行われてしまい。timer.Intervalが意味をなしません。
while,for文ないにて処理を待機させるうまい方法はありませんでしょうか?
145デフォルトの名無しさん:2006/07/25(火) 19:15:48
なんで Interval ?
Thread.Sleep とか使うか、そもそもタイマ使うならループいらんだろ。
146デフォルトの名無しさん:2006/07/25(火) 21:28:32
>>144
ループでセマフォ待ち。タイマでセマフォ解除。

これでメッセージループ相当のループが作れる。
147デフォルトの名無しさん:2006/07/25(火) 22:08:10
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: 保護されているメモリに読み取りまたは書き込み操作を行おうとしました。
 他のメモリが壊れていることが考えられます。

というエラーが発生しました。

原因がわかりません。よろしくお願いします。(´・ω・`)
148デフォルトの名無しさん:2006/07/25(火) 22:23:00
>>139
つーかさ、#って+を4つ組み合わせたようにも見えるだろ?ようするにあ
れだ、C#の#ってのは++++って意味なんだぜ。
なんつーか、つまりC#からすればCってのは4世代も昔の遺物だってこと。
いい加減お前の学校がいかに時代遅れかわかったか?
ねごとは寝て言えよな。
149デフォルトの名無しさん:2006/07/25(火) 22:27:31
もうちょっと上手くやれよ
150デフォルトの名無しさん:2006/07/25(火) 22:37:25
わるかったな、へたくそで。
いざ仕込んでみようと思っても
意外と難しいもんなんだよ。
お前にできんのか?上手な仕込みが。
人をけなす前にやってみろよ。
151デフォルトの名無しさん:2006/07/25(火) 22:38:09
最後はねこ大好きだろが。
152デフォルトの名無しさん:2006/07/25(火) 22:41:24
わざととか言われてもねぇ……
153デフォルトの名無しさん:2006/07/25(火) 22:50:31





154デフォルトの名無しさん:2006/07/25(火) 22:59:53




155デフォルトの名無しさん:2006/07/25(火) 23:01:06



15679:2006/07/25(火) 23:47:39
>>108-114
そうですか〜。
ヘルプに書いてないから無理なのかなぁとは思ってましたが、
やっぱり無理っすか〜。

なんか別の方法考えてみます。
ありがとうございました。
157デフォルトの名無しさん:2006/07/26(水) 00:33:36





158147: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]
と、インデックスでアクセスする方法て何かないでしょうか?
160デフォルトの名無しさん:2006/07/26(水) 11:32:34
ない

161デフォルトの名無しさん:2006/07/26(水) 12:09:00
そのインデックスってどうやって決まるのさ
162デフォルトの名無しさん:2006/07/26(水) 12:19:35
はじめからArrayListを使えばいいんじゃないかとかそういう話ではないのか
163デフォルトの名無しさん:2006/07/26(水) 12:32:42
SortedListを使えばいいだろ
164デフォルトの名無しさん:2006/07/26(水) 13:42:44
>>159
コードの意味を良く考えろ
165デフォルトの名無しさん:2006/07/26(水) 14:55:13
>>159
ハッシュをaddした順になめたいときってあるよね〜。
(phpだかperlは出来た気がする。)

キーを順番に格納するリストを作ればいいんじゃなかろうか。

dic[list[0]]
166デフォルトの名無しさん:2006/07/26(水) 15:05:29
OrderedDictionary
ジェネリックはないが。
167デフォルトの名無しさん:2006/07/26(水) 15:58:07
dic.Values ではだめなのか?
168デフォルトの名無しさん:2006/07/26(水) 16:04:35
>>166
SortedList<T> がそれにあたるんじゃね?
169デフォルトの名無しさん:2006/07/26(水) 16:12:18
>>167
addしたときの順番は保証されない。

>>166
ソートされちゃってるからaddしたときの順番は保証されない。
170デフォルトの名無しさん:2006/07/26(水) 16:19:36
今調べたけど、OrderedDictionary は全然別物か。

SortedList<T> の Values は挿入時の順序保ってないな。
dic.Values[i] でアクセスできるけど、キーでソートされた順序になってる。

挿入時の順序保存したいなら、Dictionary と ArrayList で2重に持つべきかなぁ。
どうせクラスのインスタンス全部参照渡しなんだし、
コレクションクラス2重に持ってもそんな言うほど領域使わないし。
171デフォルトの名無しさん:2006/07/26(水) 16:57:13
stringならそうもいかないんじゃ?
172デフォルトの名無しさん:2006/07/26(水) 17:03:33
NameValueCollection
やや注意は必要かもしれんが、基本的には普通に使える。
ってかなんでOrderedDictionaryじゃだめなの?
173デフォルトの名無しさん:2006/07/26(水) 17:53:10
う。。
色々ありがとうございます。
要は、インデックスの指定がstringでも、intでも使えたらと思いまして。
とりあえず、
>>165
さんと同じ結論で、Listにてインデックスもたせてますが、他にナイスな方法ないかなと。。。

でもOrderedDictionary もイけそうな感じですね。
特に挿入時の順序は意識していないので。。。
174デフォルトの名無しさん:2006/07/26(水) 18:03:22
>>173
子クラスつくる。だな。
175デフォルトの名無しさん:2006/07/26(水) 18:05:25
>>173
ふと思った、イテレータとかforeach構文とか知ってる?
176デフォルトの名無しさん:2006/07/27(木) 01:05:29
> でもOrderedDictionary もイけそうな感じですね。
> 特に挿入時の順序は意識していないので。。。
つかな、OrderedDictionaryもNameValueCollection
普通にそういう目的で使えるものがあるのに、
なんでそれを使わんの?と俺は言いたいんだが。
どっちも追加順で保持されるようになってるぞ、念のため。

177デフォルトの名無しさん:2006/07/27(木) 01:16:44
List<>は順番保持は保証されてないけど
ぶっちゃけ保持されてるよね(´・ω・`)
178デフォルトの名無しさん:2006/07/27(木) 01:32:40
>>177
何言ってんだ?
179デフォルトの名無しさん:2006/07/27(木) 01:35:07
>>177
List<T>が順番保持保証されてないなんてありえないだろ。
180デフォルトの名無しさん:2006/07/27(木) 01:45:29
ハッシュか何かと勘違いしてるのかな?
181デフォルトの名無しさん:2006/07/27(木) 02:24:41
多分ソート済みじゃないって記述を読み違えたんだと思うよ。
182デフォルトの名無しさん:2006/07/27(木) 02:41:03
List<>をlist<>とかんちがいしてるんだろ
183デフォルトの名無しさん:2006/07/27(木) 15:32:45
スクリプトみたいなものを作ってマウスを制御しようと思っているのですが
プログラムからクリックと同じ動作をさせるにはどうしたらいいのでしょうか?
sendkeyみたいなものがあればいいです。

使用バージョン:.net1.1
184デフォルトの名無しさん:2006/07/27(木) 15:39:33
>>182
?
185デフォルトの名無しさん:2006/07/27(木) 15:40:32
SendMessage
186183:2006/07/27(木) 15:44:09
あと、ドラッグ処理も追加したいのですが、マウス押しながら移動って
どう処理したらいいですか?

この処理もSendMessageを頼りに探せばいいですか?
187デフォルトの名無しさん:2006/07/27(木) 15:53:12
>>186
まずさ、>>183の回答がなんで「SendMessage」なのかを理解しろや
188183:2006/07/27(木) 18:32:27
プログラムからマウスクリックまではできましたが、ドラッグ処理ができません。
189デフォルトの名無しさん:2006/07/27(木) 18:42:59
ドラッグのエミュレートは無理
ドロップのエミュレートはできるけど
190183: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です。

よろしくお願いします。
192デフォルトの名無しさん:2006/07/27(木) 20:37:51
>>191
ヒント:夏時間
193デフォルトの名無しさん:2006/07/27(木) 20:45:16
ヒント:うるう年
194デフォルトの名無しさん:2006/07/27(木) 20:49:52
>>190
マウスのボタンを離す
195デフォルトの名無しさん:2006/07/27(木) 21:13:32
>>192,193
すみません。馬鹿な私にもう少しヒントを教えてください
196デフォルトの名無しさん:2006/07/27(木) 21:40:22
            スポポポポポポーン!!!
      。     。   
        。  。 。 。 ゚
       。  。゚。゜。 ゚。 。
      /  // / /
     ( Д ) Д)Д))
197デフォルトの名無しさん:2006/07/27(木) 21:50:12
>>191
ヒント:キングクリムゾン
198デフォルトの名無しさん:2006/07/27(木) 22:36:37
>>191
ニュー・スコットランドヤード
199デフォルトの名無しさん:2006/07/27(木) 22:39:15
夏だねぇ(´ー`)
200デフォルトの名無しさん:2006/07/27(木) 22:44:13
何を当たり前のことを(ry
201デフォルトの名無しさん:2006/07/27(木) 22:49:20
夏だねぇ厨うぜーよ
202デフォルトの名無しさん:2006/07/27(木) 22:49:40
ナツガキタ
203デフォルトの名無しさん:2006/07/28(金) 00:18:31
アタラシイアサガキタ
204デフォルトの名無しさん:2006/07/28(金) 00:21:38
Webページに表示されている画像をフォーム内に
ドラックドロップすることでDL保存し、ファイル名を取得したいのですが
よい方法はありませんか?
205デフォルトの名無しさん:2006/07/28(金) 00:25:46
ジンセイオワタ
206デフォルトの名無しさん:2006/07/28(金) 00:48:50
>>204
まず実際にフォームに D&D して渡された IDataObject をじっくり調べろ。
話はそれからだ。
207デフォルトの名無しさん:2006/07/28(金) 00:51:34
>>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;
}
208204:2006/07/28(金) 01:21:58
ありがとうございました!!!!!!!!!!
209デフォルトの名無しさん:2006/07/28(金) 01:24:42
TextBoxでListViewのBeginUpdate()みたいなことをやるにはどうしたらいいでしょう?
具体的には以下の操作をしている間、再描画を抑止したいんです。

現在のスクロール状態(と選択状態)を記憶

Textの最後尾に文字列を追加

最初の状態に戻す

この操作自体は問題なくできているんですが、テキスト量が多くなってくると
キャレットが行ったり来たりするせいで激しく画面がちらついて困っています。
210デフォルトの名無しさん:2006/07/28(金) 01:32:40
WM_SETREDRAW
211デフォルトの名無しさん:2006/07/28(金) 03:53:00
>>210
なるほどウィンドウメッセージ直接送るのが手っ取り早いですか。
WM_SETREDRAWしてみたら最初の状態を記憶する必要がなくなって
それは良かったんですが
テキストが描画されているエリアは相変わらずちらついてしまいます…。
ただスクロールバーは飛び回らなくなったんである程度は抑止できてるみたいです。
212デフォルトの名無しさん:2006/07/28(金) 14:12:02
Visibleいじったらどうなる?
213デフォルトの名無しさん:2006/07/28(金) 16:26:09
>>212
Visibleのオンオフ、Enableのオンオフ、どっちもちらつきます。
しかもこの方法を使うとフォーカスが次のコントロールに移ってしまいますし…。
Delphiの時みたいに更新中はコントロールのBitmapイメージ貼り付けるとか
しないとだめそうですね。

とりあえず色々アドバイス頂けましたが諦めることにしました。
ありがとうございます。
214デフォルトの名無しさん:2006/07/28(金) 16:28:57
LockWindowUpdate
215デフォルトの名無しさん:2006/07/28(金) 17:13:24
>>214
画面全体がちらつくという、もう何が何だかわからない状況になりましたw
他のウィンドウでDirectX使ってるせいかなぁ?
216デフォルトの名無しさん:2006/07/28(金) 20:32:33
ダブルバッファは試した?
217デフォルトの名無しさん:2006/07/28(金) 20:56:18
ネットワーク系のアプリを作ってて、本体のフォームのボタンを押すと
非同期POST送信をしてるんですが、
サーバへのPOST送信とサーバ出力受信は、非同期なんで別のスレッド化して実行されてる
からだと思うんですが、このサーバとの送受信のときにMessageBoxを開いても、
本体のフォームに対してモーダルとならないんですが、どうしたらいいんでしょうか?
エラーなどのMessageBoxが出たら、これを閉じるまでは
本体のフォームは操作できないようにしたいんです。
218デフォルトの名無しさん:2006/07/28(金) 20:59:43
Control.BeginInvoke
219デフォルトの名無しさん:2006/07/28(金) 21:49:47
refとoutの違いを教えてください
220デフォルトの名無しさん:2006/07/28(金) 21:52:48
221デフォルトの名無しさん:2006/07/28(金) 21:52:56
呼び出し先が初期化する必要があるかどうか
222デフォルトの名無しさん:2006/07/28(金) 21:58:09
渡された変数に元々入っていた値を使うかどうか
223217:2006/07/28(金) 22:00:03
参考サイト:tp://uchukamen.com/Programming1/HTMLPost/index.htm#SEC5
の"非同期で POST する場合のパターン"で
フォームのボタンを押すとRequestが呼ばれるって感じです。
で、ReadCallBackとWriteCallBackでMessageBoxを呼んだときにフォームに対して>>217
をしたいんだがわからねぇ…orz

>>218だけでは、漏れには無理でした…orz
224デフォルトの名無しさん:2006/07/28(金) 22:09:47
>>220-222
ありがとうございました
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の素の値を使うと何か問題があるのでしょうか?
226デフォルトの名無しさん:2006/07/28(金) 22:49:41
StringFormat 使えば良くね?
227デフォルトの名無しさん:2006/07/28(金) 23:15:58
>>225
MeasureString メソッドは独立した文字列で使用するようにデザインされており、
グリフの突出に対応するための少量の余白を文字列の前後に含めます。
また、DrawString メソッドはグリフのポイントを調整して表示品質を最適化するため、
MeasureString で報告されるよりも狭い範囲に文字列が表示される可能性があります。

以上、ドキュメントより。

よくわかんないけど、ようするにMeasureString とDrawString で一致しないことがあるよ、て感じ?
228デフォルトの名無しさん:2006/07/28(金) 23:24:20
質問です。
実行中のスレッドとは異なるスレッドのスタックトレースを取得するためにスレッドを一時停止状態にしたいのですが、
Thread.Suspend() と Thread.Resume() は deprecated だそうです。
.Net Framework 2.0 ではどのようにすればよいのでしょうか?
229225: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
231223:2006/07/29(土) 09:13:43
>>218,230
invokeやらdelegateやらでググりまくってなんとか…
サーバ通信とフォーム処理は別々のクラスにしてて、
フォーム処理のクラスにMessageBox.show処理をするメソッドを書いて、
サーバのクラスでこの非同期POST送信、受信のときに
このメソッドをControl.BeginInvokeもしくは、Control.Invokeするようにしたら、
>>230の下の処理の流れのようにできました。
上のやり方でいけたのですが、なんかおかしかったらご指摘お願いします。
私の説明も分かりづらいですが…

>>218,230
ありがとうございました。開発時間が限られてるので、助かりました。

232デフォルトの名無しさん:2006/07/29(土) 10:51:18
まぁどうでもいいが、別スレッドでやるなら非同期にしなくてもいいよ
233228:2006/07/29(土) 10:56:46
調べてみたところ何やら代替手段がないようなので
#pragma warning disable 0618
とでもすることにします。
234デフォルトの名無しさん:2006/07/29(土) 12:46:17
イベントとデリゲートってどう使い分けてますか?
235デフォルトの名無しさん:2006/07/29(土) 12:54:23
どうも何も、通知と委譲って分かりやすい違いだと思うが
236最凶VB厨房:2006/07/29(土) 13:17:00
イベントはデリゲート。
237デフォルトの名無しさん:2006/07/29(土) 13:20:03
イベントハンドラーはデリゲート
238デフォルトの名無しさん:2006/07/29(土) 13:23:14
使い分けるもんじゃねーナ。
イヴェントはデリゲートを使ってるだけ。
239デフォルトの名無しさん:2006/07/29(土) 13:27:52
デリゲートな部分にはフェミニーナ軟膏
240最凶VB厨房:2006/07/29(土) 13:37:43
イベントはイベントハンドラを起動するために使う。
デリゲートはイベントを使えるようにする時に使う。
デリゲートは非同期呼び出しをする時に使う。
デリゲートはファンクタを作りたい時に使う。

以上。
241デフォルトの名無しさん:2006/07/29(土) 13:37:50
>>239
まあ、かゆみにはなw
242デフォルトの名無しさん:2006/07/29(土) 13:50:05
>>239
インキンにも効きますか?
243デフォルトの名無しさん:2006/07/29(土) 13:51:03
>>242
インキンにはキンカン
244デフォルトの名無しさん:2006/07/29(土) 13:56:22
えっ?
245デフォルトの名無しさん:2006/07/29(土) 13:57:52
えっ?じゃねぇよ
246デフォルトの名無しさん:2006/07/29(土) 14:29:34
ttp://www.microsoft.com/japan/msdn/thisweek/10lines/extra_bottoncontrol.aspx
を、VS2005 Std. で試してみているのですが:

|続いて、レンダリング(描画処理)のためのコードを記述します。クラスビューより
|OnPaint イベントを選択し、右ボタンクリックによるコンテキストメニューから [追加 - オーバーライド] を選択します。(図2)

247246:2006/07/29(土) 14:32:44
間違って送信してしまいました…

|続いて、レンダリング(描画処理)のためのコードを記述します。クラスビューより
|OnPaint イベントを選択し、右ボタンクリックによるコンテキストメニューから
|[追加 - オーバーライド] を選択します。(図2)

クラスビューでButtonBase内にOnPaintがありますが、ここで[追加 - オーバーライド]
という項目が出ません。

よろしくお願いします。
248デフォルトの名無しさん:2006/07/29(土) 15:06:04
自分で書けよ
protected overrideまで打てばあと補完してくれるっしょ
249デフォルトの名無しさん:2006/07/29(土) 15:19:50
例えば1つのフォームがあって、そのフォームから
何かの処理を担当するクラスのメソッドを呼んで
同期的に処理させているとき、処理経過を
呼出元フォームのステータスバーかなんかに
表示させたいとする。
この場合、処理クラスから呼出元フォームは見えない
(相互参照を避けるために、処理クラスの参照を
呼出元フォームに渡さないように設計するのが普通)
から、こういうときにデリゲートやイベントを使う。
漏れは以前はデリゲートを多用していたんだが、
最近ではもっぱらイベントを使うようにしている。
とくにVBでプログラムするときは、記述が容易だから
イベントの方を使う。
250249:2006/07/29(土) 15:21:43
ごめん逆だ、

(相互参照を避けるために、呼出元フォームの参照を
処理クラスに渡さないように設計するのが普通)

だ。
251デフォルトの名無しさん:2006/07/29(土) 15:22:30
'MyCustomButtonControl.GradientButton' に 'GradientButton_Paint' の定義がありません。
D:\Projects\MyProjects\MyCustomButtonControl\MyCustomButtonControl\MyCustomButtonControl\GradientButton.Designer.cs

となります…

252デフォルトの名無しさん:2006/07/29(土) 15:44:10
>>248
むしろprotectedいらん。override[スペース]ってうってみな
253246:2006/07/29(土) 16:08:01
試してみた所、

protected override void OnPaint(PaintEventArgs pevent)

に補完されます。

ひょっとすると、図2にあるような、プロパティーウィンドウにOnPaintが出ないので、そこが問題でしょうか?

254デフォルトの名無しさん:2006/07/29(土) 16:12:38
それで問題があるのか?
255デフォルトの名無しさん:2006/07/29(土) 16:20:10
2005では
>右ボタンクリックによるコンテキストメニューから [追加 - オーバーライド] を選択します。
の機能は無くなってるのかな

必要ないとは思うけど
256246:2006/07/29(土) 16:40:06
自己解決しました。

GradientButton.csのデザイナで、名前を"Button1"から"GradientButton_Paint"に変更すると
ビルド通りました。

ご助言ありがとうございました。
257デフォルトの名無しさん:2006/07/29(土) 19:49:41
System.Windows.Forms.NotifyIcon のメッセージ通知先ウィンドウハンドルは、
どのようにしたら取得できますか?


それとも、shell32.dll の Shell_NotifyIcon を使って、自前で用意するべきですか?
258デフォルトの名無しさん:2006/07/29(土) 20:06:36
Shell_TrayWnd から辿っていけば見つかることは見つかるが。
それで何をしたいんだ?
259デフォルトの名無しさん:2006/07/29(土) 20:18:38
>>258
あー、うん。1.1 でバルーン付けて欲しいって言われまして。

けど CodeProject に思いっきり探していたのあったんで、今回はそっち使います。
おさわがせしましたほんとすんません(;´Д`)
260デフォルトの名無しさん:2006/07/30(日) 02:09:20
単純なデータクラスをカスタム属性を継承して定義すると
[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の方が良くね?
263デフォルトの名無しさん:2006/07/30(日) 14:51:23
>>262
VBの方が中途半端。
264デフォルトの名無しさん:2006/07/30(日) 15:00:07
265デフォルトの名無しさん:2006/07/30(日) 15:20:10
だから前から言ってるじゃん、「両方使え」と。
おまいらどうしてどっちか一方に決めようとするの?(・∀・)
266デフォルトの名無しさん:2006/07/30(日) 15:26:46
C#とVBならどっちでもい〜じゃん。ただJ#ならちょっと待って考えて欲しい。
267デフォルトの名無しさん:2006/07/30(日) 15:27:00
クラス名からGUIDを求めるのはtypeof(classname).GUIDでいいとおもうのですが、
その逆はどうやってやるのでしょうか?
268デフォルトの名無しさん:2006/07/30(日) 15:45:47
GetTyepFrom... があるだろ
269デフォルトの名無しさん:2006/07/30(日) 16:44:02
初心者の俺が実況用のブラウザ作る!1!!11!
http://ex16.2ch.net/test/read.cgi/news4vip/1154167137/
まとめ
http://vanbl.blog.shinobi.jp/


現在新しい専ブラを開発中ですプログラミングに詳しい方
>>1にアドバイスをお願いします
270デフォルトの名無しさん:2006/07/30(日) 17:11:39
実況用でWMP付ける理由が分からん
271デフォルトの名無しさん:2006/07/30(日) 17:12:37
どうせまた例によって
for(;;){
 str = str + i;
}
みたいなびっくりするほどユートピアなプログラムを書くつもりだろ
272デフォルトの名無しさん:2006/07/30(日) 17:25:54
ミスターサタンスレにまで宣伝してるな・・・
273デフォルトの名無しさん:2006/07/30(日) 17:27:38
それがVIPPER
274デフォルトの名無しさん:2006/07/30(日) 17:28:32
メッセージの多言語化対応ってどうやればいいのですか?
VCみたいにメッセージをリソースとして別ファイルに定義しておいて
間単に読み込むことって標準で提供されてないですか?
275デフォルトの名無しさん:2006/07/30(日) 17:29:21
されてる。
ローカリゼーションとかで MSDN 調べてみれ
276デフォルトの名無しさん:2006/07/30(日) 18:46:01
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 で認識できない文字列が発生する事は考えられますか?
277デフォルトの名無しさん:2006/07/30(日) 18:50:49
UTF-8 で表現できない文字があるかもしれない。
Linux 側に対応するフォントがなければ表示できないかもしれない。
278デフォルトの名無しさん:2006/07/30(日) 19:08:24
UTF-8 は Unicode の符号化形式の一つなので、Unicode の文字を扱う限り化けたりはしない。
フォントの問題で表示できなかったりはするだろうが。
非 Unicode な文字コードが絡んでくると問題も出てくるがね。Wave Dash とか。
279276:2006/07/30(日) 19:09:19
>> 277
ありがとうございます。
フォントについては Linux 側の問題なのであきらめるとして、

> UTF-8 で表現できない文字があるかもしれない。

これを調べる方法、情報のあるサイトなど御存知でしたら
アドバイスを頂けるとうれしいです。

よろしくお願いします。
280276:2006/07/30(日) 19:14:15
>>278
ありがとうございます。
Windows (.NET Framework?) を使う上において、
非 Unicode な文字コードというのはあつかえるのでしょうか?
Windows 上の文字列は全て Unicode なのかな、と思っていましたが
誤解してますか?アドバイスよろしくお願いします。
281デフォルトの名無しさん:2006/07/30(日) 19:29:04
>>280
「機種依存文字」でぐぐるといいと思うよ。
282デフォルトの名無しさん:2006/07/30(日) 19:29:36
つかキーワード出してんだからそれ調べろよ。
283デフォルトの名無しさん:2006/07/30(日) 19:57:11
型付データセットを作っていて、カラム名でSelect文とか作ってるんですけど
カラム名を変更しても楽にするにはどうしたらよいですかね?
自分じゃ、カラム名をconstで宣言しといて、Select文はそれを使うとかくらいしか
思いつかないのですが、よい方法ありますか?
284デフォルトの名無しさん:2006/07/30(日) 21:09:40
単純な質問ですいません。
C#でフォームの内側(枠をのぞいた部分)のサイズを取得する方法、または枠の太さを取得する方法はありますか?
285デフォルトの名無しさん:2006/07/30(日) 21:11:56
Form.ClientSize
286デフォルトの名無しさん:2006/07/30(日) 21:14:04
SystemInformation
287ニート:2006/07/30(日) 23:49:19
C#でキーボードを自動で押下するプログラムを作成し、
某ネトゲで使用していたのですが、バージョンアップ以降
使えなくなりました・・・

keybd_eventのAPIを使ってキー押下を実行していたのですが、
この方法以外に何かありますでしょうか?(;´Д`)
より低水準な方法ってなんでしょうか
288デフォルトの名無しさん:2006/07/30(日) 23:52:23
ロボットにキーボードを押させる
289デフォルトの名無しさん:2006/07/31(月) 00:07:33
ゲームに 『DirectInput を使用しない』 って設定があるかどうか確かめる
290デフォルトの名無しさん:2006/07/31(月) 00:10:35
そもそも規約違反じゃね?
291デフォルトの名無しさん:2006/07/31(月) 00:45:42
どう見てもBOTです
本当にありがとうございました
292デフォルトの名無しさん:2006/07/31(月) 05:49:06
プログラムに罪はない!
使う人に罪があるんだ!
293デフォルトの名無しさん:2006/07/31(月) 08:56:52
バージョンアップ以降ってことは不正ツール認定されて対策されたってことだろう
294デフォルトの名無しさん:2006/07/31(月) 11:27:23
ハッカーならハッカーらしくじぶんでかいけつしる
295デフォルトの名無しさん:2006/07/31(月) 11:35:18
誰がハッカーだよ
296デフォルトの名無しさん:2006/07/31(月) 11:38:09
俺様はC#の世界でも頂点を取る男だ
297デフォルトの名無しさん:2006/07/31(月) 13:30:55
三角形って底辺にも頂点ありますよね
298デフォルトの名無しさん:2006/07/31(月) 13:36:57
C#は三角形だったのか
299デフォルトの名無しさん:2006/07/31(月) 14:07:57
再びすんまそん、
ttp://www.microsoft.com/japan/msdn/thisweek/10lines/extra_bottoncontrol.aspx
なのですが、VisualStudio2005 Std.で試しています。
| [プロジェクト - 新しい項目の追加]からビットマップファイルを作成し、
| [ビルドアクション] を [埋め込まれたリソース] に変更します。(図5)
上記のようにしましたが、GradientButton.bmpをツールボックスのビットマップファイル
に反映できません。

よろしくお願いします。
300デフォルトの名無しさん:2006/07/31(月) 15:05:28
>>297
「辺」に「点」はない
「点」が存在した地点で「辺」は終わる
301デフォルトの名無しさん:2006/07/31(月) 15:17:25
辺は点の集合だろ
点が至る所に存在するんだよ
302デフォルトの名無しさん:2006/07/31(月) 16:24:53
おまえら算数からやり直して来い
303デフォルトの名無しさん:2006/07/31(月) 16:49:50
頂点ってノードのことだよな
304デフォルトの名無しさん:2006/07/31(月) 17:28:42
頂点といったらペニスの先っぽだろ
305デフォルトの名無しさん:2006/07/31(月) 17:54:09
辺は面の端で線だ。
線は点の無限集合だ。
306デフォルトの名無しさん:2006/07/31(月) 18:32:17
【開発環境】Visual C# 2005 Express Edition + Win2k

学校でC#を使い「画像を動かしてプログラムをつくる」ということを
テーマにして勉強しています。
ですが、どうしても3つ以上の画像を動かそうものなら動きがガクガクに
なって使い物にならなくなってしまっています。
画像は基本的に30×30のgifです(大きくてもせいぜい50*50)。
画像を動かすことのコツなどあれば教えていただきたいです

漠然とした質問ですいません。お願いします
307デフォルトの名無しさん:2006/07/31(月) 18:36:12
そんな遅いわけない。
つ【directX】
308デフォルトの名無しさん:2006/07/31(月) 18:37:16
Flash
309デフォルトの名無しさん:2006/07/31(月) 18:40:22
ありがとうございます。
DirectXやFlashはまだやったことないのですが
いい機会なので挑戦してみます
310デフォルトの名無しさん:2006/07/31(月) 18:43:35
>>306
ダブルバッファ
311デフォルトの名無しさん:2006/07/31(月) 19:29:21
kbstate=device.GetCurrentKeyboardState();
で状態を得て、 「A」 が押されていないときの処理を書きたいとしたら
どのようにすればいいですかね?
312デフォルトの名無しさん:2006/07/31(月) 20:23:02
if ( !(「A」 が押されているとき) )
313デフォルトの名無しさん:2006/07/31(月) 21:00:04
画像を動かしてプログラムを作る、ってよくわかんね
314デフォルトの名無しさん:2006/07/31(月) 23:26:55
プロセスIDかウィンドウハンドルからその実行ファイルのパス取得する方法ありますか?
315デフォルトの名無しさん:2006/07/31(月) 23:31:49
>>314
あります
316デフォルトの名無しさん:2006/07/31(月) 23:33:34
サンクス
317デフォルトの名無しさん:2006/07/31(月) 23:34:08
ちくしょおおおおおおおおおおおおおおおおおおおおおお
318デフォルトの名無しさん:2006/08/01(火) 05:42:35
ファイルハンドルからそれを使ってるプロセスを引っ張ってくる方法あるかね?
319デフォルトの名無しさん:2006/08/01(火) 07:45:03
ありますよ
320デフォルトの名無しさん:2006/08/01(火) 09:14:43
サンクス
321デフォルトの名無しさん:2006/08/01(火) 10:47:13
ちくしょおおおおおおおおおおおおおおおおおおおおおお
322デフォルトの名無しさん:2006/08/01(火) 10:50:21
はいはいおもしろいですね
323デフォルトの名無しさん:2006/08/01(火) 11:32:52
「画像を動かしてプログラムをつくる」ってことは
なんかグラフィカルな開発環境を使ってるのか、あるいはそれを作るのか。
324デフォルトの名無しさん:2006/08/01(火) 15:31:45
画像を動かすプログラムを作るってことだろ
で、同時にたくさん動かすとガクガクいうと

大人だったら少しはリア中の脳内を読んでやれよ
325デフォルトの名無しさん:2006/08/01(火) 15:51:35
嫌味にマジレス
326デフォルトの名無しさん:2006/08/01(火) 22:11:22
>>318
まず自分。
327デフォルトの名無しさん:2006/08/02(水) 13:42:44
あるプログラムをC#2005で作ってるんですが
.netFramework2.0上でしか動かせなく困っています。
特に 2.0特有の記述もしてないので
.netFramework1.1上でも動作させたいのですが
方法はありますでしょうか?
どうぞよろしくお願い致します。
328デフォルトの名無しさん:2006/08/02(水) 13:46:57
.NET Framework SDK 1.1を直接使ってコンパイル
329デフォルトの名無しさん:2006/08/02(水) 13:47:33
2003
でコンパイルする
330デフォルトの名無しさん:2006/08/02(水) 13:55:17
C#2005のみでは無理ですか?
331デフォルトの名無しさん:2006/08/02(水) 13:58:29
無理
332デフォルトの名無しさん:2006/08/02(水) 14:07:24
MsBuildで1.1でコンパイルする方法だかソフトの紹介ページ無かったっけ?
333デフォルトの名無しさん:2006/08/02(水) 14:34:49
configに書いときゃいいだろ。
まあゴチャゴチャすんのは確かだが。
334デフォルトの名無しさん:2006/08/02(水) 15:37:43
これからC#を使ってみようと思うのですが
C#で書いたプログラムはコンパイルするときに
.NET1.1 用と .NET2.0 用(あるいはそれ以降のバージョン)
という感じでいくつも配布用バージョン作る必要があるのでしょうか?

あと、ソースを書くときもそれぞれのバージョンを
意識しておく必要があるのでしょうか?
335デフォルトの名無しさん:2006/08/02(水) 15:41:42
>.NET1.1 用と .NET2.0 用(あるいはそれ以降のバージョン)
>という感じでいくつも配布用バージョン作る必要があるのでしょうか?
全バージョンに対応したいならyes

>あと、ソースを書くときもそれぞれのバージョンを
>意識しておく必要があるのでしょうか?
全バージョンに対応したいならyes
336デフォルトの名無しさん:2006/08/02(水) 15:49:26
まじですか

一昔前のブラウザのバージョンによってhtmlやjavascriptが
解釈の違いで苦労したようなことと同じようなことがあるのなら
使うのは止めようと思います
337デフォルトの名無しさん:2006/08/02(水) 16:00:29
両対応にするなら.NET1.1で動くように書けばOK
338デフォルトの名無しさん:2006/08/02(水) 16:00:30
2.0対応だけでおk
339デフォルトの名無しさん:2006/08/02(水) 16:01:15
.NET Frameworkは基本的に上位互換があることになっているから、
普通はより下位のバージョンで動くものを配布すれば良いことになる。

しかし現実と理想は違うもので、完全に上位互換であるわけではないようだ。
340デフォルトの名無しさん:2006/08/02(水) 16:30:11
>>336
フリーウェア書くつもりなら2.0対応だけでいいんじゃね?
企業内とか環境が限定されるならその限りじゃないけど

個人的には1.xのコードは書きたくないぽ
341デフォルトの名無しさん:2006/08/02(水) 16:52:37
>>340
激しく胴衣
2.0使ったら1.xには戻りたくなくなる罠
342デフォルトの名無しさん:2006/08/02(水) 17:06:47
2.0は糞
343デフォルトの名無しさん:2006/08/02(水) 17:07:17
水掛け論
344デフォルトの名無しさん:2006/08/02(水) 17:08:00
>>342
誰もが分かる煽りをするのは何故?
なんか面白いの?
345デフォルトの名無しさん:2006/08/02(水) 17:08:48
>>342
みんな知ってるそうだ
346デフォルトの名無しさん:2006/08/02(水) 17:12:43
3.0は神
347デフォルトの名無しさん:2006/08/02(水) 17:14:10
4.0は糸冬
348デフォルトの名無しさん:2006/08/02(水) 18:34:11
そしてD#へ
349デフォルトの名無しさん:2006/08/02(水) 18:47:21
ネイティブコードが吐けないDなんて
C#やC++/CLIにたいして何のメリットがあるんだ
350デフォルトの名無しさん:2006/08/02(水) 18:47:51
次は「も〜っと! C」だろうが
351デフォルトの名無しさん:2006/08/02(水) 18:48:31
どれみ#
352デフォルトの名無しさん:2006/08/02(水) 18:48:39
D#はネイティブコードを吐けるかも知れないじゃないか!
353デフォルトの名無しさん:2006/08/02(水) 18:55:54
>>350
1.0 = C#
1.1 = も〜っと!C
2.0 = Cドッカ〜ン!
354デフォルトの名無しさん:2006/08/02(水) 19:23:34
3.0 = C ナ・イ・ショ
355デフォルトの名無しさん:2006/08/02(水) 19:46:19
ListBox.DrawItem にて ListBox.ClientSize.Width に依存した処理をしているんですけど、
ListBox や、親 Form のサイズやスタイルが変更された際、どのイベントから ListBox.Reflesh を行うべきですか?

Form や ListBox の Resize, StyleChanged イベントから Reflesh してみたんだけど、
ClientSize.Width が変更前の値なんですわ (・ω・`) 変更後の値を取るにはどうすれば……。
356デフォルトの名無しさん:2006/08/02(水) 19:47:51
(ω・`)
357デフォルトの名無しさん:2006/08/02(水) 20:02:43
すまんス。変更前の値なのは ListBox.MeasureItem のほうだ。
DrawItem ではちゃんと変更後の値になってる…… (´;ω;`)

変更って、非同期に行われるんだっけ?
358デフォルトの名無しさん:2006/08/02(水) 20:04:57
(´;ω;`)
359デフォルトの名無しさん:2006/08/03(木) 09:37:49
C++ で書いていた COM サーバーを、.net framework 上に
移植することになりました。

comvisible を true にするだけで、public なクラスが COM に
公開されることはわかりました。

このとき、COM に公開されるプロパティを動的に生成する方法はありますでしょうか?

C++ の時は、IDispath::GetIDsOfNames と Invoke を自前で書く方法で対応していましたが、
これと同等のことは、C# でもできるでしょうか?
360デフォルトの名無しさん:2006/08/03(木) 16:17:16
C# で作成した Windows アプリケーションから Excel ファイルを開いて
マクロを実行する方法ってありますか?。参考になるページを教えて
頂けないでしょうか?
361デフォルトの名無しさん:2006/08/03(木) 16:23:25
362デフォルトの名無しさん:2006/08/03(木) 20:25:23
TreeViewコントロールを使って、Nodeを追加しているのですが、
キャプションが欠けます。
「〜〜〜追加する」とノードを追加すると、
「〜〜〜追加す」でキャプションが欠けてしまうのですが、調整する方法ありますか?

363デフォルトの名無しさん:2006/08/03(木) 20:46:32
Bold か?
364デフォルトの名無しさん:2006/08/03(木) 21:02:22
>>363
っぽいです。
Boldのせいで欠けるようです。。。
365デフォルトの名無しさん:2006/08/03(木) 21:04:11
TreeView のフォントを Bold にしちまえ
366デフォルトの名無しさん:2006/08/03(木) 21:28:45
Textに再度同じTextを設定すれば欠けずにすみませいた〜
ありがとうございます
367デフォルトの名無しさん:2006/08/03(木) 23:26:40
System.Net.WebClient web = new System.Net.WebClient();
web.DownloadFile(ファイルのURL, 保存するファイル名);
と処理してWebからファイルのDLをおこないたいのですが、
ファイルが存在しない場合、ダウンロードに失敗した場合などの処理は
どのように記述すればよいでしょうか?
368デフォルトの名無しさん:2006/08/03(木) 23:29:45
例外を処理する
369367:2006/08/04(金) 01:42:08
ありがとうございます。なんとか処理できました。
370デフォルトの名無しさん:2006/08/05(土) 16:24:17
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に行かせたいときはどんな指定をさせればいい?
371デフォルトの名無しさん:2006/08/05(土) 16:55:59
>>370
字下げがつぶれてよくわからんが、
using DDD = global::A.DDD じゃだめか。
372デフォルトの名無しさん:2006/08/05(土) 17:29:17
インデント死んでたのでもう一度
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 解決しますた。
373デフォルトの名無しさん:2006/08/05(土) 17:32:07
半角スペース二つとタブは省略されるんだよ
374デフォルトの名無しさん:2006/08/05(土) 17:46:48
・・・orz
375デフォルトの名無しさん:2006/08/05(土) 17:48:47
&nbsp;

半角で
376デフォルトの名無しさん:2006/08/05(土) 18:03:32
Test::Aの中ではTest::は省略できるから
377デフォルトの名無しさん:2006/08/05(土) 21:09:49
戻り値が二次元配列になる関数はどうやって作成したらよいのでしょうか。
関数ポインタや配列とポインタについては調べたのですが、よくわかりません。
どなたかご教示ください。
378デフォルトの名無しさん:2006/08/05(土) 21:21:05
>>377
C#の質問だよな?
public string [ , ] func() か public string [][] func() を用途に応じて使い分ける。
379デフォルトの名無しさん:2006/08/05(土) 21:23:52
って思いっきり誤爆したwwwwwwwwごめwwwww
380デフォルトの名無しさん:2006/08/05(土) 21:25:17
>>378
なるほど!!C#もやっているのでC#でやるときはそれを参考にします!教えてくださってどうもありがとうございました。
381デフォルトの名無しさん:2006/08/05(土) 21:33:29
なんでときどきCスレと間違えるやつがいるんだろう
「C☆相談室」みたいに#を区切りと見間違えてるのかな
382デフォルトの名無しさん:2006/08/05(土) 22:13:25
>>381
両方のスレ開いててさ・・
383デフォルトの名無しさん:2006/08/06(日) 00:58:44
>>381
やべ、「C☆」がちょっとツボにきた
384デフォルトの名無しさん:2006/08/06(日) 14:47:04
基底クラスA,その派生クラスBがあるとして
List<B>をList<A>として扱う又は変換するもっともよい手立ては何ですか?
ConvertAllしかない?
385デフォルトの名無しさん:2006/08/06(日) 14:59:52
うん
386デフォルトの名無しさん:2006/08/06(日) 22:12:48
>>384
たぶんやろうとしてることはリストそのものを変換する必要はないと思うぞ。
クラスAを引数に取る処理用メソッドにforeachで1要素ずつ渡すとかすれば
キャストも何も必要ない。
387デフォルトの名無しさん:2006/08/06(日) 22:19:29
>>384
http://msdn2.microsoft.com/ja-jp/library/ms228359.aspx
ここにかなり詳しく載ってるよ
388デフォルトの名無しさん:2006/08/06(日) 22:19:50
>>386
設計が悪いってのはわかる。
389デフォルトの名無しさん:2006/08/06(日) 22:56:41
>>386-387
ありがとう。ジェネリックの分散と呼ぶんですね。
参考になります。
>>388
どんな設計が悪くて、どうすれば悪くないか具体的に例をだして
頂けると有難いです。なぜ設計が悪いとわかるのですか?
390デフォルトの名無しさん:2006/08/06(日) 23:03:54
>>389
引数の型を具体化せずジェネリクスにすれば良いんじゃないか?
391デフォルトの名無しさん:2006/08/06(日) 23:41:25
ICollectionとICollection<T>にまったく互換性がなかったのは泣けた。
IDictionary<K,V>.KeysをIDictionary.Keysと同様に使いたかっただけなんだけど。
ラッパ作るの単純作業でメンドイし。スニペットでもあればいいんだけど。
392デフォルトの名無しさん:2006/08/07(月) 01:52:55
ペニスット
393デフォルトの名無しさん:2006/08/07(月) 15:48:59
TreeViewで選択した行のIndexを取りたいのですが、
ListBoxのSelectedIndexにあたるものがなくて困ってます。
IndexOfやらSelectedIndicesやらで
取れるのかと思い色々やってみたのですが、
うまくいきませんでした。
ご教示していただきませんでしょうか?
394デフォルトの名無しさん:2006/08/07(月) 15:58:32
>>393
TreeViewの行って何?
395393:2006/08/07(月) 16:02:48
TreeView→ListViewの間違いですorz
ListViewで詳細表示の時です。
396デフォルトの名無しさん:2006/08/07(月) 16:37:32
>>395
SelectedIndicesで取れるはずだけど
397デフォルトの名無しさん:2006/08/07(月) 17:21:03
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"が削除されてしまいました。
どなたかご存知の方ご教授ください。
399デフォルトの名無しさん:2006/08/07(月) 21:50:41
くまー
400デフォルトの名無しさん:2006/08/07(月) 21:54:25
>>398
@は文字列には含まれていない。あくまでもコンパイラが解釈するもの。
401デフォルトの名無しさん:2006/08/07(月) 21:54:35
( ゚д゚)…
402デフォルトの名無しさん:2006/08/07(月) 21:54:43
>>398
@はstrには含まれない
403デフォルトの名無しさん:2006/08/07(月) 22:01:34
”C”が削除されてしまったってあんたwwww
それ確認した時に@が文字としてはくっついていないことも確認できただろwwwwwww
ネタばればれだからwwww
404デフォルトの名無しさん:2006/08/07(月) 22:02:27
>>398
@"C:\temp\test.txt"



"C:\\temp\\test.txt"

は、どちらも

C:\temp\test.txt

を表す文字列を表記したコード
405デフォルトの名無しさん:2006/08/07(月) 22:11:32
>>398
なぜそういう処理を思いついたんだ?
@はC#構文の一部なわけだが、そこに何故か注目してしまったお前の脳内が気になる
単なる思い違いならそれはそれでいいのだが

406デフォルトの名無しさん:2006/08/07(月) 22:39:00
>>398
もしかして正規表現とかに突っ込むので
エスケープ文字を更にエスケープしたいってことか?
407デフォルトの名無しさん:2006/08/07(月) 22:53:58
List や Array から重複した項目を削除する処理(stl の unique みたいな)
はライブラリにありますでしょうか?
自分で書くしかないでしょうか?
408デフォルトの名無しさん:2006/08/07(月) 22:57:15
ライブラリにあるかないかくらいドキュメント見ろよ

409デフォルトの名無しさん:2006/08/07(月) 23:23:56
>>407
ContainsがTrueを返す限り、Removeを実行すりゃいい。
410デフォルトの名無しさん:2006/08/07(月) 23:34:35
>>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はそもそもファイルパスとして成立していないですし・・。


412デフォルトの名無しさん:2006/08/08(火) 00:04:10
3の ”\t" はタブ文字だよwww
413デフォルトの名無しさん:2006/08/08(火) 00:04:57
そこまで分かってて何で @ に拘るんだろう
414デフォルトの名無しさん:2006/08/08(火) 00:07:07
>>413
いや分かってないから拘ってるんだろ
415デフォルトの名無しさん:2006/08/08(火) 00:09:13
>>410
凄まじく勘違いしてた。忘れてくれ。
416デフォルトの名無しさん:2006/08/08(火) 00:09:18
"c:\temp\test.txt"

が表す文字列は

c:\temp\test.txt

ではなく

c:  emp est.txt
417デフォルトの名無しさん:2006/08/08(火) 00:10:09
そんなくまー
418デフォルトの名無しさん:2006/08/08(火) 00:13:10
DrawTextって文字数増やしながら重ね書きするとひどいことになりますか?
419デフォルトの名無しさん:2006/08/08(火) 00:49:55
>>418
なんでもやってみることが大切 だと隣のおばあちゃんが言ってたぜ
420デフォルトの名無しさん:2006/08/08(火) 01:33:07
またチャレンジ精神に満ち溢れた老人だな。
421デフォルトの名無しさん:2006/08/08(火) 08:34:38
コンピューターおばあちゃん
422デフォルトの名無しさん:2006/08/08(火) 09:47:05
ビジュアルばあさん
423デフォルトの名無しさん:2006/08/08(火) 12:41:03
最近前都知事見ねぇな
424デフォルトの名無しさん:2006/08/08(火) 15:03:06
それは「いじわるばあさん」だろ?
425デフォルトの名無しさん:2006/08/08(火) 15:06:36
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デフォルトの名無しさん:2006/08/08(火) 15:20:49
ttp://www12.plala.or.jp/dokugaku/main/8/7.html
ここに

Form1.cs
・・・
// 自分自身を保存するための変数
public static Form1 form1;
form1 = this;
・・・

Form2.cs
・・・
Form1.form1.textbox1〜
・・・
とかやってるけどこれっていいのか?
427デフォルトの名無しさん:2006/08/08(火) 15:32:04
>>425

うにこーどでないの?
C#の既定はAnsiだったきがする


>>426
何が?
428デフォルトの名無しさん:2006/08/08(火) 15:37:14
>>426
お前が「いいのか?」と疑問に思った理由は?
429425:2006/08/08(火) 15:39:23
>>427
そう思ってDllImportのCharSetに4パターン全部入れてみましたが全部だめでした。
430デフォルトの名無しさん:2006/08/08(火) 16:02:15
>>428
Form1が複数有った場合にform1は常に自分が想定したform1になるの?
自分でいってておかしくなってきた。
431デフォルトの名無しさん:2006/08/08(火) 16:14:04
>>426
参照をもったメンバ変数を直接見せずに GetInstanceのような公開用メソッドを使うべきなんだろうし、
TextBox1もオブジェクトを直に触らせずに必要な操作だけラップして公開すべきなんだろうけどね。
あとForm1がシングルインスタンスであることが前提になるから二重起動の防止の仕掛けも欲しいところだけど
入門サイトのレベルでそこまで求めるかどうかはそこの人しだいじゃないの。
432デフォルトの名無しさん:2006/08/08(火) 16:20:48
>>431
二重起動とForm1がシングルインスタンスを前提とすることって関係なくね?
もしかしてstaticフィールドがプロセス間で共有されると思ってる?
433デフォルトの名無しさん:2006/08/08(火) 16:23:04
>>432
すまん言葉の使い方を間違った。Form1から2つ以上インスタンスが作られるケース。
434デフォルトの名無しさん:2006/08/08(火) 16:33:04
>>429
[return: MarshalAs(UnmanagedType.LPTStr)]とか?

それかポインタにいれちゃって取り出してみるとか。
435デフォルトの名無しさん:2006/08/08(火) 16:51:20
>>425
その関数が返す文字列はスタックに一時的に確保されているものだから
関数を抜けるとその内容は保障されない。

そもそもそのコードコンパイルできるの?
436デフォルトの名無しさん:2006/08/08(火) 16:57:37
>>431-433
Form1は1つの時はOKということでいいんですね。
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;

の意味合いの違い(用途?)を教えてください。宜しくお願いします。
438デフォルトの名無しさん:2006/08/08(火) 18:12:34
そもそもがおかしいから
439デフォルトの名無しさん:2006/08/08(火) 18:25:22
>>437
初心者用スレいきだと思うけど。

>Original_Class oc = new Original_Class(); //←の間違いでしょ
>oc = original_class;

見た通り、クラスのインスタンスを作成している。
そのときコンストラクタ等でいろいろ作業して頑張ってクラス作ったのに

 >oc = original_class;

でばっさりそのインスタンスへの参照を上書きして、古い方を参照させている。
コンストラクタで特別なことしてない限り(何か状態の変わるような糞をしてない限り)
まったく意味無し。新しいインスタンスは参照を失ってGC待ち。


>Original_Class oc = original_class;

は、単に参照をコピーしてるだけ。
440デフォルトの名無しさん:2006/08/08(火) 18:27:39
×頑張ってクラス作ったのに
○頑張ってインスタンス作ったのに
441デフォルトの名無しさん:2006/08/08(火) 18:51:00
>初心者用スレいきだと思うけど。
スレ違にも答えていただきありがとうございます。

>Original_Class oc = new Original_Class(); //←の間違いでしょ
(;゚Д゚)そうでした。

Original_Class oc = new Original_Class();
oc = original_class;

は意味なしな行為だったんですね。ご教授ありがとうございます。orz

442デフォルトの名無しさん:2006/08/08(火) 23:11:15
たぶん>>431はフォームの複数表示の意味で回転だろうよ。
しかしむしろそのサイト読んだら誤解が増えそうで厳しい。
443デフォルトの名無しさん:2006/08/09(水) 16:57:22
>>425
普通こうでしょ
char* hoge(char* buf){
 strcpy(buf, "hogehoge");
 return buf;
}
static extern void hoge(byte[] buf);
いい加減だから適当に修正してくれ。
444デフォルトの名無しさん:2006/08/09(水) 18:04:38
menuStrip ってラジオボタンつーの?
排他的に項目選択できるのがないのな。
ダサ。
445デフォルトの名無しさん:2006/08/09(水) 18:12:28
CheckState を Intermediate だったかにすれば
見た目だけはラジオボタンぽくなる
446:2006/08/09(水) 18:31:47
質問させて下さい。

開発環境はMicrosoft Visual Studio .NET 2003です。

DataGridをForm上で使用しているのですが、
キーとなる列を見てとある値が入っている行の一部のセルの色を変えたいのです。

どなたかご教授願えませんでしょうか?
よろしくお願いします。
447デフォルトの名無しさん:2006/08/09(水) 21:52:38
448デフォルトの名無しさん:2006/08/09(水) 22:19:27
>>425
C#以前の問題としてそのエクスポート関数が最悪。
…時々この手のヤバいエクスポート関数のP/Invokeの質問をみるのだが
なんでなんだろう。
449デフォルトの名無しさん:2006/08/09(水) 22:23:26
425のようなコードを書くやつ(== C/C++を使いこなせないやつ)にとって、C#はちょうどよい言語の1つ。
450デフォルトの名無しさん:2006/08/09(水) 23:01:52
おれ生粋のド素人でC#しか知らないけど、
いきなりC++習いだしたら
>>425みたいに書いてしまうだろうな。
C#の気分でスタックの変数返すメソッド書くと思う。
451デフォルトの名無しさん:2006/08/09(水) 23:24:26
C++の勉強になりました
452デフォルトの名無しさん:2006/08/10(木) 00:54:03
>>450
Win32ぜんぜん知らないんだけど、配列に文字列代入できんの?
返されるのは元の配列のポインタなのか代入されたポインタなのかどっちなの?
代入されたポインタなら少なくともスタックの変数じゃないと思うんだが…
453デフォルトの名無しさん:2006/08/10(木) 01:15:10
>>452
配列に”代入”ではなく”コピー”

char s[256];
strcpy(s,"hoge");

とすると、
sというポインタ(文字型256バイトのメモリを指している)の
位置に、'h','o','g','e','\0'というデータ(5バイト)をコピーする
454デフォルトの名無しさん:2006/08/10(木) 01:15:47
>>452
配列に文字列代入できない。できるのは配列の初期化のとき。
静的配列はスタックに確保される。もちろんそのアドレス返す関数はあぼーん。
455デフォルトの名無しさん:2006/08/10(木) 01:34:27
つまりどうするのが正解?
456443:2006/08/10(木) 01:45:54
457デフォルトの名無しさん:2006/08/10(木) 02:29:00
>>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ファイルでエクスポートしないと名前に序数値がつく…と思ったけど呼べてる
らしいのが不思議(理由分かる人いる?)。
458デフォルトの名無しさん:2006/08/10(木) 05:28:44
>>457
> 4. .defファイルでエクスポートしないと名前に序数値がつく…と思ったけど呼べてる
> らしいのが不思議(理由分かる人いる?)。

extern "C"
459デフォルトの名無しさん:2006/08/10(木) 06:04:31
>>458
C++ほど意味不明なものはつかないが、それしても_とか@0とかは付くと
思ったけど…?気のせいかな
460デフォルトの名無しさん:2006/08/10(木) 08:18:00
>>459
こら、C++の意味不明さと、Windows固有仕様の意味不明さをごっちゃにするな。

_とか@0が付くのはstdcallのときだけ。
425のhogeはおそらくcdeclのはずなので関数の頭に_が付くだけ。

ちなみに__declspec(dllexport)を書いておきながら、
DEFファイルも作れば何の修飾もない名前で公開することもできる。
461デフォルトの名無しさん:2006/08/10(木) 09:10:39
>>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に値を書き出すという構造です。
463デフォルトの名無しさん:2006/08/10(木) 12:46:20
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 );
464デフォルトの名無しさん:2006/08/10(木) 12:58:14
強引だなぁ。嫌いじゃないけど

test(ref test_struct v);

でいいはず。あとaはStringBuilderでいけない?駄目なら忘れて
465デフォルトの名無しさん:2006/08/10(木) 14:21:58
DataGridViewの列の幅をアプリケーション設定でユーザ毎に設定することは可能ですか?
466デフォルトの名無しさん:2006/08/10(木) 14:29:52
>463、464

サンクス
StringBuilderでいけました。
IntPtrもやってみたけど、プログラムが煩雑になるのでStringBuilderにしました。

てか、そのままのサンプルがMSDNにあった。
もっと調べてから質問すべきでした。m(__)m
ttp://msdn2.microsoft.com/ja-JP/library/e765dyyy.aspx
467デフォルトの名無しさん:2006/08/10(木) 14:49:32
>>465
可能です
468デフォルトの名無しさん:2006/08/10(木) 14:56:42
>>467
PropertyBindingのどの項目を設定すればいいのか教えていただけますか?
469デフォルトの名無しさん:2006/08/10(木) 16:06:11
そりゃWidthでしょう
ただしDataGridView本体じゃなくてDataGridViewTextBoxColumnの方で。
470デフォルトの名無しさん:2006/08/10(木) 16:09:57
×DataGridViewTextBoxColumn
○そのDataGridViewColumn
471デフォルトの名無しさん:2006/08/10(木) 18:55:10
数字の部分は数値として文字列を比較する方法って、.NETで提供されてる?
エクスプローラでのソート順と同様の。
ex. "3" < "12"、 "abc3" < "abc12"
472デフォルトの名無しさん:2006/08/10(木) 19:21:07
framework 1.1で
System.Drawing.Printing.PageSettingsクラスの
PaperSize.kind(Kindではない)の値を取りたいのですが方法は無いでしょうか?

framework2だとrowKindだったか何かで取れるようですが、
1.1だと無理なのでしょうか?
ググってみたらAPIがなんちゃらって書いてあったのですが
そこからさっぱり進めません。
解決策を教えてくだい。
473デフォルトの名無しさん:2006/08/10(木) 20:35:08
>>471
String.Compareがあるがな(´・ω・`)

>>472
>PaperSize.kind(Kindではない)
って何?
474デフォルトの名無しさん:2006/08/10(木) 20:57:32
>>473
もちろん試した。文字列としてのみ比較可能だった。
カルチャを使えば曜日の文字(日, 月 ... 土)は
曜日順の結果を得ることもできたが、数字はダメっぽい。

あとVBも文字列操作に便利なものが多いから調べてみたけど、
要求を満たすものはなさそう。
475デフォルトの名無しさん:2006/08/10(木) 21:25:38
>>474
いわゆる自然順ソートってやつか
http://sourcefrog.net/projects/natsort/
にあるC言語で書かれたアルゴリズムを自力で移植するしかないんじゃないか
476デフォルトの名無しさん:2006/08/10(木) 22:14:21
C#でゲーム作りやってるのですが,お勧めの参考書ないでしょうか。
C#もDirectXも初めてで
カスタムUIがさっぱりわからず苦戦してます

ネット文献も尽きてきてしまいました
宜しくお願いします
477デフォルトの名無しさん:2006/08/10(木) 22:26:32
ゲーム以前の知識が足りない
478デフォルトの名無しさん:2006/08/10(木) 22:26:43
DirectXは勉強の題材には向かないと思うよ
普通にC#を勉強してからのほうがいい
479デフォルトの名無しさん:2006/08/11(金) 00:15:06
アプリケーションがアクティブがないときに、
マウスクリックのイベントを拾って来たいのですが可能でしょうか?

Timerクラスでなんとかできないかと試したのですがよくわかりません。。。
どなたかお願いします。
480デフォルトの名無しさん:2006/08/11(金) 00:15:46
orz・・・アプリケーションがアクティブではないときに、
です。連投すいませんorz
481デフォルトの名無しさん:2006/08/11(金) 00:19:33
アクティブでない時にはそもそもクリックされないと思うのだが。
クリックしたら自動的にアクティブになるしな。

まあグローバルフックとかその辺じゃね。
482デフォルトの名無しさん:2006/08/11(金) 00:19:36
.NET ではマウスのグローバルフックはできないといわれている
483デフォルトの名無しさん:2006/08/11(金) 00:22:43
つーかクリックでアクティブ化したときも
Clickイベント起きてるけど?

484デフォルトの名無しさん:2006/08/11(金) 00:23:39
ああ御免かんちがい
485デフォルトの名無しさん:2006/08/11(金) 00:46:55
486デフォルトの名無しさん:2006/08/11(金) 01:11:03
CLR VIA C# 2Ed 購入して勉強中…
リッチャーって天才すぎです
487デフォルトの名無しさん:2006/08/11(金) 07:55:21
>>482
できるよ、ちょい不安定だけど(・∀・)
488デフォルトの名無しさん:2006/08/11(金) 08:00:58
>>475
自然順ソートって呼ばれてるんだ。
どうもありがとう。調べてみる。
489デフォルトの名無しさん:2006/08/11(金) 10:03:21
>>469
自分でコード書いてやらないと出来ないのですか?
ウィザードとかあれば助かるのですが・・・
490デフォルトの名無しさん:2006/08/11(金) 10:12:35
>>489
いやウィザードあるっしょ。
ただ直接プロパティ見れないから、ドキュメントアウトラインから当該Columnを
選択してプロパティ→(ApplicationSettings)→(PropertyBinding)
491デフォルトの名無しさん:2006/08/11(金) 11:27:02
>>490
出来ました。ありがとうございました。
492472:2006/08/11(金) 12:00:11
>>473
System.Drawing.Printing.PaperSizeクラスの
kindというプロパティの事です。
Kindという別の値は取れるのですが、それじゃ困るので質問してみました。
493デフォルトの名無しさん:2006/08/11(金) 13:21:03
ちょっと気になったんだけど、
PropertyBindingすると結構もっさりしない?
494デフォルトの名無しさん:2006/08/11(金) 13:27:00
>>492
言ってることが分かりにくかったが、
生のintのことかな?

PaperSize.KindでとれるPaperKindはenumなんだから
intにキャストすればいいんじゃね?
495472: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
496デフォルトの名無しさん:2006/08/11(金) 13:37:49
>>495
>>494

Console.WriteLine( (int)page.PageSettings.PaperSize.Kind );

>kindというプロパティ
なんてこの世に存在しない
497472:2006/08/11(金) 13:48:14
page.PageSettings.PaperSizeの部分を
クイックウォッチで見てみると、kindは存在しているように見えるので、
内部的には持ってると思うんですが、違うのでしょうか。
498デフォルトの名無しさん:2006/08/11(金) 13:50:36
publicじゃないから
499デフォルトの名無しさん:2006/08/11(金) 13:51:09
>>497
内部的に持っていたとしても外部から見えるとは限らんでしょー
リフレクションかなにかで叩きなさい
500デフォルトの名無しさん:2006/08/11(金) 14:04:07
コンソールアプリの出力をリッチテキストボックスに書き出す方法はどういう方法がありますでしょうか?
501デフォルトの名無しさん:2006/08/11(金) 14:16:53
>>500
System.Diagnostics.Process
502デフォルトの名無しさん:2006/08/11(金) 14:41:54
>>499
リフレクションというのを使えばprivateメンバ等の値も取得できるのですね。
ちょっとやってみます。有難うございました。
503デフォルトの名無しさん:2006/08/11(金) 14:46:18
ブロック中の HttpWebRequest.GetRequestStream から即座に復帰させるために、Thread.Abort は適切ですか?
HttpWebRequest.Abort では復帰しなかったのですが……。
504デフォルトの名無しさん:2006/08/11(金) 15:44:14
>>502
あのねー、Reflector使えば分かるけどねー、
そのprivateなkind(PaperKind型)ってKindプロパティで取れるものとおなじだよ?
2.0のRawKindだってintにキャストしてるだけだよ〜




  ( ⌒ ) ポッポー
   l | /

⊂(#・∀・)    だから>>494でそう言ってるじゃないか!
 /   ノ∪         もうやってらんないっすよ!!
 し―-J |l| |
         人ペシッ!!
      (_)
     )(__)(_
    ⌒)   (⌒
      ⌒Y⌒
505デフォルトの名無しさん:2006/08/11(金) 16:07:46
>>504
真に申し訳ないです。494は素で読み飛ばしてましたorz
でも
page.ShowDialog(); で表示されるダイアログで
"連続紙 15x9inch"を選択した場合
kind は 234
Kind は Custom
(int)page.PageSettings.PaperSize.Kind は 0
になっています。
うざかったらすまんです。消えまつ
506デフォルトの名無しさん:2006/08/11(金) 16:16:31
>>505
うんこ投げてすまんかった。
Kindは特定の紙のタイプだとPaperKind.Customを返すようだね。
507デフォルトの名無しさん:2006/08/11(金) 16:18:35
>うんこ投げてすまんかった。

お前素直で良いなw
508デフォルトの名無しさん:2006/08/11(金) 19:32:25
消えるって言ったけど、最後に言わせておくれ。
「Reflection C# メンバ private」でググって解決できました
うんこ投げてくれてありがとう〜。感謝してます
509デフォルトの名無しさん:2006/08/11(金) 19:40:15
    |
    |                |
    |      ∩   ジャーッ ゴボゴボ・・・
__ノ      .| |         |  _
| |        .| |          ./ )ノ\__ヽ
ヽ二二 ヽ -―- | |        .//|\ノ(◎)
_____/ /" ̄| ヽ∧_∧// .|
   /  /    / ( ;´Д`)  ̄ ̄\
   |  |/⌒゙ /      /       \
   .\ヽ__ノ__,,./。 ゚    |\   .\
     .\\::::::::::::::::: \\ ゚ ./   ̄ ̄ ̄ ̄ ̄ ̄
       .\\::::::::::::::::: \\ | うんこ流します
       \\::::::::::::::::: \ .\_______
         \\_:::::::::::_) )
             ヽ-二二-―'
510デフォルトの名無しさん:2006/08/11(金) 19:42:38
>>508
違う
Reflectorだ
511デフォルトの名無しさん:2006/08/11(金) 20:02:53
うぉぉぉかけたぁぁぁぁぁ

ところでC#でMixinみたいにしたいんだが誰かいいアイデアないでしょうか。
Mixinしたいクラスをインタフェースとインプリメンテーションに分けて委譲してみたけどめんどくさすぎて気軽な実装に耐えないです・・・
512デフォルトの名無しさん:2006/08/11(金) 20:08:56
>>223と同じことで行き詰まってしまってます。
>>231をもうちょっと詳しく教えて貰えないでしょうか?

Form1のbutton1のClickイベントハンドラで、BackgroundWorkerを開始して、
backgroundworker1のDoWorkイベントハンドラで、別に作ったClass1の処理をします。
その処理のメッセージをForm1のMessageBox.Showと同じように扱いたいのです。
Class1からどのようにしてForm1のメッセージを処理するメソッドを呼ぶのでしょうか。
513デフォルトの名無しさん:2006/08/11(金) 20:38:02
>>511
C#3.0の拡張メソッドを使えば目の錯覚を起こせるかも
514デフォルトの名無しさん:2006/08/11(金) 21:13:09
>>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" );
 }
}
515デフォルトの名無しさん:2006/08/11(金) 21:13:55
続き

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 );
  }
 }
}
516デフォルトの名無しさん:2006/08/11(金) 22:18:37
>>493
そうなんですか?
517デフォルトの名無しさん:2006/08/11(金) 22:58:59
Formのサイズとか位置をバインディングしたら、体感速度が遅くなったよ。
Debugでやってるからかもしれないけど。
518デフォルトの名無しさん:2006/08/12(土) 00:24:28
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に変換できたか確認
}
}
519デフォルトの名無しさん:2006/08/12(土) 00:28:58
コピペミスってないとして
そのできない方コンパイルできたっけ
520デフォルトの名無しさん:2006/08/12(土) 00:38:04
いや、コンパイルできません。
型変換とか色々いじってはいるのですが、まだ出来ず・・・
521デフォルトの名無しさん:2006/08/12(土) 00:40:42
>>520
君はVB使いかね?
コンパイルエラーはif (tagNum = 77) の所で出てるんじゃないの?
522デフォルトの名無しさん:2006/08/12(土) 00:44:30
そうです。VB以外を覚えようとC#やりはじめたばっかりです。
>コンパイルエラーはif (tagNum = 77) の所で出てるんじゃないの?
そのとおりです。ということは型変換に問題があるんじゃなくて、
ifのところにあるのですね。
調べてみます。
523デフォルトの名無しさん:2006/08/12(土) 00:50:08
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にしたかったのか?
524デフォルトの名無しさん:2006/08/12(土) 00:51:29
勝手に型変換が悪いと思って色々いじくっていたんですが、
tagNumを初期化してなかったのが原因なのですね。
int tagNum =0;とすることでコンパイルできました。
お騒がせしました&ありがとうございました。
525デフォルトの名無しさん:2006/08/12(土) 00:51:45
>>523
予想:現在やっているのはVBの移植作業
526デフォルトの名無しさん:2006/08/12(土) 00:52:26
>>524
むしろなんでそれで通ってるんだよ
527デフォルトの名無しさん:2006/08/12(土) 00:52:43
>>521
VBって = 一つでいいの?
じゃあ
bool equal = string.Empty == "";
みたいな事出来ないの?まあ使わないけど。
528デフォルトの名無しさん:2006/08/12(土) 00:56:04
Intならなんでもよかったので意味なく16にしました。
523の式のほうがスマートですね。
使わせていただきます。
真夜中にありがとうございます。
529デフォルトの名無しさん:2006/08/12(土) 00:57:36
数値計算用のfortranのコードをC#に移植しています。
問題なく移植できているか確認するために、
各関数の入出力値をファイルに書き出して、
境界変数としてFortranのコードに与えて、出力が一致することを確かめています。
しかし、C#で実数値を文字列化して書き出すと、例えば

0.0000024835268656412763

2.48352686564128E-06 = 0.00000248352686564128

となってしまい、微妙に値が変わってしまいます。
数値計算的に微分値などを求めるようなコードもあるため、
このあたりの僅かな差が出力に大きく影響を与えてしまいます。
何か解決方法は無いでしょうか?
530デフォルトの名無しさん:2006/08/12(土) 01:06:59
>>528
なんか変な方向に誘導しちゃったようなので一応フォローしとくと
比較演算子は=じゃなくて==な

>>529
Decimal型使えば解決するかもしれない
531デフォルトの名無しさん:2006/08/12(土) 01:07:23
decimal使えばマシになるんじゃね
つか浮動小数使う時点で誤差はあきらめんといかんな
532デフォルトの名無しさん:2006/08/12(土) 01:13:57
24835268656412763 …… 仮数部 54 ビットか。
Double は仮数部 24 ビットまでしか入んなかったような希ガスー。

C# って任意の精度を持つ浮動小数点なかったっけ?
探せばどこかにあると思うけど。
533デフォルトの名無しさん:2006/08/12(土) 01:20:46
……適当すぎたな。すまん >>532 は忘れてくれ。
534デフォルトの名無しさん:2006/08/12(土) 02:00:47
タグに文字列なんて入れないで独自の構造体なりを持たせればいいのに。
535デフォルトの名無しさん:2006/08/12(土) 02:25:18
>>514,515

出来ました!

>class1.TestMethod( this );
>public void TestMethod( Form1 form )
ここがポイントでした。
ずっとClass1のTestMethodでForm1をnewしていて・・・。
こうやってみると無茶な書き方だと思うのですが、そんな書き方思いもよらなかった。
何とか自力解決しようと思ったのですが、思い切って聞いてよかったです。
自力じゃ確実に無理でした。
どうもありがとうございました。
536491:2006/08/12(土) 02:36:08
出来たと思ったのですが、user.configに保存されません。
フォームのサイズとかは保存されているのですが…
他にも何か設定が必要なのでしょうか?
537デフォルトの名無しさん:2006/08/12(土) 08:50:19
あれって一部うまくいかないのがあるから対応していないのかも
フォームの最大化最小化とかバインディングさせようとすると
とんでもないことになったことがあったような気ガス
538デフォルトの名無しさん:2006/08/12(土) 09:04:30
RestoreBoundsじゃないとかいうオチですか?
539デフォルトの名無しさん:2006/08/12(土) 14:22:53
>>515
ところで最後の
Thread.Sleep(500);
はなにか理由があるのでしょうか?
540デフォルトの名無しさん:2006/08/12(土) 22:12:52
RestoreBoundsって手動のコードで使うときは信用できなくないですか?
LocationChangedのときにプロパティみてもLocationが0,0だったり
541デフォルトの名無しさん:2006/08/12(土) 22:20:57
>>540
MSDNくらい読んだらどうだ?
542デフォルトの名無しさん:2006/08/12(土) 22:33:03
RestoreBounds プロパティは、Form クラスの WindowState プロパティが Normal でない場合のみ有効です。
543デフォルトの名無しさん:2006/08/12(土) 23:21:22
スレイプニルみたいなソフトを作りたいのですが、ちっとも分かりません。
早わかりとか、かんたんとか書いてあるのに全然難しいです。
入門ページとかは変数とかの話ばっかりで役に立ちません。どうすればいいですか。
544デフォルトの名無しさん:2006/08/12(土) 23:54:45
諦めたら?
545デフォルトの名無しさん:2006/08/12(土) 23:57:08
>>543
あきらめろ。お前にゃ無理。
あるいはふらっとスレにでも池。その前にその腐れ文章なんとかせんと、
向こうでも相手にしようがないけどな。
546デフォルトの名無しさん:2006/08/13(日) 00:18:50
>>543
夏休みの宿題には
http://www.uchukamen.com/Programming1/WebBrowser/index.htm
これでも提出しとけ



という煽りはおいといて、
↑くらいのもの自分で作ってみて、
コード書きながら学んでいった方がいいよ。
547デフォルトの名無しさん:2006/08/13(日) 00:19:33
>>545
玄人でもないくせに説教されてもうざいだけだ。

548デフォルトの名無しさん:2006/08/13(日) 00:31:05
決めつけ同士仲良くしろよw
549デフォルトの名無しさん:2006/08/13(日) 01:18:05
釣りだろ。
550デフォルトの名無しさん:2006/08/13(日) 01:25:52
ダメなやつは何をやってもダメ
551玄人:2006/08/13(日) 02:44:14
>>547
身に覚えがあるのかよ(プゲラ
いい加減気づけよ、厨房wwwwwwwwww
552デフォルトの名無しさん:2006/08/13(日) 03:35:22
2ちゃんってほんと割り切って読まないと心やられるな。
553デフォルトの名無しさん:2006/08/13(日) 03:41:46
ttp://www.geocities.co.jp/SiliconValley/5459/
これDLして起動したんだけど、左の板リスト以外何も表示されない(スレッド一覧等)
誰か原因分かる方いらっしゃればご助言頂けませんでしょうか
554デフォルトの名無しさん:2006/08/13(日) 03:55:05
>>543
>早わかりとか、かんたんとか書いてあるのに全然難しいです。
>入門ページとかは変数とかの話ばっかりで役に立ちません。

まずは、基礎をしっかり身に付けてからじゃないと。
難しいからといって投げ出すな。すぐに成果が出るものだと思うな。
ソフト開発に限らず、何事も基礎がしっかりしてなきゃ糞だ。

基礎をすっとばしてとにかく今回限りブラウザを作らなきゃいけないっていうなら、
そもそもC#じゃなくてVB.NETを使いな。基礎がわかってなくてもある程度動くコードが組めるから。
まぁURL入力してそのページを表示するだけのアプリならたぶん簡単に作れるよ。
スレイプニルと同程度なクオリティのアプリを作ることは不可能だろうがな。


>>553
スレ違い、つーか板違い
555デフォルトの名無しさん:2006/08/13(日) 12:12:31
//チラシの裏
それにしても VC#2005は凄いな
コードも書いてる途中からどんどん注意してくれるし
効率いい
参照渡しなのか値渡しなのか まだややこしいけど
間違っても即注意してくれるし

同じ事を期待してVC++2005を触ったら全然違う……
IntellisenceもBCBとそう変わらんのでは
さらにManagedとUnManagedが入り乱れたコードは
すんげーよみにくい
//チラシの裏終わり
556デフォルトの名無しさん:2006/08/13(日) 12:30:51
>>555
>IntellisenceもBCBとそう変わらんのでは

アホか。BCBの方が優秀
557デフォルトの名無しさん:2006/08/13(日) 12:50:40
うぉぉぉぉ
おれにMIXINをさせてくれぇぇぇぇぇ委譲は疲れた。
まじで頼みますヘジさん・・・
558225:2006/08/13(日) 16:47:37
>>225で描画される文字列の大きさを取得する件について質問したものです。
>>229にてstringformatを使ってうまくいったと書きましたが、
文字によってはやはりずれるようです。

やりたいことはDrawString()で描画する文字を完璧に右揃えにすることです。
描画基準座標から描画された文字の一番右端までが何ピクセルかを調べたいのですが、
>>229の方法、
StringFormat sf = StringFormat.GenericTypographic;
StringFormat sf = StringFormat.GenericDefault;
ともに数ピクセルずれてしまいます。
ちなみに文字は半角・全角文字の混合です。

何か他に検討すべき項目があれば教えてください。
559デフォルトの名無しさん:2006/08/13(日) 17:07:33
>>558
単に
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Far;

g.DrawString( str, font, bursh, rectf, sf );

じゃだめなの? >右揃え
560225:2006/08/13(日) 17:19:04
>>559
sf.Alignment = StringAlignment.Far;
やってみるのは初めてなのでやってみました。
("MS UI Gothic", 11.5f);でやってるのですが、
右端の文字が”と” ”り” の場合で1pixelずれてしまってます。

やはり1pixelくらいは諦めた方がいいんでしょうか・・・
561デフォルトの名無しさん:2006/08/13(日) 17:32:29
それはフォント的にはスレてない。見た目上ズレてるように感じるだけ。
" とa" " りa" で比較すればよく分かる。
562225:2006/08/13(日) 17:38:51
レスどうもです。
右端の文字が
番 と り
をStringAlignment.Far;
でbmpに書き出してペイントで800%にしてピクセル数えたところ
番の右端を0とすると
と = -2pix り = -1pixなのですが…
とa、りaでやってみます。
563225:2006/08/13(日) 17:42:33
訂正
右端の文字がそれぞれ
と=-1pix り=0 a=0pix
でした。
564デフォルトの名無しさん:2006/08/13(日) 18:26:54
フォント右端をピクセルまで揃えるなんて殆ど不可能じゃないか?
フォントのグリフごとに右端のピクセルの位置が違うから。

バッファに描画してみて、
ピクセルをスキャンして右端のピクセル位置取得
→差分だけ実際に描画するときずらす

とか妄想したけど、そこまでする必要があるんか?
565デフォルトの名無しさん:2006/08/13(日) 18:55:16
P/Invoke で GetTextMetrics でも試してみれば?
566225:2006/08/13(日) 20:31:10
諦めるってのが最適解ですかね…

もっと簡単にできるのかと思ってました。
お騒がせしました。
567デフォルトの名無しさん:2006/08/14(月) 01:56:59
MS UI GOTHICってずれるんじゃないの?等幅フォントでやれば?
568デフォルトの名無しさん:2006/08/14(月) 03:04:25
Stack<>をToArray()したときの要素の順番がPop順ってことに
気付くまで1時間ハマッタ(;´Д`)
569デフォルトの名無しさん:2006/08/14(月) 03:10:24
しかも
Stack<int> stack2 = new Stack<int>( stack1);
ってコンストラクタで初期化したときも逆順になると気付くまで更に30分(;´Д`)
570デフォルトの名無しさん:2006/08/14(月) 03:34:52
コントローラをクリックしてもグラフィックが変化しないようにするにはどうすればよいのでしょうか.
例えばButtonをクリックするとButtonがへこむエフェクトが表示されますがそういうのを一切無効
にしてButtonの絵が描かれた画像をクリックしているような感じにしたいのです.
誰かやり方分かる人いますか?
571デフォルトの名無しさん:2006/08/14(月) 03:55:17
ControlPaintでボタンを描くというのはアリか?
572570:2006/08/14(月) 04:12:36
ControlPaintで用意されていないコントローラも書きたいんです.
573デフォルトの名無しさん:2006/08/14(月) 04:15:07
>>569
むむホントだ。
StackにはCloneがあるけどStack<T>にはないから単純にコピー作れねぇ。
MemberwiseClone はProtectedだし使いにくい。
574デフォルトの名無しさん:2006/08/14(月) 09:04:01
プログラムの実行時にリストボックスにオンマウスで説明?というか
コメント?みたいなものが表示されるようにしたいのですがどのように
すればよいでしょうか?
イメージとしては.NETのエディタで入力中にリストボックスが出てくるときに
オンマウス?で表示される説明のようなものです。
お願いします。
575デフォルトの名無しさん:2006/08/14(月) 09:12:33
リストボックスなどのコントロールにマウスがオンしたときのイベントを拾えばいい
576574:2006/08/14(月) 10:09:30
>>575
ありがとうございます。

>>574の機能=XMLコメントというんですかね?
説明出てくる機能が標準で装備されてるのかと思ったら違ったのかな・・
577デフォルトの名無しさん:2006/08/14(月) 10:20:08
ToolTip みたいなのを想像しているんちゃう?
578デフォルトの名無しさん:2006/08/14(月) 14:13:10
「XMLコメント」ってソースに書くコメント?
579デフォルトの名無しさん:2006/08/14(月) 15:03:51
これからC#の勉強をしようと思うんですが、おすすめの入門書とかありませんか?
580デフォルトの名無しさん:2006/08/14(月) 15:42:24
>>579
↓ここ超お勧め
ふらっとC♯(初心者用) Part8
http://pc8.2ch.net/test/read.cgi/tech/1148310124/
581デフォルトの名無しさん:2006/08/14(月) 16:30:04
TrueDBGrid1を使用しているのですが、グリッドにIME変換では出てこない文字の、
庋「たな」(まだれに支えるの文字)などを、セルにペーストすると、?と表示されるのですが、
何かご存知の方いらっしゃいますか?

セルにフォーカスを当て、カーソルを表示させた状態でペーストすれば、きちんと文字が表示されるのですが、
フォーカスだけ当てて、ペーストすると、?と表示されます。
582デフォルトの名無しさん:2006/08/14(月) 16:41:02
金払ってるならメーカーに聞け
583デフォルトの名無しさん:2006/08/14(月) 21:48:03
>>566
フォントの情報を取得して自前で描画…
584デフォルトの名無しさん:2006/08/14(月) 21:56:31
Flash
585デフォルトの名無しさん:2006/08/15(火) 16:08:57
コンボボックスを使っていて、前に選択されていたItemのインデックスを保持しておくにはどうしたらよいでしょうか?
Clickイベントで、コンボがクリックされた時にその時点のインデックスを保持すれば、
とりあえず変更前のインデックスは保持できるのですが、マウスホイールをコロコロ転がすとクリックイベントが発生しないので、
前のインデックスが保持できません。
SelectedIndexChangedでは今のインデックスしか取れないし、何か手はないでしょうか?
586デフォルトの名無しさん:2006/08/15(火) 16:30:02
>>585
SelectedIndexChangedみたいな選択変更系のイベントで
前選択時のイベントが渡されてくる奴が確かあった。
それ系のイベントハンドラを(実際にプログラム書いて)
全部調べてみるべし。
587586:2006/08/15(火) 16:31:04
前選択時のイベントが渡されてくる奴が確かあった。・・・・・・×
前選択時のインデックスが渡されてくる奴が確かあった。・・・○


ゴメソ
588デフォルトの名無しさん:2006/08/15(火) 16:44:27
>8
フリーターがいちいち仕事を探す方式より、
派遣会社に登録して仕事を貰う方が楽。
589デフォルトの名無しさん:2006/08/15(火) 16:50:57
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
名前に変換されてしまいます。

この変換なしにクラスを公開したい場合はどうすれば良いでしょうか?
590デフォルトの名無しさん:2006/08/15(火) 18:16:53
cからもアクセスできる仕様だから引数ちがいの名前同じ関数は無理じゃないか
591デフォルトの名無しさん:2006/08/15(火) 20:17:43
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への登録時に時間がかかった。
どうしたら読み込みも速くスクロールもちらつかない、なんて動作を実現できる?
592デフォルトの名無しさん:2006/08/15(火) 20:20:59
BeginUpdate 〜 EndUpdate は使わんの?
一度に登録するんなら効果少ないかもしれないけど。
593デフォルトの名無しさん:2006/08/15(火) 20:39:15
>>592
書き漏らしていた。Begin...も試した。

void setListViewItems()
{
 listView1.BeginUpdate();
 listView1.Items.AddRange( items );
 listView1.EndUpdate();
}

挙動はまったく変化なしだった。
594デフォルトの名無しさん:2006/08/15(火) 20:45:29
ダブルバッファを有効にしてもちらつく?
595デフォルトの名無しさん:2006/08/15(火) 21:32:20
>>594
ビンゴ、それだ!
DoubleBufferedなんてのがあったんだ。これなら仮想ListViewでもいける。
true/falseと使い分けられるってことは、使用時に何かデメリットがあるのかな。
その辺調べてみる。ありがとう。
596デフォルトの名無しさん:2006/08/15(火) 21:37:22
あ、それから別スレッドで Add するのはまずいぞ。Invoke 経由で呼ばないと。
でそうすると別スレッド使う意味が無くなる。
597デフォルトの名無しさん:2006/08/15(火) 22:25:33
>>596
いや、Invoke 経由で呼んでるように見えるんだけどなw 後半は同意だが
598デフォルトの名無しさん:2006/08/15(火) 22:45:03
おお本当だ。すまんかった。
いやほら this. も listView1. も付いてないと、なんかこう見えなくてさ。
599591:2006/08/15(火) 23:41:41
>>596-598
すまぬ。ソースはオリジナルに似せて適当にでっち上げた物ゆえ。
あと、threadやinvokeもほとんど使ったことなくて、手当たり次第に試しただけ。
訊いて勉強になった。
600デフォルトの名無しさん:2006/08/15(火) 23:44:29
DoubleBufferを有効にするとマウス選択の矩形領域が半透明になるんだよな
どういう仕組みになってんだか
601デフォルトの名無しさん:2006/08/16(水) 00:16:36
データベースアプリを作ってます。
テーブルに新しいフィールドを追加しました。
これをデータベースダイアグラムに反映させるところまではできたのですが、
TableAdapter に反映させる方法がわかりません。
どうしたら良いのでしょうか?
602デフォルトの名無しさん:2006/08/16(水) 00:23:44
アホな質問かもしれませんが教えてください。

win32のハンドルとか受けるときにIntPtr使えって見たんですが、
ULONG_PTR は UIntPtr 使わなくって大丈夫ですか?
ULONG_PTR の実体が Int32 や Int64 の範囲を越える場合ってありえるんですか?
603デフォルトの名無しさん:2006/08/16(水) 00:29:53
ポインタはポインタだし。
0x7FFFFFFF 超えたところでマイナスになるだけだから気にすんな。
同様に DWORD を Int32 で受けても構わないぞ。
604574:2006/08/16(水) 00:32:00
>>577
ありがとうございます。toolTipを検索してみたところこれで解決できそうです。
ありがとうございました
605デフォルトの名無しさん:2006/08/16(水) 01:39:43
Visual C# 2005 Express Edition でプログラムを作っている
のですが、これで作ったプログラムをフリーソフトとして配布
してもいいのですか?
606デフォルトの名無しさん:2006/08/16(水) 01:42:47
だめです
607デフォルトの名無しさん:2006/08/16(水) 01:43:52
いいです
608デフォルトの名無しさん:2006/08/16(水) 01:45:34
製品買えや(#゚Д゚)ゴルァ!!
609デフォルトの名無しさん:2006/08/16(水) 01:51:06
商用利用もOK
610デフォルトの名無しさん:2006/08/16(水) 01:51:38
軍事利用もOK
611デフォルトの名無しさん:2006/08/16(水) 01:56:49
いいみたいですね。
ありがとう。
612デフォルトの名無しさん:2006/08/16(水) 03:08:10
あーあ…。
613デフォルトの名無しさん:2006/08/16(水) 07:46:31
Visual Studio 2005 Express Edition よく寄せられる質問
http://www.microsoft.com/japan/msdn/vstudio/express/faq/
614デフォルトの名無しさん:2006/08/16(水) 07:55:12
>>613のリンク先の
>Visual Studio 2005 Express Edition があれば Visual Studio は必要ありませんか。
>Visual Studio 2005 Express Edition は、他の Visual Studio 2005 製品ラインとはどのように違いますか。

この質問への回答ってどうなんだろう?
個人で開発するならExpress Editionで十分だと思うんだけどなぁ。
615デフォルトの名無しさん:2006/08/16(水) 08:01:55
個人で開発って、要するにホビーじゃないか?
プロフェッショナルってのは字義通り「それで金を稼ぐ」ことだろうし。
616デフォルトの名無しさん:2006/08/16(水) 08:10:06
プロフェッショナルで個人で開発してないやつがいないとでも?
617デフォルトの名無しさん:2006/08/16(水) 08:21:53
プロだったら Express Edition で十分なはず。
コントロールの配置ぐらいにしか使わないんだから。
あとは普通にコマンドラインからコンパイラやal.exe使うし、
シングルモジュールアセンブリしか作れない開発環境なんか
特に必要ない
618デフォルトの名無しさん:2006/08/16(水) 08:43:43
>>617
>あとは普通にコマンドラインからコンパイラやal.exe使うし、
全盛期の遺物乙
619617:2006/08/16(水) 09:06:00
>>618
おまいal.exe使わないの?珍しいね。
それで効率的なアセンブリ構成が実現できるの?w
620デフォルトの名無しさん:2006/08/16(水) 09:12:25
リストビューからIEのお気に入りのショートカット(.url)をクリックして
axWebBrowser1に表示させたいのですが、「ファイルのダウンロード-セキュリティの警告」
という画面が出て直接表示されません。
「開く」を押すと新しいIEが開いてそこに表示されてしまいます。
これをセキュリティ警告を出さず、直接表示させるにはどのようにすれば良いでしょうか。

621デフォルトの名無しさん:2006/08/16(水) 09:14:10
>>620
ふらっとC♯(初心者用) Part8
http://pc8.2ch.net/test/read.cgi/tech/1148310124/
622デフォルトの名無しさん:2006/08/16(水) 09:28:30
Winアプリを作るならEEで十分
623デフォルトの名無しさん:2006/08/16(水) 09:52:30
正直これだけのもんフリーで出されるとBorlandの立つ瀬がねえな
(すでに自壊してるが)
かつてのNetscapeつぶしを訪仏させなくもない
Turbo Exp. にはほんの少しだけ期待しておこう
624デフォルトの名無しさん:2006/08/16(水) 10:18:39
>>619
たぶん618はコマンドラインからということに反応したのだと思う。
625620:2006/08/16(水) 10:23:32
>>621
ありがとうございます。
一通り読んでみたのですがそれらしきものが見当たりません。
もしかしてhttp://pc8.2ch.net/test/read.cgi/tech/1148310124/440-
あたりですか?
もうちょっとヒントお願いします。
626デフォルトの名無しさん:2006/08/16(水) 10:27:04
そこで聞けことだろ……
627620:2006/08/16(水) 10:31:23
あ。すみません。ここの過去スレだと勘違いしてました。
ありがとう。逝ってきます
628デフォルトの名無しさん:2006/08/16(水) 12:10:48
>>623
Borlandマジ終わったな。
ALMに力を入れるということなんだが、
はっきり一手、ALMとIDEって両輪なんだけどな。
629デフォルトの名無しさん:2006/08/16(水) 15:29:44
>>628
氏ね。

























630デフォルトの名無しさん:2006/08/16(水) 16:41:57
C# で利用できる C++ のSTLの multiset ってありませんか?
631デフォルトの名無しさん:2006/08/16(水) 16:47:35
>>630
stl.net
632デフォルトの名無しさん:2006/08/16(水) 16:58:42
STL.NET は C++ からじゃないと使え無くないですか?
633デフォルトの名無しさん:2006/08/16(水) 21:15:02
データベースアプリを作ってます。
TableAdapter.Insert() を使おうと思うんですが、
ID値が Identity 指定してある場合は、
どのようにコードを書けばいいんでしょうか?
634デフォルトの名無しさん:2006/08/16(水) 21:26:43
はっきりいって大抵はマルチモジュールいらん。
管理や手間の方がマイナスになる。
alを使わないのが珍しいだって?
635デフォルトの名無しさん:2006/08/16(水) 21:31:25
>>634
誤爆スマソ
636デフォルトの名無しさん:2006/08/16(水) 22:12:49
なんだジャグ配列って。あんなややこしいもん使わないな。
637デフォルトの名無しさん:2006/08/16(水) 22:16:16
じゃあIList<IList<T>>とか使うといいよ
638デフォルトの名無しさん:2006/08/16(水) 23:19:06
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. です。
639デフォルトの名無しさん:2006/08/16(水) 23:35:42
HttpWebRequest.Proxy の解説見れ。そこからのリンクも。
640デフォルトの名無しさん:2006/08/17(木) 00:03:21
WebResponseを使用した際に受信したヘッダを見たいのですが、
どうすればいいですか?
641638:2006/08/17(木) 00:23:49
dクス。

> 要求でプロキシがサポートされていて、プロキシが Proxy プロパティを使用して明示的に
> 設定されていない場合、DefaultWebProxy プロパティによって、すべての WebRequest
> インスタンスが使用するプロキシが設定されます。

との記述が DefaultWebProxy の項にあったけど、つまり HttpWebRequest でも FtpWebRequest
でも、1つの DefaultWebProxy が使われているから、http の proxy になってしまう
ということなんだろうか・・・
FTP の proxy はレジストリを読むなりしないと自動設定は無理なんかな。


関係ないけど、HttpWebRequest というキーワードに google.co.jp では1件もヒットしない・・。
すぐ直ると思うけど。
642デフォルトの名無しさん:2006/08/17(木) 00:26:01
>>640
Header プロパティあたりでは。
643デフォルトの名無しさん:2006/08/17(木) 00:26:33
s/Header/Headers/
644デフォルトの名無しさん:2006/08/17(木) 01:03:53
>>642
どうもです。
そのheader プロパティというのを使えば、HTTP/1.0 200 OK
とか見れるのですか?
645デフォルトの名無しさん:2006/08/17(木) 01:51:27
とりあえず試してから書けよ
646デフォルトの名無しさん:2006/08/17(木) 02:27:12
ここ見たらうまくいきました。
ヒントありがとうございます。
http://msdn2.microsoft.com/ja-JP/library/system.net.httpwebrequest.headers.aspx
647デフォルトの名無しさん:2006/08/17(木) 11:16:30
DataGridView の一番左の灰色の列を消したいんですが、
どうすればいいんでしょうか?

ヘルプを見ましたが、わかりませんでした。
648デフォルトの名無しさん:2006/08/17(木) 11:35:25
RowHeadersVisibleプロパティ
649デフォルトの名無しさん:2006/08/17(木) 12:39:43
GraphicsクラスのDrawStringメソッドって
引数のFontに等幅フォントを指定しても
微妙に等幅にならずに、数ピクセルずれませんか?
たとえばMS ゴシック。

ラベルでTextプロパティに設定した時はきっちり等幅だけど
DrawStringで表示したときはずれるんです....
しかもサイズもちょっとちっちゃくなって。

テキストを部分的に色分けして表示したいので
DrawStringを使って描画していきたいのですが
この問題があってちょっと困ってます。
650デフォルトの名無しさん:2006/08/17(木) 13:03:37
データの中身に応じて、DataGridViewの行に色を付けたいのです。
可能なのでしょうか?
検索しても、クリックした行の色を変えるくらいしか見つかりませんでした。
651デフォルトの名無しさん:2006/08/17(木) 13:09:33
一行ずつ追加していって、
追加するときに色を変えれば良いんじゃない?
652デフォルトの名無しさん:2006/08/17(木) 13:14:19
CellPaintingで色変えるんじゃないの?
653デフォルトの名無しさん:2006/08/17(木) 13:26:06
DataSetとデータバインディングしています。
DataGirdViewかDataSet
1行づつの読み込みを検知するイベントがあるのでしょうか?
654デフォルトの名無しさん:2006/08/17(木) 14:34:47
RowsAdded?
655デフォルトの名無しさん:2006/08/17(木) 15:39:07
RowPrePaint
656デフォルトの名無しさん:2006/08/17(木) 16:05:11
RowsPrePaintを見ましたが、イベントが難しすぎました。
違うような気がします。
無理かな。。
657デフォルトの名無しさん:2006/08/17(木) 18:05:11
DataGridViewで列毎にCharacterCasingを設定することは可能なのでしょうか?
可能なら設定の仕方を教えてください
658デフォルトの名無しさん:2006/08/17(木) 18:08:55
お前には無理
659647:2006/08/17(木) 18:18:56
>>648
ありがとう♥
660デフォルトの名無しさん:2006/08/17(木) 18:33:58
なんだこのDataGridView3連発・・・
661デフォルトの名無しさん:2006/08/17(木) 20:12:58
解決してないけどね&heart;
662デフォルトの名無しさん:2006/08/17(木) 20:19:55
>>661
663デフォルトの名無しさん:2006/08/17(木) 20:30:30
今斬新なアンカーを見た
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'のオーバーロードはありません。
とエラーが出てしまいます。

どこがいけないか、どなたか教えていただけませんか?
665デフォルトの名無しさん:2006/08/17(木) 20:37:29
>>664
ふらっとC♯(初心者用) Part8
http://pc8.2ch.net/test/read.cgi/tech/1148310124/
666デフォルトの名無しさん:2006/08/17(木) 20:54:33
>>664
String にUnicodeもShift-JISもない
667デフォルトの名無しさん:2006/08/17(木) 21:29:06
取りあえずマルチは氏ねば良いと思う
668デフォルトの名無しさん:2006/08/17(木) 21:35:08
>>667
黙れバカ。知らないんだったら素直にごめんなさいって謝れよ!
669664:2006/08/17(木) 21:35:47
答えていただいた方、ありがとうございました。
ふらっとに行って見ます。
670デフォルトの名無しさん:2006/08/17(木) 22:55:42
>>667
お 前 が 氏 ね

>>668
ついでにお前も氏んでおくか?
671デフォルトの名無しさん:2006/08/18(金) 07:24:06
  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < まーた始まった
|   ,;‐=‐ヽ   .:::::|    \_______
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\
672デフォルトの名無しさん:2006/08/18(金) 09:55:28
おまんこ
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時間後に醤油を一気飲みして自害           |
   ヽ ヽ   |  \          | ──────────‐ :. ──────────‐ |
674デフォルトの名無しさん:2006/08/18(金) 15:12:44
これはなつかしいAA
675デフォルトの名無しさん:2006/08/18(金) 15:45:08
TabControl のページを切り替えるための「タブ名」が書かれたところ
に強制的にフォーカスを移すにはどうすればいいでしょうか?

TabControl.Focus();
TabPage.Focus();
としても、「タブ名が書かれたところ」には移動しませんでした。
どなたかご存知ですか?
ちなみに .NET CF1.0 で試しています。

676デフォルトの名無しさん:2006/08/18(金) 16:27:04
GetRequestStreamの動作が遅いのですが、早くする方法
はないですか?
677デフォルトの名無しさん:2006/08/18(金) 18:55:39
>>675
TabControl.SelectedTabプロパティ。
678デフォルトの名無しさん:2006/08/19(土) 01:53:51
プロパティとメソッドは何を基準に使い分けるのでしょうか?

プロパティとメソッドの選択
ttp://msdn2.microsoft.com/ja-JP/library/ms229054.aspx

↑を読んでいるのですが、いまいちすっきりしません…。
679デフォルトの名無しさん:2006/08/19(土) 02:07:13
>>678
変数みたいにささっと扱いたいときにプロパティ
それ以外はメソッド
680デフォルトの名無しさん:2006/08/19(土) 02:07:36
一行目に書いてある。
「一般的に、メソッドは操作を表し、プロパティはデータを表します。」
681デフォルトの名無しさん:2006/08/19(土) 02:11:08
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

会社が終わるとロッカー前で毎日待ち伏せ
→同じ路線なので着いてこられる
→「本屋に寄るから」と断ると一緒に来る
→「今度一緒に映画行こうか(^ω^)」
→断ると以下ループ
682デフォルトの名無しさん:2006/08/19(土) 03:37:12
>>678
VSのオブジェクトブラウザを開いて、適当なクラス(フォームとか)について
どんなのがプロパティで、どんなのがメソッドなのか眺めてみると
参考に成増ですよ。
683デフォルトの名無しさん:2006/08/19(土) 08:03:45
プロパティでも処理が書けちゃうってとこがよくないよな
684デフォルトの名無しさん:2006/08/19(土) 08:12:30
処理かかないならパブリック変数でええがな
685デフォルトの名無しさん:2006/08/19(土) 11:13:27
EventArgs派生クラスだとpublic readonlyな変数にしちゃうことしばしば。
あとは根本的なものとしてプロパティは複数引数渡せない。やりようはあるだろうけど。
686デフォルトの名無しさん:2006/08/19(土) 11:13:32
Microsoft.VisualStudio.Shell.Interop ってどうやれば使えるの?
ヘルプにも載ってないし。
VS2005からなくなったんですか?
687デフォルトの名無しさん:2006/08/19(土) 14:47:25
名前からして使用意義が微妙だが。
%windir%\assembly\gac\アセンブリ完全限定名\
以下にアセンブリが入ってるから、
コマンドプロンプトでフルパス取得してダイアログのファイル名に突っ込めば参照できる。
688デフォルトの名無しさん:2006/08/19(土) 17:18:12
DataGrideViewを使ってみようとプロパティを眺めていたら頭が痛くなってきた。
簡単な使い方の説明と、メンバ、特に描画に関するプロパティの項目の違いなどを、
絵付きで解説したら十分一冊の本になりそう。
というか出して欲しい。
689デフォルトの名無しさん:2006/08/19(土) 17:38:08
プロパティを眺めてるだけで痛くなるような頭ってことだろ
690デフォルトの名無しさん:2006/08/19(土) 20:00:09
最適化のために結構癖があったり、ComboBox型の列とか結構複雑でおまけに
WindowsFormsのComboBoxからは想像できない挙動になっていたり、
普通にMSDNからだけだとかなり工数かかる内容だと思われ。
691デフォルトの名無しさん:2006/08/19(土) 20:18:25
つまりライターに仕事の余地を残すMSの商法か
692デフォルトの名無しさん:2006/08/19(土) 20:51:44
EnvDTE を使えばプロジェクトを作ったり、
フォームを作ったりできますが、

EnvDTE で作ったフォームにボタンとかラベルとか
追加するにはどうしたらよいのでしょうか?
693686:2006/08/19(土) 20:56:50
>>687
ありがとう。参照できるようになった。
694デフォルトの名無しさん:2006/08/20(日) 11:16:19
引数に char を渡した時、char を取るオーバーロードがなかった場合に
勝手に他の数値型のオーバーロードを見に行くのはどうにかならんかな……。
695デフォルトの名無しさん:2006/08/20(日) 11:24:53
暗黙に変換できる型でオーバロードすると読みづらくないか?
bool equals(object o);
bool equals(MyType t);
696デフォルトの名無しさん:2006/08/20(日) 11:32:35
どちらに渡しても同じ動作することが 『可能な限り』 保障されるべきだとか個人的には思っていたり。
697デフォルトの名無しさん:2006/08/20(日) 11:47:25
変数の名前を文字列化する方法は有りますでしょうか?

変数の名前と値を出力するために、毎回、

Trace.WriteLine("foo is "+foo.ToString());

と書くのは面倒なので、
Cプリプロセッサの #  みたいなのがあれば、

void debug(foo){ Trace.WriteLine( #foo "is "+foo.ToString()); }

としたいなぁと思いまして。
698デフォルトの名無しさん:2006/08/20(日) 11:49:12
無い
699デフォルトの名無しさん:2006/08/20(日) 11:51:47
つか今更 printf デバッグってのも……
700デフォルトの名無しさん:2006/08/20(日) 12:53:35
マルチスレッド関係だとprintfデバッグ結構有効では。
適当に重要所にDebug.Printを埋め込んであるとチーム的にわかりやすいような気がする。
701デフォルトの名無しさん:2006/08/20(日) 13:18:17
Printデバッグ使わないでどうやって実行させながらチェックするのさ。
702デフォルトの名無しさん:2006/08/20(日) 13:48:28
ブレークポイント
703デフォルトの名無しさん:2006/08/20(日) 15:04:14
C#にprintfなんてあったか?
704デフォルトの名無しさん:2006/08/20(日) 17:20:01
.NET2.0ならDebug.Printが使えるよ
705デフォルトの名無しさん:2006/08/20(日) 17:47:08
Dignostice.Debug.WriteLine
Dignostice.Debug.Print
Console.Write

どれも同じに見えるんですけど、使い分けはどうすればよいの?
706デフォルトの名無しさん:2006/08/20(日) 18:20:15
>>705
Debug と Console は全く用途が異なるでしょうに
707デフォルトの名無しさん:2006/08/20(日) 20:16:31
クリックできないフォームって作れませんか?

・半透明
・「WWW用」「メールサーバー」などの文字を表示
・終了や設定変更はタスクトレイアイコンから行う。

画面に表示されているけど、普段の操作には影響を及ぼさないような
そんな感じです。
708デフォルトの名無しさん:2006/08/20(日) 20:54:48
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;
}
}
かな
709デフォルトの名無しさん:2006/08/20(日) 21:10:03
Debug.***はReleaseビルドするとコードが出力されないので便利
Debug.PrintはFormatが使えるから短くかける
Debug.Write〜はオブジェクトが引数のオーバロードがあるから楽
710デフォルトの名無しさん:2006/08/20(日) 21:31:05
BackgroundWorkerを、デザイナで貼り付けたりして使うんじゃなくて
Componentとは一切関係の無いクラスの中でオブジェクトを作って使ってもいいの?
アプリケーション自体はFormを持った普通のものなんだけど
711デフォルトの名無しさん:2006/08/20(日) 21:39:56
いいんじゃね
712デフォルトの名無しさん:2006/08/20(日) 21:47:14
>>709 おぉぉいつもDebug.Writeline(string.Format(
とかやってたよ。さんくすこ。
713710:2006/08/20(日) 21:57:40
Reflectorで調べてみたら特に問題無さそうに見える…
でも知れば知るほどそんなに良いものではないように感じられてきたので
直接スレッドを使うことにするよ
714707:2006/08/20(日) 22:02:16
>>708さんのやつを使ったらうまくいきました。
サンクス
715デフォルトの名無しさん:2006/08/20(日) 22:02:39
直接スレッドのほうがそんな良いものではないだろうに。
716デフォルトの名無しさん:2006/08/20(日) 22:03:01
>>713
いやいや素直に BackgroundWorker つかっとけ。
717デフォルトの名無しさん:2006/08/21(月) 10:35:29
今、ストリーミングを再生・録音するソフトを作りたいと思っています。
できればC#かVB.NETで。。。
「Windows Media Player」や「Net Transport」もあるけど、
単純な機能だけに絞った再生・録音ソフトを自分で作りたいんです。
参考になる書籍とかサイトを教えていただければありがたいです。
開発を始めたら、一緒に情報共有していきたいです。(・∀・)
718デフォルトの名無しさん:2006/08/21(月) 10:48:43
今、世界を支配する国家を作りたいと思っています。
できればユーラシアかアメリカ大陸で。。。
「中華人民共和国」や「アメリカ合衆国」もあるけど、
単純な支配機能だけに絞った帝国を自分で作りたいんです。
参考になる書籍とかサイトを教えていただければありがたいです。
開発を始めたら、一緒に専制統治していきたいです。(・∀・)
719717:2006/08/21(月) 10:53:40
ワロタ
720デフォルトの名無しさん:2006/08/21(月) 11:11:28
>>717
MSDN

>>718
DPRK
721717:2006/08/21(月) 11:15:45
>>720
サンクス(・∀・)
722デフォルトの名無しさん:2006/08/21(月) 11:22:21
>>718
Managed DirectX : DirectShow
723デフォルトの名無しさん:2006/08/21(月) 11:45:12
DirectShowってそんな恐ろしい機能だったのか
724デフォルトの名無しさん:2006/08/21(月) 14:15:19
DirectShowは「ファイル」の再生とキャプチャの機能しか持ってないよ。
「ストリーム」の再生や保存機能は持ってない。
725デフォルトの名無しさん:2006/08/21(月) 17:49:21
>>724
フィルタとピンって知ってる?
726デフォルトの名無しさん:2006/08/21(月) 18:02:33
>>724
それはMicrosoft.DirectX.AudioVideoPlaybackじゃまいか
「DirectShow」がファイルの再生とキャプチャしかできなかったら話にならん

ただ、DirectShowはManaged DirectX(9.0c)にはないんで、COM版かDLLを呼び出して使うしかないはず
727726:2006/08/21(月) 18:03:58
訂正

COM版かDLLを呼び出して使うしかないはず

COM版のDLLを呼び出して使うしかないはず

言い回しがくどいかな
要はCOM版のDirectShowを使えって事
728724:2006/08/21(月) 21:07:08
あ、ごめん。
「ファイル」の再生とキャプチャの機能しか持ってないよ。
というのは間違いだたね。
漏れが言いたかったのは後半のことで、
ストリームで流れ込んでくるWAVEデータを取り込む
機能やそれをファイルに落とす機能までは持ってないよ
ということです。失礼しました。
729デフォルトの名無しさん:2006/08/22(火) 04:43:55
VC#で

http://namako.oops.jp/daisei/up/img/035.jpg

こんな感じのコンポーネントというかツールをフォームに追加したいのですが
なんという名前のものなんでしょうか?
730デフォルトの名無しさん:2006/08/22(火) 06:26:31
ListView
731デフォルトの名無しさん:2006/08/22(火) 07:15:14
C# の相談って言うより .NET の相談だな
732デフォルトの名無しさん:2006/08/22(火) 11:00:57
>>731
まあ、ライブラリ全部.NETに依存してるんだからしょうがない。
733デフォルトの名無しさん:2006/08/22(火) 11:49:13
WindowsServer2007やVistaの次からは、運用管理でも.NETを使うようになるんだな。
734デフォルトの名無しさん:2006/08/22(火) 12:27:48
まあ.NETはOSの一部になる(はず)だから意識して.NETを使ってると思うIT Proはいないだろうね
今はCOMが管理インタフェース(WMI)の背景技術にいるけど意識なんてしてないだろうし

スクリプトにしても、COMにはWSH、.NETにはMSHがあるけど、きっとほとんどのIT ProはWSHでCOMがどうのなんて意識せず、TechNetスクリプトセンターのコピペ以上の意識は無いだろうな

何の話だったっけ
735デフォルトの名無しさん:2006/08/22(火) 15:04:14
>>734が聞きかじった半端な知識を披露して恥をかく話じゃないの?
736デフォルトの名無しさん:2006/08/22(火) 17:20:02
夏も終わりまであと少し
737デフォルトの名無しさん:2006/08/22(火) 17:42:40
失礼な!>>734はITプロだぞ
738デフォルトの名無しさん:2006/08/22(火) 18:05:16
>>734
鏡理論って知ってる?
739デフォルトの名無しさん:2006/08/22(火) 18:39:03
ムツカシイ言葉で厨をイジメるスレはココですか?
740デフォルトの名無しさん:2006/08/22(火) 19:02:33
>>739
×厨をイジメる
◎厨を煙に巻く
741デフォルトの名無しさん:2006/08/22(火) 20:51:13
COMを馬鹿にするな。
作る側になることなんて一生ないんだろうな〜て思ってたけど
今ごろになって舞い降りてきやがった。
古典的なDLLをC#から使いたかったわけなんだけど
仲介役ににはもってこいだな。COM
742デフォルトの名無しさん:2006/08/22(火) 20:53:11
あいかわらず学生が多いな、このスレは・・・(´・ω・`)
743デフォルトの名無しさん:2006/08/22(火) 21:01:50
おまんこ
744デフォルトの名無しさん:2006/08/22(火) 22:56:45
>>741
p/invoke って知ってる?
745デフォルトの名無しさん:2006/08/22(火) 23:18:05
仲介役ならC++/CLIなどで.NETなラッパも作るという手段もある。
まあでもそういうCOMの使い方もありかな。
746デフォルトの名無しさん:2006/08/22(火) 23:19:06
逆にCOMから.Netで作ったDllって使えないの?
747デフォルトの名無しさん:2006/08/22(火) 23:20:32
使える。MSDN 見れ。
748デフォルトの名無しさん:2006/08/22(火) 23:21:12
749デフォルトの名無しさん:2006/08/22(火) 23:30:48
C#でBandObject作るやつとかもそうだよね
750デフォルトの名無しさん:2006/08/23(水) 10:04:01
夏夏ってうるせぇんだよ!
10年以上春休みが続いてる俺の気持ちを察しろ!
751750:2006/08/23(水) 10:04:50
誤爆しました orz
752デフォルトの名無しさん:2006/08/23(水) 10:10:40
イ`
753デフォルトの名無しさん:2006/08/23(水) 11:02:24
 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は何でコンパイル通るの?暗黙の変換でもついてるのか?
754デフォルトの名無しさん:2006/08/23(水) 11:33:59
IEnumerable と IEnumerator どっちでもいいんだよ
755デフォルトの名無しさん:2006/08/23(水) 11:47:42
BTのほうだとコンパイラが勝手にIEnumerableを実装したクラスを生成するってことかいな?
756デフォルトの名無しさん:2006/08/23(水) 11:48:06
とりあえず yield はきもい
757755:2006/08/23(水) 11:52:25
ごめん。BottomTopの方ですね・・・orz
758デフォルトの名無しさん:2006/08/23(水) 14:00:28
>750
なんの話なのか気になるのは俺だけ? w
759デフォルトの名無しさん:2006/08/23(水) 16:29:57
System.Uri のコンストラクタで Uri(string uriString, bool dontEscape) が
Obsolate で dontEscape が常に false として扱われてしまうんだけど
Shift_JIS などでエンコーディングされたアドレスの Uri インスタンスを
作るにはどうすればいいの
760デフォルトの名無しさん:2006/08/23(水) 16:53:08
テキストボックスの背景に画像を貼り付けたいんですが
できますか?
761デフォルトの名無しさん:2006/08/23(水) 17:56:00
できます
762デフォルトの名無しさん:2006/08/23(水) 18:26:15
画像の縦横比を保ったままフォームのサイズに合わせて
フルに写すように画像をリサイズするとなるとめんどくさそう。
763デフォルトの名無しさん:2006/08/23(水) 18:39:36
>>759
デコードして食わせりゃ委員ジャマイカ?
764デフォルトの名無しさん:2006/08/23(水) 21:11:22
>>762 Transform使えば一行でできるでしょ
765デフォルトの名無しさん:2006/08/23(水) 22:45:36
766デフォルトの名無しさん:2006/08/24(木) 05:20:23
Yahoo!ニュース - 読売新聞 - ニートに「発達障害」の疑い、支援に心理専門職も
http://headlines.yahoo.co.jp/hl?a=20060824-00000101-yom-soci
767デフォルトの名無しさん:2006/08/24(木) 10:18:50
private void aa(int[] values)
{
  ・・・・
}

上のような関数に2次元配列を

int[,] a = {{1, 2}, {3, 4}};
aa(a[0]);

こんな感じで使う事はC#は出来ないのでしょうか?
出来た言語もあったと思うのですが・・・。

上記のような事をするには、
2次元関数を一次元に変えるか
2次元関数ごと送るように関数を変えるしかないのでしょうか。
768デフォルトの名無しさん:2006/08/24(木) 10:38:55
ジャグ配列を使うとか
int[][] a = { new int[] { 1, 2 }, new int[] { 3, 4 } };
769デフォルトの名無しさん:2006/08/24(木) 14:09:08
ジャグ配列では問題なく動きました。
が、配列が大きいと結構遅くなりますね・・・。
770デフォルトの名無しさん:2006/08/24(木) 15:49:07
もしaaを書き変えられるとして俺なら、
aaの引数をIListにして、さらに767のようなことができるよう、
自分で2次元配列の特定の要素だけを参照できるようなIListを実装する。
771デフォルトの名無しさん:2006/08/24(木) 18:42:12
>>767
そういうときはaaの引数の型はIEnumerable<int>にした方がいいんじゃないの
772デフォルトの名無しさん:2006/08/24(木) 19:39:58
静的クラスを関数の引数(Object型)に渡すのって出来ないんですか?
関数名(クラス名);
とやってもコンパイラが「'クラス名' は '型' ですが、'変数' のように使用されています。」と言ってきてビルドできません。
773デフォルトの名無しさん:2006/08/24(木) 19:42:23
関数名(System.Type type)
として、
関数名(typeof (ClassName));
774772:2006/08/24(木) 20:02:52
>>773
ありがとうございます、知識が一つ増えました
ただ、.Net Frameworkのメソッドに渡したかったので引数の型は変更できません

と思ったら、
public XmlSerializer (Type type)にtypeof(静的クラス名)を渡した時点で
「静的型は、パラメータや戻り値の型としては使用できません。」と言われました
もしかして>>772もこう言われるのかも知れません
ちょっと実行してきます
775デフォルトの名無しさん:2006/08/24(木) 20:11:54
静的クラスはシリアライズできなくて当然だろが
おまいに必要なのは静的クラスじゃなくてシングルトンだ
776772:2006/08/24(木) 20:35:26
静的クラスであっても>>773はできますね
>「静的型は、パラメータや戻り値の型としては使用できません。」
はXmlSerializerが言ってくるメッセージでした
ただTypeを渡しても中身は渡せないような…

そもそも静的クラスの型が参照できる範囲では静的クラスを渡す必要がないので
こういう作り方をするなってことですね、失礼しました
777デフォルトの名無しさん:2006/08/24(木) 20:46:02
え?
778デフォルトの名無しさん:2006/08/24(木) 20:47:38
静的クラスを渡すって……
静的クラスはインスタンス化できませんよ
779デフォルトの名無しさん:2006/08/24(木) 20:53:46
……静的クラスとは何を指す?
static のついた内部クラスのことか?
780デフォルトの名無しさん:2006/08/24(木) 20:58:17
> ただTypeを渡しても中身は渡せないような…
リフレクション(GetMethodとか)を使えばTypeオブジェクトが表す静的クラスのメソッドを呼び出したりできるよ
意味があるかは別だけど
781デフォルトの名無しさん:2006/08/24(木) 21:02:14
まぁだから根本的に静的要素、動的要素の区別がついてないんだよ
Reflectionがあるから、Cとかよりややこしいのは確かだがな
782デフォルトの名無しさん:2006/08/24(木) 21:04:35
>>779
C# 2.0の新機能。
783デフォルトの名無しさん:2006/08/24(木) 21:36:40
>>782
thx。static 制約付きのツールキット用のクラスね
784デフォルトの名無しさん:2006/08/25(金) 08:13:09
.Netで簡易2chブラウザ作ってるんですが、
書き込み前のクッキー取得の際にRefererとUser-AgentをPOSTすると、りふぁら情報がありませんと返ってきます
板のトップページのURLをbyte型になおして送ってるつもりなんですが…
どうしたらうまく行きますでしょうか…
785デフォルトの名無しさん:2006/08/25(金) 08:23:11
>>784
なぜ byte 型に直す?
HttpWebRequest 使ってるなら Referer と UserAgent に string セットすれば良いはずだけど。
786784:2006/08/26(土) 01:51:31
>>785
ありがとうございます
なんとかなりました

次にこの取得したcookieを保持して>>784の方法で書き込みデータをPOSTしようとしたのですが、クッキー確認のページが返ってきます
PONとかHAPだとかという値は取得できたことは確認できているのですが、
どうすればクッキーを保持した状態で書き込みできるんでしょうか?
787デフォルトの名無しさん:2006/08/26(土) 02:01:32
てめえはTwintailのソースでも読んでろよ
788デフォルトの名無しさん:2006/08/26(土) 02:09:19
>>786
HttpWebRequest.Cookies に、毎回同じ CookieContainer のインスタンスを代入してリクエスト飛ばせばOK。
クッキー帰ってきたら自動的に CookieContainer に入っていくから、次回もそのコンテナを使うの。

>>787
実は twintail は↑みたいにしてないんだ。なぜか。
789デフォルトの名無しさん:2006/08/26(土) 02:37:01
>>786
HttpWebRequestのHeaders.Setにクッキーもセットしたら?
790デフォルトの名無しさん:2006/08/26(土) 09:15:49
>>728
ストリームのURLを抽出したり、通信プロトコルの解析まで
するような機能は持ってないからな、DirectShowは。
791デフォルトの名無しさん:2006/08/26(土) 09:28:20
byte[] 内の指定された位置から始まり、'\0'で終わる
ユニコード文字列を string にするにはどうしたらよいのでしょうか?

二つ連続して'\0'が並んでるところを検索して長さを測り、
Encoding.GetString(byte[],Int32,Int32) を呼び出すより
スマートなやりかたがあったら教えてください。
792デフォルトの名無しさん:2006/08/26(土) 10:29:38
unsafe内で、文字列の開始位置へのポインタをchar*にキャストし、
それをコンストラクタへ渡すということはできないかい?
793デフォルトの名無しさん:2006/08/26(土) 14:54:48
VS2005を使っています。
ダイアログの文字列などを「日本語」と「日本語(ひらがなのみ)」で
切り替えられるようにしたいのです。

Localizableをtrueにして「ひらがな」の文字列を
恐らく誰も使わないであろうLanguageで設定する以外の方法で、
簡単に実現する方法はありませんか?
794デフォルトの名無しさん:2006/08/26(土) 15:03:26
普通にリソースに突っ込んどいて
条件でどちらを読むか指定したらいいんでない?

コントロールのテキストだったら数が多いと手動でやるのは大変だけど
メッセージボックス程度なら簡単でしょ

>恐らく誰も使わないであろうLanguage
に設定したら、OSがその言語設定になっていないと
でてこないっしょ
795デフォルトの名無しさん:2006/08/26(土) 19:00:14
C#の読み方がわかりません
796デフォルトの名無しさん:2006/08/26(土) 19:02:52
ShowDialog()でモーダルフォームを出すのですが
ある一つのフォームの場合のみ、親フォームをクリックできてしまいます。
その他はちゃんとモーダルになってます。
どうすればモーダルになるでしょうか?
797デフォルトの名無しさん:2006/08/26(土) 19:03:53
何を言っているかがわかりません
798デフォルトの名無しさん:2006/08/26(土) 19:09:22
>>795
シープラプラのプラプラ がくっついたヤツ
799デフォルトの名無しさん:2006/08/26(土) 19:12:21
>>795
しー いげた
800デフォルトの名無しさん:2006/08/26(土) 20:24:14
しーすみとも
801デフォルトの名無しさん:2006/08/26(土) 21:57:26
しーしゃーぶ
802デフォルトの名無しさん:2006/08/26(土) 22:06:57
>>796
親と同じスレッドでShowDialogしてるか確かめる
803デフォルトの名無しさん:2006/08/27(日) 00:49:12
ガスタムコントロールてExpress Editionでも作れるんですか
804デフォルトの名無しさん:2006/08/27(日) 00:55:45
どうして作れないと思ったか知りたい
805デフォルトの名無しさん:2006/08/27(日) 01:05:32
>>794
レスThxです
やっぱり楽をする方法はない、ってことですね・・・
806デフォルトの名無しさん:2006/08/27(日) 08:44:40
テキストボックスに背景を表示する方法を調べているんですが
textboxを継承したクラスにonpaintをオーバーライドしてやれば
できるんでしょうか?

807デフォルトの名無しさん:2006/08/27(日) 10:07:12
>>806
やってみてから質問してよ


無償の愛を貪り喰いたいだけならこっちへ行けば

ふらっとC♯(初心者用) Part8
http://pc8.2ch.net/test/read.cgi/tech/1148310124/
808デフォルトの名無しさん:2006/08/27(日) 10:24:57
>>804
スレ違い
どっかいけ!!
くそ教えて君
809デフォルトの名無しさん:2006/08/27(日) 10:46:56
>>807
じぶんなりにやってできなかったので質問してます。
810デフォルトの名無しさん:2006/08/27(日) 10:57:58
カレイにスルー
811デフォルトの名無しさん:2006/08/27(日) 10:58:03
じゃあ自分のレベルにふさわしいところに行けよ
812デフォルトの名無しさん:2006/08/27(日) 11:07:03
できるかできないか聞いてるだけなのに
813デフォルトの名無しさん:2006/08/27(日) 11:17:04
OnPaint自前描画でごりごりやれば何でもできる
814デフォルトの名無しさん:2006/08/27(日) 11:19:59
>>813
ありがとうございます。もう少し勉強してみます。
815デフォルトの名無しさん:2006/08/27(日) 11:34:45
でたな!
何も教えないセコセコ君!
816デフォルトの名無しさん:2006/08/27(日) 12:23:39
質問のレベルに見合った解答が付く。
ただそれだけのことだ。
817デフォルトの名無しさん:2006/08/27(日) 13:07:19
TextBoxってOnPaintとか呼ばれないっしょ
Paintイベントで何かやっても無駄っぽ
818デフォルトの名無しさん:2006/08/27(日) 14:58:21
2ちゃんで質問なんかしたってダメ。
みんな人間の意地悪な本性むき出しだからね。
匿名掲示板だからしかたないよ・・・
819デフォルトの名無しさん:2006/08/27(日) 15:33:50
>>818
くだらない煽りを入れるな。
マジレスしてくれている人達に失礼だろ。
820デフォルトの名無しさん:2006/08/27(日) 15:35:30
>>818
取り敢えず、お前が意地悪だという事はよくわかった。
でも誰でも意地悪をむき出しにするとは思うな。引き籠もり君。
821デフォルトの名無しさん:2006/08/27(日) 17:20:08
でもさぁ、2ちゃんみたいな匿名掲示板だと、
人って攻撃的で意地悪になるもんだよ。
あとスケベや差別根性なんかもむき出しだよね(・∀・)
822デフォルトの名無しさん:2006/08/27(日) 17:40:59
日本人は特に、ね
823デフォルトの名無しさん:2006/08/27(日) 17:51:34
はいはい、極論極論
木を見て森を見ず
一を知って十を語る
ウリナラマンセー
824デフォルトの名無しさん:2006/08/27(日) 18:28:06
なにこの安全でない流れ
825デフォルトの名無しさん:2006/08/27(日) 20:04:16
もっとセキュアなスレにしろよ
826デフォルトの名無しさん:2006/08/27(日) 20:32:23
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]とみじかいなまえになる。

この違いはなんなんだらう・・・
827デフォルトの名無しさん:2006/08/27(日) 20:55:09
MessageBox.Show( type.ToString() );
MessageBox.Show( type.FullName );

の差?
828デフォルトの名無しさん:2006/08/27(日) 21:44:45
cookiesの話ですが、

Getcookiesクラス、kakikomiクラスというものを作って
Getcookiesクラスで得たクッキーはkakikomiクラスでも保持されているものなんですか?
それともちゃんと渡さないとだめなんでしょうか?
829デフォルトの名無しさん:2006/08/27(日) 21:48:23
ながさじゃないかな
830デフォルトの名無しさん:2006/08/27(日) 21:49:34
>Getcookiesクラス、kakikomiクラスというものを作って
お前が作ったクラスの仕様を聞いてどうする。

831デフォルトの名無しさん:2006/08/27(日) 21:53:48
Getcookiesクラスという名前が気に食わない
832デフォルトの名無しさん:2006/08/27(日) 21:56:04
それを言うならkakikomiもだ
833デフォルトの名無しさん:2006/08/27(日) 22:04:29
>>830
dsyn
仮引数をどうしたらいいかなと考えていまして・・・・
834デフォルトの名無しさん:2006/08/27(日) 22:05:48
>>833
ここはエスパースレじゃありませんことよ
835デフォルトの名無しさん:2006/08/27(日) 22:19:11
>>827
そのようですた・・・おrz
ILファイルの読み込みでジェネリック周りにはまってまして書き込んでしまいますた。
836デフォルトの名無しさん:2006/08/27(日) 23:24:37
>>823
その言い方自体が、まさに2ちゃんねる的だよね
837デフォルトの名無しさん:2006/08/27(日) 23:30:08
むしかえすな池沼
838デフォルトの名無しさん:2006/08/28(月) 02:01:48
webBrowser1.Navigate
で表示したページから移動したことを確認するためにはどうしたらいいんでしょうか?
839デフォルトの名無しさん:2006/08/28(月) 02:06:46
Navigatingでフラグでも立てたらどうか。
840デフォルトの名無しさん:2006/08/28(月) 03:47:46
イベントでぐぐればいいんでしょうか?
少し資料が少なくて困っています・・・・
841デフォルトの名無しさん:2006/08/28(月) 08:08:00
>>837
それもいかにも2ちゃんねる的な喋り方の見本ですね
842デフォルトの名無しさん:2006/08/28(月) 09:43:44
>>828
Getcookiesクラスのクッキーはkakikomiクラスでは保持されない仕様だよ
843デフォルトの名無しさん:2006/08/28(月) 09:45:00
>>840
資料も何も
クラスライブラリのリファレンス見ろとしか。。
最低それ見てからごちゃごちゃ言いなさいよ
844デフォルトの名無しさん:2006/08/28(月) 10:37:28
>>840
MSDNって知ってる?

http://www.microsoft.com/japan/msdn/

マイクロソフトサポートって知ってる?

http://support.microsoft.com/?LN=JA

ネット上にある資料の9割以上はこの2つの無償情報源から派生している
余程隠れた機能じゃない限り資料が無いなんてことは絶対に無い
845デフォルトの名無しさん:2006/08/29(火) 15:14:05
「9割以上はこの2つの無償情報源から派生している」
↑どうやって調べた?
846デフォルトの名無しさん:2006/08/29(火) 15:15:56
一つづつ吐き出されてきた文字列をListviewで表示するために
カラム数づつ配列にブチ込むにはどうしたらいいでしょうか?
847デフォルトの名無しさん:2006/08/29(火) 15:21:25
StringBuilderの配列にブチ込んでいけば
848デフォルトの名無しさん:2006/08/29(火) 15:27:58
>>844
MSDNはよくできてると思うが、ものによっては説明が足りない(かなりある)
そこを調べた人がブログなどを書いたものが出回ってるわけだが。
849デフォルトの名無しさん:2006/08/29(火) 17:05:58
まあでも@ITとかどぼんのTIPSの9割はMSDNにのってることだと思うよ
850デフォルトの名無しさん:2006/08/29(火) 20:42:17
>>846
ListViewItem の配列に入れちゃ駄目なのか?
851デフォルトの名無しさん:2006/08/29(火) 21:59:56
あーどうしても分からない。。
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の処理【ここを通って欲しい】
}
852デフォルトの名無しさん:2006/08/29(火) 22:41:42
TabControl にフォーカスを移動させずに、選択するタブの変更って可能?
SelectedIndex と SelectedTab だと TabControl にフォーカスされてしまう。
853デフォルトの名無しさん:2006/08/29(火) 22:48:41
タブを変更した後フォーカスを移動させればいいじゃないか
854デフォルトの名無しさん:2006/08/29(火) 22:58:00
あ〜、HTMLでシコシコ画面作ってた頃が懐かしい
さよならJava
もう君に夢中だよ・・・C#
855デフォルトの名無しさん:2006/08/29(火) 23:31:16
>>854
それは本当に java だったのか、もう一度よく考えろ
856デフォルトの名無しさん:2006/08/29(火) 23:44:04
ListViewでViewがDetailの時に
選択変更イベントが左右のキーを押したときでも出てしまうのって何とかならないですかね?
857デフォルトの名無しさん:2006/08/30(水) 00:02:15
>>853
すまん、それを書いてなかった。
それをすると TabControl とフォーカスを維持したいコントロールの両方が
一瞬ちらつくというか挙動が見苦しいんだ。
858デフォルトの名無しさん:2006/08/30(水) 07:38:15
Exceptionをcatchするなと書いてあります
ではどうやって何の例外かわからないのを受けるですか?
859デフォルトの名無しさん:2006/08/30(水) 07:49:48
どこに書いてるんだ?


自分が処理できない例外を catch するな、と言う事だ。
つか何の例外か分からないってのに問題がある。
860デフォルトの名無しさん:2006/08/30(水) 11:01:01
昔やったのが、自作の例外を返す関数をきめうちで
try {} catch(Exception) {} で囲ったら実は返ってきてたのが
IndexOutofRangeException で、それをなんでこの
自作例外が返ってくるんだと2時間ばかし悩んだとかあるな。
861デフォルトの名無しさん:2006/08/30(水) 11:49:37
javaやってる奴は大概
try{}
catch(Exception ex){
 ex.printStackTrace();
}
でエラー処理完了だとおもっとる。
オラクルのエンタープライズマネージャコンソールとか
DOS窓にNullPointerExceptionとかエラーがズラズラ出まくっとる
862デフォルトの名無しさん:2006/08/30(水) 12:10:00
>>858

どんなエラーが起きてもそこで終わらせるつもりならOK
863デフォルトの名無しさん:2006/08/30(水) 12:31:04
int型の整数をtextBox.Text =〜に表示させるためにはどうしたらいいんでしょうか・・・・
Cでは全部printfでできたけど・・・・
864デフォルトの名無しさん:2006/08/30(水) 12:36:31
Int32 hoe = 32;
textBox.Text = hoe.ToString();
865デフォルトの名無しさん:2006/08/30(水) 12:40:44
>>864
できました
ありがとうございます
866デフォルトの名無しさん:2006/08/30(水) 14:25:45
>>858
一括りにキャッチするのはパフォーマンスが悪いって事でしょ
867デフォルトの名無しさん:2006/08/30(水) 14:33:50
得体の知れない例外をキャッチしたところで握りつぶすしかないから
それなら無視して実行停止させたほうがマシってことでしょ
868デフォルトの名無しさん:2006/08/30(水) 16:24:48
C#でRS-232と通信する場合ってVBのクラス使う以外ないのん?
869デフォルトの名無しさん:2006/08/30(水) 16:29:55
標準ライブラリにありまっせ。IOの下のSerialかPortだったか。
870デフォルトの名無しさん:2006/08/30(水) 17:56:51
まじすか。サンクス
871デフォルトの名無しさん:2006/08/30(水) 20:00:33
>>868
完成したら、詳しくお聞きしたい
872デフォルトの名無しさん:2006/08/30(水) 22:42:18
LinearGradientBrush とか SolidBrush のインスタンスって
いっぱいあるとリソースをいっぱい圧迫しますか?

ペイントツールで、塗りつぶし用の色の一覧を出すときは、
Brush の配列を持っているんじゃなくて、
Brush を作るのに必要な情報だけを入れるクラスをつくっておいて
そちらに入れておくべきでしょうか?
873デフォルトの名無しさん:2006/08/30(水) 23:09:59
あてずっぽうで答えるとdisposeがあるくらいだから良くないでしょう。
colorの配列でよろしがな
874デフォルトの名無しさん:2006/08/31(木) 06:53:03
今までJavaやってきてC#に乗り換えようかと思ってるんだけど
お勧めの本とかあります?
875デフォルトの名無しさん:2006/08/31(木) 08:51:35
>>874
MSDNライブラリ
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)
877デフォルトの名無しさん:2006/08/31(木) 10:36:05
STAThread か?
878デフォルトの名無しさん:2006/08/31(木) 14:52:53
>>874
オライリー読んどけ。
879876:2006/08/31(木) 23:14:44
>>877
Mainがあるファイルには、
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
と書いてあります
多分自動生成されたそのまま
880デフォルトの名無しさん:2006/08/31(木) 23:20:47
別スレッドでやってますとかいわんだろうな
881デフォルトの名無しさん:2006/08/31(木) 23:42:43
>>879
NavigateComplete2でExecWBやってみたら例外は出なかったよ。

何も起きなかったけど。
882デフォルトの名無しさん:2006/09/01(金) 00:04:04
P/InvokeなコントロールをWebにはっつけて、
クライアントから実行できる?CAS次第?
883876:2006/09/01(金) 00:04:42
起動したら出てくるGUI画面でボタンを押したら
IEでプリントアウトするようにしたいんですけど
別のメソッドが有ったりしますか?
884デフォルトの名無しさん:2006/09/01(金) 00:05:32
>>874
つ DBマガジン2006/10月号
885デフォルトの名無しさん:2006/09/01(金) 02:23:23
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

↑をインストールしようとしたらWindows XP Service Pack 2にしか対応してないようです
Windows XP Service Pack 1でもインストールできるC#のソフトはないですか?
886デフォルトの名無しさん:2006/09/01(金) 03:12:02
SP-2 が出る前に発売された VS 2002 や 2003 なら動くだしょ
887デフォルトの名無しさん:2006/09/01(金) 05:16:16
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[] で受けたいのですがサイズがわからないとマーシャリング不能でしょうか?
889デフォルトの名無しさん:2006/09/01(金) 23:25:09
static extern void func(ref IntPtr p);

かなー?
890デフォルトの名無しさん:2006/09/01(金) 23:30:04
だね。よく考えなくてもマーシャリングは不可能ですわ。
891デフォルトの名無しさん:2006/09/01(金) 23:49:55
無効でメモリ確保するのなんか怖くてしょうがないな
892デフォルトの名無しさん:2006/09/02(土) 00:01:29
他に関数があってそれで何バイト取られたか判定できることがわかったので
一旦
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が仕切ります
895デフォルトの名無しさん:2006/09/02(土) 00:51:21
>>893
string[] Buffer = new string[なんたらかんたら];
896デフォルトの名無しさん:2006/09/02(土) 00:55:51
>>893
宣言と定義は別だぜー
897893:2006/09/02(土) 00:57:25
あーそういうことですか。
わかりましたー

ありがとうございます
898デフォルトの名無しさん:2006/09/02(土) 00:57:58
ほんまに困ってんねん
899デフォルトの名無しさん:2006/09/02(土) 01:04:34
おれSUGEEEEEEEEEEEEEE!!!
900893:2006/09/02(土) 01:05:41
ところで、
string[] Buffer = new string[なんたらかんたら];



[なんたらかんたら]

ってのは配列の長さですよね?
901デフォルトの名無しさん:2006/09/02(土) 01:09:34
>>900
そうだよ。途中で足りなくなりそうだったらRezie()を。
902デフォルトの名無しさん:2006/09/02(土) 01:09:56
×Rezie()
○Resize()
903デフォルトの名無しさん:2006/09/02(土) 02:11:10
質問です。
Control.BeginInvokeの後はEndInvokeを呼ばなくてもよくて
Delegate.BeginInvokeの後は、必ずEndInvokeを呼ばないといけないって認識で合ってますか。
904デフォルトの名無しさん:2006/09/02(土) 02:26:29
その前にBufferて名前はやめとけ。
905デフォルトの名無しさん:2006/09/02(土) 02:27:00
どの前だよっ!!
906デフォルトの名無しさん:2006/09/02(土) 10:41:15
>>903
うい。
907デフォルトの名無しさん:2006/09/02(土) 16:12:53
>>903
Control.EndInvokeが呼ばれるまで状態(戻り値とか)が保存されるので
どっちも駄目なような。

ていうかワーカースレッドなんて少々止まってもいいし、UIスレッドが
何らかの理由でとまっていると鬼のようにBeginInvokeが溜まっていくから
ほとんどの状況でInvoke以外俺は要らない。
908デフォルトの名無しさん:2006/09/02(土) 17:12:38
あなたがいらないかなんて聞いてません><
909デフォルトの名無しさん:2006/09/02(土) 17:27:08
>>907
ならこういったらいいか。必要な状況が経験上ほとんど想定できない。
個人的には、事前先読みに使っているぐらいだな。EndInvokeを呼ぶのが
メドイ。呼ぶためにPoolつかったら逆に重くなったし。

それでもバリバリ使っている人もいるかもしれないから「俺は」つけた
だけなんだけど。
910デフォルトの名無しさん:2006/09/02(土) 20:30:49
すいません。Type#GetFields で継承クラスの private なメンバを含めるにはどうすればいいのでしょうか。
FlatternHierarchy では private なメンバが含まれなくて……。・゚・(ノД`)・゚・。
911デフォルトの名無しさん:2006/09/02(土) 20:34:09
>>907
> Control.EndInvokeが呼ばれるまで状態(戻り値とか)が保存されるので
> どっちも駄目なような。

これってメモリリークみたいに徐々にメモリを消費していくってこと?
それともコントロールにつき1つだけ保存されて、
残りは自動的に破棄されたりするようになってるのかな。
912デフォルトの名無しさん:2006/09/02(土) 20:43:13
>>910
NonPublic とかなかったっけ
913デフォルトの名無しさん:2006/09/02(土) 20:45:16
>>910
BaseType から辿って再帰。
914デフォルトの名無しさん:2006/09/02(土) 20:49:05
>>912
いや、それ含めてもダメだった orz

>>913
了解……。やっぱり子クラスからアクセスできないフィールドは GetFields では取得できないんスかね……。
とりあえず BaseType たどります。ありがとうございました orz
915デフォルトの名無しさん:2006/09/02(土) 20:55:08
フィールドに限らず祖先の private は見られない、と言うか派生クラスが情報を持ってない
916デフォルトの名無しさん:2006/09/02(土) 21:26:19
privateを見れたらprivateにする意味が無いんじゃないの
917デフォルトの名無しさん:2006/09/02(土) 21:30:06
突然の書き込みすみません。>< 集計とってます。
ベストなバストはなにサイズ? 協力してちょ
http://human5.2ch.net/test/read.cgi/honobono/1157170883/
918デフォルトの名無しさん:2006/09/02(土) 21:44:31
>>916
それは別問題だろ
919デフォルトの名無しさん:2006/09/02(土) 23:05:53

配列変数というものを使ってみようとしてるのですが、エラーが出ます。

int[] xx;
xx = new int[3];

本に書いてあるとおりそのままやってるのですが、これだとエラーが出ます。
なぜなのでしょうか?
920デフォルトの名無しさん:2006/09/02(土) 23:11:58
エラーでないよ
どこか違うところに問題があるはず
エラーメッセージと該当する行を確認
921デフォルトの名無しさん:2006/09/02(土) 23:24:16
あうあ よくわからなくなってきた

↓みたいにやってるとエラーでるのですが、
static void Main()
{
Application.Run(new Form1());
}

int[] xx;  //●
xx = new int[3];//●●

private void button1_Click(object sender, System.EventArgs e)
{

}
922デフォルトの名無しさん:2006/09/02(土) 23:25:47
うあ、 すいません、間違って書き込みしてしまいました。

とりあえず、レスありがとうございます。

>>921のやり方だとエラーが出るのですが、↓だとエラーがでない。
もうよく分からなくなってきました。



static void Main()
{
Application.Run(new Form1());
}

private void button1_Click(object sender, System.EventArgs e)
{
    int[] xx;  //●●
    xx = new int[3];//●●
}
923デフォルトの名無しさん:2006/09/02(土) 23:30:30
>>922
xx = new int[3];

みたいなものは Statement って呼ばれるんだけど、Statement は Method 内でしか記述できないよん
>>921 は Method 外に書いてあるからエラー。>>922 は Method 内で書いてあるからOK
924デフォルトの名無しさん:2006/09/02(土) 23:32:13
うああああ

そういうことなのですね、よくわかりました。

ありがとうございました。
925デフォルトの名無しさん:2006/09/02(土) 23:32:15
int[] xx = new int[3];
なら921でもOK
926デフォルトの名無しさん:2006/09/03(日) 09:46:31
つか、ちゃんとエラーメッセージ見りゃいいじゃんよお(・∀・)
927デフォルトの名無しさん:2006/09/03(日) 10:59:29
厳しいこと言わせてもらうと、エラーメッセージ書くのはプログラミングじゃなくても基本。
質問に答える人はエラーメッセージがわかってれば>>920のように困ったりはしない。

プログラム作る人はユーザーにエラーメッセージを書いてもらう立場なんだからしっかりしてくれ。
928デフォルトの名無しさん:2006/09/03(日) 13:23:58
C#でAPIを呼ばないといけなくなったのですが
GetLastErrorのWin32エラーコードから;et@ei^ytyr。mkf3ljpyt?
MarshaliHRESULT:[email protected]@rt@
929デフォルトの名無しさん:2006/09/03(日) 13:26:40
throw;
930デフォルトの名無しさん:2006/09/03(日) 13:34:16
わかってるなら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文で
「インデックスが配列の境界外です。」とエラーが出てしまいます。
どうすればいいのでしょうか?
932デフォルトの名無しさん:2006/09/03(日) 22:44:54
cmds = System.Environment.GetCommandLineArgs();
とした時点で
cmds = new string[5];
cmds[1] = "";
は完全に無意味になってるぞ

cmds.Length で引数の個数を見るこった
933デフォルトの名無しさん:2006/09/03(日) 22:47:16
>>932
解決しました。
ありがとうございます!
934デフォルトの名無しさん:2006/09/03(日) 22:52:15
なぜ cmds に立て続けに代入したのか、聞かせてくれないか?
935デフォルトの名無しさん:2006/09/03(日) 22:52:33
C#でJoypadのステータスを取得できるようになりましたが
キーボード入力のようにJoypadからイベントを起すことが
できるのでしょうか?
素朴な質問です。
936デフォルトの名無しさん:2006/09/03(日) 22:54:56
自分でJoypadの状態を監視して入力があったらイベントを起こすクラスを書けばいい
937デフォルトの名無しさん:2006/09/03(日) 22:56:27
むずかしそうですね。
938デフォルトの名無しさん:2006/09/03(日) 22:56:29
>>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
とにかくやってみます。
ありがとうございました。
942デフォルトの名無しさん:2006/09/04(月) 00:19:22
任意のキャプションで任意の個数のボタン(例:リンゴ/ミカン/バナナ)を表示できる
MessageBox みたいなクラスはライブラリにありますか?
java の JOptionPane.showOptionDialog みたいなことがしたいんです。

ヘルプは見たし、ぐぐってもみましたが、
MessageBox はそういう使い方はできなさそうだし、
自力では見つけられませんでしたのでよろしくお願いします。

943デフォルトの名無しさん:2006/09/04(月) 00:23:35
>>942
ちょっと無理かなー
自前で作っちゃったほうが早いですよー
944デフォルトの名無しさん:2006/09/04(月) 00:35:11
C#.NETを勉強しようと思いますが、CやC++の知識は必須ですか。
また、今までDelphiを使ってきましたが、VC#も同じようなRADなのですか。
945デフォルトの名無しさん:2006/09/04(月) 00:40:40
HTML の Unicode 参照文字 (& とか " とか " とか) を実体に変換するメソッドってあります?
946デフォルトの名無しさん:2006/09/04(月) 00:41:39
>>944
必須と不要の中間くらい。あるに越したことはないです。
そして RAD です。
947デフォルトの名無しさん:2006/09/04(月) 00:47:51
>>945
HttpUtility とかいうクラスなかったっけ
948デフォルトの名無しさん:2006/09/04(月) 00:53:22
>>947
うあ。すまん。&amp; とか &quot; とかを & や " に変換させたいと言いたかったんだ orz

まあ良いや。
HttpUtility.HtmlDecode ですね。ちょっと試してみますー
949デフォルトの名無しさん:2006/09/04(月) 02:59:57
やばい間に合わへん
950デフォルトの名無しさん:2006/09/04(月) 12:52:23
デリゲートわかんねーよ
951デフォルトの名無しさん:2006/09/04(月) 16:49:18
デリゲート?ただの関数ポインタじゃん。
952デフォルトの名無しさん:2006/09/04(月) 16:50:02

ネイティブアプリから、
.netFrameworkがインストールされているかどうか
調べる方法はありますか?
953デフォルトの名無しさん:2006/09/04(月) 18:00:01
>>952
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\csc.exeなど
ディレクトリの特定のファイルを調べるので十分だと思う。
あとは、CorBindToRuntimeExで実際に起動してみるというのはどう?
954942:2006/09/04(月) 23:07:00
>>943
やっぱないですか。
どうもありがとうございました。
955デフォルトの名無しさん:2006/09/04(月) 23:39:19
>>952
MSが提示している方法は%systemroot%\Microsoft.NET\Framework以下の
vなんとかというフォルダの存在を調べることとなっている。
http://support.microsoft.com/?scid=kb;ja;318785
956887:2006/09/05(火) 04:26:52
>>887ですが、できないのでしょうか?
割とありそうな要求だと思うので不可能ではないと思うのですが・・・
957デフォルトの名無しさん:2006/09/05(火) 07:54:42
>>956
>通常だとドラッグ&ドロップの処理が完了するまでスレッドをブロックしてしまうのですが、 
ブロックされるのはマウスとキーボードのイベントでスレッドではない。
ドラッグドロップのためにフックされている。
別スレッドでDoDragDroをつかうことは見当はずれなだけではなく、
GUIに関する操作はGUIが所属するスレッド中で行うという原則にも反する。

ドラッグドロップ中にリストコントロールのスクロールを行いたい場合は
マウスカーソルがリストコントロールの上部または下部にある時に
DragOverイベントでスクロール処理を行うようにコーディングする。
これと同様の処理をエクスプローラがやっているので参考にできる。
958887:2006/09/05(火) 08:20:03
>>957
レスどうもありがとうございます。
DragOverの方はカーソルがクライアント領域外に出た後に追跡できないのがいささか不便ですが、何とかなりそうです。
マウスホイールの方はやはり無理でしょうか?
たとえばfirefoxではドラッグ操作中でもホイールによるスクロールが可能なので、これも不可能ではないと思うのですが。
ご存知の方がいましたらよろしくお願いします。
959デフォルトの名無しさん:2006/09/05(火) 09:37:07
>>958
Control.WndProc でごりごり書くしかないんじゃないかな。
どういうプロトコルでマウスホイールがイベントが処理されているかは自分で調べるしかなさそうだけど。
960デフォルトの名無しさん:2006/09/05(火) 10:19:10
SetWindowsHookExでマウスにフックかければできるんじゃね?
961デフォルトの名無しさん:2006/09/05(火) 10:29:08
ドラッグイベントって領域でた後でも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
うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ
うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ
うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ
うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ
うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ
うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ
うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ
うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ
うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ
うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ
うんこうんこうんこうんこうんこうんこうんこうんこうんこうんこ
964デフォルトの名無しさん:2006/09/05(火) 23:50:51
うこんのカ
965デフォルトの名無しさん:2006/09/06(水) 02:32:55
Control.Captureでいいじゃん

なんでフックする必要あるんだ?
966プログラム自体初心者:2006/09/06(水) 10:01:38
CreateProcessWithLogonを使用して一般ユーザーにAdmin権限でProcessを実行させようと思っています。

MSDNなどを見ても、ソースコードの書き方がイマイチわかりません。

どなたかヒントだけでも頂けないでしょうか?差し出がましいですが、サンプル書いてもらえると助かります。

よろしくお願いいたします。
967デフォルトの名無しさん:2006/09/06(水) 10:09:09
>>966
落ちついてスレタイをよく見ろ。

つ Win32API質問箱 Build45
968プログラム自体初心者:2006/09/06(水) 10:58:58
>>967
失礼しました。
本スレに書き込みました。
969887:2006/09/06(水) 11:10:22
みなさんレスありがとうございます。
WndProcをオーバーライドしてみましたが、やはりドラッグ中はホイールイベントが来ませんでした。
フックという方法は思いつきませんでしたが、さすがにこれならできそうな気がするのでやってみようと思います。
970887: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を避けるためにメンバのフィールド等に保持する必要があるようです。
971デフォルトの名無しさん:2006/09/06(水) 12:49:53
WH_MOUSEなら
コールバックのlParamからMOUSEHOOKSTRUCTEXを取得して
そのメンバのmouseDataのHIWORDを見ればOK
972887:2006/09/06(水) 13:39:41
>>971
早速そのようにしたところうまく取得できました。
どうもありがとございます。
973デフォルトの名無しさん:2006/09/06(水) 16:29:55
ネイティブ呼び出しで

struct S {
  LPCWSTR text;
}

void func(S* s);

て構造体をC#で宣言しなきゃいかんのですが
メンバ「text」は何と定義すればいいのでしょう?

IntPtrで宣言してMarshal.ToHGlobalUniで取ったポインタ代入?
S s; s.text= Marshal.ToHGlobalUni("あああ");
974デフォルトの名無しさん:2006/09/06(水) 16:37:05
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);
}
976デフォルトの名無しさん:2006/09/06(水) 17:17:38
ファイアーウォールは?
977デフォルトの名無しさん:2006/09/06(水) 17:17:55
マルチ乙
978デフォルトの名無しさん:2006/09/06(水) 17:32:24
IEからは見れます。
979デフォルトの名無しさん:2006/09/06(水) 17:42:36
>>978
わけの分かんないこと言ってんじゃないよ
もう来なくていいよ
980デフォルトの名無しさん:2006/09/06(水) 17:55:46
>>974
さすがに駄目だった。C#でメモリ管理したくないからCでラップするか
981デフォルトの名無しさん:2006/09/06(水) 18:27:02
982デフォルトの名無しさん:2006/09/06(水) 18:43:01
>>975

webReq.GetResponse() は実装されていない。
983デフォルトの名無しさん:2006/09/06(水) 19:16:07
は?
984デフォルトの名無しさん:2006/09/06(水) 19:17:22
>>981
あれま。他の所でバグってたか。
もう一回チャレンジします。ありがとう。
985デフォルトの名無しさん:2006/09/06(水) 19:37:07
struct S{
[MarshalAs(UnmanagedType.LPWStr)]
String text;
}
とやったらうまくいった。ありがとう。
986デフォルトの名無しさん:2006/09/06(水) 21:01:56
LPWSTR を string にしてしまうとメモリの解放の機会を失ってしまわないか?
987デフォルトの名無しさん:2006/09/06(水) 21:21:47
C#でサッカー日本代表がブラジル代表に3-0で勝つプログラムを
つくりたいんですが、できますか?
988デフォルトの名無しさん:2006/09/06(水) 21:27:12
while(!サッカー日本代表がブラジル代表に3-0で勝った)
{
Thread.Sleep(1000);
}
989デフォルトの名無しさん:2006/09/06(水) 21:29:19
果報は寝て待てってか?
990デフォルトの名無しさん:2006/09/06(水) 21:46:34
>>986
Marshal.FreeHGlobalとか呼ぶのやだからこれにしたんだけど
>>985だとFreeしてくれないの?
991デフォルトの名無しさん:2006/09/06(水) 21:53:26
構造体をrefで渡したらマーシャラが解放してくれない?
992デフォルトの名無しさん:2006/09/06(水) 21:55:01
string は BStr で指定されたのを除けば CoTaskMemFree を使って解放しようとするはず
CoTaskMem 以外から確保したモン以外は多分解放し損ねる
993デフォルトの名無しさん:2006/09/06(水) 21:56:25
とはいえ状況にも依るな
まずこっちで確保する場合は問題ないか
994デフォルトの名無しさん:2006/09/06(水) 22:12:36
理解力不足だなあ
開放されるよ
995デフォルトの名無しさん:2006/09/06(水) 22:13:53
いま馬鹿ほどループさせてんだけどメモリ使用量はふえないなあ。
大丈夫かな。
996デフォルトの名無しさん:2006/09/06(水) 22:24:56
相互運用マーシャラによるメモリ管理
http://msdn2.microsoft.com/ja-jp/library/f1cf4kkz.aspx

Buffers のサンプル
http://msdn2.microsoft.com/ja-JP/library/x3txb6xc.aspx

文字列のマーシャリング
http://msdn2.microsoft.com/ja-JP/library/e8w969hb.aspx
997デフォルトの名無しさん:2006/09/06(水) 22:35:26
お礼に新スレを立てた。
998sage:2006/09/06(水) 22:41:43
998
999デフォルトの名無しさん:2006/09/06(水) 22:43:18
誘導しとくか。

C♯, C#相談室 Part34
http://pc8.2ch.net/test/read.cgi/tech/1157549657/
1000デフォルトの名無しさん:2006/09/06(水) 22:43:38
1000get!!!!!!!!!!!!!!!!!!!!!!!!!!!!!111111111111
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。