C♯相談室 Part12

このエントリーをはてなブックマークに追加
1名無しさん♯

(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。


過去スレは>>2-5あたり。

関連リンク
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
2名無しさん♯:03/10/13 18:51
3げとー
4あぼーん:あぼーん
あぼーん






       皆 様 。 類 似 ス レ に ご 注 意 下 さ い




6あぼーん:あぼーん
あぼーん
7デフォルトの名無しさん:03/10/13 19:36






   プログラマは友達いない根暗キモヲタ揃い
8あぼーん:あぼーん
あぼーん
9あぼーん:あぼーん
あぼーん
10あぼーん:あぼーん
あぼーん
11あぼーん:あぼーん
あぼーん
12デフォルトの名無しさん:03/10/13 19:48
元スレいい加減にしとけよ
14あぼーん:あぼーん
あぼーん
後でまとめて削除依頼出しますんでよろしく。
通報しますた
AA張るな糞
元スレはマジ切れ中w
19デフォルトの名無しさん:03/10/13 19:52
>>4
グロは勘弁してください
20あぼーん:あぼーん
あぼーん
おまえマジでウザイから消えろや
元スレ必死だなw
すみません。自己解決しますた
>>23
何を解決したのですか?
元スレ消えろ。
2624:03/10/13 20:02
すみません。自己解決しますた。
2724ホンモノ:03/10/13 20:02
>>26
この人は偽者です!!
私がホンモノです!!
>>23
何を自己解決したのですか?
2824 ◆IO8bwLPiQ6 :03/10/13 20:03
more ga honmono desu
29元スレ:03/10/13 20:04
>>25
どこに帰れというのですか?わしは棲家を荒らされました。
>>28
トリップがIO

どうでもいいけどな
31デフォルトの名無しさん:03/10/13 20:05
質問です!!

バカと荒らしはどっちが糞ですか?
この板って誰か世話してる人いるのかな?
せめてID制にお願い。
>>31
おまえが糞
元スレはキティGUYの工房です。
無視進行でお願いします。
ある程度糞レスがたまれば削除依頼を出しましょう。
>>33
おまえがなw
3634:03/10/13 20:12
自己解決しますた
3734 ◆Emjcf.lfLU :03/10/13 20:15
>>36
解決しますた
38>>4-37:03/10/13 20:16
ジサク(・∀・)ジエンデシタ
初心者にふさわしい(Hello World並)のを考えましたので書き込みますね。
(省略)

  Messagebox.Show("元スレはバカ","元スレはバカ")
 }
