3げとー
あぼーん
皆 様 。 類 似 ス レ に ご 注 意 下 さ い
あぼーん
7 :
デフォルトの名無しさん :03/10/13 19:36
プログラマは友達いない根暗キモヲタ揃い
あぼーん
あぼーん
あぼーん
あぼーん
12 :
デフォルトの名無しさん :03/10/13 19:48
元スレいい加減にしとけよ
あぼーん
後でまとめて削除依頼出しますんでよろしく。
通報しますた
AA張るな糞
元スレはマジ切れ中w
19 :
デフォルトの名無しさん :03/10/13 19:52
あぼーん
おまえマジでウザイから消えろや
元スレ必死だなw
すみません。自己解決しますた
元スレ消えろ。
すみません。自己解決しますた。
27 :
24ホンモノ :03/10/13 20:02
>>26 この人は偽者です!!
私がホンモノです!!
>>23 何を自己解決したのですか?
28 :
24 ◆IO8bwLPiQ6 :03/10/13 20:03
more ga honmono desu
>>25 どこに帰れというのですか?わしは棲家を荒らされました。
31 :
デフォルトの名無しさん :03/10/13 20:05
質問です!! バカと荒らしはどっちが糞ですか?
この板って誰か世話してる人いるのかな? せめてID制にお願い。
元スレはキティGUYの工房です。 無視進行でお願いします。 ある程度糞レスがたまれば削除依頼を出しましょう。
自己解決しますた
ジサク(・∀・)ジエンデシタ
初心者にふさわしい(Hello World並)のを考えましたので書き込みますね。 (省略) { Messagebox.Show("元スレはバカ","元スレはバカ") } (省略)
あぼーん
あぼーん
>>545 > 本スレは荒らされては困るがここは荒らしていいということはないんです。
> 興味がいない、役に立たないと思うなら放置すればいいんです。
> 荒らしはどのスレでもやっていいことはないんです。
> このスレ自体が荒らしというなら、削除依頼を出せばいいだけ。
> これ以上ここを荒らさないで下さい。
3つのレス以外全部おれなのになwwww
このスレは当分放置ですね。 適当にレス削除依頼っと。 工房ってやっぱこの程度なんだね。出てる学校もしょぼそう(w
45 :
デフォルトの名無しさん :03/10/13 20:32
>>44 学歴うんぬん言い出した時点で学歴コンプレックスあるってバレバレwwwwwwwwwwwwwwwwwwwwwwwwwww
49 :
デフォルトの名無しさん :03/10/13 20:35
68って威張れるほどの数字か?
>>51 おまえがなw
童貞なんだろ?w
なぁ?童貞だろ?wwww
元スレは偏差値68で有頂天なリアル根暗工房。
>>55 で?おまえはいくつ?
このバカばかりだから有頂天になっちゃったよwww
友達いないって言われたのが図星で悔しいんだねww
>>54 釣れたとか言ってきやがるだろうからテストにしとく。
違 う よ (w
学生のときによく虐められてたんだろww わかるよwwおまえの発言聞いてたらすごくわかるwww 必死なのすごくわかるよ パソコンディスプレイの前で真っ赤にした顔してるのよくわかるよ
ばーか、レスしてる時点で釣られてるんだよ おまえらの負けなんだよ( ´,_ゝ`)プッ
60 :
デフォルトの名無しさん :03/10/13 20:42
厨房と見せかけて、実は童貞35歳自称プログラマー氏んでいいよwwww
もうすでに削除人に手間かけてるんだからこの辺で止めておいた方がいいと思うよ。
依頼したのは漏れですが何か?
35歳で無職で童貞なんておれだったら自殺してるな もしかして、この中に20代童貞っているの?( ´,_ゝ`)プッ みんなおまえのこと影でホモって噂してるよ( ・,_ゝ・)プークス
65 :
デフォルトの名無しさん :03/10/13 20:45
>>62 こいつはまだ、まともな方だが
それ以外はどうしようもないヒッキー童貞プログラマwwwwwwww
未来想像してごらん?自殺したくなるだろ?
66 :
デフォルトの名無しさん :03/10/13 20:47
2ch始めた初心者は荒らしに便乗するのが大好き 煽り耐性なんて全然持ち合わしてない。 おっさん2chねらーキモ過ぎwwwwwwwww
なんかアホアンチの仕業っぽいな
69 :
デフォルトの名無しさん :03/10/13 20:52
どうせ信じないだろうけど、おれの仕業じゃないよ。
71 :
元すれ1 ◇jYDOLr.5ps :03/10/13 20:57
全部漏れがやりますた 荒らしてやるうへへへへ
72 :
デフォルトの名無しさん :03/10/13 20:57
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の隔離スレを荒らしたのがそもそもの発端だな・・・
77 :
デフォルトの名無しさん :03/10/13 21:00
最初はどうであれ、後半は細々やってたんだから 別に煽らなくてよかったんじゃないか? ああいう根暗な香具師は怒らすと後がしつこいぞ
79 :
デフォルトの名無しさん :03/10/13 21:02
>>76 そういう突っ込みしてる時点でお前終わってるな・・・
>>79 最近トリップ覚えて言って見たかっただけじゃねえの?
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値に変換できませんって怒られます。
89 :
デフォルトの名無しさん :03/10/13 21:09
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といえども今までは隔離スレ内だけにとどまってたのに。 モラルの低下もはなはだしいな・・・
お ま え ら が や っ た こ と は 忘 れ な い か ら な
105 :
デフォルトの名無しさん :03/10/13 21:18
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 もう少し落ち着いてからのほうがいいと思う
じゃあ、このスレは荒らし容認で廃棄の方向で。
おーい、元スレ1。このスレ1000行くまで荒らしていいぞ。www
120 :
デフォルトの名無しさん :03/10/13 21:55
>>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をオーバーライドしたラッパーオブジェクトで包んで入れたり出来ない?
>>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込みのバージョンを購入したらこう言う不具合も存在しないのかな? みなさんのはどうですか?
すいません。間違えてました。 メンバメソッドが使えないのはただ単に、 スタティックメソッドで使用方法が違うせいでした。 スンマソン。
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); などと、ピリオドを打ち込めば描画のためのメソッドがちゃんとでてくるし、 コンパイルもエラーなしで実行できます。 が、なぜか、いざ実行すると、例外が出てしまいます。 これは一体何故でしょうか? オブジェクト参照がインスタンスに設定されてませんと言う例外のようです。 意味分かりません。
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); でどうよ。
どうやら、 this.CreateGraphics() を使用してグラフィックス参照を作成した場合は どこのクラスのインスタンスにその参照を渡しても問題なく 描画できるようですね。 今まで、何でthis.CreateGraphics()と言うメソッドが存在するのかがわかりませんでしたが、 (普通にペイントイベントハンドラから参照を渡せば良いだけじゃんとか思ってた。) 他のクラスのインスタンスに引数として参照を渡すような場合は this.CreateGraphics()で作成した参照でなければ渡せないようですね。 ただし、この場合は注意として、 参照を作成した辞典でのフォーム1のクライアント領域の範囲しか描画できないと言うことです。 つまり、フォーム1のペイントイベントハンドラで描画すればフォーム1のクライアント領域が動的に変えられてもそれに 対応した描画が自然に行なえますが、this.CreateGraphics()で作成した参照を 他のインスタンスに渡した場合は参照を作成した時点での大きさに固定されてしまうようです。 クライアント領域が小さく変えられた場合は問題ないのですが、 大きくされた場合は、駄目みたいです。 つまりthis.CreateGraphics()で作成した時、フォーム1のサイズが300,300 だとしてその後サイズが変えられて500,500になった場合、 自作オブジェクトで500,500のサイズの描画をしても後から大きくなった部分は描画してくれないようです。 まあ、this.CreateGraphics()で参照を作成する時点で十分な大きさにしておくようにすれば 何の問題も無いようですが。
すいませんでした。 その後色々といじってたら本当に私の勘違いだと言うことに気がつきました。 実際には、 this.CreateGraphics()を使用する形でも、 ペイントイベントハンドラに送られてくる参照を利用する形でも、 どちらでも上手く描画できますね。 色々とお騒がせしてすいませんでした。
>>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 を出力する。
>>167 DllImport
ComImport
171 :
デフォルトの名無しさん :03/10/21 19:56
文字列を入力として受け付けて、その文字列中に含まれる数字の合 値を求めてみてください。 例: a1b23g4 と入力された場合、1+2+3+4 で10 を出力してみせてください。
>>171 お母さんみたいにお願いしてくれないと、教えてあげない。
>>172 あっ、すまん。あんまりもとの文章読んでなかった。
175 :
デフォルトの名無しさん :03/10/21 20:16
文字列を入力として受け付けてね、その文字列中にね含まれる数字の合 値を求めてみてちょーだい。 例: a1b23g4 と入力された場合、1+2+3+4 で10 を出力だよ・
>>176-177 どうもありがとうございます。とても参考になりました。
しかし、一つ気になることがあります。
もしかしてこれはC#で組んだライブラリを使用する際の必須条件なのかもしれませんが、
.NET Framework を結局入れなくては駄目なんでしょうか
また寝た?
いえ、ネタじゃないです… そうですか…ありがとうございます。
>>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
>>185 何度試したところで保証される動作だな、と確信できるとは思いません。
例えばAccessで空のTableにInsert Into100回発行しまして
その後にSELECT * FROM TABLE_NAME
とした場合、Insertした順番に表示されると思いますが
これは保証された動作ではないですよね?
ではDataTableの場合はどうなのでしょうか?
データベースと違って、DataTable.Rowsはインデックス方式の管理方法だから順番はある。 でも、あくまでDataTable.RowsにAddした順番だから、Adapter.Fill()の処理に依存するけど。 断言はできないけど、AdapterのSelectCommandの実行結果の順でいいんじゃない?
追記 Adapterを使うとは書いてなかったなw RowsにAddした順番は保障される。 ただのコレクションだし。
>>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を設定する必要があり、困っています。 なにか良い方法ありませんか?よろしくお願いします。
985 名前: デフォルトの名無しさん [age] 投稿日: 03/10/24 01:32 変数 n に数字を入力して、n / 5 + 32 を計算するプログラムを作成せよ。 また結果を表示せよ。 コレがどうしてもわかりません誰か式を書いて解説していただけないでしょうか 間違えて前スレに書いてしまいました
>>200 >>203 アドバイスありがとうございました。
まだ勉強不足で大変そうですが
なんとなくやりたかった事がなんとなくできそうです。
ある HTML の table からデータを得たくて HTML を XML に適合するように整形し XmlDocument.LoadXml で読み込み ってやってるんですけどもっとスマートな方法無いですかね?
207 :
デフォルトの名無しさん :03/10/24 10:55
208 :
デフォルトの名無しさん :03/10/24 10:59
C#Builderの無料版をダウンロードしたんですけどASP.NETもできるしデータベースも扱えるようです Delphiの無料版みたいに機能の制限はかけられてないのですか?
Delphiの無料版に機能の制限って馬鹿じゃねーのププ
関数型言語の影響受けまくりだね。
212 :
デフォルトの名無しさん :03/10/25 01:02
C#のプログラミングに関する 参考になるHP、お勧めHP、ご存知でしたらご紹介ください @ITとか見ても、なかったです。
213 :
デフォルトの名無しさん :03/10/25 01:03
スレタイ C♯になっているけどC#じゃないの? 検索しても引っかからないから 探すの苦労したよ
全角ではなく半角で入力すれば混乱が減ると思うんだが。
217 :
デフォルトの名無しさん :03/10/25 10:08
c#でプログラミングする上で、って言うかそもそもオブジェクト指向プログラミングの上で、 なるべくグローバル変数、メンバとかは作らない、使わないって言う方針見たいのがあるようなんですけど 本当の話、一人で自作ソフトを作るような場合、そんな方針とかって全然関係ないですよね。 パブリックでスタティックなメンバの方が記述も簡単だし見易いし、 確かに大規模プロジェクトで何人かのメンバーで大規模なアプリ作成とかする場合は 必要なスタイルなんでしょうけど、一個人では全然関係ない話ですよね。そんなことって。
# って入力しても無理なのかな。
>>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
なるほど、ありがとうございました。
231 :
231 ◆hDlxMUm262 :03/10/25 21:09
ふらっと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が表示されたとたんにアプリケーションが終了してしまいます。 何か、勘違いしているかもしれませんが、正解を教えてください。
>>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();
}
}
ぐあ、行頭のスペースが削れてしまった・・ 見にくくて、すみません。
>>238 その程度のメモリ消費量なんか気にするな。
age
242 :
デフォルトの名無しさん :03/10/27 08:12
フォーム1の画像についてなんですけれど、 このグラフィックス変数はグローバル変数で持っておいた方がいい気がするんですが、どうですかね? 自分の自作クラスで画像を描画する必要があるんですけれど、 全ての自作クラスに一々その参照を渡すのはなんかわずらわしいって言うか雑多な処理になって 可読性が低くなる気がするんですよね。 まあ、と言っても3っつくらいなんですが。 みなさんだったらこれくらいなら、 ちゃんとカプセル化して隠蔽しますか?
C#を勉強するのに、CもしくはC++を勉強した方がいいですか? それとも、Delphiを勉強した方がいいのでしょうか? または、勉強もせずに、いきなりC#に入っても大丈夫でしょうか?
245 :
デフォルトの名無しさん :03/10/27 09:51
プログラム起動中に設定したいくつかの設定項目を レジストリを使用せずに、プログラム終了後も再度 読み込ませたい場合どうすれば良いのでしょう? かなり漠然とした質問だと思うので何か メソッド名や検索ワードだけでも良いのでお願いします。
>>245 レジストリに保存しないのならばファイルに保存するしかないだろ。
System.Xml
# もしくはネットワークに保存?
248 :
デフォルトの名無しさん :03/10/27 10:21
>>246 どうもありがとうございます!
VC6.0の時はSerializeで保存するかもしくは
iniファイルに保存していたと思うんですが(よく知らないです)
c#の場合一般的な方法というのはどうやっているんだろうか?
と思っていました。
とりあえず247のサイト読んでみます!
(あとネットワークではないです。)
一部、レジストリを使うのを毛嫌いしてる人がいるけど、ドトネトの時代になってまで、 きにすることはないとはおもう。
>>250 xml/iniならxcopyインストールが可能って利点もある。
一部、XML/Iniを使うのを毛嫌いしてる人がいるけど、ドトネトの時代になってまで、 きにすることはないとはおもう。
そもそも.NETの時代になんか永久に来ない。
254 :
デフォルトの名無しさん :03/10/27 16:39
すいません。 他クラスのスタティックなメソッドからはフォーム1に描画できないのでしょうか?
255 :
デフォルトの名無しさん :03/10/27 16:46
って言うか、スタティックなメソッドは スタティックなメンバにしかアクセスできないんでしたね。 多分それが原因かな?
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
頼む。アクロバティックな問題に挑む前に基本的な知識と経験をつけてくれ。
ただしメニュー項目が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のリソースを開放するのはまずいような気がする。
>271 ありがとうございます。調べてみます。
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を継承しるんですか?概要だけでいいので教えてください。
285 :
デフォルトの名無しさん :03/10/28 22:33
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\"" のように " でくくられている中身を取り出したい。 下の正規表現では取れなかった。 "\"[^\"]+\"" たぶん^の後に\がついているのがだめぽなヨカン。 どうすればいい?
「\"[^\"]\"」 "\\\"[^\\\"]\\\""
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も含めたソースを示してみてくれない?
やろうとしていることは2chのスレ立てでソースはTwintailの作者様が公開してくれているものなので問題はないと思います。 そのコードをCE機で走らせているのですがGetRequestStreamを呼んだところで例外が発生してしまいます。 同じバイナリをXPで走らせると例外はでません。
プロキシ使ってるとか?
>>297 ありがとうございます!
trueにしたらWebException出なくなりました!
300 :
デフォルトの名無しさん :03/10/29 21:40
Pingを作ってみたいんだけど参考になる図書、URLはないですか? 勉強したいので、説明があるのがいいです。 宇宙仮面は(ソース上で)何をしているのかわからないので、、、
302 :
デフォルトの名無しさん :03/10/29 22:48
IPコンフィグみたいに、IPアドレス、サブネット、DNSとかを 参照したいときはどうすればいいですか? またそれを設定するにはどうすればよろしいでしょうか。
>302 参照だけならWMIで出来た。それ以上は知らない。
>>302 netsh interface ip set
202です。 心当たりだけでもありましたら 教えてもらえないでしょうか。 さっぱり解決しそうになくて困り果ててます。
質問: 開発のためによく regasm をやってるからだとは思うのだが、 VS.net の参照設定 - COM のところに自分の作ったモジュールの名前が 一杯ならんでしまっている。 これを消す方法はどうすればよいのだろうか。 regasm /u しても消えないし。
308 :
デフォルトの名無しさん :03/10/30 23:57
重い処理をする時にプログレスバーがのってある ダイアログをShowDialogして進行率を表示、 完了後ダイアログを閉じたいのですがうまくいきません。 進行率表示ダイアログのActivedイベントに処理を書きまして 完了したら this.Close() でいけると思ったのですが閉じません。 なぜだか無反応です。 こういう処理ってどういう風に実装すればいいのでしょうか? よろしくお願いします。
>>308 codeproject.comの
「A .NET Progress Dialog」という記事をお勧めしてみる。
>>309 ありがとうございます。
物凄く質の高いサンプルで驚きました。
ですが私が今の目の前の問題としては
Activeイベント内のthis.Closeで閉じれない問題で
いかにして処理終了をキャッチし、自分自身のダイアログを
閉じるのか、ということの解決を最優先にしたいのです。
ものすごくいいサンプルで必ず理解したいと思います。
ただ今実装したいのはあそこまで大きなものでなくていいのです。
あとはただ閉じるだけ、というところに来てますので
なんとか現状を改善する案、もしくは簡単なサンプルなどあれば
教えてもらえないでしょうか?
わがまま言ってすみませんがよろしくお願いします。
>>310 > こういう処理ってどういう風に実装すればいいのでしょうか?
に反応してみただけなので、悪いがそこまで要件を絞られても分からんっす。
>>308 無反応って具体的にどんなの?
あと問題のソースを晒してみるとか。
普通に考えても Activated で Close() はマズイ。 つーかもしかして、Activated イベント内で完了を待っているコード書いてるの?
>>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 で発生しました。
追加情報 : クラスを使用する使用許可がありません
というのが出てしまいます。
使用許可ってどうやればあたえられるのですか?
>>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のダイアログ出す方法を教えてください ファイルのアクセス権とか設定する奴です
>>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#はとても(ネストが)深い。
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 ありがとうございました。
感謝の気持ち チュ!
348 :
デフォルトの名無しさん :03/11/03 06:46
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 を読め
文字コードって言ったら美乳だよな
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書けば?
C#からIE6を制御したいのですが、まとまった情報のあるページご存知の方お教えください。 インターネットエクスプローラを起動して、IDとパスを入力して、 ボタンを押すところまで自動化したいのです。 インターネットエクスプローラを起動とか、Webブラウザコントロールで基本動作までは 触れてる記事は多いのですが、ドキュメントモデル?から ボタンなどを特定して、動作させるところまでやってる記事が見つかりません。 後半は若干実現手段が見当違いなのかもしれませんが。 手持ちのMSJ,MID,msdn magazineを掘り出してひっくり返すので一日使っても 成果が芳しくなかったものでよろしくお願いします。
>>361 >ドキュメントモデル?からボタンなどを特定して、動作させるところまでやってる記事が見つかりません。
見つかる分けない。HTTPの超基本的な知識すら知らないからこういう発想しか出てこない。
直にURL指定してPOST(かGET)すればいいだけ。
馬鹿じゃん。
引数でファイルパスを渡されたときに、すでにそのアプリが 起動していれば二重起動を抑制しつつ、そのファイルパスを すでに起動している方のプロセスに渡す方法は無いでしょうか。 (抑制だけならMutexでできるのですが) 前にVBを使っていたときには、DDEを使って何とかした記憶 はあるのですが、.NET上ではどのような手法があるでしょうか。
WM_COPYDATAを使うとか。
DDE(プ
368 :
デフォルトの名無しさん :03/11/06 02:49
C#ってオブジェクトの型を表すオブジェクトを得るためにtypeofキーワードを使っちゃったけど、これって後々Genericsを導入したときにネックになるんじゃないかな・・・。 C++では変数の型を利用して新たな変数を使いたいという要望が強くて、次回はtypeofキーワードでその変数の型を得られるようにするみたいだけど、C#の場合そのキーワードはもう使っちゃってるから、どうすんだろ。 いちいちリフレクションなんか使ってたらGenericsのうまみ半減だし。
>366 これで希望の動作ができそうです。ありがとうございます。
Type.GetType()
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
375 :
373(長文申し訳ありません) :03/11/06 18:32
私としては、最前面のフォームからその下にあるフォーム、さらにその下に・・・ という風に消していきたいのですが、どうにもやり方がわかりません。 調べていく中で、Zオーダーというキーワードにはたどり着いたんですが、 これをC#上で実装する方法もわからず・・・ また、ArrayListを使うこと自体が間違いで、もっとスマートな方法があるのではないかとも 思っています。 どうか、ご指導お願いします。
>>375 よくわかんないけど
Control.ControlCollection.GetChildIndex メソッドは
377 :
デフォルトの名無しさん :03/11/07 11:00
>>202 誰かご存知の方おられませんか?
要は1対多のデータをフォームに連結したいのです。
1対多を関連付けているテーブルには俳優の「コード」しか入っておらず
フォーム上にはマスタテーブルからひっぱってきた俳優名が必要なのです。
お願いします!
楽しないでコード書けばいいと思うが。
>>203 レスありがとうございます。
それならできないことはないのですが、
フォームの数がすごく多いので新規登録、更新、削除処理の
手間のことまで考えると出きる限り連結で実装したいと思っています。
(技術的に連結できるなら仕様を満たせますので)
技術的にこのようなパターンは連結することが不可能なのでしょうか?
不可能なら諦めてコードで書きます。
理想としては監督コンボボックスで監督名が選択されて
Updateメソッドでテーブルには監督コードで更新される、という風に
実装したいのです。
>>380 199の質問に対するレスなのか、202の質問に対するレスなのか知らんが
同様のコードは再利用するのがプログラミングの常識です。
フォームが何百個あろうが記述は一回。
>>381 >199の質問に対するレスなのか、202の質問に対するレスなのか知らんが
失礼しました!
>>380 は真上の方へのレスでした。申し訳ありません。
>同様のコードは再利用するのがプログラミングの常識です。
それはそうですが既に用意されている機能があるならそれを使用して
手間とバグを減らすというのもプログラミングの常識ではないですか?
結局のところ私の要件を満たす機能はまだ実装されてないんでしょうか。。
1対多で関連付ける対象が共にコード化されている、というのは当たり前に
存在する状況と思いますのでどうしてもフォームに連結できないとは思えないのです。
連結したいけど2週間たってもコード書けないからパクれるのない?ってことか
>383 違います。 既に用意されている機能を使ってできると思うので 2週間探して未だ見つからず困り果てている、といった状態です。。
こんな感じでファイルに行データを書き込んでいるんですが 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のコンストラクタのヘルプを熟読すべし。
388 :
デフォルトの名無しさん :03/11/07 20:22
「クリップボードに何かが新しくコピーされたとき」っていう イベントは標準ではもちろんないんですが、これって どうやったらいいでしょうか。
>>384 二週間探し回って見つけられない馬鹿と。
その間にちゃちゃっと再発明してしまう馬鹿と。
どっちがより馬鹿なのか、自明だと思うが?
>389 完成させることが目的ではなく、 最適な方法を覚えていく勉強と思って組んでいるので 動けばいい、というものでもありませんし、 ついでに言うとどっちが馬鹿とかそういうことを聞いた覚えもありません。 別の方面で意見を聞いてみることにします。 ご意見いただいた方、ありがとうございました。 わかり次第報告ご報告致します。
┐(´ー`)┌ やれやれ、なんでマ板はこうなのかね ADD人口高いんだろな。俺もだけど
393 :
デフォルトの名無しさん :03/11/08 12:53
<object classid="〜.dll#〜.〜">って、 毎回クライアントにダウンロードしてるようだけど 従来のActiveXのようにキャッシュしてくれないものなのですか?
>>392 ここはム板だ。マ板の話はマ板でやれ十円ハゲ。
計算され尽くしたボケだったということに気づいているのか? しかし十円ハゲとは、ボケがいのある良い突っ込みだ。
見苦しい
397 :
デフォルトの名無しさん :03/11/08 20:34
すいません。教えてください。 BEEP音を鳴らすにはどうしたらいいのでしょうか?
APIのMessageBeepをDllImport汁 このスレか前スレに出てたDirextXを使ったやり方もあるらしいが忘れた
400 :
デフォルトの名無しさん :03/11/08 22:10
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}.");
>>402 ありがとうございます。最初の一行だけ変換されてるのを確認しました。
もう少し見たいなのでがんばってみます。
C#は 「しーしゃーぷ」と読むんですか? #は「パウンド記号と呼ばれていますし、 「しーぱうんど」と読むほうがより正確だと思うんですが。
死者( ´,_ゝ`)プッ と読むんです
あげ忘れ。よろしくおねがいいたします。
>>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 が不完全です。
なるエラーがでるのですが、これって何が問題の時にでるのでしょうか?
コンパイルは通ります。ワーニングも出ません。
攻勢プロパティーってかっこいいな
♯と#は違う。
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ではダメなのかしら?
427 :
デフォルトの名無しさん :03/11/10 01:28
428 :
デフォルトの名無しさん :03/11/10 01:30
> バイブルと呼ばれることもある。 普通はバイブルじゃないの。
430 :
デフォルトの名無しさん :03/11/10 01:47
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");
>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の人が見てくれるよ。
refやout宣言された引数にnullを渡したいのですが なんかエラーが出て動きません。 どうすればよいのでしょうか?
>>441 そりゃそうだろ。必要なくともダミーオブジェクトとか作って引数にわたせばいいじゃん。
相手がAPIなのでダミーでデータ取得するコストも馬鹿にならないと思いまして。
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は山で採れないのが寂しい
なぜかここの所まったり雑談室状態。
C#での静的という言葉の意味がわかりません。 Cでの「前の値が保持されてる」のが頭にあるんですが、違ってるんでしょうか。 でもクラス内でStatic変数もつ意味がどこにあるのか・・・・ Staticコンストラクタなんてもんまでありますが。他に 静的メソッドとかなんでそこまで静的という言葉つけて表現してるのかわかんないっす。 静的関数って一体どんなんなんですか?ググッて見たんですが、どこもセイテキセイテキって言葉連発してる ばっかでよく分かりません。 誰か教えてタモーレ。 頭悪そうな文章ですいませんが、実際頭悪いので分かりやすくお願いします。
初心者な質問で申し訳ないのですが 教えて欲しいことがあります。 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!!
サンプルコードいくつか作ってみたんですけど、
普通のクラス内変数と何が違うのかさぱーりだったので・・・・・
助かりました。
468 :
デフォルトの名無しさん :03/11/13 21:44
xmlコメントに改行とかスペースとか入れたいんですが(パラメータヒントやwebページのビルドコメントで改行したい)、 <br/>としても \n としても改行できないです。 なにか良い方法はないでしょうか?
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でも可能でした)
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 ありがとうございます。
これです。これがやりたかった。
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++の出来がかなり良さそうなので又舞い戻るかもしれない。
492 :
デフォルトの名無しさん :03/11/16 16:25
.NETってマジ遅くないですか? Array.Sortなんてstd::sortに比べたら腹起つぐらいおそいですね 正直Windowsアプリケーションで.NETの必要性が分からない 煽りじゃないよ
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
>>514 フリー版と製品版って……すごく誤解を招く表現だな。
あとBorland C#Builder personalを抜くのは何故だ。
>>515 C#BuilderってDelphiと同じような開発環境なのではないか?と思ったので
抜きました。
C#の開発環境の使い方を含めて勉強したいと思ったので、C#Builderでは無理かなと。
本当はMicrosoft Visual C# で勉強したいのですが、お金の余裕がないので
SharpDevelopで勉強したらMicrosoftVisualC#もすんなり使えるようになるかなと
思いました。
>>516 読めませんでした。
>>517 普通に読めるが。
要は3つとも大してかわらん、という記事だな。
> C#の開発環境の使い方を含めて勉強したい
C#BuilderはC#の開発環境じゃなかったのか……。
>>518 会員登録してないので、読めませんでした。すみません。
大してかわらないんだったら、製品版をわざわざ買う必要な
無いみたいですね。
C++Builderが使えてもVC++は使えないでしょう?
>>519 C#Builderはその独自路線を放棄してVC#と(ほぼ)変わらなくなったってこと。
雑誌にVC#評価版もついてるだろうし、C#Builder personalもCsharpDeveroperも無料だし、
自分で試してみるのが一番。
C#ってネイティブコードを吐き出すJavaという認識以外で 必要な認識はあります?
>>520 なるほど。そうなんですか。
今トロトロと全部ダウンロードしてるところです。色々とありがとうございました。
>>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なんてレベルまで踏み込めるの?
>532 了解Λ||Λ
>>528 data source名が怪しい。
としか言えんな。エラーの中身を書いてくれんことには。
C# の関数で複数の値を返したい場合はどのようにするのが よいでしょうか? public hoge(int param1, ref param2) { param2 = "hogehoge"; return true; } のように、参照渡しで引数として渡すのがベスト?
null渡せないから無駄が多い
>>537 「ref」より「out」のほうがいいぞ。
return new object[]{"tech", 1066038651};
みたいに配列を返す方法もある。
漢は黙ってIntPtr
他の例題を元に少し書き方を変えてみました.ちなみに,コンソールアプリケーションで 全く同じように表記すると,正常に値が返ってきます.ウェブサービスとしてテストをすると, ウェブサービスのページを表示して,メソッドを選択して,テストとして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);
>>545 + 演算子だと、文字列と、変数をいちいち区切るのが面倒ですよね。
ということで、String.Format を使います。ありがとうございました。
ユーザが入力した文字列に対して
>>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(); }
>>551 >>552 .Owner を使ってできました。ありがとうございます。
で、次にまた問題が。フォームのサイズですが、
InitializeComponent の中で、
this.ClientSize = new System.Drawing.Size(292, 140);
としてあるにも関わらず(というかデザイナがはきだしたコードですが)
起動時のサイズがなぜか大きいのです。
で、試しに、フォームにボタンをはって、クリック時に、
this.ClientSize = new System.Drawing.Size(292, 140);
としたら、ボタンをクリックした時に、フォームのサイズが意図した
サイズになります。これは一体どういう事が原因で起きているの
でしょうか?
フォームのStartPosition
>>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 にしています。
>>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;
でいいと思う。
>>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;
}
でどう?
>>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にするってのはダメなわけ?
行き詰まりました(^^; >取得したレコードの中身をUnicodeのバイト配列とみなして さらっと書かれてますが結構ウニウニになってしまいました。 取得したレコードの中身を()なしの 92a4a4 という状態で抜き出す ために正規表現でMatchCollectionから取り出そうとしたのですが この状態ではstring型です。 それをSystem.String.Concat()でくっつけて表示させてみたのですが 当たり前のように92a4a492a4c392a4c692a4e892a4b7と表示されてしま います。 これらを何かの型へキャストすればよいということなんでしょうか?
571もよろしく。 ADO.NETでアクセスのデータです。
FormにTreeViewとToolBarを配置。 TreeViewをDock = Fill、ToolBarをDock = Rightにしたとき TreeViewの垂直スクロールバーがToolBarに覆い被さって 見えなくなるのは仕様ですか?
>>579 経験則では隠れてるほうを最前面にしてみると直ったりする。
あ、コントロールによっては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クラスなら一回で作ってくれるよ
>>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
>>580 なおりますた。ありがとん。
UserControlにいれると問題なかったけどめんどい。
UserControlを作るとツールボックスのWindowsフォームの一覧に 追加されますが、そのUserControlの名前を変更すると 一覧から消えてしまいます。 手動で追加し直す方法はあるのでしょうか? 一覧に出ないとデザイナへドラッグ&ドロップして追加できなくなるので。
C# で 多重起動防止をさせたいと思っています。 Mutex を 利用して多重起動のチェックは行なえるようになりました。 多重起動の場合はメッセージを表示して、アプリケーションを終了 するようにしたいのですが、これを Form_Load でやると、一旦フォームが表示されてから、その上にメッセージ ボックスが表示され、OK を押すとアプリケーションが終了されます。 この、フォームが表示されないように、メッセージボックスを出し、 アプリケーションを▽終了させる方法がわかりません。 どのようにやればよいでしょうか?
ふつうMainでやるだろ。 Application.Run()を飛ばせばいい。
>>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を叩くのが現実的なんですかね。
>>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に示したコードでもだめ…。
むずかしいですね。。。(´・ω・`)
XML Web サービス でSQL ServerにアクセスしてNorthWindデータベースをさわろうと 思っているのですが,どう記述しても {"ユーザー 'MACHINENAME\ASPNET' はログインできませんでした。" } こう出てしまいます・・. SQL Serverへのパーミッションか何かだと思うのですが どう設定すればよいのかご指導願えませんでしょうか・・?
>>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を忘れなく。
>> 606 try はずしたらできました。 どうして try の中にいるとだめで、外したら OK なのかは わかってませんが........ ありがとうございました。
>>602 ちなみに
Mutex(false, "form")のMutex名って合っているよね?
あ〜、WbemというかWMI?
>>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()){}
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 のデータを表示させるのにはどのような方法を 行なうのがベストでしょうか?(速度やコーディング、後々のメンテナンス などもふまえて)
>>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を変更してやれば良さそうなんですが、もっと楽な方法ありますか?
>>637 ボタン右側のちいさな▼でばっちり。教えてもらうまでまったく
気づかなかった。ありがとうございました。
DataGrid のようにヘッダをクリックで並びかえができ、 DataGrid へのデータの追加は Listview のように Items.Add のように できる、無料(フリー)のコントロールはないですか? DataGrid は DataSet をバウンドしなければ表示できないようなので。。。 なんかいいのないですか?
641 :
デフォルトの名無しさん :03/11/28 00:36
decimal 型の中身を16進数のバイトの並びで見たいですがどうすればよいですか?
>>641 BinaryWriter
MemoryStream
>>640 ListViewでViewプロパティをView.Detailsに、じゃ駄目なの?
>>643 ListView の View プロパティを Details だと見た目は問題ないの
ですが、ヘッダをクリックして並び替え(ソート)ができないようなのですが
これも、何かのプロパティの設定でできるようになりますか?
ちなみに DataGrid はヘッダをクリックすると、昇順、降順に
並び替えが自動で行なわれます。
あとは、この並び替えができれば理想的なのですが。
事故解決。 スレよごしスマンかった。
>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 のようなイメージで、 スレッドの中断を拾って、という事はできますか?
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を見たら・・・・( ̄▽ ̄|||)
>>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);
>>677 できました〜
SubItemsだとだめなんですね。
ありがとうございました。
679 :
デフォルトの名無しさん :03/12/02 10:16
VBとC#ってほとんど似てるよな。 移行出来ない馬鹿って本当にいるんだろうか。。。
固定観念にとらわれた奴とか。 VBは簡単でC#は難しいとか、VBとC#は全然違うとか勘違いしているとかね。
>>679 VBしかできないやつって、VBも理解してないやつが多いじゃん。
構造体(ユーザー定義型)を使ったことがないとか、functionを使ったことが
ないとか。
あと基礎的な素養に欠けているやつも多い。
リンクリストとかハッシュとか知らなくて、知ってるデータ構造は配列だけとか。
具体的には BinaryWriter MemoryStream を使ってどのようなコードを書けば中身が見れますか?
>>681 > VBしかできないやつって、VBも理解してないやつが多いじゃん。
そういう固定観念なくならない奴はいつでもいるんだよなぁ。
C# で下記のようなことを行いたいのですが、できますでしょうか?
テキストボックス複数行表示可能にし、その中にボタンを貼り付けたい。
複数行はスクロールバーで上下し、ボタンも一緒に動く。
イメージはこんなのです。
+----------------------------------+
|text1 |↑|
|text2 | |
|
http::/example.com ■ ←ボタン| |
|あい | |
|うえ |↓|
+----------------------------------+
テキストボックスではなくても上記のようなことができればいいのですが
どなたかアドバイスくださいませんでしょうか?
↑すみません。ずれまくってしまいました。
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)
の順番にするか、適当に最前面、最背面に移動すれば直るかと。
いつも思うんだが、「〜できますか?」ってやつは とりあえずやってみろ。 んでできなかったら、どうして出来ないのかという点と どうしたら出来るのかという点を聞け
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 のラベルの背景を透過にする方法を御存知の方 教えて頂けないでしょうか?
>>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);
でどうですか。
ごめん自己レス 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
C♯とVB、VC++の違いがいまいち判りません。 本とかを見るとVBとVC++の中間と言う風に書いてありますが、 どなたか、もっと判りやすく説明してください。
710 :
デフォルトの名無しさん :03/12/05 10:28
ちょっと困っている事があります。 Windowsアプリケーションの作成で、「プロジェクト」メニューの 「ユーザーコントロールの追加」を選択してUserControl1を追加 した後に、ツールボックスのWindowsフォームタブの下に作成さ れたUserControl1をフォームに追加しようとしたのですけど、エラ ーメッセージが出てしまって追加できません。 エラーの内容は、何やらコントロールを読み込めなかったといった感じです。 因みに、追加したユーザーコントロールにはコードも追加せずに一切何もい じっていません。 どうすれば追加できるでしょうか。
>699 >700 出来ましたー! ありがとうございました!
>>692 Graphics.MeasureString(button1.Text, button1.Font)
フォームをOpacityで半透明にしているのですが その下に見えている他のウィンドウなどを普通に 操作出来るようにしたいのですが出来ますでしょうか? よろしくお願いします。
>>714 御回答有難う御座います。
でも、それはボタンに表示する文字列の幅を取得する方法ですね。
そうではなく、その文字列を表示すべきボタンの適切な幅はどうやって取得
すればよいのかが知りたかったのです。
DataGridのカラムに動的に変更するTextを持つボタンを表示させているので、
自動的にカラム幅=ボタン幅を調節したかったのですが、
今は諦めて固定値で対応しています。
717 :
710です。 :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で、ノードを選択 → 右クリック→ 削除 の ながれで、ノードを削除する処理を考えています。 右クリックでコンテキストメニューを表示させる ことはできたのですが、肝心の「削除」を選択した後の 処理を書く方法がわかりません。 どうすればいいんでしょうか
721 :
710です。 :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{
// ここは実行される。
}
// ここは実行されない
>>724 削除の方法ではなくて、コンテキストメニューが
出て、たとえばその中から「削除」を選んだという
イベントを受け取る方法がわからないという意味です。
右クリックしたときに出てくるContextMenu を作成しているのですが、 そのContextMenu のイベントハンドラにはPopupしかないので、 そのポップアップした中の項目を選択したというイベントを 受け取る方法(あるいはその処理を書く場所)がわからないのです。 ああ、なんでこんなことがわからないのだろう・・・ どなたか知恵を授けてください
MenuItem.Clickイベント
>>727 なるほど、理解できました。
ありがとうございます。
733 :
デフォルトの名無しさん :03/12/06 19:40
質問です。 ダイアログベースのメインFormに貼り付けたボタンを押すと 別のForm(Form2)を表示するようにしたいのですが。 Form2を追加→クラスの追加で追加し Form2::Show(); ってやると、 error C2653: 'Form2' : 識別子がクラス名でも名前空間名でもありません。 って出ます。 どのようにすればフォームを表示出来るのでしょうか?
>>733 その質問と答え、いっぱい見ますよね^^
過去ログのを見てやると error C2039: 'form2' : 'APP' のメンバではありません。 ってなります。 候補一覧にはform2が出てくるのに・・・
>>733 私は、プロジェクト → Windowsフォームを追加
などで作ったフォームをShow()していますが。
private void button1_Click(object sender, System.EventArgs e) { Form2 f = new Form2(); f.Show(); }
>733 もっぺん入門書を見て、クラスとインスタンスについて理解した方がいい。 今の状態だと、何で自分のコードは動かなくて、>738だとうまくいくのか 理解できないんじゃなかろうか。C#やっててそれは致命的だと思われ。
>>738-739 どうもありがとうございました。
入門書で勉強しなおしてきます。
ちなみに、
>>738 だと
error C2065: 'Form2' : 定義されていない識別子です。
って出ます。
新たに追加したFormが、Form2ではなくてForm3とかになっているとかではないですかね?
ちゃんとForm2になってます。
プロジェクトメニューのWindowsフォームの追加から、Form2の名前でフォームを追加。
Form1にbutton1を追加して
>>738 を実行。
もう一度試してチョ。
待てみんな。 733見る限り C + + の 質 問 な ん だ が。
え!?
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つの改行ぐらいでスクロールしたいのですが
>>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ちゃんで聞くなよ・・・
764 :
デフォルトの名無しさん :03/12/07 19:52
>>762 いやあ、違いますよ。
仮にやったら、そうなるのかどうか?が聞きたかっただけですよ。
ただ純粋にそれだけです。
>>763 まあ、良いじゃん。
気にするなよ。
デムパはデムパスレで。
>>754 宿題は宿題スレで。
>>761 >そう言う例えは事実としてありえるのかどうか、が聞きたかっただけです。
できるのか?と問われれば「できる」と回答するしかない。
やるべきか?と問われれば「やるべきではない」と回答するしかない。
>インスタンス構造
なにそれ?
>>761 んじゃ糞設計なのは気にしないとして、Treeに例えるのは違うと思う。
CはAの下にも作れるし、Bの下にも作れるから。
ちなみに一番上のはTopLevelControlでControl派生ならどこからでも取れるよ。
>>765 レスありがとうございます。
・・ですが、C#の宿題スレって無いので・・・・(汗
Regex クラスで、正規表現のパターンを指定するときに string pattern = @"なんちゃら"; Regex regex = new Regex(pattern); みたいな記述のなかで、正規表現の文字列の前に書く 「@」は何の意味があるのでしょうか
エスケープしない
>>772 IDEの下のデバッグ出力ウインドウに文字列表示してる
だけっしょ
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 からラッパクラスを生成。
790 :
デフォルトの名無しさん :03/12/10 15:10
たまにある現象なんですが、うちだけ? コンパイル中にエラーが発見され、 「'System.NullReferenceException' のハンドルされていない例外が 不明なモジュールです。 で発生しました。 追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。」 と表示されるものがありますよね。中断を選ぶと 「現在の場所を表示できません。」 と表示されるやつです。 IDE上からだと、デバッグ開始ボタンかF11を押して、その後のコンパイル中に このエラーが発生するわけです。 しかし、エラーがでたソースはそのままに、そのソース上の適当な場所にブレークポイントを設定し、 一行ずつステップインさせていくと、何故かエラーが出ずにコンパイルが完了できてしまう場合があります。 その後に起動されるプログラムは、最新のソースがきちんと反映されたものです。 (つまり、変更前のバージョンのexeを起動しているわけではない) その後、何回かソースを消したり書いたり、VisualStudionの再起動を繰り返していると、 ふとした拍子にコンパイルが通ってしまいます。 同じような現象に見舞われた人、いませんか?
問題のあるソースをコマンドラインからコンパイルしてみたところ、普通に通りました。
じゃ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
801 :
デフォルトの名無しさん :03/12/11 15:49
インスタンスのメソッドを使うときに引数を渡したりしますが、 こう言うのって、いちいち渡すくらいなら、 最初からインスタンスを作るときや初期化時などに参照を渡しておけば メソッドを呼ぶときにいちいち引数で渡す必要が無いので そのほうが楽だと思うのですが、どうですかね? 基本的にはなるべく引数で渡すようにするが、 あまりにも頻繁に使用するときは、参照を最初から渡して置くようにするのが 普通のコーディングスタイルなのでしょうか? つまり、効率の問題ですかね? それとも別にどっちでもいいような問題ですかね、これは。 お願いします。
効率というよりクラス設計の問題と思われ。 クラス同士に密接な関連があるなら、互いの参照をフィールドに持って当然でせう。
>>801 クラスのインターフェースを設計する時は、
下の欠点がどれくらい許容できるかを考えながらしてる。
プロパティで持つことの利点
1. メソッドをコールするときに引数の指定を減らせる
2. コンポーネントであれば、設計時に値を設定できる
欠点
1. あまりにも項目が多いと設定し忘れてしまい、実行時のエラーになりやすい
引数であればコンパイル時にエラーを出してくれる
コンストラクタで渡すようにすれば設定し忘れは軽減できる
2. 値が頻繁に変わるときにはコーディングが逆に煩雑になる
特に元の値を保存して一時的に別の値を使いたいときなど
804 :
デフォルトの名無しさん :03/12/11 17:55
805 :
デフォルトの名無しさん :03/12/11 20:39
refとかoutとかについてなのですが、 この型をフィールドに指定することはできないのでしょうか? やはり、変数を普通に作ってそれをクラスや構造体で包んで、 その参照を渡す、、ラッピングって言うんでしたっけ? と言う方法をとるべきなのでしょうか? それとも、そんな細かい方法はとらずに、 参照を渡したい変数のある、クラスの参照ごとまとめて渡しちゃえば良いんですかね? めんどくさいことはせずに、、、。
ListViewの項目をボタンにするようなことはできますか? 具体的にはYahooオセロのラウンジのテーブル部分のような物を作りたいのですが。
807 :
デフォルトの名無しさん :03/12/12 02:14
ロングホーンから GDI+も早くなりますかね? 今より。 それとも 全然関係ないですかね?速度には。 自分はGDI+を使ったゲームとか考えてるんですが、どうですかねー?
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を渡すにはどうすればよいのでしょうか?
>>812 Addされてなかったら表示すらされない気が。
>>813 Show()って2つもあったっけ?
仕方ないので
Table.Location = new Point(800, 0);
Lounge.Location = new Point(0, 0);
とやってごまかしてます(´・ω・`)
C# のRegex なるクラスをC++ で使いたいのですが、簡単に 出来ますか?
C++.NETなら可能。.NETでなければ無利。
(´・ω・`)
すみません、事故解決・・・ richTextBox1.SendMessage(Microsoft.Win32.Interop.win.WM_MOUSEWHEEL, -120 << 16, 0); なんですね、>過去ログより。 でも、こんな荒業でしか無理なのですか? なんか、無理やりでスマートじゃないような・・・
あぅ、駄目だった・・・ 鬱だ・・・ やっぱ、C++に戻った方が良いや。
>>810 richTextBox1.Select(rt.Text.Length,0);
richTextBox1..ScrollToCaret();
こういうのはダメなのか?
微妙に間違えた: rt → richTextBox1
ログ解析用のDLLを作ろうと思っているのだが、 グラフ描画用のUIはC#でつくり、 ログ解析用のDLLはSTLの使えるC++(.NET)で、 C#のRegexクラスを使って作ろうと思っています C++.NETで、Regex に相当するようなクラスってあるんでしょうか
>>821 駄目です。
うまくスクロールしてくれません。
テキストボックスなら簡単なんだけどねぇ・・・ // ログの追加 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である、ロングホーンでは なくなっちゃって、勉強した意味がきれいさっぱり なくなってしまうのですか? それとも一応は残るのですかね?
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
マウスの入力を受付つつ、 同時に画像処理をしたい時とかは いったいどうすれば良いんですかね? マルチスレッドとかそういう概念を学ばなければいけないのでしょうか? すいませんお願いします。
>836 どうもありがと 早速その方法で試してみます
840 :
デフォルトの名無しさん :03/12/13 23:47
AクラスにもBクラスにも共通する、ENUM型を作りたいのですが、 そのときのENUM型はどこへ記述すれば良いのでしょうか? どっちのクラスにも書いちゃえば良いのでしょうか? それとも、インターフェイスクラスを作ってそこへ記述して どっちのクラスにもそのインターフェイスを継承するのが 一番エレガントなのでしょうか? いろんなやり方がある気がしますが、 何が一番エレガントでしょうか?
842 :
デフォルトの名無しさん :03/12/13 23:55
!? それで良いんでしたっけ? すいません、試してみます。
俺に何でも聞けや! ネットランナーで鍛えたぜ! 創刊号から全部持ってる。 まかせろ!
844 :
デフォルトの名無しさん :03/12/14 00:19
そのとおりでした。 すいませんでした。 ただ、クラスが3っつあって2つのクラスだけから参照したいって言う場合 とかは、やはり、インターフェイスとかを使うんですかね?
>>843 じゃあ、スクロール自動的にさせる方法をお願いします。
>>844 ネームスペースの切り分け方がしっかりしてさえいれば
ネームスペース直下で問題ない。
そんなこと気にするよりも、ネームスペースの切り分けが適切かどうか気にしろ。
っていうか、C# でインターフェース内に enum 定義できたっけ?
"error CS0524 インターフェイスで型を宣言することはできません。" だめぽ
848 :
デフォルトの名無しさん :03/12/14 00:57
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 にすればいいんでないかい?
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となってしまいます
>>853 しまった
str1 は a,空白,b,空白,c
str2 は a,空白,空白,b,空白,c
です。
おっと、間違えてしまった。 853 ではなくて 859に対する訂正でした ちなみに自己解決しました Regex クラスを使って、以下のような感じで Regex r = Regex( "(?<a>\S+)\s+(?<b>\S+)\s+(?<c>\S+)\s" ); 可変の場合に対応できてないけど。
Regex.Split("\\s+");でどうかね
>>862 あ、そんな方法がありましたか。
ありがとうございます。
勉強になりました。
this.axWebBrowser1.Navigate2("log.htm"); という感じで、やろうと思ったんですけど。 error CS1501: 引数を '1' 個指定できる、メソッド 'Navigate2' のオーバーロードはありません。 と出ます。 何がいけないのでしょうか? 解説サイトでは、これでうまく行ってるんですけど・・・
>>864 そのサンプルはVBなのでは?
C#では引数を省略できないよ。
>>865 どうもありがとうございました。
サンプルはVBでした(汗
度々申し訳ないですが。 これを、自動的にスクロールするにはどうすれば良いのでしょうか?
>>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なクラス使ってるんだろうな?
列券型のオブジェクトにメンマ関数を追加する方法を教えてください
>872 まずタケノコを採ってこい。話はそれからだ。
メンマは竹でしょ
竹でつくるべきだが、タケノコでつくったものもあるな。
>>869 どんなファイルでどんな処理をするのですか?
>>877 メタセコイヤっていうソフトのデータファイルを使って
DirectXに直接そのデータからできるオブジェを表示させようかなと。
今の段階は取得がうまく言ってるかどうかテキストボックスに表示してたんですが、
データを分解して格納するより、テキスト表示させる処理の方が重かったようです・・・・
分解された文字列は配列にそれぞれ入れて、後はMQOの内容の規則性にそってデータを吸い上げてます。
普通はどうやるんだろうかと思いつつやってたので質問してみました。
こういう処理を取り上げているHPとかもし知ってたら教えてもらえると助かります。
>>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イベントが呼ばれてからじゃないと取得できないよ
たぶんそれが原因と思う
>>880 ありがとうございました。
無事できました。
質問です、 テキストボックスコントロールで エンターを押すと、ビープ音が鳴るのを止めたいのですが、どうすれば良いのでしょうか?
自己解決しました。 MutiLineをtrueにすれば鳴らなくなりました。
ビープ音かよ! 俺はビープ音がむかつく為に 開発マシンにサウンドカードを刺した
DataGrid に関するわかりやすいサンプルや サイトはないでしょうか。あるいは書籍とか・・・ DBとの連携はしないで手動でデータを入れる形を 考えています
886 :
デフォルトの名無しさん :03/12/15 21:08
異なるクラス間で変数(定数)を共有したい場合はどうすればいいのですか。
887 :
デフォルトの名無しさん :03/12/15 21:43
同一クラスを継承せよ。
C++ の extern みたいなことは出来ないんですか?
>886 public staticなフィールドを持つクラスを作って そのフィールドを参照するとか。
891 :
デフォルトの名無しさん :03/12/15 21:58
C#って動的配列ないの? Arrayクラス見てもなんも書いてないんだけど…
>>890 確かにその方法も考えたんだけど、コードが読みにくくなるから結局クラスごとに毎回宣言してる・・・。
>892 別のクラスに同じ定数宣言しまくると 修正するとき全部忘れずに修正せんといかんということに注意。 コードの読みやすさと保守の簡便さ。 そこはもまい自身に秤に掛けてもらうしかない。
894 :
デフォルトの名無しさん :03/12/15 22:16
ひとつの変数だけを持っているクラス、または構造体をつくって、 その参照だけをすべての参照したいクラスへ渡せばよい。
895 :
デフォルトの名無しさん :03/12/15 22:18
>>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;にしても駄目です。 どうすれば消えるのでしょうか?
なんか、WebBrowserコントロールが、フォームからはがれてる感じで 一度仕舞って、再び表示した時に、フォームからWebBrowserの内容が消えてます。
903 :
デフォルトの名無しさん :03/12/16 09:08
質問があります。 実行時にコマンドラインパラメーターを与えて実行したいのですけど、 IDE上から実現するにはどうすればいいでしょうか?
#nsupdate >update add (名前) TTL IN A (IP) >send /改行(update要求) >quit あるトリガーをうけとったら上記のようにAレコードの書き換えを Cで実現させたいのですが、わかる方お願いします。
906 :
デフォルトの名無しさん :03/12/16 09:56
>>905 無理って事ですかね?
スタートメニューの”ファイル名を指定して実行”だと、コンソール画面が自動的に
閉じるので出力が確認できないのですよね。
>>906 漏れも無理だと思うな。メニューの「プロジェクト」から「プロパティ」開くと
「構成プロパティ」ってのがあってその中の「デバッグ」開くと
「開始オプション」に「コマンドライン引数」というのがあるけどまさかとは思うもの。
そだね。俺も無理だと思う。まさか
>>903 の言うIDEがVisualStudioだとは到底思えないしね。
環境はVC#でした。 >「開始オプション」に「コマンドライン引数」というのがあるけどまさかとは思うもの。 これでできました。 やりたかったのはコレです。 for (int i = 0; i < args.Length; i++) Console.WriteLine(args[i]); レスを見てよかったです。(*´∀`*)
その質問の仕方で答えてもらえたのは単に運が良かっただけ。 終わり方も悪い。礼ぐらい言ってもよさそうなものだが。 ほんとここ2年ぐらいでム板に自己中が増えてきたな。
>>910 私の場合は質問して答えてもらったときは「礼を言う」
質問に答えたときは「礼を期待する」
一応、単純な質問でも面倒くさがらずに
答えるようにしているつもりです
いざ、自分が単純な質問をしたくなったときのために・・・
>>911 何を言いたいのかさっぱりわからん。
>>903 は単純な質問どころか、ちゃんと質問してるとはいえないわけだが。
(*´∀`*)
確かに903の終わり方は最悪ですね 培ってきたよい雰囲気が台無しになってしまった気がします
(*´∀`*) ↑これって、そんなに駄目なのか?w 殺伐したものが大好きなスレなのですね!!
第一線の技術者って、こんな2chのプログラム掲示板って閲覧するんですかね?
917 :
デフォルトの名無しさん :03/12/16 14:55
RichTextBoxでドラッグ&ドロップを受け付けるようにしたいんですが、 どうしたらいいんでしょうか? TextBoxにはそのものズバリな"DragDrop" "DragEnter"等のイベントがあるんですが・・・
>>916 第一線の人はこんなとこ見ないよ。
有名なMLとか、電子会議室とかで活躍している。
>>917 サンプルコードを作成するのでマッテテネ!!
>>917 そうそう、何をドラッグ・ドロップするのですかね?
>>903 は (*´∀`*)←で感謝の気持ちを表現したのじゃないのか?
>>920 おお、早速レスがついている!
ありがとうございます。
ドラッグしたいファイルは、テキストファイルです。
TextBoxやリストボックスを使ったサンプルコードはあるようなのですが、
肝心のRichTextBoxが無くて・・・
>>922 エクスプローラからとかのテキストファイルをリッチテキストボックスにドロップしたら そのファイルの中身を表示するって事ですかね?
>>923 >エクスプローラからとかのテキストファイルをリッチテキストボックスにドロップしたら
>そのファイルの中身を表示するって事ですかね?
そうです。
>>924 スマナイ 外部からのやり方は、 DragAcceptFilesなどのAPIを利用したやり方しか知らないですね。 .NETFrameworkではどうするんだろうね?
>有名なMLとか、電子会議室とかで活躍している。 MLで活躍って何だ?
Delphiの世界でいうと吐駄さんのような方ですね
(´・ω・`) どなたか解りませんか?
>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したよ、、。
⊂(゚ロ゚⊂⌒`つ≡≡≡≡≡≡≡≡≡≡ 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); と呼び出しています。 どうすればいいでしょうか? よろしくお願いします。
はじめはHttpWebRequestでしていたのですけど
エラーがでてうまくいかないのでSocketで試してみたんですけどやはりだめみたいです。
>>935 外部DLLで取得したセッションIDで読み込みうまくいきましたか?
ERRORもうつかえません となるのですが、、
enumコンストラクタやメソッドってどこで書くのでしょうね?
>>938 >>940 &[Flags]属性
それと
enum Em
{
public a=1;
public b=2;
}
じゃなく
enum Em
{
a = 1,
b = 2,
}
ね。
946 :
デフォルトの名無しさん :03/12/17 21:21
VSですけどデザインとソースを切り替えるショートカットはどこですか? F12押しても切り替わりません
>>945 定数だから。
constにコンストラクタを作るかい?
メニューの表示のとこは見たか?
.NETにもregistryを操作するクラスは一応ありますね。 しかし、値の種類が明示的に指定できないのであります。 REG_RESOURCE_LISTやら REG_QWORDだとか これはいわゆる未完成の不良品なのでしょうか?
>>940 できました。
頭の中で言語がぐちゃぐちゃになってました。
ありがとうございます。
>>942 そういわれてみれば確かにそうです。
今考えるとなぜそうしたのかわかりません(汗
>>949 代用できるので。
WinFXではあるみたい。
>>949 いまの.NETランタイムの仕様自体が試作みたいなものだからね
ほしい機能がないなんてことはざらにある
まあWinFXになれば一通り揃うんでねーの
>>901 =929
まだレス無いかな?めんどくさいから見てないけどレスしておくよ。
ShowInTaskbarをfalaseにするとwindow内のActiveXに破棄のメッセージが行くバグ。
1.0でバグとしてMSが挙げてたけど1.1でも直ってないと思う。
タスクトレイに入れるなら、FormのVisible = falseでもタスクバーには出ない。
ShowInTaskbarだけ無かったことにすればなんとかなるはず。
>>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 scanf 見たいな事は String クラスとか Regex クラスの機能を使ってやる。
perl みたいな感覚。
結局DLL呼ばないと何も出来ないC#なのであった 後半へつづく
やはりWin32APIは全能だ…当たり前だけど。
>>963 その通り。
System.dll他たくさんが無いとどうにもならないからね。
次のLonghornでは.NET Frameworkが主流になって WIN32APIはエミュレーションだけになるとか言ってますが いまの完成度(というか充実度)じゃ先が思いやられますね そして、さらに時が進むと今度は WIN32APIが新アーキテクチャの足を引っ張る罠 仕事とはいえ、ゲイツと仲良くするのも楽じゃありません
>>966 ゲイツはお前のこと友達だと思ってないよ。
( ´д)ヒソ(´д`)ヒソ(д` )
int.ParseとConvert.ToInt32はどう違うの?
API呼ばないとレジストリエディタの一つも作れないのね
直接レジストリファイルのバイナリ処理をする。 とか?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>");
あ〜、ごめん、なんかぼけてた。988は忘れて。
hogeuri = Regex.Replace(hogeuri, "(.+)", "<b>$1</b>") とか。
Regex.Escape
992 :
デフォルトの名無しさん :03/12/22 18:41
で、C#とHSPどっちがすごいのさ という心境にたっした
hogeuri = Regex.Replace(hogeuri, Regex.Escape(hogeuri), "<b>" + hogeuri + "</b>"); で解決しました.991 さんdクス!
イメージに透過色を設定するにはどうすれば?
埋め
埋め
埋め
梅
産め
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。