(省略)
40あぼーん:あぼーん
あぼーん
41あぼーん:あぼーん
あぼーん
>>545
> 本スレは荒らされては困るがここは荒らしていいということはないんです。
> 興味がいない、役に立たないと思うなら放置すればいいんです。
> 荒らしはどのスレでもやっていいことはないんです。
> このスレ自体が荒らしというなら、削除依頼を出せばいいだけ。
> これ以上ここを荒らさないで下さい。
43元スレ:03/10/13 20:27
3つのレス以外全部おれなのになwwww
このスレは当分放置ですね。
適当にレス削除依頼っと。
工房ってやっぱこの程度なんだね。出てる学校もしょぼそう(w
45デフォルトの名無しさん:03/10/13 20:32
>>43
氏ね
46元スレ:03/10/13 20:33
>>44
偏差値68ですが何か?
47元スレ:03/10/13 20:34
>>44
学歴うんぬん言い出した時点で学歴コンプレックスあるってバレバレwwwwwwwwwwwwwwwwwwwwwwwwwww
>>46
あほ高校の中で?(w
49デフォルトの名無しさん:03/10/13 20:35
>>44
ちんこに生えた毛ぐらいしょぼい
50元スレ:03/10/13 20:36
>>48
痛くも痒くもないよ。おれ頭いいから
>>47
根暗で友達いなさそう。
>>48はリア工房
68って威張れるほどの数字か?
>>51
おまえがなw
童貞なんだろ?w
なぁ?童貞だろ?wwww
元スレは偏差値68で有頂天なリアル根暗工房。
>>55
で?おまえはいくつ?
このバカばかりだから有頂天になっちゃったよwww

友達いないって言われたのが図星で悔しいんだねww
>>54
釣れたとか言ってきやがるだろうからテストにしとく。


            違 う よ (w

学生のときによく虐められてたんだろww
わかるよwwおまえの発言聞いてたらすごくわかるwww
必死なのすごくわかるよ
パソコンディスプレイの前で真っ赤にした顔してるのよくわかるよ
ばーか、レスしてる時点で釣られてるんだよ
おまえらの負けなんだよ( ´,_ゝ`)プッ
60デフォルトの名無しさん:03/10/13 20:42
>>58
誰に言ってるのか明確にね。
厨房と見せかけて、実は童貞35歳自称プログラマー氏んでいいよwwww
もうすでに削除人に手間かけてるんだからこの辺で止めておいた方がいいと思うよ。
依頼したのは漏れですが何か?
35歳で無職で童貞なんておれだったら自殺してるな

もしかして、この中に20代童貞っているの?( ´,_ゝ`)プッ

みんなおまえのこと影でホモって噂してるよ( ・,_ゝ・)プークス
65デフォルトの名無しさん:03/10/13 20:45
>>62
こいつはまだ、まともな方だが

それ以外はどうしようもないヒッキー童貞プログラマwwwwwwww


未来想像してごらん?自殺したくなるだろ?
66デフォルトの名無しさん:03/10/13 20:47
2ch始めた初心者は荒らしに便乗するのが大好き

煽り耐性なんて全然持ち合わしてない。

おっさん2chねらーキモ過ぎwwwwwwwww
なんかアホアンチの仕業っぽいな
>>67
アホアンチって何よ?
69デフォルトの名無しさん:03/10/13 20:52
>>67
漏れも思った。
70元すれ1 ◆jYDOLr.5ps :03/10/13 20:56
どうせ信じないだろうけど、おれの仕業じゃないよ。
71元すれ1 ◇jYDOLr.5ps:03/10/13 20:57
全部漏れがやりますた
荒らしてやるうへへへへ


72デフォルトの名無しさん:03/10/13 20:57
>>70
信じない。
73デフォルトの名無しさん:03/10/13 20:58
559 名前:元すれ1 ◆jYDOLr.5ps :03/10/13 20:00
今更後悔しても遅いよ( ´,_ゝ`)プッ


560 名前:元すれ1 ◆jYDOLr.5ps :03/10/13 20:00
おれはマジメだったのにな。全部おまえらのせいだ
責任はとってもらうからな
当分治まりそうにないな・・・
元スレ1の隔離スレを荒らしたのがそもそもの発端だな・・・
>>71はトリップも知らないバカ。
77デフォルトの名無しさん:03/10/13 21:00
>>75
おまえがやったんだろうが!!
最初はどうであれ、後半は細々やってたんだから
別に煽らなくてよかったんじゃないか?
ああいう根暗な香具師は怒らすと後がしつこいぞ
79デフォルトの名無しさん:03/10/13 21:02
>>76
そういう突っ込みしてる時点でお前終わってるな・・・
>>79
最近トリップ覚えて言って見たかっただけじゃねえの?
>>80
だなw
なんで>>70は被害妄想なんだ?
83デフォルトの名無しさん:03/10/13 21:06
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ここで本題に入りましょう。
84デフォルトの名無しさん:03/10/13 21:06
privateフィールドの配列に要素アクセスしたいんですがメソッド作らないとできないのでしょうか?
↓こういう処理を
int num = (new Hoge()).GetAtHoge(2);
class Hoge {
private int[10] hoge;
public GetAtHoge(int index) {
return hoge[index];
}
}

↓プロパティとかインデクサとか使ってこういうのはできませんか?
int num = (new Hoge()).Hoge[2];
85デフォルトの名無しさん:03/10/13 21:07
もともとC++野郎なのですが、C#(というか.NETやJava)の
ガーベジ・コレクションというやつがイマイチ生理的に気に入りません。
デストラクタがいつ働くか分からない?? なにそれ??って感じです。
一応、どんなものかは分かっているのですが、その魅力というか、
便利さを教えてもらえないでしょうか。
>>80-81
まちBBSの先頭に普通に書いてあるし(w
自分たちがそんな経験を持つから言ってるんだろうな。
87デフォルトの名無しさん:03/10/13 21:08
C++でwhile(cin>>a){処理}のように入力が成功したら繰り返すのはどうしたらいいんでしょうか?
while((bool)(a=int.Parse(Console.ReadLine())))
と書いてもbool値に変換できませんって怒られます。
>>87
スレ違い
89デフォルトの名無しさん:03/10/13 21:09
>>86
ブラウザも使えない2chねら
90デフォルトの名無しさん:03/10/13 21:09
Borland-C++ 5.0→C++ BuilderX の方が真実に近い。
GUIはVCLコンポーネントがないので、多分簡単なスケ
ルトンぐらいはあると思うが、基本的に自前。違うかな?
91デフォルトの名無しさん:03/10/13 21:10
awtを使ってアプレット作りをしてます。

パネルを継承した自作クラスをScrollPaneに
登録して、それを簡単なテキストビューワに
してみようと思い、その自作パネルクラスの
paintメソッドでdrawStringを利用して100行
ばかり出力させてみたら、スクロールバーが
出てきません。

ちなみにそのループでdrawStringの代わりに
Buttonオブジェクトを100個登録したらちゃんと
スクロールバーが登場しました。

何が間違っているのでしょうか?
>>89
2chブラウザ導入までのつなぎに1日IE使ってただけ。
>>85
デストラクタがなぜ必要だったかを考えたらいいと思う。
質問者は全員同一人物の気がする。
95デフォルトの名無しさん:03/10/13 21:12
次のプログラムで、なぜ警告メッセージがでるのか、
どうすれば回避できるのか教えてください。

#include <stdio.h>
#include <time.h>

int main(void)
{
struct tm *tm_ptr, timestruct;
time_t the_time;
char buf[256];
char *result;

(void) time(&the_time);
tm_ptr = localtime(&the_time);
strftime(buf, 256, "%A %d %B, %I:%S %p", tm_ptr);
strcpy(buf, "Sun 21 Sep 2003, 10:32 will do fine");
tm_ptr = ×truct;

/*
* 次の部分で警告メッセージ
*/
result = strptime(buf, "%a %d %b %Y, %R", tm_ptr);
/*
* 警告: 代入により、キャストなしで整数からポインタを作りました
*/

return 0;
}
96デフォルトの名無しさん:03/10/13 21:13
>>92は2ch始めて1日目です。やさしくしてあげてください
やっぱり犯人はアホアンチだ
98デフォルトの名無しさん:03/10/13 21:14
functionを呼び出して、中で例外処理をしているんですが、
これってエラーが発生したときには、値がもどらないんですか?

例えば
function hoge():String;
begin
 try
  i := i / 0;
 except
  resu;t := 'Error';
 end;
 result := 'ok';
end;

みたいなのやりたいんだけど・・・
どうもnilが孵ってエラーになってるぽいなー。
ちと調べてみるか・・。
そのようですな。
しかし、今から始めるC#を荒らしたのはおまえらC#厨だがな
なんで多言語派の奴ってこんなことするの?
質問本スレすら荒らしの対象になる時代なのか?
この悪名高い2chといえども今までは隔離スレ内だけにとどまってたのに。
モラルの低下もはなはだしいな・・・
103元スレ:03/10/13 21:17




  お ま え ら が や っ た こ と は 忘 れ な い か ら な


>>96
残念ですがPC買い換えです。
105デフォルトの名無しさん:03/10/13 21:18
>>103
トリップ使えよ!
106デフォルトの名無しさん:03/10/13 21:19
Vectorクラスから配列に入れ替えるというコードのテストを作ってみたんですが

Vector a = new Vector();

a.add("1");
a.add("2");
a.add("3");
a.add("4");
a.add("5");
a.add("6");


String[] str= (String[])a.toArray();

for(int i =0;i< str.length;i++){
System.out.println(str[i]);
}

String[] str= (String[])a.toArray();のところで
java.lang.ClassCastException
のエラーが出ます
Perl厨にいじめられてここで憂さを晴らすアホアンチ。
やっぱり派遣のやることは肝が小さいな。www
108デフォルトの名無しさん:03/10/13 21:20
lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllll/ ̄ ̄ヽlllllllllllllllllllllllllllllllllllllllllll
lllllllllllllllllllll /      ヽllllllllllllllllllllllllllllllllllllll
iiiiiiiiiiiiiiiiiiiiii  試 そ あ .iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
iiiiiiiiiiiiiiiiiiiii|  合 こ き  |iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
;;;;;;;;;;;;;;;;;;;;;|  終 で ら  |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;|  了  め  |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;:;:;:;:;:;:;:;:;:;:;|  だ  .た  |:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:
;:;:;:;:;:;:;:;:;:;:;|  よ   ら  |:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:
:.:.:.:.:.:.:.:.:.:.:ヽ、      /.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:
:. :. :. :. :. :. :. :. ‐‐--‐‐':. :. :. :. :. :. :. :. :. :. :. :.
: : : : : : : : : : : : : : : : : : : : : : : : ,.‐- 、 : : : :
                  廴ミノ
                 ///¨' 、
                 y':;:;:;:/⌒i!
                J:;:;:;:;};:;:/;},
      ;il||||li'       t`'---‐';:;:;:l
     ,.r'"''、,┘        7;:;:;:;:;:;:;:;「
    ノ4 (⌒i        .}:;:;:;:;:;:;;/
   /..,__彡{, |         `i:;:;:;:;:;}
   (  .ミi!} l、         .」:;:;:丿
  クュ二二`Lっ)        `==='
109デフォルトの名無しさん:03/10/13 21:22
アホアンチが荒らしたということは、DelスレJavaスレを徹底的に荒らしていいということだな。
110デフォルトの名無しさん:03/10/13 21:22
2次元配列への代入の仕方なのですがC言語のように
int syoki_1[9][9]={
{26, 0, 0, 4,0,0, 0,0,0},
{ 0, 0, 0, 0,0,0, 0,0,0},
{ 0, 0, 2, 0,0,0, 0,0,0},
{ 0, 7, 0, 0,0,0, 0,0,0},
{ 0, 0, 0, 0,0,0, 0,0,0},
{ 0, 0, 0, 0,0,0, 0,0,0},
{ 0, 0, 0, 0,0,0, 0,0,0},
{ 0, 0, 0, 0,0,0, 0,0,0},
{ 0, 0, 0, 0,0,0, 0,0,0}
一気に代入する方法はあるのでしょうか?
111デフォルトの名無しさん:03/10/13 21:23
103 元すれ1 ◆jYDOLr.5ps sage 03/10/13 21:17




  お ま え ら が や っ た こ と は 忘 れ な い か ら な



112デフォルトの名無しさん:03/10/13 21:24
71 元すれ1 ◆jYDOLr.5ps sage 03/10/13 20:56
全部漏れがやりますた
荒らしてやるうへへへへ
113デフォルトの名無しさん:03/10/13 21:25



元スレ1の隔離スレを荒らしたのがそもそもの発端だな・・・
114デフォルトの名無しさん:03/10/13 21:39
すいません質問なんですが、
Cで書いたファイルの方でexternで宣言してる変数をアセンブラのファイルの方でも使ってるんですが
警告がでます(外部参照変数としてあつかうとかどうとか)アセンブラの方で宣言してないのが
問題だと思うんですが、小生Cしかわかりません。
アセンブラの方でexternとして宣言するにはどうすればいいんでしょうか?
ここまで来るともう一度立て直した方がいい?
>>115
もう少し落ち着いてからのほうがいいと思う
>>3以降荒れてるんだからその方がいいな。w
じゃあ、このスレは荒らし容認で廃棄の方向で。
おーい、元スレ1。このスレ1000行くまで荒らしていいぞ。www
120デフォルトの名無しさん:03/10/13 21:55
>>119
次スレでまた合いましょう
>>110

int[,] syoki_1 = new int[9,9]{
{26, 0, 0, 4,0,0, 0,0,0},
{ 0, 0, 0, 0,0,0, 0,0,0},
{ 0, 0, 2, 0,0,0, 0,0,0},
{ 0, 7, 0, 0,0,0, 0,0,0},
{ 0, 0, 0, 0,0,0, 0,0,0},
{ 0, 0, 0, 0,0,0, 0,0,0},
{ 0, 0, 0, 0,0,0, 0,0,0},
{ 0, 0, 0, 0,0,0, 0,0,0},
{ 0, 0, 0, 0,0,0, 0,0,0};
122デフォルトの名無しさん:03/10/17 17:50
age
すいません。
.dispose
でペンやフォントなどのインスタンスを削除できるのはわかるのですが、
クラスや配列、構造体などの参照の場合は
その参照を保持している変数をNULLにすれば、
その時点でインスタンスが消えていずれがページコレクションに
回収されると考えて良いのですか?
>>123
ガベコレの対象になるのはメモリのみ。
ファイルとか GDI+ とかのリソースは Dispose してやらないと駄目。

変数に null を代入してしまえばガベコレ発動時にデストラクタが呼ばれて、
そこで Dispose してもらえるけど、ガベコレはいつ発動するか分からないし、
デストラクタでのリソース解放には頼らない方がいい。
関連で無知な漏れにも教えて。

IDisposable を using したばあい、参照が残っていても無条件に Dispose
されちゃうんでしょうか。C++/COM とかでいう普通のスマートポインタって
ありますか?

例えば

hoge = CreateHoge(); // hoge は IDisposable とする。
MisteriousFunc(hoge); // hoge への参照が何かに保持されるかも。。
// Dispose するべきか否か?
>>124
ありがとうございます。
では、単純に聞きますが、
クラス、構造体、配列等のインスタンスがプログラム上から必要なくなった場合
普通はどうやってその存在を消す(つまりメモリを開放する)のでしょうか?
普通のプログラムスタイルがどう言うものなのか御教授下さい。
Disposeインターフェイスを継承しておいてから
Disposeするのでしょうか?
ペンやフォントなどと同じように。
お願いします。
>>126
必要なくなったかどうか判断するのが GC で、バグ入れまくるプログラマごときがそんなこと判断するなというのが時代の流れ。
ああ、なるほど。
要するに自分のプログラムから参照を外して使用されないような状態だと
判断して自動的にその辺の管理はしてくれるのですね。
解りました。
ありがとうございました。
>>128
ついでに言うと、使わなくなった変数に null を代入しとくと、
参照が外れるからガベコレ対象になるのがちょっとだけ早くなる。

でも、必要なくなったときに null 代入なんてするんじゃなくて、
そもそもメソッドを適度な長さで区切って
変数のスコープ=インスタンスの寿命になるようにする方がいい。
なるほど。
ありがとうございました。
>>124
GDI+のオブジェクトはDisposeしないとだめなの?
MSのサンプルでは明示的にはDisposeしてないから、
おれもしてないけど。
132デフォルトの名無しさん:03/10/18 11:45
前スレ埋めろよボケども
埋める必要ないな。
やっと少しはマトモにな(ry
ASPで
<object classid="aaa.dll#bbb.ccc.method"></object>
.Netではこれでクライアントにアセンブリをキャッシュさせることができませんか?
どうやっても毎回ダウンロードしてしまうので。
classidにローカルのdllを指定するのでも良いんですが。
136デフォルトの名無しさん:03/10/18 15:21
DBからファイルサイズ(Byte)で取得し、
それをDataSetのテーブルに挿入します。
その後、そのテーブルと連結されたデータグリッドに
MB単位で表示したいのですがどうすれば実装できるのか皆目わかりません。
DBから取得する際、MB単位で取得しテーブルに入れれば可能とは思うのですが、
実際表示する単位はKBやMBやGB単位と動的に変更されるので
テーブルに格納するのはbyte単位でないといけないと思っています。
どうすれば可能でしょうか?
よろしくお願いします。
>>136
DBもDataSetもDataGridも使ったこと無いから的がはずれてるかもだけど、
テーブルに入れるときにToStringをオーバーライドしたラッパーオブジェクトで包んで入れたり出来ない?
138136:03/10/19 19:12
>>137
レスありがとうございます。
テーブルに入れるのにそういうことはできないです。
仮に入れる時の容量の単位はSQLで調節したとしても
挿入時に入れた単位と表示時の単位が必ずしも
一致するわけでもないので結局
同じ問題にぶつかると思います。
自分なりにはByte単位で入れるところまでは間違いでは
ないと思っていて、いかに表示時に単位を変換するか、
というところで困っています。
>>136
DataGridにTemplateColumn作って、ItemTemplateで自前のメソッド呼んでやれば
好き放題にカスタマイズできるんでねーの?

あるいはバイト数表示用のコントロール作ってしまうとか。
すいません。
グラフィックス参照について質問させてください。

フォーム1のクライアント領域についてのグラフィックス参照は
描画するたびにその時点でイベントから送られてくる参照を利用すると言う形を取るのが
多いみたいですが(マイクロソフトの例とか見ると)
それ以外の方法は基本的にやらない方が良いのでしょうか?

つまり私がやりたいのは、グラフィックス参照を一度、取っておいたら(フォーム1のロードシ時などに)
ずっとそれを保持しておいてそのまま利用すると言うスタイルです。
どう考えてもこの方がソースがすっきりするし、
わざわざグラフィックス参照を描くたびに用意するとかの手間も省けるし
色々と効率が良い筈だと思うのですが、そう言うスタイルの例はひとつとして存在しません。
やはり、駄目なのでしょうか?
ご意見下さい。お願いします。
private void form1_Paint(object sender, PaintEventArgs pe) {
Graphics g = pe.Graphics;←この部分。

//Simply fill a rectangle with red.
g.FillRectangle(new SolidBrush(Color.Red), 40, 40, 140, 140);
}
}
あと、もう1つ、単純な疑問ですが、
矢印で指した部分なんですが、
何でいつも、グラフィックス関係の例では
わざわざグラフィックス参照変数を自前で用意するのでしょうか?
そんなことしなくても、ただ単に引数の変数からそのままグラフィックス参照を利用すればいいだけなのではないでしょうか?
つまり、
Graphics g = pe.Graphics;
なんてことせずに、
pe.Graphics;
とするだけで、グラフィックスは利用できるはずですよね。
無駄なコードと無駄な変数が1つ増えるだけだと思うのですが、
その辺はどうなんでしょうか?
お願いします。
()がついてるとヘルプで検索できないんですね。
すいませんグラフィックス関係なのですが、
自作とコントロールでは何が違うのでしょうか?
例えば、ピクチャーボックスなどの内部ではグラフィックス参照はどう扱ってるのでしょうか?
他のボタンやラベルなどのコントロールでも良いのですが、
プログラマーが自作してグラフィックを描き込むときと同じように
描画するたびにフォーム1からグラフィックス参照とかをゲットしてるのでしょうか?
クリエイトグラフィックスメソッド等を使用したりして。
それとも他の方法でやってるのでしょうか?
もっと深いシステム部分をいじってたり、、、。
c#って実はvbなら使えるのに、c#では使えないメンバメソッドとかって
結構沢山ありますよね。
例えばRectangle 構造体のCeilingメソッド等です。
がっかり、、、
実にがっかりですわ。
それとも、漏れのc#がc#オンリーバージョンだからなんですかね?
vb.net込みのバージョンを購入したらこう言う不具合も存在しないのかな?
みなさんのはどうですか?
146145:03/10/20 06:18
すいません。間違えてました。
メンバメソッドが使えないのはただ単に、
スタティックメソッドで使用方法が違うせいでした。
スンマソン。
PointF a = new PointF(10f,10f);
Size b = new Size(10f,10f);

a = PointF +(a,b);

すいません。PointとSizeの足し算についてですが、上記の記述で何か間違いがあるのでしょうか?
何度やってもエラーがでるのですが、自分では何がいけないのかが全然解りません。
すいません。お願いします。
ネタなのか真性なのか・・・
>>147
1) Size構造体のコンストラクタには(float X, float Y)は無い
2) 加算演算子がオーバーロードされていれば、通常の加算式(a = a + b又はa += b)で加算できる

//ところでSizeF構造体もあるのになんでPointF構造体の加減算演算子のお相手はSize構造体なんだろ
>>149
ああ、つまり、ただ単にfloat型とint型と言う
違う型の演算をやってるから駄目だと言う話ですね。
解りました。
こんな簡単な話だったとは、、、。
どうもすいませんでした。
……どこをどうやったらそんなことになるんだ?
>>138
「挿入時に入れた単位」って何だよ。
100MBを表すのに「0.1GB」「100MB」「100000KB」「100000000」
のどれでもいいけど、「表示時の単位」はMBでないといけないのかw
PointF a = new PointF(10f,10f);
SizeF b = new SizeF(10f,10f);
a = a+b;
すいません。やっぱり解らないです。このコードで、
演算子 '+' を 'System.Drawing.PointF' と 'System.Drawing.SizeF' 型のオペランドに適用することはできません。
って言うエラーが出てしまいます。
何ででしょうか?
PointF を指定の Size で平行移動します。
public static PointF operator +(
PointF pt,
Size sz
);

pt
平行移動する PointF 。
sz
pt の座標に追加する数の組み合わせを指定する Size 。

pt
平行移動する PointF 。
sz
pt の座標に追加する数の組み合わせを指定する Size 。
戻り値
平行移動済みの PointF を返します。

これがhelpのテキストですが、自分では何故これでいけないのか解りません。
>>154
いやヘルプの通りにさ、
PointFのoperator+オーバーロードはSizeであってSizeFじゃないんだって。

PointF p = new PointF(1.1F, 2.2F);
Size s = new Size(1, 1);
p += s:

>149はどうしてSizeF「ではなく」SizeをPointFに加算するんだろう、って話。
すみません SizeF b = new SizeF(10f,10f); の SizeF を
Size にしたら出来ました!ありがとうございました!













などというレスが来ると予想してみる。
>>155
ははあ、たびたびすいませんでした。
なるほど、良く解りました。
おっしゃるとおりですね。
すいませんでした。
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
   フォーム1に作った別のクラスのインスタンス.描画メソッド(sender,e);
}
こんな感じで自分が作ったオブジェクトの画像を描画させようとしてるのですが、上手く行きません。
グラフィックス参照を渡した自作クラスの描画メソッドではインテルセンスはちゃんと起動して
e.Graphics.DrawLine(ペン,300,300,400,400);
などと、ピリオドを打ち込めば描画のためのメソッドがちゃんとでてくるし、
コンパイルもエラーなしで実行できます。
が、なぜか、いざ実行すると、例外が出てしまいます。
これは一体何故でしょうか?
オブジェクト参照がインスタンスに設定されてませんと言う例外のようです。
意味分かりません。
159158:03/10/20 09:30
void フォーム1の自作メソッド (Graphics g)
{
Pen ペン = new Pen(Color.Black,1);
Font フォント = new Font("MS P ゴシック", 30F);
SolidBrush ブラシ = new SolidBrush(Color.Orange);
g.DrawLine(ペン,0,0,1000,1000);
ペン.Dispose();
フォント.Dispose();
ブラシ.Dispose();
}
こんな感じで同じクラス、つまりフォーム1に描画メソッドを作成してからそこへ飛ばせば
全く問題なく描画できるのですが、
フォーム1に作成した自作のクラスのインスタンスのメンバメソッドに飛ばしても
描画できないんですよね。
やっぱり描画はフォーム1上でしかできないと言うことなのでしょうか?
フォーム1に作った別のクラスのインスタンス.描画メソッド(e.Graphics);

でどうよ。
161158:03/10/20 10:13
どうやら、
this.CreateGraphics()
を使用してグラフィックス参照を作成した場合は
どこのクラスのインスタンスにその参照を渡しても問題なく
描画できるようですね。
今まで、何でthis.CreateGraphics()と言うメソッドが存在するのかがわかりませんでしたが、
(普通にペイントイベントハンドラから参照を渡せば良いだけじゃんとか思ってた。)
他のクラスのインスタンスに引数として参照を渡すような場合は
this.CreateGraphics()で作成した参照でなければ渡せないようですね。
ただし、この場合は注意として、
参照を作成した辞典でのフォーム1のクライアント領域の範囲しか描画できないと言うことです。
つまり、フォーム1のペイントイベントハンドラで描画すればフォーム1のクライアント領域が動的に変えられてもそれに
対応した描画が自然に行なえますが、this.CreateGraphics()で作成した参照を
他のインスタンスに渡した場合は参照を作成した時点での大きさに固定されてしまうようです。
クライアント領域が小さく変えられた場合は問題ないのですが、
大きくされた場合は、駄目みたいです。
つまりthis.CreateGraphics()で作成した時、フォーム1のサイズが300,300
だとしてその後サイズが変えられて500,500になった場合、
自作オブジェクトで500,500のサイズの描画をしても後から大きくなった部分は描画してくれないようです。
まあ、this.CreateGraphics()で参照を作成する時点で十分な大きさにしておくようにすれば
何の問題も無いようですが。
>>161
勘違いも甚だしいが
163158:03/10/20 11:59
>>162
え!?何でですか?
164158:03/10/20 12:35
すいませんでした。
その後色々といじってたら本当に私の勘違いだと言うことに気がつきました。
実際には、
this.CreateGraphics()を使用する形でも、
ペイントイベントハンドラに送られてくる参照を利用する形でも、
どちらでも上手く描画できますね。
色々とお騒がせしてすいませんでした。
165136:03/10/20 23:20
>>139
ありがとうございます。
今は言われてる事が初耳ばかりで
よくわかりませんが、そのキーワードから調べてみたいと
思います。
ありがとうございました。
また後ほど結果報告に参ります。

>>152
おっしゃる通り表示時の単位は動的に変わる(変えたい)ので
どうすればいいのか、というのが質問の内容です。
>>165
139に書かれていることが初耳程度の下調べて掲示板に聞きに来るなよ。
だいたい.NETにはDataGridクラスが2つあるんだ、どっちの話かはっきりしれ。
167デフォルトの名無しさん:03/10/21 19:13
卒業研究目的でMPEG1ビデオ デコーダを組んでたんですけど、C#で。
教官から、C++で組んだGUIで使いたいから、どうにかしろと言われました。
C++からC#で作ったライブラリ(DLL?)って使うこと出来ましたでしょうか…。
Managed C++じゃないです…。できれば他言語で橋渡し等もしたくないです。
168ここm(−−)m:03/10/21 19:22
文字列を入力として受け付けて、その文字列中に含まれる数字の合 値を求めよ。
例: a1b23g4 と入力された場合、1+2+3+4 で10 を出力する。


>>168
口の利き方がえらそうだから教えない。
>>167
DllImport
ComImport
171デフォルトの名無しさん:03/10/21 19:56
文字列を入力として受け付けて、その文字列中に含まれる数字の合 値を求めてみてください。
例: a1b23g4 と入力された場合、1+2+3+4 で10 を出力してみせてください。
>>170
どっちも的外れだが
>>171
お母さんみたいにお願いしてくれないと、教えてあげない。
>>172
あっ、すまん。あんまりもとの文章読んでなかった。
175デフォルトの名無しさん:03/10/21 20:16
文字列を入力として受け付けてね、その文字列中にね含まれる数字の合 値を求めてみてちょーだい。
例: a1b23g4 と入力された場合、1+2+3+4 で10 を出力だよ・
>>167
このへん。
ms-help://MS.VSCC/MS.MSDNVS.1041/cpguide/html/cpconexposingnetframeworkcomponentstocom.htm
MSDNだと
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconexposingnetframeworkcomponentstocom.asp
178167:03/10/21 20:44
>>176-177
どうもありがとうございます。とても参考になりました。
しかし、一つ気になることがあります。
もしかしてこれはC#で組んだライブラリを使用する際の必須条件なのかもしれませんが、
.NET Framework を結局入れなくては駄目なんでしょうか
また寝た?
180167:03/10/21 21:16
いえ、ネタじゃないです…
そうですか…ありがとうございます。
>>171
string str = "a1b23g4";
int sum = 0;
foreach(char c in str)
 sum += int.Parse(new string(c,1));
>>171
string str = "a1b23g4";
int sum = 0;
foreach(char c in str)
 try{sum += int.Parse(new string(c,1));}
 catch{}
183デフォルトの名無しさん:03/10/21 23:17
DataSetの中のDataTableって
レコード挿入した順番って
イコールコントロールに連結した時に
表示される(並ぶ?)順番と思っていいのでしょうか?
ORDER BY IDNO
としてとってきた場合、コントロールに連結して
IDNO順に表示させたい場合でもいちいち
Data.DataViewに連結させてSortプロパティにIDNOを設定する必要って
ありますか?
普通テーブルは順番というものは指定されない限りは保証されないものと思っているので
DataSet内のDataTableもそうなのかな?という疑問です。
どうでしょうか?
184デフォルトの名無しさん:03/10/21 23:18
ついに『モー○ング娘。』のトイレ盗撮ビデオ見つけた♪
TV収録時と全く同じ衣装!ここでサンプル動画も見れたよ♪
http://www.nukix.net/index2.html
>>183
試せばすぐに分かることだろ・・・。
186183:03/10/22 13:55
>>185
何度試したところで保証される動作だな、と確信できるとは思いません。
例えばAccessで空のTableにInsert Into100回発行しまして
その後にSELECT * FROM TABLE_NAME
とした場合、Insertした順番に表示されると思いますが
これは保証された動作ではないですよね?
ではDataTableの場合はどうなのでしょうか?
データベースと違って、DataTable.Rowsはインデックス方式の管理方法だから順番はある。
でも、あくまでDataTable.RowsにAddした順番だから、Adapter.Fill()の処理に依存するけど。
断言はできないけど、AdapterのSelectCommandの実行結果の順でいいんじゃない?
188187:03/10/22 15:56
追記
Adapterを使うとは書いてなかったなw
RowsにAddした順番は保障される。
ただのコレクションだし。
189183:03/10/22 18:57
>>187-188
ありがとうございます。
>ただのコレクションだし
目から鱗です。
なるほど、理にかなってます。
納得できました、ありがとうございました。
Pre-JITするとネイティブプログラム並みの起動時間になるの?
Pre-JITすることで何か制限事項はあるの?
191デフォルトの名無しさん:03/10/23 12:48
メソッドのオーバーロードって
オブジェクト指向で言うところの
多態の概念の一種だと考えても良いんですよね?
192デフォルトの名無しさん:03/10/23 13:47
AクラスでもBクラスでも使いたいグラフィック画像があるのですが、
AクラスにもBクラスにも画像インスタンスを持つのは無駄が多すぎる気がします。
こう言うときはグラフィック画像のインスタンスを作っておいてから
AクラスとBクラスにその画像インスタンスの参照だけを渡すような形にするのが
1番良いスタイルなのでしょうか?
193デフォルトの名無しさん:03/10/23 14:03
やればわかる 以上
>>191
まあね。
仮想関数とかと区別するために static polymorphism って呼んだりするけど。

>>192
設計思想次第。
一方で更新した内容が他方に反映されてもいいんだったら
参照持たせとくのが普通だけど。
195デフォルトの名無しさん:03/10/23 15:12
>>194
どうもありがとうございました。
1つ利巧になれましたです。
196デフォルトの名無しさん:03/10/23 20:26
C#による数学チックな本やサイトなどありませんか?
例えば微分方程式を解いたりするコードとかです。
日本語であると非常にうれしいですが、、
「微分方程式を解いたりするコードとか」はCで書かれたものを
書き換えればよい。
質問しようと思いましたが、自己解決しました。
199デフォルトの名無しさん:03/10/23 21:17
C#ってVBで言うコントロール配列みたいなものは可能なんでしょうか?
具体的にはコンボボックスをいくつか配置してそれの
Textプロパティを上から順に読みとって行ってそれを配列に保存する
という様な処理がしたいのですがうまくループを回す方法が分りません。
プログラミング始めたばかりの超初心者で本当下らない質問
かとは思いますがどうかご教授お願いします。。。
>>199
System.Windows.Forms.Controlの配列に入れればよいかと
>>200
それをやってくれるライブラリがあったような。
202デフォルトの名無しさん:03/10/23 23:41
ADO.NET のリストボックスとDataSet内のDataTableの連結で悩んでいます。
問題の部分は映画を管理するソフトで
矢印を押す毎に映画のタイトル単位で情報が切り替わるソフトを作っていて、
矢印が押された時に表示する映画のタイトルに出演している俳優をリストボックスに表示し
たいのです。

映画マスタT
・タイトルコード//主キー
・タイトル

俳優T(どの映画にどの俳優がでているかを保持)
・タイトルコード//主キー
・俳優コード//主キー
//↑二列の組み合わせが主キーです。

俳優マスタT
・俳優コード//主キー
・俳優名

今映画マスタT.タイトルコードと俳優T.タイトルコードがリレーションシップで連結
してあります。
仮にrel映画としまして、リストボックスには
DataSource=rel映画、ValueMember=俳優コードと設定しました。
希望としてはDisplayMemberに俳優マスタTの俳優名を設定したのですが
それにはDataSourceに俳優マスタTを設定する必要があり、困っています。
なにか良い方法ありませんか?よろしくお願いします。
>>199
ttp://dobon.net/vb/dotnet/control/buttonarray.html
はいかが?(C#のコードは下のほう)
985 名前: デフォルトの名無しさん [age] 投稿日: 03/10/24 01:32
変数 n に数字を入力して、n / 5 + 32 を計算するプログラムを作成せよ。
また結果を表示せよ。

コレがどうしてもわかりません誰か式を書いて解説していただけないでしょうか

間違えて前スレに書いてしまいました
205199:03/10/24 02:22
>>200 >>203
アドバイスありがとうございました。
まだ勉強不足で大変そうですが
なんとなくやりたかった事がなんとなくできそうです。
ある HTML の table からデータを得たくて

HTML を XML に適合するように整形し
XmlDocument.LoadXml で読み込み

ってやってるんですけどもっとスマートな方法無いですかね?
207デフォルトの名無しさん:03/10/24 10:55
使えるか知らないけどこんなのあります:
ttp://www.devhawk.net/projects/htmlreader.aspx
208デフォルトの名無しさん:03/10/24 10:59
C#Builderの無料版をダウンロードしたんですけどASP.NETもできるしデータベースも扱えるようです
Delphiの無料版みたいに機能の制限はかけられてないのですか?
Delphiの無料版に機能の制限って馬鹿じゃねーのププ
210名無しさん♯:03/10/24 23:55
関数型言語の影響受けまくりだね。
212デフォルトの名無しさん:03/10/25 01:02
C#のプログラミングに関する
参考になるHP、お勧めHP、ご存知でしたらご紹介ください
@ITとか見ても、なかったです。
213デフォルトの名無しさん:03/10/25 01:03
スレタイ C♯になっているけどC#じゃないの?

検索しても引っかからないから
探すの苦労したよ
>>210
おお、いつの間に。
>>213
#=ナンバー
♯=シャープ
全角ではなく半角で入力すれば混乱が減ると思うんだが。
217デフォルトの名無しさん:03/10/25 10:08
c#でプログラミングする上で、って言うかそもそもオブジェクト指向プログラミングの上で、
なるべくグローバル変数、メンバとかは作らない、使わないって言う方針見たいのがあるようなんですけど
本当の話、一人で自作ソフトを作るような場合、そんな方針とかって全然関係ないですよね。
パブリックでスタティックなメンバの方が記述も簡単だし見易いし、
確かに大規模プロジェクトで何人かのメンバーで大規模なアプリ作成とかする場合は
必要なスタイルなんでしょうけど、一個人では全然関係ない話ですよね。そんなことって。
&#35; って入力しても無理なのかな。
>>217
最初はそんな風でいいんでねーの。
壁にぶち当たっていく内に段々とメリットとか分かってくるだろうから。
>>217
> パブリックでスタティックなメンバの方が記述も簡単だし見易いし、
見やすいかなぁ。
static だと this ポインタが使えなくて不便じゃんか
>>217
設計自体がオブジェクト指向に基づいてないから、プログラムが不便に感じるんじゃないの?
224デフォルトの名無しさん:03/10/25 12:42
Aクラス、Bクラス、Cクラスがあって、
それぞれのクラスでの内部変数が相互の振る舞いに必要な値なので
全てのクラスが他のクラスのかなりのメンバ変数の参照を受け取って居るような場合はどうなんでしょうか?
いっそ1つのクラスにまとめるとか、全ての変数をグローバルにしてしまうとか、
したほうが良いのでしょうか?
それとも別に参照を大量に受け取っておくことはプログラム効率、スタイルの上で
別に特別なことではない、普通のことなんでしょうか?
>>224
普通に設計ミス。
たぶん MVC でいうところの Model が存在しないか、手を抜きすぎ。
226デフォルトの名無しさん:03/10/25 12:46
まあ、こう言うことは例え見づらくても力技でどうにでもなる問題なのですが、
やはりプログラムをする上では、
エレガントさと言うものについてある程度は拘りたいと言うプログラマーとしての
矜持みたいなのが私にも一応あるので、
つい、気になってしまったわけです。
>>224
大量に参照するのは効率的にはどうかしらんが、スタイル的にはまずい。
ほかのクラスにかなり依存しているわけだから、どっかにちょっとした変更を加えただけで
致命的なバグが発生するかもしれん。
クラスを分けてるのはそれなりの意味があるからだと思うけど。
どういう3つのクラスなんだ?
そんなに大量に参照するってことは、論理的にもひとつのクラスとして考えられないか?
>>全てのクラスが他のクラスのかなりのメンバ変数の参照を受け取って居るような場合はどうなんでしょうか
もしその「メンバ変数」の大半が組み込み型というか、そのプログラムの固有のデータ型じゃない型なら、
そこのクラス化を考えるべし。そうしてるうちによさげな設計に行き当たるから。

例:
class A { public: int price; int count; int id; void foobar(); ... };
   ↓
class SingleItemOrder { public: int price; int count; int id;};
class A { public: SingleItemOrder order; void foobar(); ... };
... is a ... なのか ... has a ... なのかを考えて設計するといいよ
230デフォルトの名無しさん:03/10/25 13:23
なるほど、ありがとうございました。
231231 ◆hDlxMUm262 :03/10/25 21:09
http://www.codeproject.com/useritems/nspring.asp
ここのソースで

public abstract class Logger : IExceptionHandler {
....
private Logger[] children = new Logger[5]; // A
...
}

となっているんですが、Aの行はコンストラクト時に実行されると思うので、
また自分を呼び出してしまうような気がするのですが問題ないのでしょうか?
ふらっとC♯もPart5が立ったが、ほとんど伸びんな。
「今から始める」が全部埋まったら、いよいよここに統合する?
>>231
配列作っただけだから、AではLoggerのコンストラクタは呼ばれないよ。
初期化子が無いから、要素はnull参照。
234デフォルトの名無しさん:03/10/25 22:47
ものすごい単純な質問なんですけど、わからないので教えてください。

Main メソッドを持つ FormA で、あるボタンが押下されると FormB を表示し、
自分自身(FormA)を閉じるというのは、どうやれば良いんでしょう?

FormAのボタンが押下されたメソッドで

FormB form = new FormB();
form.Show();
this.Close();

とやると、FormBのインスタンスを持つFormAを閉じているので当然、
一瞬FormBが表示されたとたんにアプリケーションが終了してしまいます。
何か、勘違いしているかもしれませんが、正解を教えてください。
235231 ◆hDlxMUm262 :03/10/25 22:48
>>233さん
ありがとうございます。勉強不足でした。
>>234
案1:閉じるのでなく、非表示にする
案2:フォーム無しのクラスをmainにし、それ経由でFormを生成・クローズする
>>234
public static void Main()
{
 FormA a = new FormA();
 a.ShowDialog();
 Application.Run(new FormB());
}
>>236-237
ありがとうございます。
フォームを非表示にすると、メモリを無駄に使用してしまうので、
フォームなしのクラスを親にして、フォームを操作したいと思います。

public class MainProcess : ApplicationContext {
private static FormA a = null;
private static FormB b = null;

[STAThread]
static void Main() {
a = new FormA();
a.Show();

MainProcess context = new MainProcess();
Application.Run(context);
}

public static void OpenBForm() {
b = new BForm();
b.Show();
}
}
239234=238:03/10/26 16:00
ぐあ、行頭のスペースが削れてしまった・・
見にくくて、すみません。
>>238
その程度のメモリ消費量なんか気にするな。
age
242デフォルトの名無しさん:03/10/27 08:12
フォーム1の画像についてなんですけれど、
このグラフィックス変数はグローバル変数で持っておいた方がいい気がするんですが、どうですかね?
自分の自作クラスで画像を描画する必要があるんですけれど、
全ての自作クラスに一々その参照を渡すのはなんかわずらわしいって言うか雑多な処理になって
可読性が低くなる気がするんですよね。
まあ、と言っても3っつくらいなんですが。
みなさんだったらこれくらいなら、
ちゃんとカプセル化して隠蔽しますか?
C#を勉強するのに、CもしくはC++を勉強した方がいいですか?
それとも、Delphiを勉強した方がいいのでしょうか?

または、勉強もせずに、いきなりC#に入っても大丈夫でしょうか?
>>243
無問題
245デフォルトの名無しさん:03/10/27 09:51
プログラム起動中に設定したいくつかの設定項目を
レジストリを使用せずに、プログラム終了後も再度
読み込ませたい場合どうすれば良いのでしょう?
かなり漠然とした質問だと思うので何か
メソッド名や検索ワードだけでも良いのでお願いします。
>>245
レジストリに保存しないのならばファイルに保存するしかないだろ。
System.Xml

# もしくはネットワークに保存?
>>245
.NET Framework におけるアプリケーション設定の永続化
http://www.microsoft.com/japan/msdn/net/general/persistappsettnet.asp
248デフォルトの名無しさん:03/10/27 10:21
>>246
どうもありがとうございます!
VC6.0の時はSerializeで保存するかもしくは
iniファイルに保存していたと思うんですが(よく知らないです)
c#の場合一般的な方法というのはどうやっているんだろうか?
と思っていました。
とりあえず247のサイト読んでみます!
(あとネットワークではないです。)
>>246-247
どうもありがとうございます!

でした。。スイマセン
一部、レジストリを使うのを毛嫌いしてる人がいるけど、ドトネトの時代になってまで、
きにすることはないとはおもう。
>>250
xml/iniならxcopyインストールが可能って利点もある。
一部、XML/Iniを使うのを毛嫌いしてる人がいるけど、ドトネトの時代になってまで、
きにすることはないとはおもう。
そもそも.NETの時代になんか永久に来ない。
254デフォルトの名無しさん:03/10/27 16:39
すいません。
他クラスのスタティックなメソッドからはフォーム1に描画できないのでしょうか?
255デフォルトの名無しさん:03/10/27 16:46
って言うか、スタティックなメソッドは
スタティックなメンバにしかアクセスできないんでしたね。
多分それが原因かな?
>>254
Form1の参照を渡してやれば済む。
ngen "hogehoge.exe"(パスが通ってる状態)ってやっても
あんまり実行ファイルの、起動時間が変わらない…
ちなみにhogehoge.exeはフォームに適当なコントロールを、
2,3配置しただけのもの。
こんなもんなんでしょうか?
Win32ネイティブになるわけじゃないんですよね?
258デフォルトの名無しさん:03/10/27 17:15
>>256
いや、それがですね、
フォーム1にグローバルグラフィックス変数を用意しておいたのですが、
それでも駄目だったんですよね。
原理的にはこれでどこからでもアクセスできるはずなんだけどな。
こう言うスタイルは駄目なのかな?
しかも、どうだめだったのかと言うと、
フォーム1のペイントイベントハンドラからAクラスへ飛ばしたときは
フォーム1のグローバル変数にアクセスできるのに、
マウスムーブイベントからAクラスへ飛んだ時はアクセスできなくなるんですよね。
これって、なんか変じゃないですか?
同じAクラスのスタティックなメソッドなのに、、、。
適当なコントロールを30個ほど貼ったフォームを表示するのに30秒。
メモリ30MB消費。
何じゃこりゃ。
260デフォルトの名無しさん:03/10/27 17:31
すいませんでした。
自分は258ですが、解決しました。
どう言う事だったかと言うと、
クリエイトグラフィックスメソッドでフォーム1のグラフィックス参照を作ってそれを
グローバル変数に代入した時と、
ペイントイベントハンドラから得られるフォーム1のグラフィックス参照を
グローバル変数に代入した時と、
では、画像変数の保持期間が全然違うと言うことが問題点となっていたようです。
前者は恒久的に参照が保持されてますが、
後者はペイントイベント時間の中でしか参照が保持されてません。
スタティックとかは全然関係ないようですね。
お騒がせしました。
>>258,260
頼む。アクロバティックな問題に挑む前に基本的な知識と経験をつけてくれ。
>>259
どんな骨董品PCを使ってるんですか?
ただしメニュー項目が200個くらい、しかもローカライズされてます。
>>259
・フォームを最小化して、元に戻すとたぶん小さくなる。
・メモリの残りが少なくなるとGCが働いてたぶん小さくなる。
30Mくらいでガタガタ言うな。
貧乏人はDelphi使ってろ。
最近このスレに限らず、質問が訳わからんのだが。
>257
ngenは"Win32native"に、なるわけではない。
…んだと思うんだが。。。。。ちゃうのかね?
>>264
ちなみに、30MBは最小使用量、最大で200MBくらいまで行く。
まぁ、UI複雑っちゃー複雑なんだけどさ、同じことVC++でやったら起動3秒、メモリ3MBですむだろうなぁとか思いつつそれでも.NETの簡便さは手放せないわけだなぁ。
269デフォルトの名無しさん:03/10/27 23:29
>257
自分で適当に作ってたアプリをPre-Jit(今こう言わないんだっけ?)してみた。
んでWin再起動。ちょこっと起動時間が上がった気がする。
っていうかngen通した実行ファイルって、配布できるの?
通常のexeをDLしてから、やらないといけないのかな??
270デフォルトの名無しさん:03/10/28 11:55
using (Cursor.Current = Cursors.WaitCursor)
{
....
}
という記述を見たのですが、これはブロック内を処理中のときカーソルを砂時計
にしてると思うのですが、Cursor.CurrentのDisposeを呼んでもいいのでしょうか?
271デフォルトの名無しさん:03/10/28 12:09
>>270
Cursorsのリソースを開放するのはまずいような気がする。
272270:03/10/28 12:36
>271
ありがとうございます。調べてみます。
273カオル:03/10/28 15:05
java初心者なのですが質問させてください。
public int getNamber(){}と
public int getValue(){} で定義したふたつの値を
public int getStatus(){} へ渡し、それを最終的に
public void printStatus(){}
で得てラベルやテキストフィールドに表示するというプログラムを作りたいのですが良く分かりません。
public int getValue(){
return value;}
などと書くところまではなんとか分かってきたのですが、どなたかアドバイス頂けませんか?
放置
275デフォルトの名無しさん:03/10/28 18:15
ListBoxで現在選択されてる行の画面の座標を取得する方法はありますか?
オーナードローをしていて、選択してる行だけInvalidate()して再描画させたいのです。
(ListBox全体をInvalidate()すると、ちらついてしまう)
276デフォルトの名無しさん:03/10/28 18:27
VisualStadioのC#にて

COMポートからデータを取ろうとそれにまつわる検索をかけてみたの
ですがどうもうまく検索にひっかかってくれず困っております。
どのような方法にすればCOMポートを使えるのかヒントだけでも教えて
いただければ幸いです。
>>275は解決しました。

n = listBox.SelectedIndex;
listBox.SetSelected(n, false);
listBox.SetSelected(n, true);

で、選択行のみの描画ができました。
Marshal.ReadInt32とWriteInt32ってのが在りますよね?
でもReadUInt32とWriteUInt32のほうが見つかりません。

どうすればIntPtrからunsigned intを読み書きできるのでしょうか?
>>278
ヘルプに載ってないから、キャストするしかないのでは?
>>278
読み取り:PtrToStructure
書き込み:StructureToPtr

Read〜、Write〜も内部でこれ呼び出してるだけ(多分
282おしえてくん:03/10/28 21:39
Windows2kの"インターネットプロトコル(TCP/IP)のプロパティ"とかで、
使用されているIPAddressとかを入力するTextBoxって.netにあるんですか?
無い場合、ああいった処理をするにはどうすればいいんでしょうか。
TextBoxを継承しるんですか?概要だけでいいので教えてください。
>>278
思い切ってunsafeへ(嘘
285デフォルトの名無しさん:03/10/28 22:33
>>281
ありがとうございます
286デフォルトの名無しさん:03/10/28 23:03
int[,] n = new int[3][3];
for(int i=0; i<3; i++) for(int j=0; j<3; j++)
 n[i,j] = i*j;
このループ部分をもっと簡単にできませんか?
0,3を明示しないとかforeachをつかうとか。
>>286
foreach は インデックスを気にしないループにだけ使えるので i*j を使用する以上無理。
3を入れたくないなら GetLength 使えばいい。
ってゆーか
> int[,] n = new int[3][3];
コンパイル通らねーだろ
"\"abc\""
のように " でくくられている中身を取り出したい。
下の正規表現では取れなかった。
"\"[^\"]+\""
たぶん^の後に\がついているのがだめぽなヨカン。
どうすればいい?
>>289
自分でオートマトンを組め
「\"[^\"]\"」
"\\\"[^\\\"]\\\""
292デフォルトの名無しさん:03/10/29 11:06
HttpWebRequestでGetRequestStreamを呼ぶとWebExceptionがでて
「この要求にはリダイレクトのためのバッファが必要です」とおこられます。
どうすればいいのでしょうか?
293デフォルトの名無しさん:03/10/29 11:08
●●●マスコミの「盗聴、盗撮」は許されるのか?その8●●●
http://natto.2ch.net/mass/kako/1011/10115/1011522150.html
290 名前: 投稿日: 02/02/14 11:38 ID:6fbKGLCS
>>266
大衆週刊誌(文春とか新潮とかポストとか)の漫画家も盗聴を使っているね。俺
が思いついたネタを使っていた漫画家を偶然見つけたことがある。そいつはテレ
ビで生意気なことをしゃべっているよ。盗聴がばれているのに、哀れだ。
ただし、漫画家家本人が盗聴を使っているのか、雑誌社が盗聴を代行している
のかは、わからない。俺は雑誌社だと見ているのだが。

240 名前: 213 投稿日: 02/02/10 15:36 ID:jE2ivfkk
一般人で「お部屋拝見」で見せている人も、実は陰で裏切られている
(盗聴されている)んだと思うと、可哀相だなと思う。
芸能界に入りたいと思った事は無いが、
マスコミや華やかさに憧れるのは、別にその人の勝手だし、有名になるのが好きな人は、
その人なりの夢なんだろう。その夢まで何か言おうとは思わない。
でも、そういう人だからといって、盗聴されたり、嫌がらせを受けていいわけではない。

84 名前: ○○○ 投稿日: 02/01/31 01:15 ID:l3fSW81R
>>78
たぶん、君が書いている通りだよ。確信犯だ。テレ朝が、俺の電話を盗聴
したネタを使っているのは、ずいぶん前から確認している。俺だって、メディアに
ネタを提供するために生きて行くつもりはない。ついでに書くが、フジの「恋のちから」
をチラッと見たが、盗聴からヒントを得ている。盗聴は盗聴。いいかげんにしろ。
>>292
対象のUriも含めたソースを示してみてくれない?
295292:03/10/29 11:55
やろうとしていることは2chのスレ立てでソースはTwintailの作者様が公開してくれているものなので問題はないと思います。
そのコードをCE機で走らせているのですがGetRequestStreamを呼んだところで例外が発生してしまいます。
同じバイナリをXPで走らせると例外はでません。
プロキシ使ってるとか?
299292:03/10/29 13:14
>>297ありがとうございます!
trueにしたらWebException出なくなりました!
300デフォルトの名無しさん:03/10/29 21:40
Pingを作ってみたいんだけど参考になる図書、URLはないですか?
勉強したいので、説明があるのがいいです。
宇宙仮面は(ソース上で)何をしているのかわからないので、、、
>>300
nonping
302デフォルトの名無しさん:03/10/29 22:48
IPコンフィグみたいに、IPアドレス、サブネット、DNSとかを
参照したいときはどうすればいいですか?
またそれを設定するにはどうすればよろしいでしょうか。
>302
参照だけならWMIで出来た。それ以上は知らない。
305x:03/10/30 10:19
>>302
netsh interface ip set
306202:03/10/30 16:59
202です。
心当たりだけでもありましたら
教えてもらえないでしょうか。
さっぱり解決しそうになくて困り果ててます。
307_:03/10/30 23:40
質問:
開発のためによく regasm をやってるからだとは思うのだが、
VS.net の参照設定 - COM のところに自分の作ったモジュールの名前が
一杯ならんでしまっている。
これを消す方法はどうすればよいのだろうか。
regasm /u しても消えないし。
308デフォルトの名無しさん:03/10/30 23:57
重い処理をする時にプログレスバーがのってある
ダイアログをShowDialogして進行率を表示、
完了後ダイアログを閉じたいのですがうまくいきません。

進行率表示ダイアログのActivedイベントに処理を書きまして
完了したら this.Close()
でいけると思ったのですが閉じません。
なぜだか無反応です。
こういう処理ってどういう風に実装すればいいのでしょうか?
よろしくお願いします。
>>308
codeproject.comの
「A .NET Progress Dialog」という記事をお勧めしてみる。
310308:03/10/31 01:26
>>309
ありがとうございます。
物凄く質の高いサンプルで驚きました。
ですが私が今の目の前の問題としては
Activeイベント内のthis.Closeで閉じれない問題で
いかにして処理終了をキャッチし、自分自身のダイアログを
閉じるのか、ということの解決を最優先にしたいのです。
ものすごくいいサンプルで必ず理解したいと思います。
ただ今実装したいのはあそこまで大きなものでなくていいのです。
あとはただ閉じるだけ、というところに来てますので
なんとか現状を改善する案、もしくは簡単なサンプルなどあれば
教えてもらえないでしょうか?
わがまま言ってすみませんがよろしくお願いします。
>>310
> こういう処理ってどういう風に実装すればいいのでしょうか?
に反応してみただけなので、悪いがそこまで要件を絞られても分からんっす。
>>308
無反応って具体的にどんなの?
あと問題のソースを晒してみるとか。
普通に考えても Activated で Close() はマズイ。
つーかもしかして、Activated イベント内で完了を待っているコード書いてるの?
314308:03/10/31 11:10
>>311
それもそうですね、ありがとうございました。

>>312
>無反応って具体的にどんなの?
説明不足でした。
this.Close()メソッドを通ったのに通ってないかのような感じです。
ちょっとやり方を変えてみてClose()呼ぶ代わりにthis.Visible=false
にしてVisibledイベントでthis.Close()としましたが
なぜか一応クローズされたのですが親ウィンドウに戻れないようです。
こちらの場合の現象はあたかもまだ前面に子ウィンドウが存在しているかのように
振舞うので結局タスクマネージャーで落とすしかない、といった具合です。
どうか宜しくお願いします。
UIスレッドとワーカスレッドは当然分けてるよね?
で、ワーカスレッド側で発生するActivatedでBeginInvokeでUIスレッドにCloseでそ
316デフォルトの名無しさん:03/10/31 14:00
>>281のサイトに書いてあったようにやってみたところ

private MSCommLib.MSComm m_comm = new MSCommLib.MSCommClass();

のところで

'System.Runtime.InteropServices.COMException' のハンドルされていない例外が hoge.exe で発生しました。

追加情報 : クラスを使用する使用許可がありません

というのが出てしまいます。
使用許可ってどうやればあたえられるのですか?
317308:03/10/31 14:09
>>315
ありがとうございます。
311さんに教えていただいたサンプルもそのような感じでした。
>UIスレッドとワーカスレッドは当然分けてるよね?
分けてないです。DoEventsすればバーを進めるくらいでワーカースレッドを
作成する必要はないかな、と思っています。

315さんの方法で組み直してみたいと思います。
それとは別になぜ私の方法じゃだめなのか教えてもらえないでしょうか?
Activeイベントでループしながら処理とDoEvents
->処理完了後(ActiveEventsのハンドラの一番下で)this.Close
どうしてこの方法がだめなのか納得できません。
教えてもらえないのでしょうか?
一番納得いかないのはなぜActivedイベントでClose()が効かないのか、です。

WinFXでMS得意のちゃぶ台返しが発生するから
今一生懸命覚えても意味ないよ
今やってる奴は予行練習のつもりなんだろ。
これをメインでやってる奴はいないさ。
>>318
今現在の .NET Framework は WinFX のパブリックプレビュー。
プレビューは所詮プレビューでWinFXとは違う物なのです。
以前とは叩くポイントが違ってきてるw
専用スレでどうぞ。
323デフォルトの名無しさん:03/11/01 21:18
C# からunmanagedなDLLの動的ロード・関数呼び出しってできる?
winampのプラグイン使いたいんだが。
ちょと調べてみるか。
>>323
レイトバインディングしたいって事?

COM import してラッパークラス作って、
それをリフレクション使って呼び出すとか。
325デフォルトの名無しさん:03/11/01 21:39
>>324
すまん。C#触り始めたばっかりでいってることがぜんぜんわからん・・
Cなら、実行時にLoadlibraryつかってDLLロード+関数ポインタ取得⇒呼び出しってできるけど、
C#でもできるかなーってことを知りたいんだ。まぁちょいめんどいけどできそうかなと勝手に予想。
327デフォルトの名無しさん:03/11/01 22:25
>>326
thx!!
いちおうできるっぽいね。よかったっす。
>>325
レイトバインディングってのは別に C# の用語じゃないぞ。

unmanaged な DLL を呼び出したいんなら、
COM なら ComImport、非 OOP な DLL なら DllImport ってのを使う。

基本的に、.NET Framework でライブラリ使うときはアーリーバインドになる。
レイトバインドしたいときはリフレクションって機能を使う。
System.Reflection 名前空間にリフレクション関係の機能集まってる。
>>328
実行時にunmaneged DLLのパスをユーザに指定してもらって、その関数を呼び出す場合でもリフレクション使えるの?
(もちろんDLLからエクスポートされている関数定義は知ってる)

とりあえず勉強せんとわからんのぉ
>>329
うーん、.そういうのは DllImport で Win32 API の Loadlibrary をインポートしてやれば出来そう。
ただDLLの関数を使用したいだけなんじゃないのか?
>>317
Activateイベントを抜けたあとの処理がCloseを打ち消すようなものになってるんじゃないの?
ってかなんでActivateでループさせるのかがわからん。
ぐ、みんな親切だな。ありがとう。まずは出直して勉強してくるわ。つーかまだ@ITのC#入門読んでる段階なので・・
その記事はいいぞ。
ACLのダイアログ出す方法を教えてください
ファイルのアクセス権とか設定する奴です
336308:03/11/02 16:54
>>332
レスありがとうございます。

>Activateイベントを抜けたあとの処理がCloseを打ち消すようなものになってるんじゃないの?
そう思って新規にテストプロジェクト作成してActivedイベントに
Closeだけ書いてみたのですが閉じないのでそうではないと思っています。

>ってかなんでActivateでループさせるのかがわからん。
別にActivedにこだわりがあるわけではないのですが
プログレスダイアログの初期化が完了し、
画面に表示された直後に処理を開始したいのでActivedに記述しています。
他にいい書く場所ってありますか?
>>336
とりあえず問題なく動いてるな。
using System;
using System.Windows.Forms;
namespace Test {
  public class Dialog : Form {
    public static void Main() {
      Dialog d = new Dialog();
      d.ShowDialog();
    }
    private ProgressBar bar = new ProgressBar();
    public Dialog() {
      this.Controls.Add(bar);
      this.Activated += new EventHandler(Start);
    }
    private void Start(object sender, EventArgs e) {
      this.Refresh();
      for (; bar.Value < bar.Maximum;) {
        System.Threading.Thread.Sleep(300);
        bar.PerformStep();
      }
      this.Close();
    }
  }
}
C#はとても(ネストが)深い。
>>338
関数型言語に比べればマシだろ
340デフォルトの名無しさん:03/11/02 19:47
関数型言語ってなに?
りすぷとかはすけるとか
.NET Framework SDK 1.0 にあった WebServiceUtil.exe は SDK 1.1 では
無くなったのでしょうか、教えてください。
>>342
1.0にもないよ。wsdl.exeに改名。
344デフォルトの名無しさん:03/11/03 00:50
グラフを書くコントロールはない?
345デフォルトの名無しさん:03/11/03 01:11
VB.NETのリソースキットすげー
簡単な登録でComponent ONEのコンポーネントが一通り使えるようになるぞ!
C#な香具師にも入れるメリットがあるだろう。
346デフォルトの名無しさん:03/11/03 01:48
>>343
ありがとうございました。
感謝の気持ち チュ!
>>335
API呼ぶしかない
348デフォルトの名無しさん:03/11/03 06:46
>>347
知ったかぶってんじゃね〜よw
349デフォルトの名無しさん:03/11/03 13:19
と無知が吠える休日
Windowsでexeファイルのプロパティを見ると
バージョン情報タブにいろいろ表示されるが
これらの情報はどこで設定すればいいんでしょう?
VCだったらバージョンとかいうリソースがあって
そこに設定していたと思うんですが。
>>350
Windowsに依存した機能など無意味だから。
352デフォルトの名無しさん:03/11/03 20:05
フォームのテキストボックスにDataViewの列を連結しています。
次のレコードへ進むボタンのコードがどうかけばいいのかわかりません。

//データテーブルの変更を確定
this.BindingContext[this.dataset1,"TABLE_NAME"].EndCurrentEdit();

//カレントレコードの移動
this.BindingContext[this.dataset1,"TABLE_NAME"].Position++;

見ての通りですがこれはDataViewの「参照元のテーブル」のカレントレコードを
進めるコードです。
これだと画面のテキストボックスは全く変化しません。
DataView経由でカレントレコードを進めなければならない気がするのですが
参考になるものが見つかりませんでした。
教えてもらえないでしょうか?
よろしくお願いします。
>>350
AssemblyInfo.cs
>>350
ウィザードが作成する AssemblyInfo.cs を読め
漢字コードの判別
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=3274

このコードの完全版どなたかお願いしまする。
文字コードって言ったら美乳だよな
358デフォルトの名無しさん:03/11/04 13:16
csc foo.cs /doc:foo.xmlでfoo.xmlを出力した後
foo.htmに変換してリファレンスマニュアルを作成するにはどうすればいいですか?

環境は以下のものです。
Microsoft (R) Visual C# .NET Compiler version 7.00.9466
for Microsoft (R) .NET Framework version 1.0.3705
NDocとか、さもなければ自分で勝手にXSLT書けば?
>>358
ヘジたん作のものでも。

XML Documentation Comment Viewer
http://dotnet.jku.at/book/docview/
361要領の悪い人:03/11/04 16:28
C#からIE6を制御したいのですが、まとまった情報のあるページご存知の方お教えください。

インターネットエクスプローラを起動して、IDとパスを入力して、
ボタンを押すところまで自動化したいのです。

インターネットエクスプローラを起動とか、Webブラウザコントロールで基本動作までは
触れてる記事は多いのですが、ドキュメントモデル?から
ボタンなどを特定して、動作させるところまでやってる記事が見つかりません。
後半は若干実現手段が見当違いなのかもしれませんが。

手持ちのMSJ,MID,msdn magazineを掘り出してひっくり返すので一日使っても
成果が芳しくなかったものでよろしくお願いします。
>>361
>ドキュメントモデル?からボタンなどを特定して、動作させるところまでやってる記事が見つかりません。
見つかる分けない。HTTPの超基本的な知識すら知らないからこういう発想しか出てこない。
直にURL指定してPOST(かGET)すればいいだけ。
>>361
プニルのスクリプトでも参考に。
馬鹿じゃん。
引数でファイルパスを渡されたときに、すでにそのアプリが
起動していれば二重起動を抑制しつつ、そのファイルパスを
すでに起動している方のプロセスに渡す方法は無いでしょうか。
(抑制だけならMutexでできるのですが)

前にVBを使っていたときには、DDEを使って何とかした記憶
はあるのですが、.NET上ではどのような手法があるでしょうか。
WM_COPYDATAを使うとか。
DDE(プ
368デフォルトの名無しさん:03/11/06 02:49
C#ってオブジェクトの型を表すオブジェクトを得るためにtypeofキーワードを使っちゃったけど、これって後々Genericsを導入したときにネックになるんじゃないかな・・・。
C++では変数の型を利用して新たな変数を使いたいという要望が強くて、次回はtypeofキーワードでその変数の型を得られるようにするみたいだけど、C#の場合そのキーワードはもう使っちゃってるから、どうすんだろ。
いちいちリフレクションなんか使ってたらGenericsのうまみ半減だし。
>366
これで希望の動作ができそうです。ありがとうございます。
Type.GetType()
>>369
サンプルクレクレ
>371
まだできていませんが、ここがそのままでしたので参考にするつもりです。
http://www.codeproject.com/vb/net/singleinstance.asp?target=WM%5FCOPYDATA
373デフォルトの名無しさん:03/11/06 18:31
「新規フォーム作成」と「全部閉じる」の二つのボタンを持ったフォームがあります。

「新規フォーム作成」を押すと、(新しいスレッド内で)自分自身を複製して、フォームを表示します。
「全部閉じる」ボタンを押すと、自分と、自分から派生した全てのフォームを閉じます。

この閉じる処理を実装するため、あらかじめ public static な ArrayListを作り、
新しいフォームが出来るたびにAdd()メソッドでArrayListに追加していきます。
そして、「全部閉じる」が押されると、

for (int i = 0; i < ArrayList.Count(); i++)
{
  Form form = (Form)ArrayList[i];
  form.Close();
}


という方法で、登録された順番に閉じていきます。
しかし、このやり方だと、ArrayListに登録された順にフォームが閉じてしまいます。
374デフォルトの名無しさん:03/11/06 18:31
375373(長文申し訳ありません):03/11/06 18:32
私としては、最前面のフォームからその下にあるフォーム、さらにその下に・・・
という風に消していきたいのですが、どうにもやり方がわかりません。
調べていく中で、Zオーダーというキーワードにはたどり着いたんですが、
これをC#上で実装する方法もわからず・・・

また、ArrayListを使うこと自体が間違いで、もっとスマートな方法があるのではないかとも
思っています。
どうか、ご指導お願いします。
>>375
よくわかんないけど
Control.ControlCollection.GetChildIndex メソッドは
377デフォルトの名無しさん:03/11/07 11:00
ttp://www.gotdotnet.com/japan/student/column/moredotnet/moredotnet1.aspx
あたりを読んで,ダイアログに描いた絵を簡単にビットマップで
保存できることを知ったのですが,

もし,アニメーションのように動画として描画したい場合で,
ダブルバッファを試みるとしたら,
VCのときのような,CreateCompatibleBitmapで作ってBitBltするのと
同じような手法になると思うのですが,
そのような解説ってどこかにありますか?

DirectXでない方法でやりたいのですが,GDI+になるんですか?
378202:03/11/07 14:42
>>202
誰かご存知の方おられませんか?
要は1対多のデータをフォームに連結したいのです。
1対多を関連付けているテーブルには俳優の「コード」しか入っておらず
フォーム上にはマスタテーブルからひっぱってきた俳優名が必要なのです。
お願いします!
楽しないでコード書けばいいと思うが。
380202:03/11/07 15:11
>>203
レスありがとうございます。
それならできないことはないのですが、
フォームの数がすごく多いので新規登録、更新、削除処理の
手間のことまで考えると出きる限り連結で実装したいと思っています。
(技術的に連結できるなら仕様を満たせますので)
技術的にこのようなパターンは連結することが不可能なのでしょうか?
不可能なら諦めてコードで書きます。
理想としては監督コンボボックスで監督名が選択されて
Updateメソッドでテーブルには監督コードで更新される、という風に
実装したいのです。
>>380
199の質問に対するレスなのか、202の質問に対するレスなのか知らんが
同様のコードは再利用するのがプログラミングの常識です。
フォームが何百個あろうが記述は一回。
382202:03/11/07 16:30
>>381
>199の質問に対するレスなのか、202の質問に対するレスなのか知らんが
失礼しました!
>>380は真上の方へのレスでした。申し訳ありません。
>同様のコードは再利用するのがプログラミングの常識です。
それはそうですが既に用意されている機能があるならそれを使用して
手間とバグを減らすというのもプログラミングの常識ではないですか?
結局のところ私の要件を満たす機能はまだ実装されてないんでしょうか。。
1対多で関連付ける対象が共にコード化されている、というのは当たり前に
存在する状況と思いますのでどうしてもフォームに連結できないとは思えないのです。
連結したいけど2週間たってもコード書けないからパクれるのない?ってことか
384202:03/11/07 18:59
>383
違います。
既に用意されている機能を使ってできると思うので
2週間探して未だ見つからず困り果てている、といった状態です。。
385質問です:03/11/07 19:15
こんな感じでファイルに行データを書き込んでいるんですが

private void menuItem3_Click(object sender, System.EventArgs e)
{
    string fname = dtp.Value.ToLongDateString() + ".csv";
    StreamWriter sw = new StreamWriter(fname, false);
    foreach(string line in ResultList.Items)
    {
        sw.WriteLine(line);
    }
    sw.Close();
}

出来上がるCSVファイルがUTF−8になっちまうんですけど
これを、Shift-JISにする方法教えて下さい。

Excel2000で文字化けしちゃうんですよね〜
>>385
StreamWriterのコンストラクタのヘルプを熟読すべし。
387感謝です:03/11/07 19:54
>>386 ありがとう
388デフォルトの名無しさん:03/11/07 20:22
「クリップボードに何かが新しくコピーされたとき」っていう
イベントは標準ではもちろんないんですが、これって
どうやったらいいでしょうか。
>>384
二週間探し回って見つけられない馬鹿と。
その間にちゃちゃっと再発明してしまう馬鹿と。
どっちがより馬鹿なのか、自明だと思うが?
390377:03/11/07 22:29
なんか,モノを教えてもらえる雰囲気じゃないので,自分で探してみました.
結局,以下のサイトでサンプルも見つけ,問題は解決しました.

ttp://windowsforms.net/articles/windowsformspainting.aspx
391202:03/11/07 23:15
>389
完成させることが目的ではなく、
最適な方法を覚えていく勉強と思って組んでいるので
動けばいい、というものでもありませんし、
ついでに言うとどっちが馬鹿とかそういうことを聞いた覚えもありません。
別の方面で意見を聞いてみることにします。
ご意見いただいた方、ありがとうございました。
わかり次第報告ご報告致します。
┐(´ー`)┌ やれやれ、なんでマ板はこうなのかね
ADD人口高いんだろな。俺もだけど
393デフォルトの名無しさん:03/11/08 12:53
<object classid="〜.dll#〜.〜">って、
毎回クライアントにダウンロードしてるようだけど
従来のActiveXのようにキャッシュしてくれないものなのですか?
>>392
ここはム板だ。マ板の話はマ板でやれ十円ハゲ。
395392:03/11/08 19:33
計算され尽くしたボケだったということに気づいているのか?
しかし十円ハゲとは、ボケがいのある良い突っ込みだ。
見苦しい
397デフォルトの名無しさん:03/11/08 20:34
すいません。教えてください。
BEEP音を鳴らすにはどうしたらいいのでしょうか?
APIのMessageBeepをDllImport汁
このスレか前スレに出てたDirextXを使ったやり方もあるらしいが忘れた
>>398
ありがとうです。やってみます
400デフォルトの名無しさん :03/11/08 22:10
Winでコピーするときに「コピー進行状況ダイアログ」が出て
コピーアニメーションとプログレスバーが出ますよね。

このようにコピーの進行状況をプログレスバーで表示させたいのですが、
どうゆうAPIを呼び出せばファイル毎の進行状況を取得できるのでしょうか?

ぐぐって以下を見つけたんですが、これはファイルごとのプログレスバーでは
無く、ファイルの個数をプログレスバーのMAXに割り当てると言うフェイク
なものでした。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformsprogressbarclasstopic.asp

ウィザードの皆さん、よろしくご教示下さいませ。
401 ◆sz.rQRpy3. :03/11/08 22:16
以下のような文がstringに入っていて

1 aaaa
2 bbbb
3 cccc

をそれぞれの数字の後ろにピリオドを足して

1. aaaa
2. bbbb
3. cccc

のように変換したいのですが、どうすればいいのでしょうか?
正規表現を使えばできるのでしょうか?

お願いします。
>>401
string result =
Regex.Replace(input, "^\\d+", "${0}.");
403 ◆sz.rQRpy3. :03/11/08 23:06
>>402
ありがとうございます。最初の一行だけ変換されてるのを確認しました。
もう少し見たいなのでがんばってみます。
C#は 「しーしゃーぷ」と読むんですか?

#は「パウンド記号と呼ばれていますし、
「しーぱうんど」と読むほうがより正確だと思うんですが。
死者( ´,_ゝ`)プッ

と読むんです
406ネタは死滅スレで:03/11/08 23:28
407404:03/11/08 23:28
あげ忘れ。よろしくおねがいいたします。
>>403
RegexOptionsを調べてみれ
410 ◆sz.rQRpy3. :03/11/09 00:23
>>409
RegexOptions.Multilineを指定してできました。
ありがとうございます。
411デフォルトの名無しさん:03/11/09 16:05
VS.NET2003 での質問なのですが、
自働メンバ表示の機能で、
/// <summary>へろへろ〜</summary>
void Herohero( int a , int b ) {}

と書くと xxx.Hero とかタイプしたところで
リストに Herohero の関数とコメント「へろへろ〜」が表示されますが、

ライブラリーが大きくなってきたので、別のクラスライブラリプロジェクトとして作って
リソリューションエクスプローラで右クリックしたらでてくる「追加」で
「既存のプロジェクト」として追加
そのあと元々のプロジェクトの参照設定のところで「参照の追加」の「プロジェクト」タブから
追加しました。
そうすると、そのライブラリの xml コメントのみ表示されなくなってしまいました。
設定不足等、原因がわかる方がいたら教えてください。
>>411
参照元プロジェクトでXMLドキュメントを生成して、DLLと同じフォルダに置いとけばよいかと。
>>412
有難うございます、参考にして色々いじってみた所
単純にライブラリー側の
プロジェクトプロパティー→攻勢プロパティー→ビルド→xmlドキュメントパス
を指定すればよかったみたいです。
しかし・・・VSを再起動するまで反映されないんですね。(泣
ビルドして更新があったら反映してくれるともっと便利なのですが。

もう一つ質問です。
webページのビルドコメントで、ドキュメントを生成すると
コード要素ページ implicit operator が不完全です。
なるエラーがでるのですが、これって何が問題の時にでるのでしょうか?
コンパイルは通ります。ワーニングも出ません。
>>404
「♯」は「シャープ」だ、とマジレス。
攻勢プロパティーってかっこいいな
♯と#は違う。
417デフォルトの名無しさん:03/11/09 21:58
#=ナンバー、♯=シャープ
418デフォルトの名無しさん:03/11/09 22:00
♯=いげた
419デフォルトの名無しさん:03/11/09 23:40
画像の座標を取得するにはどうすればよいのでしょうか?
質問の意味が分かりません
421デフォルトの名無しさん:03/11/10 00:23
説明不足でごめんなさい。
例えばBitmapの画像ファイルを読み込んで表示して、画像上でクリックした位置の、
画像の座標値を取得するにはどうすればよいでしょうか?
422デフォルトの名無しさん:03/11/10 00:24
マルチだ
423デフォルトの名無しさん:03/11/10 00:57
C♯にはなんで原典が無いの?
MSDNが原典って言う奴はC言語をK&R無しでマスターしただろ。
>>423
俺はMSが出したC#のドラフトから読んでる。
当然K&R無しでマスターした。
後から読んでもたいしたことなかったよ。
425デフォルトの名無しさん:03/11/10 00:59
>>421
PictureBox.Imageに読み込んでMouseDownイベントのX,Yではダメなのかしら?
>>423
まずは原典の定義からいえ。
427デフォルトの名無しさん:03/11/10 01:28
>>426
http://www.hyuki.com/dig/genten.html
つーかググレYO
.NET使ってる香具師ってそんなもん?
428デフォルトの名無しさん:03/11/10 01:30
> バイブルと呼ばれることもある。

普通はバイブルじゃないの。
>>427
たぶんそういう意味じゃないと思う。
430デフォルトの名無しさん:03/11/10 01:47
>>425
ありがとう。
いまどき一人で言語設計してコンパイラ実装してライブラリ整備してバイブル書くなんて不可能だよ。
商用のコンパイラのバイブルは処理系付属のドキュメントでしょ。概要やチュートリアルも載ってるし。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/csref/html/vclrfboxingconversionpg.asp
C#って終わってるな
始めることもできない人間は
そういうことにしたいのでしょうね。
434デフォルトの名無しさん:03/11/10 05:00
 初めて書き込みます。
 現在他のソフトにマップドファイルからデータ(String)を渡して、また、
戻りをマップドファイルから受け取るプログラムを作ろうとしているのですが、
どうしてもうまくいきません。ご教授いただければ、幸いです。
 とりあえず以下のコードでCreateだけしてみようとしてみて失敗している(かならず 0 が帰ってきてしまう)状態です。
-- DLL 読み込み宣言部 --
public enum MMFFlProtect
{
 PAGE_NOACCESS = 0x1, PAGE_READONLY= 0x2,
 PAGE_READWRITE= 0x4, PAGE_WRITECOPY= 0x8, PAGE_EXECUTE = 0x10
} ;

[DllImport("Kernel32.dll", SetLastError=true, CharSet=CharSet.Unicode)]
public static extern unsafe IntPtr CreateFileMapping(uint hFile,
 IntPtr secAttributes,
 MMFFlProtect dwProtect,
 int dwMaximumSizeHigh,int dwMaximumSizeLow,
 string lpName);

[DllImport("Kernel32.dll", SetLastError=true)]
public static extern bool CloseHandle(IntPtr handle);

-- 使用部分 --
const uint hFile = 0xffffffff;

IntPtr hMap = Win32.CreateFileMapping(hFile,
 IntPtr.Zero,
 MMFFlProtect.PAGE_READWRITE,
 0, 0,
 "test");
435434:03/11/10 05:10
>IntPtr hMap = Win32.CreateFileMapping(hFile,
すまんせん。ここの「Win32」は、宣言部分のclass名を「Win32」にしてるからです。

加工ミスです。失礼しました。
437デフォルトの名無しさん:03/11/10 17:29
なんか記憶の片隅にC#でアプリつくろう!みたいな本あったな。
買ってなかったんだが、ああいうのすきだな、いろいろテキストエディタとか
チャットソフトとか作っちゃってたんだが。
題名すら忘れたが。
>>436
whereが嫌だな・・・何でそこで英単語来るかな・・・Javaみたいジャン・・・。
だったらimplementsもextendsも英単語にしろよな・・・。

class A<T> where T : Interface
じゃなくて
class A< T : Interface >
の方がよかったなぁ・・・
っていまさら言ってもしょうがないが。

俺の浅はかな考えよりももっといろんな問題を考慮した結果なんだろう・・・・と思いたい。
>>438
まだ正式決定じゃないんだから、MSDNのnewsgroupかなんかで意見を書けば
ちゃんとMSの人が見てくれるよ。
>>434
unsafeしてない。
refやout宣言された引数にnullを渡したいのですが
なんかエラーが出て動きません。
どうすればよいのでしょうか?
>>441
そりゃそうだろ。必要なくともダミーオブジェクトとか作って引数にわたせばいいじゃん。
相手がAPIなのでダミーでデータ取得するコストも馬鹿にならないと思いまして。
>>443
IntPtrにすれ。
IT Pro 技術の広場 : ようやく出てきたC#の選択肢(上)
http://itpro.nikkeibp.co.jp/members/NBY/techsquare/20031107/1/
C#の文字列処理の能力は、
文字列の処理が得意なPerlと比べてどうですか?

ぶっちゃけ使えます?
やろうと思えばアセンブラでもできる
448デフォルトの名無しさん:03/11/11 21:59
>>446
M$ 社員が頑張って Perl に負けないように作ってる。
正規表現も split も replace もそろってるぞ。
Perlは文字列の扱いが得意といっても
Unicodeの扱いはダメダメなわけだが。
450デフォルトの名無しさん:03/11/11 22:45
なこたーない
451デフォルトの名無しさん:03/11/11 23:21
Perlは日本語が使えないから使い物にならない
Perlのtrがないのがちと寂しい。
453デフォルトの名無しさん:03/11/11 23:58
# $str に $pattern を正しくマッチさせる(前提:文字列はEUC-JPに変換済み)
# ttp://www.din.or.jp/~ohzaki/perl.htm#JP_Transより引用

$ascii = '[\x00-\x7F]';
$twoBytes = '[\x8E\xA1-\xFE][\xA1-\xFE]';
$threeBytes = '\x8F[\xA1-\xFE][\xA1-\xFE]';

if ($str =~ /^(?:$ascii|$twoBytes|$threeBytes)*?(?:$pattern)/) {
print "マッチした\n";
}
454デフォルトの名無しさん:03/11/12 01:00
Perlは山で採れないのが寂しい
>>454
淡水パールは池で取れるYO
なぜかここの所まったり雑談室状態。
C#での静的という言葉の意味がわかりません。

Cでの「前の値が保持されてる」のが頭にあるんですが、違ってるんでしょうか。

でもクラス内でStatic変数もつ意味がどこにあるのか・・・・
Staticコンストラクタなんてもんまでありますが。他に
静的メソッドとかなんでそこまで静的という言葉つけて表現してるのかわかんないっす。
静的関数って一体どんなんなんですか?ググッて見たんですが、どこもセイテキセイテキって言葉連発してる
ばっかでよく分かりません。
誰か教えてタモーレ。

頭悪そうな文章ですいませんが、実際頭悪いので分かりやすくお願いします。
Working with Delegates Made Easier with C# 2.0
http://www.codeguru.com/cs_delegates/WorkingWithDelegates.html
staticでググれ。一発で見つかるぞ。
ここはわかりやすいと思う。

http://www.google.com/search?q=cache:gCr16WtisD0J:www-online.kek.jp/~keibun/dotnet/stc001.htm+c%23+static&hl=ja&lr=lang_ja&ie=UTF-8
初心者な質問で申し訳ないのですが
教えて欲しいことがあります。

byte[] Buff = {0x86,0x00,0xa6};
char[] Chr;
string Str = "";
と、して
Buffの内容をそのまま文字列に変換してStrに格納したいのですが

Chr = Encoding.Default.GetChars(Buff);

Str = Encoding.Default.GetString(Buff);
では”0x86”がエンコードされません。


Chr[0] = (char)0x86;
Chr[1] = (char)0x00;
Chr[2] = (char)0xa6;
Str = Str + b2[0] + b2[1] + b2[2];
の場合だと”0xA6”が”0x7C”に変わって
文字列変換されてしまいます。
(”0x86”は変換できている様です)

全てのByte数値(0x00〜0xFF)をそのままの内容で文字列に変換する方法は無いのでしょうか?
>>460
エンコードしてるから。文字コードに従った特殊な変換がされるのは当然。
Default(ShiftJis)なら全部特殊文字だしな。
それがいやなら
byte[] bytes = new bytes[]{0x86, 0x00, 0xA6};
string ret = "";
foreach (byte b in bytes)
str += ((char)b).ToString();
とでも。
こんな文字列(になってないコードの羅列)どうするのか知らないけど。
んだあ、retとstrがごっちゃになった。どっちか書き換え。
>>457
クラスそのものが持っている変数や関数だな
インスタンスが個別に持つ必要がない定数だとか
464デフォルトの名無しさん:03/11/13 12:45
System.Diagnositic.Process.Start(".exeの場所")とすれば、プログラム内から
他のプログラムを立ち上げることができますよね。
そうやって他のプログラムをいくつか呼び出した後に、それらを一度に全て終了させたいんですが、
自分の考えとしては・・・・

1.Process.Start()で他のexeを呼び出す
2.この時、配列か何かに呼び出したexeを識別するIDか参照を入れておく
3.IDの入った配列を使い、for文などで一気に終了させる

といったことを考えているのですが、それをコード上で表現する方法がわかりません。
いったいどうすればいいのでしょうか・・・
>>464
手順だけ
1.Process.Start()で他のexeを呼び出す
2.この時、配列か何かに呼び出したexeを識別するIDか参照を入れておく
3.IDの入った配列を使い、for文などで一気に終了させる

俺って親切すぎ・・・・
それにしても、なんでProcessがDiagnostics(診断)名前空間なんだろうな。
Threadingでも良かったんじゃないのかな?
466デフォルトの名無しさん:03/11/13 13:44
>>458
英語和姦ね

>>459
Thanx!!

サンプルコードいくつか作ってみたんですけど、
普通のクラス内変数と何が違うのかさぱーりだったので・・・・・
助かりました。
>>464
ID持ってるのに。
468デフォルトの名無しさん:03/11/13 21:44
xmlコメントに改行とかスペースとか入れたいんですが(パラメータヒントやwebページのビルドコメントで改行したい)、
<br/>としても \n としても改行できないです。
なにか良い方法はないでしょうか?
>>468
[Enter]
470デフォルトの名無しさん:03/11/14 00:57
>>464
他プログラム立ち上げって Process.Start なんだ、、、(汗
せめてSystemほにゃららかと思ってた。。。
>>464
Processの静的メソッドを使うんじゃなくて、Processのインスタンスを作ればいい。
Process[]を作るのが一番簡単。
動的に増減するならArrayListにProcessインスタンス突っ込むとか。
472デフォルトの名無しさん:03/11/14 13:55
クラスをXMLでシリアル化することを試みているのですが、
XmlSerializerでpublic以外のフィールドをシリアル化することは
可能なのでしょうか?

(SoapFormatter,BinaryFormatterではprivateでも可能でした)
473472:03/11/14 14:12
MSDNを読み直してみたのですが、XmlSerializerでは無理みたいでした。
public以外のものをシリアル化するときはBinaryFormatterを使用することが推奨されてました。
とりあえずシリアル化のための
publicフィールドなクラスを作って、シリアル化することにしました。
474デフォルトの名無しさん:03/11/14 18:01
>>464を見てて思ったんだけど、プロセスIDが違っても、同じEXEであることを識別して、
それらを一気に終了させる方法ってないのかな?

パッと思いつくのは、操作したいexeの名前が「MyForm.exe」だとして、
今現在起動してるプログラムの名前を全て調べて、[「MyForm.exe」に該当するプロセスを
片っ端から終了させていく、というもの。
でもこれ、あまりにも危険すぎるし。

名前のような不安定なものじゃなくて、何らかの識別子のようなものがあるはず、
と踏んでるんだけど・・・・
せっかくの.NETなんだから、もっとスマートに実現できる方法はないかなあ。
>>474
Process[] processes = Process.GetProcessesByName("Notepad");
foreach(Process process in processes)
   if (process.MainModule.FileName == "C:\\WINDOWS\\system32\\Notepad.exe")
      process.Close();
なんてな。
Close()じゃなくてCloseMainWindow()だ……鬱
477デフォルトの名無しさん:03/11/14 20:34
>>469
すみません、それはどういう風にすればいいんでしょう。
"[Enter]" と書き込んだらそのまま "[Enter]" が出てしまいました。
>>477
<p>だったか<para>だったかがなかったっけ?
コンパイラがはき出すバージョンを、そのままウインドウに表示させたいのですが
どうやったらいいでしょうか?
>>479
string System.Windows.Forms.Application.ProductVersion
>>480
ありがとうございます。
これです。これがやりたかった。
482初心者:03/11/15 21:58
Managed DirectX update2003のDirect3Dサンプルで
GraphicsFontクラスはアルファベットしか表示できないのですが、
日本語テキストを表示するにはどうすれば?
日本語が表示できるフォント選べばいいだけでは。
Cシャープって何でこんなに文法難しいんですか?
>>484
私としてはVBやDelphiに比べて圧倒的に理解しやすいんだが。
適正とか経験の差かね。
JavaScript上がりだからかな。
//おかげでWSHもJScript。VBScriptにしか無い関数がうらやますぃ。
>>484
馬鹿向け言語と名高いC#を難しいと感じるのは結構厳しいぞ
>>484
文法が難しいと言うより
関数が多くてどれ使っていいかわからないんじゃない?
正直組んで関数あったんだ...........と思ったことは何度かある
読まないのが悪いんだろうけど.......
488デフォルトの名無しさん:03/11/16 16:10
マジ質問ですが、VC++からC#.NETに乗り換えたって人いる?
業務での話です。内の会社では未だにやはりWindowsアプリケーションは
VC+++MFCが主流ですね。C++Builder,VBでやってるところもあるが・・・
489デフォルトの名無しさん:03/11/16 16:14
正直組んで関数?
>>488
あるよ、おれんとこは客の言語指定がないので好きなものを使ってる。
.netでC++は正直つらいからね。
ただ次のマネージドC++の出来がかなり良さそうなので又舞い戻るかもしれない。
>>487
意味踏めー
492デフォルトの名無しさん:03/11/16 16:25
.NETってマジ遅くないですか?
Array.Sortなんてstd::sortに比べたら腹起つぐらいおそいですね
正直Windowsアプリケーションで.NETの必要性が分からない
煽りじゃないよ
>>492
まあそう思うなら自由にしてくれ。
>>492
ピーク性能ではC++と比較されたらそれはもう話しにならないのは確かだけどね。
誰でも使えるからですよ、利用される理由はスペックではないです。
http://www.amazon.co.jp/exec/obidos/ASIN/4797319747/ref=pd_ecc_rvi_f/249-6389041-0388364
もし本屋にこの本があるなら、この本読んでみたら判るよ、フォトショップか何かのツールの解説書の間違いじゃないのかって感じだ、マジで。
それにも関わらず、C++にも負けないほどの大規模開発にも絶えられる所です。
495デフォルトの名無しさん:03/11/16 17:47
delegageとeventってどう違うの?
>>495
言語構造的に見れば event は delegate を入れるための只のコンテナです。
実際には、そんな単純なものではなくて、VisualStudioのIDEを使ってみると判る。
コントロールにで発生したイベントを別のオブジェクト(特に親オブジェクト)に転送するときに大変便利な機構。
これがあるおかげでイベントソース・イベントリスナをいちいち考えなくて済む。
>>495
delegate : 型、および型のインスタンス
event : 型の構成要素
フィールドとプロパティの関係と似たようなもの。

class Hoge
{
  int n; // フィールド
  int N { get { return n;} } // プロパティ

  HogeDelegate f; // 普通のデリゲート型のフィールド
  event HogeDelegate OnXXX; // イベント
}
delegate : class, struct, enumと同じ、型定義
event : フィールド、プロパティ、メソッドと同じ、型のメンバー
>>498
それはちょっと誤解を生むかも・・・
delegate void HogeDelegate() ;
class Hoge
{
  HogeDelegate f ; // フィールド
  HogeDelegate g { get { returnf f ; } } // これはプロパティー
}
501デフォルトの名無しさん:03/11/16 18:36
delegateも+=演算子が使えるのでコンテナ見ないな感じですよね
>>501
あ、ほんとだ、初めて知った。
てこになると何のためにあるんだ event は?
>>502
eventは代入できない&add/removeアクセサが定義できる。
object.HogeEvent.Add( ... )
object.HogeEvent.Remove( ... )
って形よりも
object.HogeEvent += ...
object.HogeEvent -= ...
としたかったが代入されては困る、しかし代入不可にするとプロパティーを使って実現できないって事なのかな。
こうやって見ていると、演算子を自由定義できるプロパティー宣言が欲しくなってきた。
505デフォルトの名無しさん:03/11/16 20:06
XmlSerializerでXML要素名が重複するとインスタンス生成時にエラーが出てしまうのですが、
data,data2を結合するしか手はないのでしょうか?
public class Target
{
public string[] data;
[XmlElement("data")]
public string[] data2;//dataというXML要素名でシリアライズしたい
}
eventは、保有者以外は+=/-=以外の操作が出来ないはず。
この制限はプロパティの延長では実現できないよ。
>>505
ISerializableで出来るんじゃない?
508デフォルトの名無しさん:03/11/16 22:45
DataViewと連結したフォームがあるのですが
新規レコード追加ボタンをうまく実装できません。

//新規レコードの領域を確保
DataRowView drv=this.vwObject.AddNew();
drv.EndEdit();
上記のコードで新規レコード自体は作成されているようですが
DataViewのPositionをどう設定しても
追加したレコードを画面に表示できません。
drv.Row.AcceptChanges();
コミットされていないからだと思い上記の一行を追加しても結果は同じでした。
AddNewした行へ移動するにはなにか手順が足りていないのでしょうか?
よろしくお願いします。
ちなみに行が作成されたという確認にはDataGridに連結して確認しました。
509デフォルトの名無しさん:03/11/16 23:04
eventキーワードを削除してもコンパイルできるし、実行も出来る
どちらでもいいのかな?なんて思われるようなあいまいなキーワードですね
>>509
逆にdelegateのところにeventキーワードを追加すればコンパイルと通らなくなるし。別にあいまいじゃない。

本当に無くても良いC++のauto等とは大違い。
511デフォルトの名無しさん:03/11/16 23:11
で、結局どうちがうの?
>>511
散々既出なんだが、
event はデリゲートに対するプロパティみたいなもの。

本来、イベントハンドラはイベント発生時以外に呼び出されてはいけないんだけど、
デリゲート型のプロパティとか作っちゃうと外部から呼ばれちゃう可能性がある。

でも、event キーワードを指定すると、
クラス外部からは += と -= しかできなくなる。
514デフォルトの名無しさん:03/11/17 10:27
フリーのC#開発環境と
製品版とでは、何か決定的な差はありますか?

例えば、Delphiの製品版とPersonal版では、VCLのソースがないという
差がありますが、そんな感じですか?

今回比べて欲しいのは下記です。

フリー版: http://icsharpcode.net/OpenSource/SD/Default.aspx
製品版: http://msdn.microsoft.com/vcsharp/

フリー版は使いにくいとか、その辺もお聞きしたいです。

宜しくお願いします。
>>514
フリー版と製品版って……すごく誤解を招く表現だな。
あとBorland C#Builder personalを抜くのは何故だ。
517514:03/11/17 10:49
>>515
C#BuilderってDelphiと同じような開発環境なのではないか?と思ったので
抜きました。
C#の開発環境の使い方を含めて勉強したいと思ったので、C#Builderでは無理かなと。
本当はMicrosoft Visual C# で勉強したいのですが、お金の余裕がないので
SharpDevelopで勉強したらMicrosoftVisualC#もすんなり使えるようになるかなと
思いました。

>>516
読めませんでした。
>>517
普通に読めるが。
要は3つとも大してかわらん、という記事だな。

> C#の開発環境の使い方を含めて勉強したい
C#BuilderはC#の開発環境じゃなかったのか……。
519514:03/11/17 11:02
>>518
会員登録してないので、読めませんでした。すみません。
大してかわらないんだったら、製品版をわざわざ買う必要な
無いみたいですね。

C++Builderが使えてもVC++は使えないでしょう?
>>519
C#Builderはその独自路線を放棄してVC#と(ほぼ)変わらなくなったってこと。
雑誌にVC#評価版もついてるだろうし、C#Builder personalもCsharpDeveroperも無料だし、
自分で試してみるのが一番。
C#ってネイティブコードを吐き出すJavaという認識以外で
必要な認識はあります?
522514:03/11/17 11:07
>>520
なるほど。そうなんですか。
今トロトロと全部ダウンロードしてるところです。色々とありがとうございました。
523505:03/11/17 11:14
>>507
thx.
ISerializableを試してみましたが、だめでした。
IXmlSerializableが関係してそうでしたが、これは使えないみたいなんで
data1,data2をArrayListの派生クラスにつっこんで
インデクサ,Countをoverrideして1つの配列に見せかけて
これに配列[アイテム]のXML属性を適用して配列としてシリアル化したらできました。
[XmlArray,XmlArrayItem("url",typeof(string))] MyArrayList array;
>>521
まずその認識が間違っているという認識からだな。
525デフォルトの名無しさん:03/11/17 15:22
SharpDevelopのバージョン098に日本語パックのバージョン097を
入れたら起動しなくなりました。

これはバージョンを合わせないとダメなんでしょうか?
それとも別の原因があるのでしょうか?
526デフォルトの名無しさん:03/11/18 02:06
ネイティブコードは吐かないだろ
527デフォルトの名無しさん:03/11/18 11:34
最小化された時を得るにはどうすればいいのでしょうか?
C#でXML Web Serviceを作ろうと思い,Visual C# .net実践講座 活用編という書籍のサンプルを見ながら
サービスのプログラムをしてみました.
NorthWindというサンプルデータベースを利用して,引数にstring productName, int howManyを取り,
productNameの金額×howManyを返すというプログラムなんですが
データベースとうまく接続できません.
NorthWindはVisual Studioからテーブルの中身を見ることができ,SQL Serverも
立ち上がっております.asmxファイルにブラウザからアクセスするとWEBサービスは
立ち上がっているようなのですが,テストをするとちゃんとした値がかえってこず,
サーバエラーと言われてしまいます.デバッグをすると,SQL Serverとアクセスできていないようです.
[WebMethod]
public decimal HowMuchWillItCost(string productName, int howMany)
{
SqlConnection sqlConn = new SqlConnection("data source=localhost;initial catalog=Northwind;integrated security=true");
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandText = "SELECT UnitPrice FROM Products WHERE ProductName = '" + productName + "'";
sqlCmd.Connection = sqlConn;
sqlConn.Open();
decimal price = (decimal)sqlCmd.ExecuteScalar();
sqlConn.Close();
return price * howMany;
}
プログラム部分はこれだけです.あとusingにsqlClient等を追加しています.また,コンパイルは通ります.
すみませんが,ご存じの方いらっしゃいましたらご指導頂けませんでしょうか?
>527
最小化された時は知らんが
最小化ボタンが押された時は
WM_COMMANDをWndProcでキャッチ。
いつの時代の話だ?

Formのハンドラ使えよ
てゆーか、C#でWndProcなんてレベルまで踏み込めるの?
533531:03/11/18 18:46
>532
了解Λ||Λ
534529:03/11/18 19:07
>>530
!!
知らなかった(汗
>>528
data source名が怪しい。

としか言えんな。エラーの中身を書いてくれんことには。

C# の関数で複数の値を返したい場合はどのようにするのが
よいでしょうか?

public hoge(int param1, ref param2)
{
param2 = "hogehoge";
return true;
}

のように、参照渡しで引数として渡すのがベスト?
null渡せないから無駄が多い
>>537
「ref」より「out」のほうがいいぞ。

return new object[]{"tech", 1066038651};
みたいに配列を返す方法もある。
漢は黙ってIntPtr
540528:03/11/18 23:57
他の例題を元に少し書き方を変えてみました.ちなみに,コンソールアプリケーションで
全く同じように表記すると,正常に値が返ってきます.ウェブサービスとしてテストをすると,
ウェブサービスのページを表示して,メソッドを選択して,テストとしてproductNameとhowManyの値を
代入してテストのボタンを押すと,出力が500 Internal Server Errorとなって返ってこなくなってしまいます・・.
すみませんが教えて頂けませんでしょうか・・.
[WebMethod]
public decimal HowMuchWillItCost(string productName, int howMany)
{
SqlConnection dataConnection = new SqlConnection();
dataConnection.ConnectionString = "Integrated Security=true;Initial Catalog=Northwind;Data Source=localhost";
dataConnection.Open();
SqlCommand dataCommand = new SqlCommand();
dataCommand.Connection = dataConnection;
dataCommand.CommandText = "SELECT UnitPrice FROM Products WHERE ProductName = '" + productName + "'";
decimal price = (decimal)dataCommand.ExecuteScalar();
dataConnection.Close();
return price * howMany;
}
GetHashCode ってのがよく分からないんですが。
どんな時にどういう風に使うものなんでしょうか。

>>541
元のクラス・構造体の値が等しい ⇒ ハッシュ値が同じ
ハッシュ値が同じ ⇒ 元のクラス・構造体の値が等しい可能性が高い
C# で文字列の中で変数を展開する方法はありますか?

string a1 = "あ";
string b1 = "い";
string c1 = "う";

string hoge = "a={a1} b={b1} c={c3}"; ← ここをどうやる?

Console.WriteLine(hoge)

で、

a=あ b=い c=う と表示させたいんですが。
eval ってあったっけ
>>543
1.普通に+演算子を使う
string hoge = "a=" + a1 + " b=" + b1 + " c=" + c1;
2.String.Formatを使う
string hoge = String.Format("a={0} b={1} c={2}", a1, b1, c1);
546543:03/11/19 17:13
>>545
+ 演算子だと、文字列と、変数をいちいち区切るのが面倒ですよね。

ということで、String.Format を使います。ありがとうございました。
547544:03/11/19 18:14
ユーザが入力した文字列に対して>>543の処理をするのかと勘違いしていたよ。
激しく欝
>>540
500 Internal Server Errorじゃ誰もわからんて。
>535が言うようにtry〜catchしてエラーの中身を書いてくれよ。
549デフォルトの名無しさん:03/11/20 09:01
XMLDocよりDoxygenの方がはるかに高機能なので乗換えを検討中・・・
XMLDocは仕様やツールが更新される予定ってないの?
C# で Windows フォームのプログラムを始めました。
いきなり初歩的なところでわからなくなったのですが、

Form1 と Form2 があり、Form1 のボタンが押されたら Form1 を非表示
にして Form2 を表示したい。

次に Form2 が閉じられたら Form1 を表示したい。

ということがやりたいのですが、Form1 の非表示は Form2 を表示する前に
this.hide(); でできたのですが、再度 Form1 を表示するやり方が
わかりません。どのようにやればよいでしょうか?
>>550
Form2 : Form {
   Form form;
   public void Show(Form parentForm) {
      form = parentForm;
      this.Show();
   }
   private button1_Click(object sender, EventArgs e) {
      this.Hide();
      form.Show();
   }
   //以下必要な設定
}
でForm1から呼ぶときに
form2.Show(this);
とか。

//上のformメンバ代わりのParentプロパティかなんかなかったっけ……?
Ownerプロパティとか

form2.Owner = form1;

void Form2button1_Click(...)
{
Owner.Show();
}
553550:03/11/20 18:27
>>551 >>552
.Owner を使ってできました。ありがとうございます。

で、次にまた問題が。フォームのサイズですが、

InitializeComponent の中で、
this.ClientSize = new System.Drawing.Size(292, 140);

としてあるにも関わらず(というかデザイナがはきだしたコードですが)
起動時のサイズがなぜか大きいのです。

で、試しに、フォームにボタンをはって、クリック時に、

this.ClientSize = new System.Drawing.Size(292, 140);

としたら、ボタンをクリックした時に、フォームのサイズが意図した
サイズになります。これは一体どういう事が原因で起きているの
でしょうか?
フォームのStartPosition
555550:03/11/20 21:07
>>554
StartPosition は WindowsDefaultLocation になっています。

別のフォームから .Show() されるフォームでは、何か気に
しなければならない事があるのでしょうか?

デバッグしてみると、
this.ClientSize = new System.Drawing.Size(292, 140);
の部分は通過していきます。
フォームがアイコン化、最大化される時に発生するイベントは
何でしょうか?
form1.Visible = !form2.Visible
form2.Visible = !form1.Visible
>>556
フォームの最大化・最小化ならResizeが発生するよ
559デフォルトの名無しさん:03/11/21 02:35
タスクトレイ常駐のアプリケーションをつくりたいのですが、
form の ShowInTaskBar プロパティを false にしても
ALT+TAB でタスク切り替えすると自分のアプリケーションが表示されてしまいます。
どうすれば表示されなくなりますか?

ちなみに form の WindowState は Minimized にしています。
561559:03/11/21 11:03
>>560
その通りです。
紹介してもらったのも試してみましたが、これも ALT+TAB で表示されちゃいますよね...
うーん
559 さんに便乗。

アイコン化した時は、タスクバーに表示し、タスクトレイにも表示。
閉じるボタンを押した時は、タスクバーの表示からは消し、タスクトレイに
格納という事をやりたくていろいろやっていますがうまくいきません。
(タスクトレイ == 通知領域) 動作の感じとしては MSN メッセンジャー
と同様の事をやりたいです。

Form の Closing イベント内で、
this.Visible = false;
this.ShowInTaskbar = false;
e.Cancel = true;
とやっています。Formのサイズが普通の時はうまくいくのですが、
最大化されている状態で発生する Closing の場合、フォームが消えて
くれません。

また、NotifyIcon をクリックした時に元に戻す処理を行ないたいのですが
this.WindowState に Nomal か Maxmize を与えるしか方法がないのかと
思うのですが、以前の画面の状態に戻すには、以前の状態を保持して
どう戻すのか、というのは自分で実装するしかないでしょうか?

アドバイスよろしくお願いします。
563デフォルトの名無しさん:03/11/21 11:16
マウスムーブイベントはマウスが置いてあるだけで起動する。アプリ起動時などに。
564デフォルトの名無しさん:03/11/21 14:27
なんかしらんがSQL文吐かせたら漢字の部分でUNICODE吐きやがるんだが
うぜーな
なんとかならんのか?
565デフォルトの名無しさん:03/11/21 14:53
TextBoxのModifiedプロパティを利用して、TextBox内のテキストに変更が加えられた際に
フォームタイトルを「更新」に置き換えたいと思いました。
早速ModifiedChangedイベントを使い、Modifiedプロパティの変更を感知するようにしたんですが、
イベントがまったく働いてくれません。

テキストが一文字でも入力されれば、その瞬間にModifiedプロパティはtrueになります。
しかし、手動でModifiedプロパティにbool値を入れてやらない限り、ModifiedChangedは
呼び出されないんです。

とりあえず、今はTextChangedイベントを使ってしてますが、
一文字一文字入力されるごとにチェックが入るため、どうも気持ちが悪いです。

こうするしかないのか・・・(´Д`)
>>562
Form の Closing イベントにこれを追加
if(this.WindowState == System.Windows.Forms.FormWindowState.Maximized)
{
this.WindowState = System.Windows.Forms.FormWindowState.Normal;
}
後、元に戻すときは
this.Visible =true;
でいいと思う。
567562:03/11/21 18:47
>>566
試してみました。そうすると 最大化の状態で、閉じるボタンを
押し、タスクトレイに入れた後、

this.Visible = true で元に戻した時に、最大化の状態ではなく
普通の状態になってしまいます。

やはり、最大化で閉じた時は元に戻す時も最大化で戻してやりたい…。

試行錯誤してみます。
>>562
じゃあ


bool max;
//フォーム閉じる
 private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
 {
 this.Visible = false;
 this.ShowInTaskbar = false;
 e.Cancel = true;
 this.notifyIcon1.Visible = true;
  if(this.WindowState == System.Windows.Forms.FormWindowState.Maximized)
  {
  this.WindowState = System.Windows.Forms.FormWindowState.Normal;
  max = true;
  }

  }
//元に戻す
 private void menuItem1_Click(object sender, System.EventArgs e)
 {
  if(max)
  {
  this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
  max=false;
  }
  this.Visible =true;
  this.notifyIcon1.Visible = false;
  }
でどう?
569562:03/11/21 19:50
>>568コードまで提供して頂いてありがとうございます。
やってみたのですが、なんか変です。
最大化して閉じるボタンをクリックすると、一瞬フリッカっぽくチカチカ
なって普通の状態で表示されます。(最大化 -> 普通になる)
しょうがないんで、
this.WindowState = FormWindowState.Minimized;
this.Visible = false;
this.ShowInTaskbar = false;
e.Cancel = true;



this.ShowInTaskbar = true;
if (!this.Visible) {
this.Visible = true;
}
if (this.WindowState == FormWindowState.Minimized) {
this.WindowState = FormWindowState.Normal;
}

こんな感じであきらめました。閉じるボタンを押した時に、スパっと
消えずに一旦タスクバーに格納されるのがいまいちですが。。。
まー細かい事なのであきらめます。

次は、通知領域にいるときには、
ALT+TAB でタスクリストに表示しない方法をがんばって探します。

ありがとうございました。
っていうか、ウィンドウ2つ作ればいいんでねーの?

メインをダイアログウインドウにすれば、タスクバーにも
タスクリストにも出ないよね?
そいつをトレイに登録すれば?

タスクバーやタスクリストに出したいときだけ
ダミーのウィンドウ作っとけばいいような予感。

試してないので妄想だが。(汗
571デフォルトの名無しさん:03/11/22 10:00
日付   商品名    購入価格
11/22 A 100
11/22 B 200
11/23 A 110
11/23 B 150

このようなデータから、商品の最新購入価格を
抜き出したい場合、どのような処理をすればよろしいのでしょうか?
572デフォルトの名無しさん:03/11/22 11:02
教えてください

ODBCを経由してPostgreSQLに接続し

insert into hoge values('いってよし')

を実行しました。
するとレコードの中身が

(92a4a4)(92a4c3)(92a4c6)(92a4e8)(92a4b7)

となっていたんですがこれはなんでしょう?
普通に文字として入れる場合はどうすればいいんでしょうか?
もしくはこれを文字として元通りに表示するにはどうすればいいんでしょうか?
ヒントだけでもお願いします。
573デフォルトの名無しさん:03/11/22 11:32
>>572
A.それは九分九厘、Unicode文字の配列です。

取得したレコードの中身をUnicodeのバイト配列とみなして、
それをプラットフォーム固有のエンコードに変換しなさい。
Stringクラスのコンストラクタに、配列引数を取るものが
あるかもしれません。ないかもしれません。無かったら考えてください。
574デフォルトの名無しさん:03/11/22 12:02
>>573
ありがとうございます
いろいろと格闘してみます
575デフォルトの名無しさん:03/11/22 12:50
>>562
フォームのShowInTaskbarプロパティを適当なタイミングで
falseにするってのはダメなわけ?
576574:03/11/22 14:27
行き詰まりました(^^;

>取得したレコードの中身をUnicodeのバイト配列とみなして

さらっと書かれてますが結構ウニウニになってしまいました。
取得したレコードの中身を()なしの 92a4a4 という状態で抜き出す
ために正規表現でMatchCollectionから取り出そうとしたのですが
この状態ではstring型です。
それをSystem.String.Concat()でくっつけて表示させてみたのですが
当たり前のように92a4a492a4c392a4c692a4e892a4b7と表示されてしま
います。
これらを何かの型へキャストすればよいということなんでしょうか?
>>576
お前テーブル定義どうなってんだよ
578571:03/11/23 09:39
571もよろしく。
ADO.NETでアクセスのデータです。
FormにTreeViewとToolBarを配置。
TreeViewをDock = Fill、ToolBarをDock = Rightにしたとき
TreeViewの垂直スクロールバーがToolBarに覆い被さって
見えなくなるのは仕様ですか?
>>579
経験則では隠れてるほうを最前面にしてみると直ったりする。
581580:03/11/23 23:57
あ、コントロールによってはPanelに入れないとダメとかもあるな。
ToolBarは確か。TreeViewは憶えてないや。
582デフォルトの名無しさん:03/11/24 00:15
File.Create("c:\\a\\b\\c\\d.txt")
という感じでファイルを作成するとき
a b c といったディレクトリも一緒に作成してくれるメソッド
もしくはうまい方法は無いでしょか?
Process.Start("cmd", "/e:on md c:\\a\\b\\c");

こんなんじゃだめ?
再帰処理でやるのが普通だと思うが。
なんでそんな需要があるのかは分からないが、あんまり行儀良い動作とは思えないけど。
>>583
だめ。
cmd /e:on /c "md c:\a\b\c"

CMDの引数を/?で確認しる。
たしかDirectoryクラスなら一回で作ってくれるよ
587582:03/11/24 02:10
>>583-586
Directory.CreateDirectory("c:\\a\\b\\c\\d.txt");
でうまいことできました。
どもありが豚。
588デフォルトの名無しさん:03/11/24 05:09
インデクサってなんでしょーか。
自分は対象オブジェクトを配列のように扱う機能だと思ってたんですが。
string str = "test"; んで str[2]は"s"となるみたいな。

ttp://black.sakura.ne.jp/~third/programming/cs/cs40.html
ここのコードにある public string this[int index]  って部分がどういう風に働いてるのかが分かりません。
というかこの文法自体が分かってないんですが。

このクラス内のstringは配列として既に宣言されてるので、一体どこでインデクサが絡んでるのかが
わからないのです。
>>588
stringのアクセサはちょいと特殊な感じも受けるけどね(実際はそんなことないが)
リンク先のはあんまり例が良くない。

普通アクセサを使うのはなんらかのコレクションを表すクラス。
例えば団体のメンバーの名前を集めたクラスOrgMemberCollectionがあったとする。
実際にはArrayListのmemberフィールドでメンバーを管理するけど、わざわざorgMemberCollection.Member[...]ってやるくらいなら、
(初めからコレクションの特定の位置を求める場合はmemberを求めるのと同義なのだから)直接orgMemberCollection[...]で求められるようにしよう、ってだけ。
実態は普通のプロパティとほとんど変わらない。

class OrgMember {  //実際はIListとかを実装するよな
   ArrayList member = new ArrayList();
   public OrgMember() {}
   public string this[int index] {
      get {return (string)member[index];}
      set {member[index] = value;}
   }
   public void Add(string newMember) {
      member.Add(newMember);
   }
}
もちろんアクセサを使わず、
public ArrayList Member {
   get {return member;}
   set {member = value;}
}
とプロパティでmemberフィールドを公開しても良い。
>>589
わかりました。多分ですけど。

プロパティ化する文がまだ分かってなかったのでこんがらがってたようです。
thisが何でこんな風に使われてるのかが分かりませんでした。

C++の時も表面的なクラス機能しか使わなかったので、こういう奴が出てくると思考停止します・・・・。

ありがとうございました。
591デフォルトの名無しさん :03/11/24 09:47
MP3プレーヤーって簡単につくれる?
>>571
DataTableか?
ならソートするか、ループで検索するしかない。

>>579
コントロールの配置順が問題。
コントロールの前面・背面を変更するか、貼り付け直せばOK

>>591
DirectX9SDK使えば簡単。
594579:03/11/24 20:20
>>580
なおりますた。ありがとん。
UserControlにいれると問題なかったけどめんどい。
UserControlを作るとツールボックスのWindowsフォームの一覧に
追加されますが、そのUserControlの名前を変更すると
一覧から消えてしまいます。
手動で追加し直す方法はあるのでしょうか?
一覧に出ないとデザイナへドラッグ&ドロップして追加できなくなるので。
C# で 多重起動防止をさせたいと思っています。

Mutex を 利用して多重起動のチェックは行なえるようになりました。
多重起動の場合はメッセージを表示して、アプリケーションを終了
するようにしたいのですが、これを

Form_Load でやると、一旦フォームが表示されてから、その上にメッセージ
ボックスが表示され、OK を押すとアプリケーションが終了されます。

この、フォームが表示されないように、メッセージボックスを出し、
アプリケーションを▽終了させる方法がわかりません。

どのようにやればよいでしょうか?
>>596
コンストラクタ内でやれば?
ふつうMainでやるだろ。
Application.Run()を飛ばせばいい。
599596:03/11/25 13:16
>>597
コンストラクタ内で処理したらひっかかってくれなかったんです。
ちなみに多重起動のチェックは
private bool checkTask() {
bool mutexWasCreated;
System.Threading.Mutex m = new System.Threading.Mutex(true, "form", out mutexWasCreated);
if (mutexWasCreated) {
return true;
} else {
MessageBox.Show("多重起動禁止");
return false;
}
}
としています。

>>598
Main で
static void Main() {l
try {
if (checkTask())
Application.Run(new LoginForm());

としたんですが、コンパイル時に
静的でないフィールド、メソッド、またはプロパティ 'form.checkTask()' で、オブジェクト参照が必要です。

となってしまいました。何が問題でしょうか?

>>599
そりゃcheckTask()が静的(static)じゃないのが原因だろう。
つかわざわざメソッドにする必要があるのかね。
C#でOgg Vorbisの再生したいんですけど、デコードのサンプルソースあるところ知りませんか?
C++ならxiph.orgにあるライブラリ使えば済むんでしょうが…。
やっぱりDLLを叩くのが現実的なんですかね。
602596:03/11/25 13:49
>>600
そうですね。わざわざメソッドにする必要ないですね。
なのでアドバイス通り、

static void Main() {
try {
System.Threading.Mutex m = new System.Threading.Mutex(false, "form");
if (m.WaitOne(0, false)) {
Application.Run(new LoginForm());
} else {
MessageBox.Show("多重起動禁止");
Application.Exit();
}

としてみましたが、だめです。599に示したコードでもだめ…。
むずかしいですね。。。(´・ω・`)
603528:03/11/25 14:48
XML Web サービス でSQL ServerにアクセスしてNorthWindデータベースをさわろうと
思っているのですが,どう記述しても
{"ユーザー 'MACHINENAME\ASPNET' はログインできませんでした。" }
こう出てしまいます・・.
SQL Serverへのパーミッションか何かだと思うのですが
どう設定すればよいのかご指導願えませんでしょうか・・?
604528:03/11/25 15:43
>>603
すみません,書くのを忘れました.
上のコメントはtry catchをしたけっかのメッセージです.
C# で、接続している(認識している)ネットワークカードの情報を
取得したいのですが、IP アドレスは、
Dns.Resolve(Dns.GetHostName()).AddressList;
のように取得できましたが、その NIC のアダプタ情報を取得する方法が
わかりません。

取得したいアダプタ情報というのは、
Intel(R) PRO/100 VE Network Connection とか、
Realtek RTL8139/810x Family Fast Ethernet NIC とか、こんなのです。

取得する為のクラス、メソッドなどはあるのでしょうか?
>>602
取り敢えず”try”外してみそ
そしてApplication.Runの後にはReleaseMutexを忘れなく。
607602:03/11/25 17:27
>> 606
try はずしたらできました。
どうして try の中にいるとだめで、外したら OK なのかは
わかってませんが........

ありがとうございました。
608606:03/11/25 17:30
>>602
ちなみに
Mutex(false, "form")のMutex名って合っているよね?
あ〜、WbemというかWMI?
611602:03/11/25 17:39
>>608
合っているというのはどういう事でしょうか?
何かに合わせる必要があるのでしょうか? 今は適当に付けています。

複数起動をチェックしたい実行ファイルは同一のものなので
必然的に Mutex名は同じになりますが、そういう事じゃないのですよね?

しょぼくてすみません。。。
パチンコそのものが違法すれすれなわけで
運営してるのも在日系だったりがほとんどで
連中には法や警察も無力なわけでして…
>612
超板ゴバーク?
Mutexを生成しようとして、すでに同じものが存在していれば
エラーを返しそれを拾うことによって同時起動を抑制するわけだ。

tryで受け取って何もせず放置したら意味ねーじゃん
Mutex を使用しプロセスを制御した場合、
プロセスが既に存在していた場合、その存在するプロセスを
アクティブにする事はできますか?
>>615
できるけど、Mutexとは関係無い。
結局WindowHandle必要になるので、他の手段で探すことになる。
で、色々手段があるので色々紹介するのが面倒。すまん。

つーか615=602ならまだ早いというか、基礎が足りないと思う。
TAPIで他の電話機の通話を盗聴するソフトの作り方を教えてください
618デフォルトの名無しさん:03/11/26 08:09
System.Windows.Forms.ListViewItem.ListViewSubItem
がIntelliSenseに表示されないから一瞬使えないのかと思っちゃたよ。
この処理は一体どういうものなんでしょうか。
DXのサンプルソースの中にあったんですが、()内の処理が失敗するとブロック内の処理は
行われなくなるってことですか?
usingってC系のインクルードのように使うもんだと思ってたんですが。違ってるんでしょうか。

using( Form1 frm = new Form1()){}
【.NET】荒らし対策自治スレ【WinFX】
http://pc2.2ch.net/test/read.cgi/tech/1069805286/l50
622デフォルトの名無しさん:03/11/26 17:39
多重起動防止のコードは、
C#300の技とかいう本に載ってるよ。
こういうこまごまとしたものがざっと掲載されているのでお勧め。
>>603
゛ASPNET はログインできませんでした゛で、ぐぐれ。
全然関係ないんですが、きょうびプリプロセッサって使いますかね?
アレ嫌いなんですけど…。
#if true
#else
#endif
とかは使うかな。
C++でstd::mapっていうのがありますけど
これと同じことをC#でできますか?
何を使ったらいいのか教えてください。
>>626
連想配列という解釈で良いのかな。
System.Collections.Hashtable
twintailのソースをビルドしようとしてますが
mshtmlの参照ができないためにビルドできません。
Microsoft.mshtml.dllは一体どこにあるのでしょう?
Implibだかtlbimpだかを汁
もしくは人がやった奴をゲット。たとえばfub.netとか。
参照で追加できるよ
よーく探せばある
Visual Studio で質問があります。

C# なのですが、2つのプロジェクトで共通で使えそうな
クラスファイルがあります。

Visual Studio Projects\ProjectA\common.cs があり、
Visual Studio Projects\ProjectB でも ProjectA にある common.cs
を使いたい、という事です。

で、ProjectB を Visual Studio で開き ソリューションの右クリックで
追加→既存ファイルの追加で ProjectA\common.cs を選択すると
ProjectB のディレクトリの中にコピーされてきてしまい、
ProjectA の common.cs を共通して利用する事ができません。


そういったファイル自体の使いまわしはできないのでしょうか?
>>631
ファイル>開く>ファイルで開いてコード上で右クリックしてプロジェクトに移動とか。
SQL Server のデータ を DataGrid に表示させるプログラムを
作ろうとしています。

ADO.NET の DataReader オブジェクトでの操作と
DataAdapter オブジェクトの操作での、双方の使いわけがよく
わかりません。

また、DataGrid へのデータのバインド方法として自分でコードを
書いてもできるだろうし、フォームデザイナでツールボックスのデータから
sqlConnection や sqlDataAdapter をドラッグしてウィザード
で設定する事もできるようですが、また、これらの
使いわけがわかりません。

このあたりを使いわける指標みたいなのはありますか?

逆に SQL Server のデータを表示させるのにはどのような方法を
行なうのがベストでしょうか?(速度やコーディング、後々のメンテナンス
などもふまえて)
635626:03/11/27 19:54
>>627
連想配列です。Hashtableというの調べてみます。
ありがとうございました。
636デフォルトの名無しさん:03/11/27 21:23
汎用的な2次元や3次元のベクトルクラスが欲しいのですが,
何かデファクトスタンダード的なモノってありますか?

VCの時は,Vector2,Vector3あたりを自分で作ってましたが,
C#ではみんなこれが使ってるよ〜みたいなものがあるかなぁと.
DirectXではベクトルクラスありますが,これを使うわけにも…
>>631
プロジェクト右クリック→「既存項目の追加」→ファイル選択

で、共有したいファイルを選ぶところで「開く」ボタンをそのまま押すのではなく
ボタン右側のちいさな▼を押して、「リンクファイル」を選べばコピーされない

というのじゃダメでつか?
richTextBoxについての質問です。

部分的にテキストの色を変えたいのですが、
以下のようにすると、テキストが選択されたままになります。

private void button1_Click(object sender, System.EventArgs e)
{
richTextBox1.Text = "abcdefghijklmnopqrstuvwxyz";
richTextBox1.Select(1,4);
richTextBox1.SelectionColor = Color.Red;
}

だからといって、最後に
richTextBox1.Select(0,0);
として、テキストを選択しないようにしても、
一瞬テキストが反転してしまします。

そのため、選択せずに場所だけ指定して色を変更したいのですが
そういったことはできるのでしょうか?

Rtfを変更してやれば良さそうなんですが、もっと楽な方法ありますか?


639631:03/11/27 23:53
>>637
ボタン右側のちいさな▼でばっちり。教えてもらうまでまったく
気づかなかった。ありがとうございました。
DataGrid のようにヘッダをクリックで並びかえができ、
DataGrid へのデータの追加は Listview のように Items.Add のように
できる、無料(フリー)のコントロールはないですか?

DataGrid は DataSet をバウンドしなければ表示できないようなので。。。

なんかいいのないですか?
641デフォルトの名無しさん:03/11/28 00:36
decimal 型の中身を16進数のバイトの並びで見たいですがどうすればよいですか?
>>641
BinaryWriter
MemoryStream
>>640
ListViewでViewプロパティをView.Detailsに、じゃ駄目なの?
644640:03/11/28 09:15
>>643
ListView の View プロパティを Details だと見た目は問題ないの
ですが、ヘッダをクリックして並び替え(ソート)ができないようなのですが
これも、何かのプロパティの設定でできるようになりますか?

ちなみに DataGrid はヘッダをクリックすると、昇順、降順に
並び替えが自動で行なわれます。

あとは、この並び替えができれば理想的なのですが。
646638:03/11/29 17:31
事故解決。
スレよごしスマンかった。
>646
解決法きぼん。ぐぐれば分かる話なら検索語だけでも。
>>647
漏れはこうやってみた。

RichTextBox rt = new RichTextBox();

rt.Rtf = richTextBox1.Rtf;
rt.Select(0,5);
rt.SelectionColor=Color.Red;

richTextBox1.Rtf = rt.Rtf;
649デフォルトの名無しさん:03/11/30 17:28
DataSet内にあるCDマスター(DataTable)に格納された
マスターテーブル(CD,NAME列がある)にコンボボックスを連結しています。
cmb.ValueMember=CD
cmb.DataSource=dataset1.CDマスター
DisplayMember=NAME
このままでは何も選択しないということができないので
仕方なくCD=-1 NAME="" の空レコードを入れました。
するとDBから読み出す際、この列がNULLの場合コンボは空で表示されるのですが
選択を別のものに変えて再度空に戻すと-1で更新されてしまいます。
こういう場合どうすればいいのでしょうか?
-1ならDBNullに差し替える、といった処理を加えてしまうと
変更した、と判断されるためかDataAdapter.Updateメソッドで
まったく同じレコードなのに更新処理が走っているようです。
コンボをマスターテーブルと連結し、且つ非選択も可能にしたいのです。
どうすればいいでしょうか?
今の状態では読み出し時に値を保存しておいて変化がなければ
-1をDBNullに差し替え、該当行のRowStateを変更なし状態に切り替える
という処理しか思いつきません。
宜しくお願いします。
650まぎゅぬょ:03/12/01 15:09
VisualC#.NETの初心者なのですが、(他言語のプログラミング暦は10年)
そもそも.NETが全然わかりません。
元々VisualC++.NETでつくられた関数をVisualC#.NETでも使うことって出来るのでしょうか?
あるいはVisualC++.NET→VisualC#.NETに移植する効率のよい方法をどなたか教えて下さい。
(.NETに関してはホントに素人です)
10年やってて未だに自分で調べることもできねえのかよ!
652まぎゅぬょ:03/12/01 15:22
そんな事いわずに教えてくださいよ。
自分では一生懸命調べてますよ。でも他にもいろいろやる事があって、
調べてばっかりってわけにもいかないのです。ほんと困ってます! お願いします!
既存のバイナリは、COMとDLLの関数なら.NETからつかえる。
VC++のソースは修正すればVC++.NETのマネージドコードとしても
コンパイルできるかもしれないが、これはあんまり期待しない方がいい。
>VisualC++.NET→VisualC#.NETに移植する効率のよい方法
これはないだろうな。書き直しだよ。
654まぎゅぬょ:03/12/01 15:38
>>653
VisualC++.NETのソースは、元々10年ぐらい前に普通のC言語で作られていた関数
をVisualC#に移植するために、一時的にVisualC++.NETに移植した物なのです。
だから、普通のC言語→VisualC#.NET への移植方法でもいいので教えて下さい。
いや、効率悪くてもいいです。コツを教えてほしいのです。お願いします。
ネタは放置しろ
656まぎゅぬょ:03/12/01 15:50
すみません。ネタのつもりはないのですよ。真剣に困ってます。
ほんとにC#初心者で、なにをどうすればいいのか全然分からないのですよ。
だからC++とC#の違いもよく分からず、安易に
「VisualC++.NETに移植すればVisualC#.NETにも移植できるだろう」と
思ってしまったのですよ。バカですね。いやほんとバカです。
でも困ってるのでどなたか助けてください。
Thread に関して教えてください。
時間がかかる処理を途中で中断できるようにスレッドを使おうと

_Thread = new Thread(new ThreadStart(readData)) ;
_Thread.Start() ;

のように実行しています。

readData は
this.Cursor = Cursors.WaitCursor;
// 時間のかかる処理 ループ
this.Cursor = Cursors.Default;

のような感じです。処理の中断は中断ボタンを用意して、

_Thread.Abort();

のようにやっています。

この時 readData内で変更したマウスカーソルが元にもどりません。
これは _Thread.Abort() をする時に行うしかないでしょうか?

readData 内で、try-catch-finally のようなイメージで、
スレッドの中断を拾って、という事はできますか?
>>656
「○○でも解るC#」みたい初心者本でC#を勉強。
そして、ここ行ってC++とC#の違いを見つけて
作り直すのが早いのでは?

ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vsintro7/html/vxgrfLanguageEquivalents.asp
10年やっててその程度かよ
>>656
なんか具体的になにを聞いてるのかわからん。
Cでコードが既にあるならDLLにしてC#から呼び出せば?
キーワード:DllImport
>>657
マウスイベントが入らないからじゃないの?
readData内で別イベントを受け付けれるようにしている?
”Application.DoEvents();”なり”Thread.Sleep(100);”なり入れれ
C++覚えられてC#サパーリってどんなんやねん。
10年やっててその程度っつーか、10年やってきた結果、
新しい言語を覚えるのが難しいくらい脳みそ固まっちゃったって話ですか?
>>657

try {
this.Cursor = Cursors.WaitCursor;
// 時間のかかる処理 ループ
}
finally {
this.Cursor = Cursors.Default;
}

AbortされたときはThreadAbortExceptionが送られる
その例外をキャッチしてThread.ResetAbort()を使えばAbortをキャンセルできるが、
必ずfinallyが実行されるのでそこで終了処理すればいい。
664まぎゅぬょ:03/12/01 17:55
>>658
>>660
ありがとうございます。参考にします。
>>662
その通りです。脳みそ固まっちゃってます。アホですね。
いや、どちらかというとC#がわからないんじゃなくて昔のCがよく分からないんですよ。
ポインタとか使いまくっててね。
昔のCの解析が簡単に出来ないから、苦労して解析して一からC#で作り直さなくてもいい
方法を知りたかったんですよ。
665まぎゅぬょ:03/12/01 18:03
しかし、今までVBとオラクル関係のプログラムしかやった事ないオレに、
昔のC言語の解析やら、C#をやらせる上司ってオレ以上に頭いかれてる
としか思えないよな...しかもほとんどオレ一人でやってるし...
>>664
>ポインタとか使いまくっててね。
引退しろ
10年間VBしかやってないってのもある意味すごいな
>>666
今時ポインタを使いまくるやつ(C厨)はさっさと引退しろという意味かと思って664を見たら・・・・( ̄▽ ̄|||)
669x:03/12/01 19:16
>>665
C/C++は気になるけど修得するスキルがないVBプログラマにも
C#はなじみやすいと思います。
既存コードもC++.NETじゃなくて普通のC++のDLLか何かなんでしょ。
それなら無理して移植するんじゃなくてC#から使うようにした方が
無難でしょう。
C#は頑張ればきっと理解できると思うので怯まずに言語仕様を
じっくり読んでみてください。
アプリケーション上ならどこでも砂時計にしたいのですが
this.Cursor=Cursors.WaitCursor; だと、なぜか ListView の上で
砂時計になってくれません。これは何故なのでしょうか?
671デフォルトの名無しさん:03/12/01 19:59
画像ヴューアーを作ろうとしています。
OpenFileDialogでファイルを読みこんで、PictureBoxを使って画像を表示することまでは
できました。
しかし、spaceキーで次の画像を表示する、backspaceキーで前の画像を表示するという機能の実装が
どうしても分かりません。
どなたかお願いします。
デリゲートって知ってますか。
女性のデリゲートな部分はかゆくなりやすいそうです
>>673
デリゲートな部分ってやっぱりデリゲートな部分のことなの?
r'⌒X⌒X⌒X⌒ヽ ⊂゛⌒゛、∩   ≡   パン   ≡   パーン
ヽ__乂__乂__乂__ノ  ⊂(。Д。) ≡ (´∀`)  ≡  (´∀`)∩
                       ⊂彡☆))Д´)    彡☆))3`)
                           >>673     >>674
676デフォルトの名無しさん:03/12/02 01:38
ArrayListにstring[]を追加して、
foreachで取り出して一覧を表示しようとしています。
foreach (string[] str in arrayList)
{
listViewItem.SubItems.AddRange(str);
dataList.Items.Add(listViewItem);
}
上記で実行すると、ListView(detail)の一番左の列に
何も値が入りません。
理由を教えてください。
よろしくお願いします。
>>676
それだと2列目以降のSubItemsしか加えてないことになるから。
listViewItem = new ListViewItem(str);
678676:03/12/02 08:18
>>677
できました〜
SubItemsだとだめなんですね。
ありがとうございました。
679デフォルトの名無しさん:03/12/02 10:16
VBとC#ってほとんど似てるよな。
移行出来ない馬鹿って本当にいるんだろうか。。。
固定観念にとらわれた奴とか。
VBは簡単でC#は難しいとか、VBとC#は全然違うとか勘違いしているとかね。
>>679
VBしかできないやつって、VBも理解してないやつが多いじゃん。
構造体(ユーザー定義型)を使ったことがないとか、functionを使ったことが
ないとか。
あと基礎的な素養に欠けているやつも多い。
リンクリストとかハッシュとか知らなくて、知ってるデータ構造は配列だけとか。
682641:03/12/03 01:45
具体的には
BinaryWriter
MemoryStream
を使ってどのようなコードを書けば中身が見れますか?
>>681
> VBしかできないやつって、VBも理解してないやつが多いじゃん。
そういう固定観念なくならない奴はいつでもいるんだよなぁ。
C# で下記のようなことを行いたいのですが、できますでしょうか?

テキストボックス複数行表示可能にし、その中にボタンを貼り付けたい。
複数行はスクロールバーで上下し、ボタンも一緒に動く。

イメージはこんなのです。
+----------------------------------+
|text1 |↑|
|text2 | |
|http::/example.com ■ ←ボタン| |
|あい | |
|うえ |↓|
+----------------------------------+
テキストボックスではなくても上記のようなことができればいいのですが
どなたかアドバイスくださいませんでしょうか?
685684:03/12/03 23:03
↑すみません。ずれまくってしまいました。
686デフォルトの名無しさん:03/12/04 00:30
WIndowsFormの左側にListBox(Dock:Left)、右側にListView(Dock:Fill)にして
splitterを入れるとListViewの左端がsplitterの太さ分だけ見えなくなってしまいます。
このような場合って、どう対処すればよろしいのでしょうか?
Locationなどを変更しても変わりませんでした。
ご教授お願いします。
>>686
1 ListBox(Dock:Left)
2 splitter(Dock:Left これはそのまま)
3 右側にListView(Dock:Fill)

の順番にするか、適当に最前面、最背面に移動すれば直るかと。
いつも思うんだが、「〜できますか?」ってやつは
とりあえずやってみろ。
んでできなかったら、どうして出来ないのかという点と
どうしたら出来るのかという点を聞け
>>686
親切な>>687が答えてくれてますが、>>579などで既出な質問です。
質問するときは、一応調べてから質問しましょう。
690デフォルトの名無しさん:03/12/04 06:06
質問があります。

C#2002のコードエディタでコンパイルエラーの対象になる部分のコード上に
エラーを示す波線が出ないのですけど、どこを設定すれば出るようになるでしょうか?
>>682
MemoryStream ms = new MemoryStream();
BinaryWriter bw = new BinaryWriter(ms);

Decimal d = 1234567890.987654321M;
bw.Write(d);

byte[] buf = ms.GetBuffer();
for(int i=0; i<ms.Length; i++)
{
Console.WriteLine(buf[i]);
Console.WriteLine("{0:x}", buf[i]);
}
692デフォルトの名無しさん:03/12/04 14:26
宜しくお願いします。

System.Windows.Forms.ButtonのTextプロパティに任意の文字列をセットした場合に
そのTextを途中で切れる事無く表示する為に必要なButtonのサイズを取得したいのですが
これはどうすれば良いでしょうか?
C# というかオブジェクト指向がよくわかってないのですが、
俗にいうグローバル変数みたいなのを C# で実現したい場合は
クラスを作り、その中で静的メンバを作成する方法しか思いうかば
ないのですが、これでは行儀悪いですか?

ログイン画面でユーザー名等をを入力し、それらの情報を
複数のフォームで共有したいが為に、グローバル変数的な事を
やりたいのですが。
>>693
それでいいよ。
それかデザインパターンのSingletonってやつで。
C# + .NET Compact Framework において質問です。

Labelコントロールの背景を透過にできなくて困っています。

Panel を置いて Backcolor を Transparent にし、そのパネルに
Label を置いてみたりもしましたが、透過になりません。

Compact Framework のラベルの背景を透過にする方法を御存知の方
教えて頂けないでしょうか?
>>695
これの応用で何とかならない?
PictureBox上のLabelの背景が透明にならない問題の解決法
ttp://dobon.net/vb/dotnet/control/labelonpicturebox.html
697695:03/12/04 20:33
>>696 ありがとうございます。参考にしてみましたが、
PictureBox 自体が透過にならないので、その上にのっけた Label も
透明にはなりませんでした。

どなたか御存知でしたら教えてください
trackBar1_Scroll

trackBar1_ValueChanged

どう違うのでしょうか?
フォームのOpacityをtrackBarで調節したいのですが
this.Opacity = trackBar1.Value;
でやってるのですがうまくいきません。
既定値70%で起動後は70%で表示されてますが
trackBarをマウスで動かすと100%にしか変化しません。
0まで持っていくといきなり0%になります。
よろしくお願いします。
>>698
ヘルプには
Scroll  マウス操作またはキー操作でスライダが移動すると発生します
trackBar1_ValueChanged  トラック バーの Value プロパティが変更されると発生
とある。

Opacityは double型で、trackBarはInt型なので
どちらかに変換しないと使えません。なので
this.Opacity = Convert.ToDouble(trackBar1.Value*0.01);
でどうですか。
700699:03/12/05 01:34
ごめん自己レス
this.Opacity =trackBar1.Value*0.01;
でもいけた。
701デフォルトの名無しさん:03/12/05 03:07
MessageBox.showって呼び出すと、
参照が作成されてませんとか言う
例外が出るときってある?
俺何度も出たんだけど、
MessageBox自体は参照が代入されてないって言うエラーが出るわけが無いよね?
何でだろ?
702デフォルトの名無しさん:03/12/05 03:10
誰か、見当がつく人が居たら教えてください。
>>702
あせる気持ちは分かるが、餅つけ。

参照が作成されてません?
出た例外なりエラーコードなりを貼り付けて、気長に待て。
それまで自分で考えてデバッグするのも悪くはない。足掻け。

悪いが俺は寝る。眠いのでな。
704デフォルトの名無しさん:03/12/05 04:33
すいません、あせって確かにおっしゃるとおり間違えてました。
良くある、参照がインスタンスに設定されてませんと言う例外です。
どう考えてもでるはずのない部分なんですよね。
で、色々と考えてずっとデバックしてたわけですが、
705デフォルトの名無しさん:03/12/05 04:38
コードをそのエラーが出る部分を丸ごと削除して
並べ替えたら、
全くエラーがでなくなりました。
なぜか!?
やってる処理は全く同じで、
順番が違うだけなのに、、、。
分け解りません。

おそらくc#は、コードを書き換えない部分は、
コンパイル時に全くそのまま、手をつけないで
コンパイル終了するんだと思うんですよね。
だから、その部分を幾らデバッグしても
コードを書き換えない限り、エラーが残るんじゃないでしょうか?
って言っても、
そもそも記述してあるコードにエラーが無ければ、
最初からエラーがでるわけが無いし、、、。
やっぱり分けわかめ。
順番が関係あるコードだったんじゃないのか?
707デフォルトの名無しさん:03/12/05 07:26
★☆★もうすぐクリスマス★☆★おまんこプレゼント★☆★
http://marimo.s6.x-beat.com/marimo.html
C♯とVB、VC++の違いがいまいち判りません。
本とかを見るとVBとVC++の中間と言う風に書いてありますが、
どなたか、もっと判りやすく説明してください。
>>705
>>706に同意。
すぐIDEのせいと決め付けるのは良くない。

>>708
VBとVC++はわかるの?
710デフォルトの名無しさん:03/12/05 10:28
ちょっと困っている事があります。

Windowsアプリケーションの作成で、「プロジェクト」メニューの
「ユーザーコントロールの追加」を選択してUserControl1を追加
した後に、ツールボックスのWindowsフォームタブの下に作成さ
れたUserControl1をフォームに追加しようとしたのですけど、エラ
ーメッセージが出てしまって追加できません。
エラーの内容は、何やらコントロールを読み込めなかったといった感じです。
因みに、追加したユーザーコントロールにはコードも追加せずに一切何もい
じっていません。
どうすれば追加できるでしょうか。
>>710
エラーメッセージ省略されてもなぁ。
>699
>700
出来ましたー!
ありがとうございました!
>>708
英語とフランス語とドイツ語ぐらい。
>>692
Graphics.MeasureString(button1.Text, button1.Font)
フォームをOpacityで半透明にしているのですが
その下に見えている他のウィンドウなどを普通に
操作出来るようにしたいのですが出来ますでしょうか?
よろしくお願いします。
716692:03/12/05 18:15
>>714
御回答有難う御座います。
でも、それはボタンに表示する文字列の幅を取得する方法ですね。

そうではなく、その文字列を表示すべきボタンの適切な幅はどうやって取得
すればよいのかが知りたかったのです。

DataGridのカラムに動的に変更するTextを持つボタンを表示させているので、
自動的にカラム幅=ボタン幅を調節したかったのですが、
今は諦めて固定値で対応しています。
717710です。:03/12/05 21:54
ユーザーコントロールがフォームに追加できなくて困っているのですけど、
それまでの手順と、エラーメッセージを掲載します。

利用しているのは、Visual C#.NET2002です。

1.[新規作成 - プロジェクト]から[Visula C#プロジェクト]を作成。
2.[プロジェクト - ユーザーコントロールの追加」から[UserControl1]を追加。
3.ユーザーコントロールのコーディングなしでソリューションのビルドを実行。

ここまでの手順の後、ツールボックスの[Windows フォーム]タブに作成された
UserControl1をフォームに追加しようとすると、以下のエラーメッセージが表示さ
れ追加できません。

|ユーザーコントロール 'WindowsApplication1.UserControl1' を読み込めませんでした。
|コントロールを含むライブラリがビルドされていることと、プロジェクトの参照先がコン
|トロールを含むライブラリになっていることを確認してください。ユーザーコントロール
|の名前を変更していた場合は、ツールボックスの項目を更新するために、コントロールデ
|ザイナを閉じて再開してください。

この状態からどうすればユーザーコントロールを追加できるようになるでしょうか?
以前は普通に追加できたのですけど、なぜか今はこのような事になってしまって追加
できないのです。

因みに、VB.NETでも同じで追加できません。
try〜catch〜finallyのfinallyって try〜catchの後にfinnalyなしで書くのと何がちがうの?
finallyブロックの処理が有り・無しが違う。としか言いようが無いよ。
TreeViewで、ノードを選択 → 右クリック→ 削除 の
ながれで、ノードを削除する処理を考えています。
右クリックでコンテキストメニューを表示させる
ことはできたのですが、肝心の「削除」を選択した後の
処理を書く方法がわかりません。
どうすればいいんでしょうか
721710です。:03/12/06 05:59
念には念を入れて一度削除してから再インストールした後にもう
一度試してみたのですけど、やはりエラーになってしまい追加できませんでした。

どなたか一度>>717の手順で追加できるか試してみてほしいです。
他の人が追加できたとすれば自分の環境が悪いのかもしれないですね。
try ブロックの例外を catch しようがしまいが finally は実行される
>>720
treeView.SelectedNode.Remove();
とか
treeView.Nodes.Remove(treeView.SelectedNode);
とか。
コレクションを持つコントロールの処理の基本だと思うのだが。
>>719
>>722
例外が発生してもしなくてもfinallyブロックが実行されるなら、
try〜catchの外でもいいと思うのですが…
>>725
tryの中で宣言した変数はどうするよ?
>>725
やっと意図がわかった。

catchの中で例外を再throwされることがあって
その場合finallyで保護されていない部分がスキップされてしまう。

try{
 ...
}catch(e){
 throw; // 再throw
}finally{
 // ここは実行される。
}
// ここは実行されない
728720:03/12/06 16:16
>>724

削除の方法ではなくて、コンテキストメニューが
出て、たとえばその中から「削除」を選んだという
イベントを受け取る方法がわからないという意味です。
729720:03/12/06 16:49
右クリックしたときに出てくるContextMenu を作成しているのですが、
そのContextMenu のイベントハンドラにはPopupしかないので、
そのポップアップした中の項目を選択したというイベントを
受け取る方法(あるいはその処理を書く場所)がわからないのです。

ああ、なんでこんなことがわからないのだろう・・・
どなたか知恵を授けてください
MenuItem.Clickイベント
731718,725:03/12/06 17:56
>>727
なるほど、理解できました。
ありがとうございます。
732720:03/12/06 19:37
>>730
激しくありがとう
733デフォルトの名無しさん:03/12/06 19:40
質問です。
ダイアログベースのメインFormに貼り付けたボタンを押すと
別のForm(Form2)を表示するようにしたいのですが。

Form2を追加→クラスの追加で追加し

Form2::Show();
ってやると、
error C2653: 'Form2' : 識別子がクラス名でも名前空間名でもありません。
って出ます。
どのようにすればフォームを表示出来るのでしょうか?
>>733
その質問と答え、いっぱい見ますよね^^
735733:03/12/06 20:12
過去ログのを見てやると
error C2039: 'form2' : 'APP' のメンバではありません。
ってなります。
候補一覧にはform2が出てくるのに・・・
>>733
私は、プロジェクト → Windowsフォームを追加
などで作ったフォームをShow()していますが。
737733:03/12/06 20:41
>>736
それをやっても、>>733と同じ状態になります。。
private void button1_Click(object sender, System.EventArgs e)
{
  Form2 f = new Form2();
  f.Show();
}
>733
もっぺん入門書を見て、クラスとインスタンスについて理解した方がいい。
今の状態だと、何で自分のコードは動かなくて、>738だとうまくいくのか
理解できないんじゃなかろうか。C#やっててそれは致命的だと思われ。
740733:03/12/06 21:09
>>738-739
どうもありがとうございました。
入門書で勉強しなおしてきます。

ちなみに、>>738だと
error C2065: 'Form2' : 定義されていない識別子です。
って出ます。
新たに追加したFormが、Form2ではなくてForm3とかになっているとかではないですかね?
742733:03/12/06 21:18
ちゃんとForm2になってます。
プロジェクトメニューのWindowsフォームの追加から、Form2の名前でフォームを追加。
Form1にbutton1を追加して>>738を実行。
もう一度試してチョ。
待てみんな。
733見る限り
C + + の 質 問 な ん だ が。
745733:03/12/06 22:05
え!?
C#だと思ってやってましたが・・・
ちなみに環境はVS.NET 2003です。
はじめにC#を選択しました。

>>743
やはり、駄目です。。。
>>745

744じゃないけど

> Form2::Show();

てなによ。
C# + .NET Compact Framework(CF) で相談です。

Compact Framework の コマンドボタンがシンプルで寂しいので
OFF のとき、ON のときともに、キュートな外見にしたく、
いろいろ調べています。普通の .NET Framework なら UserControl を
作成するだけでカンタンにできるのですが、CF は UserControl を
作成することができないようです。どのようにすれば実現できるのか
わからずに困っています。

Control クラスを継承して GDI で全てを自前で描くしか方法はない
でしょうか?

ON,OFFの画像を用意して それを簡単に活用できるとありがたいのですが。

どのような情報でもいいのでご存知の方、教えていただけないでしょうか?
オーナー描画機能を使ってみるというのはどうか
エディタのキー割り当てで、高速スクロールみたいのは
ないのでしょうか。
秀丸とかだと、CTRL+上下キーで高速スクロールするのですが、
VisualStudioだとカーソル位置を固定にして画面がスクロール
します。PageDownとPageUpだとスクロールしすぎるので、
4つの改行ぐらいでスクロールしたいのですが
>>749
窓使いの憂鬱辺りを使うとか。
>>745
ダイアログベースなんてのもVC#には無い概念だし。
>>750
ちと使いこなすのが難しそうなんで、VC.NET の範囲内で
解決したいです
753デフォルトの名無しさん:03/12/07 15:04
すいません。オブジェクト指向の基本的な考え方について質問させてください。

オブジェクト構造についてなのですが、
パブリックでスタティックじゃない、つまりグローバルは一切使用せずに、
きちんとしたオブジェクト指向の基本に沿って設計した場合は、
一番上の元のインスタンス(普通はc#では、メインメソッドのある、Form1クラスになりますよね。)
のなかに、色んなクラスのインスタンスをつくって、
更にその中にまた、インスタンスをつくって、、、
と言う形で構造が出来て行って、
で、結果としてDOSのディレクトリーのtree構造みたいになるわけですよね。
で、例えば、Aインスタンスの中に作ったBインスタンスとCインスタンスは、
Aインスタンスからはどっちもアクセスできるが、
BからCやCからBクラスを直接的には参照できないんですよね。
で、そう言う場合は、事前に参照を渡しておかなければならないと、、、。
で、ここで、参照さえ渡しておけば、結果としては
どこのインスタンスからでも
どこのインスタンスでも参照できるって言うのがオブジェクト指向だと考えておけば良いんですよね。
で、極論しちゃえば、
一番上のインスタンス、つまりメインメソッドのある、Form1インスタンス、
DOSのtree構造で例えれば、ルートディレクトリ(¥)の参照を、
全てのサブインスタンスに渡しちまえば、
結果としては、全てのインスタンスが全てのインスタンスにアクセスできちまう、、、
と言う話になるわけですよね。
つまり、インスタンス構造って言うのはDOSのtree構造みたいなものと言う認識であってるのか?
そして、参照を渡すって言うのは言ってみればWINで言う、ショートカットみたいなものだと認識して良いのか、
まあ、そう言う私の認識が正しいのか、間違ってるのかと言うことについて、
ご意見を聞かせてくださいませ、、、と言うのが趣旨です。
すいません、基本的なことだとは思いますが是非、お願いします。
754デフォルトの名無しさん:03/12/07 15:04
質問です。
C#でチャットプログラムとそれに対応したサーバープログラムを組みたいのですが
どこかにサンプルや解説サイトありませんか?
755デフォルトの名無しさん:03/12/07 15:22
一般論として。
間違ったアプリなら、.NET Framework の内側で AV が出るもの。と思うべきですか?

MSCORWKS.DLL の中でボコボコ落ちて困ってしまって.
デムパだな
757デフォルトの名無しさん:03/12/07 16:15
>>756
すいません。自分は753ですが、
私のレスについてでしょうか?
申し訳ありませんが、どこら辺が電波なのかだけでも
教えていただけないでしょうか?
基本的なことが自分には良く分かってない気がするのですが、
何故分かってないのかだけでも解れば少しは進歩があるきがするので。
お願いします。
>>753 スレ違い?
「デザインパターン」の「facade」を見よう。
全部見えちゃうと、依存関係が複雑になって、
テストや改修が大変になるよ。
フォームをOpacityで半透明にしているのですが
その下に見えている他のウィンドウなどを普通に
操作出来るようにしたいのですが出来ますでしょうか?
よろしくお願いします。
>>757
756じゃないけど、言ってることが無茶苦茶だからじゃないかなあ。

> BからCやCからBクラスを直接的には参照できないんですよね。
> で、そう言う場合は、事前に参照を渡しておかなければならないと、、、。

こんな設計普通しない気がするけど。俺だけ?
761デフォルトの名無しさん:03/12/07 19:12
>>758
>>760
ああ、いやそれは勿論わかります。
更に、全インスタンスに一番上のインスタンスの参照を渡すとかも
本来ありえない設計だと言うことも良く解ります。
もともとが隠蔽するのがカプセル化、オブジェクト指向の基本ですから。
実際にそう言う設計をやろうとは勿論思ってませんが、
例え話としての考え方として、
一番上の参照を渡せば、全てのインスタンスから参照できるとか、
そう言う例えは事実としてありえるのかどうか、が聞きたかっただけです。
インスタンス構造をディレクトリ構造に例えるのも、間違ってないかどうかが
聞きたかったわけです。
つまり「そういうのもアリ」って言って欲しいわけ?
2ちゃんで聞くなよ・・・
>>761
スレ違い。以下のスレへ逝け。
http://pc2.2ch.net/test/read.cgi/tech/1041658161/l50
764デフォルトの名無しさん:03/12/07 19:52
>>762
いやあ、違いますよ。
仮にやったら、そうなるのかどうか?が聞きたかっただけですよ。
ただ純粋にそれだけです。
>>763
まあ、良いじゃん。
気にするなよ。
デムパはデムパスレで。

>>754
宿題は宿題スレで。
>>761
>そう言う例えは事実としてありえるのかどうか、が聞きたかっただけです。

できるのか?と問われれば「できる」と回答するしかない。
やるべきか?と問われれば「やるべきではない」と回答するしかない。

>インスタンス構造

なにそれ?
>>761
んじゃ糞設計なのは気にしないとして、Treeに例えるのは違うと思う。
CはAの下にも作れるし、Bの下にも作れるから。

ちなみに一番上のはTopLevelControlでControl派生ならどこからでも取れるよ。
768754:03/12/07 20:11
>>765
レスありがとうございます。
・・ですが、C#の宿題スレって無いので・・・・(汗
Regex クラスで、正規表現のパターンを指定するときに
string pattern = @"なんちゃら";
Regex regex = new Regex(pattern);
みたいな記述のなかで、正規表現の文字列の前に書く
「@」は何の意味があるのでしょうか
エスケープしない
>>770
あ、そゆこと。
ありがとうです。
http://www.athomejp.com/goldfish/vcs/tcplistener.asp

System.Diagnostics.Debug.Write( "接続!!");
ってどういう処理なのでしょうか?
>>772
IDEの下のデバッグ出力ウインドウに文字列表示してる
だけっしょ
>>773
なるほど、、、サンクスです。
775デフォルトの名無しさん:03/12/07 23:31
ref とかoutとかで
変数の参照を渡せるわけですが、
メソッドやプロパティの参照を渡したりもできるのですが?

そんなこと普通はしませんかね?
クラスの参照自体を渡せば済むことなので、
そんな細かい単位で一々渡したりするようなことは
基本的に無いのでしょうか?
776デフォルトの名無しさん:03/12/08 00:10
c#は画像の反転が簡単にできますが、(ヘルプにもやり方が書いてあるし)
でも、そのときにはjpg形式の画像じゃ駄目だし、
反転する時のサイズの指定もきっちりと大きさを合わせないと駄目なんですね。
これが、ヘルプには書いてなかった、、、。
縦書きのテキストボックスを作りたいんですが
どうしたらいいですかね?

WIN32API叩かなきゃダメかな…? ハァ(´Д`)マンドクセー
>>775
メソッドの参照はdelegate使えばいい。
プロパティの参照ってなんだべさ。
そんなもの作るなよ
780デフォルトの名無しさん:03/12/08 07:12
つくっても売れないじゃないですか

ランタイムなしで配布する方法てありませんか?
誰だキミは?
マウスが Control から外れた時を拾いたいのですが、
どのようにやるんでしょう?

例えば、コマンドボタンの上でマウスをクリックし、クリックしたまま
ボタン以外の領域に行くと、ボタンはダウン状態からアップ状態に
戻りますよね?

あれと同じ事を Control から派生した自前のコントロールで行ないた
いのですが。

よろしくお願いします。
Control.MouseLeaveイベント
ttp://www.microsoft.com/japan/msdn/net/compactframework/imagebutton.asp
のコードを読んでいてわからない所があるので教えてください。

if (m_bmpOffscreen == null) // ダブル バッファリング用のビットマップ
{
m_bmpOffscreen = new Bitmap(ClientSize.Width, ClientSize.Height);
}

gxOff = Graphics.FromImage(m_bmpOffscreen);

gxOff.Clear(this.BackColor);
↑イメージを作成(読み込み)の後、.Clear するのは何故?

ここでやっているダブルバッファリングというのはあくまでも
描画されるコントロール(イメージボタン)の部分だけですよね?

おねがいします。
785デフォルトの名無しさん:03/12/09 16:51
Form1からForm2を一度開くとする
で、もう一度Form1からForm2を開く要求があった場合、Form2を閉じていなけ
ればForm2を開かないでいいようにするのってどのようにやるのでしょうか?
786デフォルトの名無しさん:03/12/09 16:55
普通にForm2.Show;;でいいんじゃないの。
787デフォルトの名無しさん:03/12/10 10:59
C#でRTCを使いたいのですが、どのようにすれば良いのでしょうか?
C++だとrtccore.hをインクルードすれば良いのですが・・・
1. 手動で ComImport 使って rtcdll.dll をインポート。
2. Visual Studio で参照の追加機能使って RTCCORELib からラッパクラスを生成。
>>788
サンクスです。
790デフォルトの名無しさん:03/12/10 15:10
たまにある現象なんですが、うちだけ?

コンパイル中にエラーが発見され、
「'System.NullReferenceException' のハンドルされていない例外が 不明なモジュールです。 で発生しました。
追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。」
と表示されるものがありますよね。中断を選ぶと
「現在の場所を表示できません。」
と表示されるやつです。

IDE上からだと、デバッグ開始ボタンかF11を押して、その後のコンパイル中に
このエラーが発生するわけです。
しかし、エラーがでたソースはそのままに、そのソース上の適当な場所にブレークポイントを設定し、
一行ずつステップインさせていくと、何故かエラーが出ずにコンパイルが完了できてしまう場合があります。

その後に起動されるプログラムは、最新のソースがきちんと反映されたものです。
(つまり、変更前のバージョンのexeを起動しているわけではない)

その後、何回かソースを消したり書いたり、VisualStudionの再起動を繰り返していると、
ふとした拍子にコンパイルが通ってしまいます。

同じような現象に見舞われた人、いませんか?
791790:03/12/10 15:40
問題のあるソースをコマンドラインからコンパイルしてみたところ、普通に通りました。
じゃIDEのバグかな。
MSに通報しる。
ちょっと興味深い記事。
www.radiumsoftware.com/0312.html#031205
C#でRTCの利用を考えてるのですが
サンプルコードの類はありませんか?
795デフォルトの名無しさん:03/12/11 00:21
C#にVBのBeepに相当するものってありますか?
MessageBeep
797デフォルトの名無しさん:03/12/11 12:02
ジャグ配列ってありますよね。
あれって、要するに
配列のメンバをもった構造体やクラスなどの配列、、、
と、まったく同じと考えて良いんですよね。機能としては、、、。

それでも、わざわざ言語として用意してあるってことは、

ジャグ配列を使ったほうが、効率が良いってことなんですかね?
処理速度やメモリ占有量などの点について、、、。
それとも、別に特に違いは無いんですかね?

構造体を使ったほうが名称をつけられるので記述性、可読性が高まって便利な気が自分はするんですよね。
どっちが良いんですかね?
知ってる方いらしましたら教えてくださいませ。
>>797
C#のジャグ配列 = Cの多次元配列
C#の長方形配列 = ??
>>797-798
・ジャグ配列をC++的に言うと、
int* array[M];
for(int i=0; i<M; ++i) array[i] = new int[N];

array[i] は行ごとに全部違う長さの配列に出来る。
array[i][j] == *(*(array + i) + j)。

・矩形配列は
int array[M][N];

array[i][j] == *(array + N * i + j)。

矩形配列の方が乗算が必要な分、ほんのちょっと低速なかわりに、
sizeof(int*) * M の分の領域が不要で、ほんのちょっとメモリ消費は少ない。
800デフォルトの名無しさん:03/12/11 15:43
>>798-799
ありがとうございました。
801デフォルトの名無しさん:03/12/11 15:49
インスタンスのメソッドを使うときに引数を渡したりしますが、
こう言うのって、いちいち渡すくらいなら、
最初からインスタンスを作るときや初期化時などに参照を渡しておけば
メソッドを呼ぶときにいちいち引数で渡す必要が無いので
そのほうが楽だと思うのですが、どうですかね?
基本的にはなるべく引数で渡すようにするが、
あまりにも頻繁に使用するときは、参照を最初から渡して置くようにするのが
普通のコーディングスタイルなのでしょうか?
つまり、効率の問題ですかね?
それとも別にどっちでもいいような問題ですかね、これは。

お願いします。
効率というよりクラス設計の問題と思われ。
クラス同士に密接な関連があるなら、互いの参照をフィールドに持って当然でせう。
>>801
クラスのインターフェースを設計する時は、
下の欠点がどれくらい許容できるかを考えながらしてる。

プロパティで持つことの利点
1. メソッドをコールするときに引数の指定を減らせる
2. コンポーネントであれば、設計時に値を設定できる

欠点
1. あまりにも項目が多いと設定し忘れてしまい、実行時のエラーになりやすい
  引数であればコンパイル時にエラーを出してくれる
  コンストラクタで渡すようにすれば設定し忘れは軽減できる
2. 値が頻繁に変わるときにはコーディングが逆に煩雑になる
  特に元の値を保存して一時的に別の値を使いたいときなど
804デフォルトの名無しさん:03/12/11 17:55
>>802-803
ありがとうございました。
805デフォルトの名無しさん:03/12/11 20:39
refとかoutとかについてなのですが、
この型をフィールドに指定することはできないのでしょうか?
やはり、変数を普通に作ってそれをクラスや構造体で包んで、
その参照を渡す、、ラッピングって言うんでしたっけ?
と言う方法をとるべきなのでしょうか?
それとも、そんな細かい方法はとらずに、
参照を渡したい変数のある、クラスの参照ごとまとめて渡しちゃえば良いんですかね?
めんどくさいことはせずに、、、。
ListViewの項目をボタンにするようなことはできますか?
具体的にはYahooオセロのラウンジのテーブル部分のような物を作りたいのですが。
807デフォルトの名無しさん:03/12/12 02:14
ロングホーンから
GDI+も早くなりますかね?
今より。

それとも
全然関係ないですかね?速度には。
自分はGDI+を使ったゲームとか考えてるんですが、どうですかねー?
>>807
http://pc.watch.impress.co.jp/docs/2003/1031/kaigai040.htm

> UI部分をGDI/GDI+ベースからDirectX 3Dベースに移行
809デフォルトの名無しさん:03/12/12 03:12
>>808
ありがとうございます。
大変すばらしい構想だとは思いますが、、

自分みたいにGDIなら何とか使いこなせるが、
ダイレクトxは触ったこと無いよって人にはつらい話になるんですかね?
それともダイレクトxがGDI並みに扱いやすくなるんですかね?
少なくともGDIがやるようなレベル、
本当に単純な2d画像しか扱わないって場合は、簡単な方法で
扱えるようになってくれてるんでしょうか?
今チャットソフトを作ってるのですが。

private void AddLog( string strText )
{
// ログに追加
richTextBox1.Text += "\n";
richTextBox1.Text += "<自分>" + strText;

}

こんな感じで処理して、コントロールから文字があふれたらスクロールバーが出るようになってるんですが
バーが出ても、スクロールが自動でされないんです。
いちいちバーを自分で動かしてやるのも変なので、自動でスクロールさせたいのですが
どうすれば良いのでしょうか?
フォームにパネルを2枚セットして、このメソッドで切り替えようとしているのですか、

 public void ChangePanel(Panel p) {
  if(p is LoungePanel) {
   Lounge.Show();
   Table.Hide();
  } else if(p is TablePanel) {
   Table.Show();
   Lounge.Hide();
  }
 }

Show()の部分でプログラムがハングしてしまいます。
>>811
PanelがControls.Add()されてなかったりしない?
813デフォルトの名無しさん:03/12/12 14:37
TablePanelって名前が非常に気になる・・・・

ShowってどっちのShow?
refやoutの引数で値を受け取る関数を作りたいのですが
返り値が不要なときにNULLを渡すにはどうすればよいのでしょうか?
815811:03/12/12 21:09
>>812
Addされてなかったら表示すらされない気が。

>>813
Show()って2つもあったっけ?

仕方ないので
Table.Location = new Point(800, 0);
Lounge.Location = new Point(0, 0);
とやってごまかしてます(´・ω・`)
C# のRegex なるクラスをC++ で使いたいのですが、簡単に
出来ますか?
C++.NETなら可能。.NETでなければ無利。
818810:03/12/13 00:02
(´・ω・`)
819810:03/12/13 00:21
すみません、事故解決・・・

richTextBox1.SendMessage(Microsoft.Win32.Interop.win.WM_MOUSEWHEEL, -120 << 16, 0);


なんですね、>過去ログより。

でも、こんな荒業でしか無理なのですか?
なんか、無理やりでスマートじゃないような・・・
820810:03/12/13 00:56
あぅ、駄目だった・・・
鬱だ・・・

やっぱ、C++に戻った方が良いや。
>>810

richTextBox1.Select(rt.Text.Length,0);
richTextBox1..ScrollToCaret();

こういうのはダメなのか?
822821:03/12/13 00:59
微妙に間違えた: rt → richTextBox1
ログ解析用のDLLを作ろうと思っているのだが、
グラフ描画用のUIはC#でつくり、
ログ解析用のDLLはSTLの使えるC++(.NET)で、
C#のRegexクラスを使って作ろうと思っています
C++.NETで、Regex に相当するようなクラスってあるんでしょうか
824810:03/12/13 03:05
>>821
駄目です。
うまくスクロールしてくれません。
825810:03/12/13 03:14
テキストボックスなら簡単なんだけどねぇ・・・

// ログの追加
private void AddLog( string strText )
{
textBox1.AddItem strText
textBox1.TopIndex = textBox1.NewIndex;
}

これでOKだから・・・・
>>823
標準 C++ のライブラリにはないけど、
ネットで探せば C++ 用の正規表現ライブラリなんていくらでもある。

あと、C++.NET 使うんだったら .NET Framework のライブラリ全部使える。
System.Text.RegularExpressions
を使いたいのだけどManagedC++ で
#using<System.Text.RegularExpressions>
とかやってもだめだった
どうやって、組み込むのでしょうか
C#も終わったか
>>827
#using <System.dll>
using namespace System::Text::RegularExpressions;
830デフォルトの名無しさん:03/12/13 18:37
俺、今GDI勉強してるんだけどさ、
次期osである、ロングホーンでは
なくなっちゃって、勉強した意味がきれいさっぱり
なくなってしまうのですか?
それとも一応は残るのですかね?
>>830
お前は恥ずかしい奴だな
GDI+で書いとけばシステム側が勝手にやってくれるだろ

多分
☆★☆★★☆大バグレス☆★★☆★☆

      ⊂⊃
     (\  (\
      /  ⌒  ヽ   ☆.。.:*・゜
 (\ |  ● _● |   /
 (ヾ☆| 〇  〜 ○) / このレスに出会ったあなたは
  '''//|       ヽつ
  (/(/| ヽ_|    |    近々大バグを出すでしょう。

☆★☆★★☆大バグレス☆★★☆★☆
refやoutの引数で値を受け取る関数を作りたいのですが
返り値が不要なときにNULLを渡すにはどうすればよいのでしょうか?

不要なデータでも無理して受け取る方法以外でお願いします
結構大きなデータなので
>>834
refやoutでやりとりするのは所詮参照なんだからたいしたこと無いし。
836デフォルトの名無しさん:03/12/13 19:53
>>834
絶対に使わないような返り値の値を使えばいいんだよ。
たとえば、100000以上の値はまず使わない変数の場合は
100001を返して、帰ってきた値がそれ以上だたらnullと同じ処理をすればいいんだよ。
enumで100000をnullと定義しておけば、
if文でもnull以上か?って記述できるしさ。
837デフォルトの名無しさん:03/12/13 19:59
マウスの入力を受付つつ、
同時に画像処理をしたい時とかは
いったいどうすれば良いんですかね?
マルチスレッドとかそういう概念を学ばなければいけないのでしょうか?
すいませんお願いします。
838834:03/12/13 20:04
>836
どうもありがと
早速その方法で試してみます
839827:03/12/13 21:38
>>829
ありがとうございます!
840デフォルトの名無しさん:03/12/13 23:47
AクラスにもBクラスにも共通する、ENUM型を作りたいのですが、
そのときのENUM型はどこへ記述すれば良いのでしょうか?
どっちのクラスにも書いちゃえば良いのでしょうか?
それとも、インターフェイスクラスを作ってそこへ記述して
どっちのクラスにもそのインターフェイスを継承するのが
一番エレガントなのでしょうか?
いろんなやり方がある気がしますが、
何が一番エレガントでしょうか?
>>840
同じネームスペース内に。
842デフォルトの名無しさん:03/12/13 23:55
!?
それで良いんでしたっけ?
すいません、試してみます。
俺に何でも聞けや!
ネットランナーで鍛えたぜ!
創刊号から全部持ってる。
まかせろ!
844デフォルトの名無しさん:03/12/14 00:19
そのとおりでした。
すいませんでした。
ただ、クラスが3っつあって2つのクラスだけから参照したいって言う場合
とかは、やはり、インターフェイスとかを使うんですかね?
845810:03/12/14 00:24
>>843
じゃあ、スクロール自動的にさせる方法をお願いします。
>>844
ネームスペースの切り分け方がしっかりしてさえいれば
ネームスペース直下で問題ない。
そんなこと気にするよりも、ネームスペースの切り分けが適切かどうか気にしろ。

っていうか、C# でインターフェース内に enum 定義できたっけ?
"error CS0524 インターフェイスで型を宣言することはできません。"
だめぽ
848デフォルトの名無しさん:03/12/14 00:57
>>846>>847
なるほど。ありがとうございました。
849デフォルトの名無しさん:03/12/14 01:24
intやfloat型の戻り値は指定できますが、
ENUM型の戻り値は指定できないんですね。
記述がちょっとエレガントにならないな、、、。
一度ENUM型の変数にint型を通して入れなおさないと駄目ですね。
しかも、キャストを加えて、、、。
ENUM型をそのまま戻り値に指定できたら良いのになぁー。
戻り値の型って何の?
メソッドの戻り値なら enum 型指定できるぞ。
851デフォルトの名無しさん:03/12/14 02:25
そうなのですか?
漏れはなんでできないんだろうか?
streamWriter.Write(richTextBox1.Text);
こんな感じで、出力してるんですが
ログにしたいので、追記したいんです。
一度クローズしてしまうと、追記できないし・・・

追記するにはどうすればいいのでしょうか?
>>852
StreamWriter のコンストラクタに
StreamWriter( string path, bool apend )
というコンストラクタがある。
apend をTRUE にすればいいんでないかい?
>>853
サンクスです。
855デフォルトの名無しさん:03/12/14 06:11
質問です。
C#で、フォームにhtmlを表示するにはどうすれば良いのでしょうか?
IEのコンポーネントを貼り付けるんだと思うんですけど、どうやれば良いのでしょうか?
>>855
ツールボックスで右クリック → アイテムの追加と削除 → COMコンポーネント
で「Microsoft Web Browser (C:\WINNT\System32\shdocvw.dll)」を選択
>>856
ありがとうございます。
COMですか、、、.NETでは不可能なのですかね?
string のSplitメソッドで空白で区切った文字列の配列を
得たいのですが、たとえば以下のような文字列があるとして
string str1 = "a b c";
string str2 = "a b c";
空白が必ずしも一文字と限らない場合でも
Split したいのですが、簡単に実現できる方法はないでしょうか
ちなみにstr2 でstr2.Split(' ')とすると
帰ってくる配列は先頭からa,空白,空白,b,cとなってしまいます
859853:03/12/14 12:14
>>853
しまった
str1 は a,空白,b,空白,c
str2 は a,空白,空白,b,空白,c
です。
>>859
君!他人の騙りはいけないよ!!
861859:03/12/14 12:37
おっと、間違えてしまった。
853 ではなくて 859に対する訂正でした
ちなみに自己解決しました
Regex クラスを使って、以下のような感じで
Regex r = Regex( "(?<a>\S+)\s+(?<b>\S+)\s+(?<c>\S+)\s" );
可変の場合に対応できてないけど。
Regex.Split("\\s+");でどうかね
863859:03/12/14 12:52
>>862
あ、そんな方法がありましたか。
ありがとうございます。
勉強になりました。
this.axWebBrowser1.Navigate2("log.htm");

という感じで、やろうと思ったんですけど。
error CS1501: 引数を '1' 個指定できる、メソッド 'Navigate2' のオーバーロードはありません。

と出ます。
何がいけないのでしょうか?
解説サイトでは、これでうまく行ってるんですけど・・・
>>864
そのサンプルはVBなのでは?
C#では引数を省略できないよ。
>>865
どうもありがとうございました。
サンプルはVBでした(汗
867864:03/12/14 14:35
度々申し訳ないですが。
これを、自動的にスクロールするにはどうすれば良いのでしょうか?
>>867
自動的にスクロールってどんなのかわからんが、
HTMLDocument doc = (HTMLDocument)axWebBrowser1.Document;
HTMLBody body = (HTMLBody)doc.body;

for (int i = 0; i < body.scrollHeight; i += 10)
  body.scrollTop = i;

こんな感じのこと?
869デフォルトの名無しさん:03/12/14 21:09
今ファイルの入力の処理を作ってるんですが、やっぱりバイト型で読み込んで編集する方が
早いんでしょうか?
>>869
バイトで編集するならそうだろうね。
馬鹿なのかなあ。
871デフォルトの名無しさん:03/12/14 22:05
>>869
処理の前後でSystem.currentTimeMillis()の値取ってきて
差を求めて時間を計測してみりゃいいだろうがッ!!!

まさかとは思うが……Bufferedなクラス使ってるんだろうな?
列券型のオブジェクトにメンマ関数を追加する方法を教えてください
>>871
それってJavaじゃんw
>872
まずタケノコを採ってこい。話はそれからだ。
メンマは竹でしょ
竹でつくるべきだが、タケノコでつくったものもあるな。
>>869
どんなファイルでどんな処理をするのですか?
>>877
メタセコイヤっていうソフトのデータファイルを使って
DirectXに直接そのデータからできるオブジェを表示させようかなと。

今の段階は取得がうまく言ってるかどうかテキストボックスに表示してたんですが、
データを分解して格納するより、テキスト表示させる処理の方が重かったようです・・・・

分解された文字列は配列にそれぞれ入れて、後はMQOの内容の規則性にそってデータを吸い上げてます。
普通はどうやるんだろうかと思いつつやってたので質問してみました。
こういう処理を取り上げているHPとかもし知ってたら教えてもらえると助かります。
879864:03/12/15 00:44
>>868
そうです。
object Zero = 0;
object EmptyString = "";
this.axWebBrowser1.Navigate(Application.StartupPath + "\\log.htm",ref Zero, ref EmptyString, ref EmptyString, ref EmptyString);

//スクロール
mshtml.HTMLDocument doc = (mshtml.HTMLDocument)axWebBrowser1.Document;
HTMLBody body = (HTMLBody)doc.body;

for (int i = 0; i < body.scrollHeight; i += 10)
body.scrollTop = i;

こんな感じで書いたんですけど。
オブジェクト参照がオブジェクト インスタンスに設定されていません。
って出ます。
どうすれば良いのでしょうか?
>>879
axWebBrowser1.Documentプロパティは、Navigateが完了して
DocumentCompleteイベントが呼ばれてからじゃないと取得できないよ
たぶんそれが原因と思う
881864:03/12/15 01:26
>>880
ありがとうございました。
無事できました。
質問です、
テキストボックスコントロールで
エンターを押すと、ビープ音が鳴るのを止めたいのですが、どうすれば良いのでしょうか?
自己解決しました。
MutiLineをtrueにすれば鳴らなくなりました。
ビープ音かよ!

俺はビープ音がむかつく為に
開発マシンにサウンドカードを刺した
DataGrid に関するわかりやすいサンプルや
サイトはないでしょうか。あるいは書籍とか・・・
DBとの連携はしないで手動でデータを入れる形を
考えています
886デフォルトの名無しさん:03/12/15 21:08
異なるクラス間で変数(定数)を共有したい場合はどうすればいいのですか。
887デフォルトの名無しさん:03/12/15 21:43
同一クラスを継承せよ。
888886:03/12/15 21:48
C++ の extern みたいなことは出来ないんですか?
>>885
どぼん!の .NET Tips - DataGridコントロール(System.Windows.Forms)(全表示)
http://dobon.net/vb/dotnet/datagrid/all.html

Windows Forms FAQ - Windows Forms Datagrid
http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp

@IT:.NET TIPS - Webフォーム - DataGridコントロール
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html#category
>886
public staticなフィールドを持つクラスを作って
そのフィールドを参照するとか。
891デフォルトの名無しさん:03/12/15 21:58
C#って動的配列ないの?
Arrayクラス見てもなんも書いてないんだけど…
892886:03/12/15 22:04
>>890

確かにその方法も考えたんだけど、コードが読みにくくなるから結局クラスごとに毎回宣言してる・・・。
>892
別のクラスに同じ定数宣言しまくると
修正するとき全部忘れずに修正せんといかんということに注意。
コードの読みやすさと保守の簡便さ。
そこはもまい自身に秤に掛けてもらうしかない。
894デフォルトの名無しさん:03/12/15 22:16
ひとつの変数だけを持っているクラス、または構造体をつくって、
その参照だけをすべての参照したいクラスへ渡せばよい。
895デフォルトの名無しさん:03/12/15 22:18
>>891
Stringは確か動的だったけどな。
896 :03/12/15 22:23
>>891
std::vector 的なものが欲しいの?
ArrayList なんてはまさにそれだけど
>>889
ありがとうございます。
参考にしまっす
>>896
おお!ArrayListがまさにそうです。ありがとうございました。
同期について教えてくれ。
変数valueを、Aのスレッドが書き込み、Bのスレッドが読み込むという場合でも
同期させなければならない?
900デフォルトの名無しさん:03/12/15 23:48
UserControlを派生して作成したUserControlがあります。
これを派生して機能を追加したいと思いソリューションエクスプローラの
右クリックの追加から継承コントロールの追加を使い派生させました。
早速派生したコントロールをデザイナ上で開こうと思いましたが
以下のエラーメッセージが表示されデザイナで編集することができません。
=================================================================
ドキュメントの読み込み中にエラーが発生しました。
このエラーを修正してから、再度ドキュメントを読み込んで下さい。エラーメッセージは以下の通りです。
ファイル内にデザインできるクラスがないため、このファイルのデザイナを表示できませんでした。ファイルの以下のクラスがデザイナで見つかりました。
UserControl1 --基本クラス 'NAMESPACE.BASSCLASSNAME'を読み込めませんでした。アセンブリが参照されているか、またはプロジェクトの
一部である場合はビルドされていることを確認してください。
=================================================================
派生元ユーザーコントロールと同じソリューションで且つ同じnamespace内なのに
参照を追加しなくてはいけないということでしょうか?
試しに追加してみましたが追加することによって派生されたコントロールはデザイナ上で編集できる状態になりましたが
今度は派生元をデザイナで開けなくなってしまいました。
「メンバ Locationの宣言が重複しています。」
というエラーです。
これは参照を追加したので同じクラスが二つできたから、という風に理解しています。
話を戻しますが自分で継承したユーザーコントロールをさらに派生させ同一ソリューション内で管理するようにするには
どうすればいいのでしょうか?
よろしくお願いします。
質問です。

WindowState = FormWindowState.Minimized;
ShowInTaskbar = false;

でタスクバーに仕舞えるようにしてたのですが

WebBrowserコントロールを貼り付けると
タスクバーに仕舞う時に、妙な空白の項目が、タスクバーに残ります。
仕舞う時に、axWebBrowser1.Visible = false;にしても駄目です。
どうすれば消えるのでしょうか?
902901:03/12/16 05:47
なんか、WebBrowserコントロールが、フォームからはがれてる感じで
一度仕舞って、再び表示した時に、フォームからWebBrowserの内容が消えてます。
903デフォルトの名無しさん:03/12/16 09:08
質問があります。
実行時にコマンドラインパラメーターを与えて実行したいのですけど、
IDE上から実現するにはどうすればいいでしょうか?
904aar:03/12/16 09:30
#nsupdate
>update add (名前) TTL IN A (IP)
>send /改行(update要求)
>quit
あるトリガーをうけとったら上記のようにAレコードの書き換えを
Cで実現させたいのですが、わかる方お願いします。
>>903
IDEにも色々ありますよね。
906デフォルトの名無しさん:03/12/16 09:56
>>905
無理って事ですかね?
スタートメニューの”ファイル名を指定して実行”だと、コンソール画面が自動的に
閉じるので出力が確認できないのですよね。
>>906
漏れも無理だと思うな。メニューの「プロジェクト」から「プロパティ」開くと
「構成プロパティ」ってのがあってその中の「デバッグ」開くと
「開始オプション」に「コマンドライン引数」というのがあるけどまさかとは思うもの。
そだね。俺も無理だと思う。まさか>>903の言うIDEがVisualStudioだとは到底思えないしね。
909903(*´∀`*):03/12/16 12:10
環境はVC#でした。

>「開始オプション」に「コマンドライン引数」というのがあるけどまさかとは思うもの。
これでできました。
やりたかったのはコレです。

  for (int i = 0; i < args.Length; i++)
    Console.WriteLine(args[i]);

レスを見てよかったです。(*´∀`*)
その質問の仕方で答えてもらえたのは単に運が良かっただけ。
終わり方も悪い。礼ぐらい言ってもよさそうなものだが。
ほんとここ2年ぐらいでム板に自己中が増えてきたな。
>>910
私の場合は質問して答えてもらったときは「礼を言う」
質問に答えたときは「礼を期待する」

一応、単純な質問でも面倒くさがらずに
答えるようにしているつもりです
いざ、自分が単純な質問をしたくなったときのために・・・
>>911
何を言いたいのかさっぱりわからん。
>>903は単純な質問どころか、ちゃんと質問してるとはいえないわけだが。
(*´∀`*)
914 :03/12/16 14:22
確かに903の終わり方は最悪ですね
培ってきたよい雰囲気が台無しになってしまった気がします
(*´∀`*)
↑これって、そんなに駄目なのか?w

殺伐したものが大好きなスレなのですね!!
第一線の技術者って、こんな2chのプログラム掲示板って閲覧するんですかね?
917デフォルトの名無しさん:03/12/16 14:55
RichTextBoxでドラッグ&ドロップを受け付けるようにしたいんですが、
どうしたらいいんでしょうか?
TextBoxにはそのものズバリな"DragDrop" "DragEnter"等のイベントがあるんですが・・・
>>916
第一線の人はこんなとこ見ないよ。
有名なMLとか、電子会議室とかで活躍している。
>>917
サンプルコードを作成するのでマッテテネ!!
>>917
そうそう、何をドラッグ・ドロップするのですかね?
>>903は (*´∀`*)←で感謝の気持ちを表現したのじゃないのか?
922917:03/12/16 15:20
>>920
おお、早速レスがついている!
ありがとうございます。
ドラッグしたいファイルは、テキストファイルです。
TextBoxやリストボックスを使ったサンプルコードはあるようなのですが、
肝心のRichTextBoxが無くて・・・
>>922
エクスプローラからとかのテキストファイルをリッチテキストボックスにドロップしたら
そのファイルの中身を表示するって事ですかね?
924917:03/12/16 15:31
>>923
>エクスプローラからとかのテキストファイルをリッチテキストボックスにドロップしたら
>そのファイルの中身を表示するって事ですかね?
そうです。
>>924
スマナイ
外部からのやり方は、
DragAcceptFilesなどのAPIを利用したやり方しか知らないですね。
.NETFrameworkではどうするんだろうね?
Windows フォームの RichTextBox コントロールにおけるドラッグ アンド ドロップ操作の実行
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbtskperformingdragdropoperationswithwindowsformsrichtextboxcontrol.asp
>有名なMLとか、電子会議室とかで活躍している。
MLで活躍って何だ?
Delphiの世界でいうと吐駄さんのような方ですね
929901:03/12/16 22:47
(´・ω・`) どなたか解りませんか?
>884
デバイスマネージャでとめようよ。遅レスだけど。
unionはないの?
933デフォルトの名無しさん:03/12/17 17:28
socketでSSL通信をしたいのですが
サーバーからエラー400が返ってきて
httpで通信されているのでSSLで通信しろみたいなことが返ってきます。
SSLで通信するにはどうすればいいのでしょうか?
やりたいことは●のログインです。
それ用のDLLがなかったか?
>>933
自分も●ログイン野郎と思ったけど、なぜか出来なかった。
ヘルプに
> SSL を使用するコード例を次に示します。
> String MyURI = "https://www.contoso.com/";
> WebRequest WReq = WebRequest.Create(MyURI);
と書いてあるが、>>933のエラーで駄目なんだよな。
結局C++でDLL作ってDllImportしたよ、、。
9361:03/12/17 20:16
⊂(゚ロ゚⊂⌒`つ≡≡≡≡≡≡≡≡≡≡
2ゲット封じ
⊂(゚ロ゚⊂⌒`つ≡≡≡≡≡≡≡≡≡≡
>>930
温度やファンの異常とかわからなくなるだろ
938デフォルトの名無しさん:03/12/17 21:06
メソッドの内部でビット演算する為に
挙列体を引数に与えたいのですがうまくできません。
やりたいこととしては
enum Em
{
public a=1;
public b=2;
}
public void Func(Em val)
{
}
この定義があるという前提で
Func(Em.a+Em.b);
として呼び出したいのです。
上記の例では+演算子が挙列体に対応していないのでエラーが出ます。
VB6でいうと
MsgBox("msg",vbDefaultIcon1+vbOk)
のような呼び出し方法がしたいです。
今は仕方なくpublic void Func(int val){}で宣言し
Func((int)Em.a+(int)Em.b);
と呼び出しています。
どうすればいいでしょうか?
よろしくお願いします。
939933:03/12/17 21:06
はじめはHttpWebRequestでしていたのですけど
エラーがでてうまくいかないのでSocketで試してみたんですけどやはりだめみたいです。

>>935
外部DLLで取得したセッションIDで読み込みうまくいきましたか?
ERRORもうつかえません となるのですが、、
>>938
Func(Em.a | Em.b);
enumコンストラクタやメソッドってどこで書くのでしょうね?
>>938
>>940&[Flags]属性

それと
enum Em
{
public a=1;
public b=2;
}
じゃなく
enum Em
{
a = 1,
b = 2,
}
ね。
>>941
enumにそんな物はない
944名無しさん♯:03/12/17 21:19
新スレドゾー ( ゚д゚)ノ http://pc2.2ch.net/test/read.cgi/tech/1071663456/l50
>>943
structにはあるのになぜ?
946デフォルトの名無しさん:03/12/17 21:21
VSですけどデザインとソースを切り替えるショートカットはどこですか?
F12押しても切り替わりません
>>945
定数だから。
constにコンストラクタを作るかい?
948最凶VB厨房:03/12/17 21:24
メニューの表示のとこは見たか?
.NETにもregistryを操作するクラスは一応ありますね。
しかし、値の種類が明示的に指定できないのであります。
REG_RESOURCE_LISTやら REG_QWORDだとか

これはいわゆる未完成の不良品なのでしょうか?
950938:03/12/17 21:31
>>940
できました。
頭の中で言語がぐちゃぐちゃになってました。
ありがとうございます。
>>942
そういわれてみれば確かにそうです。
今考えるとなぜそうしたのかわかりません(汗
>>949
代用できるので。
WinFXではあるみたい。
>>948
ありました!!
ありがとうございます
>>949
いまの.NETランタイムの仕様自体が試作みたいなものだからね
ほしい機能がないなんてことはざらにある

まあWinFXになれば一通り揃うんでねーの
>>901=929
まだレス無いかな?めんどくさいから見てないけどレスしておくよ。
ShowInTaskbarをfalaseにするとwindow内のActiveXに破棄のメッセージが行くバグ。
1.0でバグとしてMSが挙げてたけど1.1でも直ってないと思う。

タスクトレイに入れるなら、FormのVisible = falseでもタスクバーには出ない。
ShowInTaskbarだけ無かったことにすればなんとかなるはず。
>>954
falaseてなんだ。false。
956901:03/12/17 23:15
>>954
サンクスです。
そういう事だったのですか・・・

FormのVisibleをfalseする事で解決しました。
957デフォルトの名無しさん:03/12/18 03:00
ところで漏れが持ってるc#は
2001年バージョンなんだけど、
2003年のにバージョンアップした方が良いのかな?
別に問題ないよね。しなくても。
みんなはちゃんと、バージョンアップとかしてるのでつか?
958デフォルトの名無しさん:03/12/18 05:51
AAA<CR>BBB<CR>CCC<CR><CF>
というデータがあって
それぞれの値を取り出したいのですが
C#にはsscanf()に相当するものはないのでしょうか?
>>958
splitじゃだめ?
>>958
scanf 見たいな事は String クラスとか Regex クラスの機能を使ってやる。
perl みたいな感覚。
>>810
同じ問題(チャットの自動スクロール)ではまってましたが、先ほど解決法見つけました
ttp://www.myprofile.ne.jp/proshile+blog+2003+11+5
>2003年11月06日(木)   RichTextBoxのカレットの移動  /  プログラム  
参照。 フォーカス食わさないとダメらしい…

※なんでスクロールバーを直接弄れないんだろうか…_| ̄|○
>>961
810じゃないけど感謝!
結局DLL呼ばないと何も出来ないC#なのであった

後半へつづく
やはりWin32APIは全能だ…当たり前だけど。
>>963
その通り。
System.dll他たくさんが無いとどうにもならないからね。
次のLonghornでは.NET Frameworkが主流になって
WIN32APIはエミュレーションだけになるとか言ってますが
いまの完成度(というか充実度)じゃ先が思いやられますね

そして、さらに時が進むと今度は
WIN32APIが新アーキテクチャの足を引っ張る罠

仕事とはいえ、ゲイツと仲良くするのも楽じゃありません
>>966
ゲイツはお前のこと友達だと思ってないよ。
( ´д)ヒソ(´д`)ヒソ(д` )
int.ParseとConvert.ToInt32はどう違うの?
>>969
同じ
API呼ばないとレジストリエディタの一つも作れないのね
>>971
作れるけど
>>872
むり
直接レジストリファイルのバイナリ処理をする。
とか?w
>>974
ん?レジストリ関係のクラスはあるけど。もちろんWindows固有だけど。
971==974なのかなあ?
普通に見つかると思うんだが。
>>974
API呼ばずにどうやってOpenすんの?
977デフォルトの名無しさん:03/12/21 02:32
>>969
int.Parse は string しか変換できないが、若干、速い
978デフォルトの名無しさん:03/12/21 12:55
家でちょこっと最近話題の"D言語+SDL"を触ってみたんだけど、
"SDL"ってC#から使えるのかな?
[DllImport("SDL.dll")]とかで。
>>978
SDL のこと、そんなに詳しくないからはっきりとはいえないけど、
ソースで提供されてるなら Managed C++ でラッパーを作って、
それを DLL 化して csc /ref:sdl.dll って感じで使える。

でも、その SDL って Managed Direct X とか Avalon よりも優秀なん?
>980
へーこんなのあるんだ。
978がSDL使いたいってのは、なんとなくわかるよね。だって簡単だもん。
(DirectXで2Dやるよりって意味でね。)
>>973
レジストリ自体は扱うクラスあるでしょ。
まあ任意のタイプ指定やアクセス権とまでなると
まだAPIに頼らざるを得ないが
SharpDevelopのGapTextBufferStrategyクラスってかなり速い。
StringBuilderよりも2分の一くらいは速い。
Gapとかあるけどあれって何なんでしょうか?
仕組みがいまいちわからん(爆
vector+linked listのいいとこ取りしたようなアルゴリズム。
ギャップバッファで検索してみるとか
けっこうゆうめいなのね
Formの上に、IEのActiveXコンポーネントを貼ってみたんですが、
この上に、GDI+を使って、任意の線や矩形を重ねて描画する事は
できないのでしょうか?

どうも無視されているというか、IEの描画領域には手を出せない
雰囲気なのですが。
987デフォルトの名無しさん:03/12/22 14:09
C# で,結果として量指定子を含んでしまうような文字列の置換は
どのようにして行えばよいでしょうか ?
例えば

String hogeuri = "http://test/default?a=1";
hogeuri = Regex.Replace(hogeuri, hogeuri, "<b>" + hogeuri + "</b>");
Console.WriteLine(hoge);


<b>http://test/default?a=1</b>
と出力して欲しいわけですが,Replace 関数の 2 つ目の引数で
URI に含まれる ? を量指定子と判断しているようです.
URI に含まれる ? を量指定子と解釈しないで置換して欲しいです.
>>987
hogeuri = Regex.Replace(hogeuri, ".*", "<b>" + hogeuri + "</b>");
989988:03/12/22 15:09
あ〜、ごめん、なんかぼけてた。988は忘れて。
hogeuri = Regex.Replace(hogeuri, "(.+)", "<b>$1</b>")
とか。
Regex.Escape
992デフォルトの名無しさん:03/12/22 18:41
で、C#とHSPどっちがすごいのさ

という心境にたっした
993987:03/12/22 19:25
hogeuri = Regex.Replace(hogeuri, Regex.Escape(hogeuri), "<b>" + hogeuri + "</b>");
で解決しました.991 さんdクス!
イメージに透過色を設定するにはどうすれば?
埋め
埋め
埋め 
産め
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。