C♯相談室 Part11

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

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


過去スレ・関連リンクは>>2-5あたり。

ソース置き場.NET
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&rm=10
2名無しさん♯:03/08/19 12:16
3デフォルトの名無しさん:03/08/19 13:11
2
4デフォルトの名無しさん:03/08/19 14:29
値型をボクシングするときは別のメモリ領域に値がコピーされてそこをobject型インスタンスが参照するんですか?
それとも値型自体のアドレスを参照すんるでしょうか?
6デフォルトの名無しさん:03/08/19 16:38
英語読めないんで訳していただけないでしょうか?
エキサイトで翻訳しても意味がわかりません、、
MouseMoveって1pixel動かしただけで呼び出されるんですね
>>7
そりゃどの言語だっておんなじじゃ
C#ではダブルバッファ無いんだね
ある
11デフォルトの名無しさん:03/08/20 12:05
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];
> プロパティとかインデクサとか使ってこういうのはできませんか?
できますよ
メソッドというかクラス作って
public int[] Hoge {
get { return hoge; }
}
14デフォルトの名無しさん:03/08/20 13:12
内容を保持したまま配列のサイズを変更することは可能ですか?
VBやVB.NETで言うところのRedim相当のことがやりたいのですが・・
ArrayList使え
なるほどできました。ありがとうございます。
時期バージョンではMenuItemにTagメンバをつけとくれ。
18デフォルトの名無しさん:03/08/20 15:46
もともとC++野郎なのですが、C#(というか.NETやJava)の
ガーベジ・コレクションというやつがイマイチ生理的に気に入りません。
デストラクタがいつ働くか分からない?? なにそれ??って感じです。
一応、どんなものかは分かっているのですが、その魅力というか、
便利さを教えてもらえないでしょうか。
多くの場合、明示的な解放がいらない
20デフォルトの名無しさん:03/08/20 16:13
>>18
魅力はJavaとかC#やってC/C++に移行した人だけが体験できるものであって
逆の人は気持ち悪いだろうね

ただ、コレだけはいえる。
JavaとかC#の場合、
そういうこと考えてプログラミングする人と
そうでない人のコードは差が歴然
>>20
俺、元々C++屋だったけど、別に気持ち悪くないよ。
どうせ、C++でクラス作るときもメモリ管理用のラッパクラス作って参照カウントとかしてたし、
それに比べたら言語レベルでサポートされたガベコレの方がいいよ。
2318:03/08/20 16:28
>>19
そうですね。
でも自分はまだ、明示的に解放したほうが精神衛生上いいんですがw
いずれ慣れるのかな・・・。

>>20
なんか、GCが常にオブジェクトの有効期間を監視していることによる
パフォーマンスの低下とかが気になっちゃうなんですよね。
それと引き換えにメモリリークの危険がなくなり、手間が省けるように
なったってことなんでしょうが。。。

>>21
リンク先みました。まさに 取り上げられた という気分ですw
>>23
参照カウントとか使って自分で自動メモリ管理コード書いたり、
shared_prt とか使うよりは、
Java とか .NET のガベコレの方がパフォーマンスいいよ。
2518:03/08/20 16:59
なにが気に入らないといって、C#のデストラクタは呼ばれないことが
あるって点かなあ。
それがイヤならusingで囲めって話なんでしょうけど、
openにはclose、mallocにはfree、newにはdelete、そして
コンストラクタにはデストラクタと、必ず対になるように書くように
教えられてきた人間にとってはけっこう抵抗あったりします。
2618:03/08/20 17:00
>>24
そうですか・・ コード量が減るのは実感してるんですが、
パフォーマンスについては他の要因も多くて、ガベコレが
既存のやり方と比べてどうなのか、というのはイマイチ実感できてないです。
>>25
ならば、明示的に IDisposable.Dispose を呼ぶよう習慣化したらいいのでは?
IDisposable は明示的に Dispose させる為のインタフェースでしょ
Dispose して当然じゃん
「パフォーマンスの低下とかが気になっちゃう」香具師がドトネト触る方が
大いなる間違い
3018:03/08/20 17:31
>>27
そうですね・・・。明示的に廃棄(?)処理が必要なものは、
そうやってやる必要があるんでしょうね。
パフォーマンスを気にしないプログラマは怖い
大いなる間違いもへったくれも、趣味グラマじゃなければ
選択の余地がないことのほうが多い
いみふめ
いちいち旧言語の機能とマップしないとものを考えられない奴はアホ
>>25
それは俺も最初抵抗あった。
でも、using 文使えば問題ないし、割と慣れれる。

>>26
http://www.microsoft.com/japan/msdn/net/mag00/GCI.asp
↑この辺読めばガベコレについて分かるかと。
>>33
ずいぶん効率の悪い人ですね。
誰も旧言語の機能とマップなんてしてないわけだが。
http://www.microsoft.com/japan/msdn/net/general/dotnetperftechs.asp

神話: ガーベジ コレクションは手作業で行うよりもつねに遅くなる
神話: JIT で処理されるプログラムはコンパイル済みのプログラムよりも実行速度が低い
GCのパフォーマンス低下以前に
ニューニューしまくってパフォーマンス低下はありまくり。
ディレクトリ巡回して全てのファイルを表示するコード書くと
途中でカクカクするよ。
>>38
それは自分のプログラムが悪いだけではないのかと小(ry
>>39
じゃあヒープ使わないコード書いてミロ
というか添削してやるからソースを出せと
普通にプログラムしてればいいんだよ。

今まで綺麗にオブジェクト管理してたヤツ → 参照カウントや開放処理が楽になる
今までメモリリークなプログラム書いてたヤツ → ガベージコレクタ大活躍
それでもダメなヤツ → 「.NETは糞」発言
C/C++をやってた人間がGCに出会った時、
なんの違和感もなく受け入れられるほうがヤヴァイ気がするんだが
>>41
書けないなら黙ってろよカスが。
なんでC/C++と比較するんだ。

 ソ ー ス を 出 す の が 

 恥 ず か し い 方 が い ら っ し ゃ い ま す

順序として >>41 の言い分が○かと
誰も比較してないわけだが。
>>48
>>26で比較してるじゃん
>>38
ディレクトリ巡回して全てのファイルを表示するコードってニューニューしまくり??
少なくとも優劣の話はしてないわけだが、
なぜそう比較の話になると過剰反応するかねえ
優劣の話だと思っているのはおまえだけ
優劣の話はしてないと思いますが…
別の言語だから違和感とかいう問題じゃないんじゃない?
>>48
お前のほうが過剰反応

っていうか、GCの実行ってコードからも指示できなかったっけ?
>>43
C/C++ でメモリプールの管理とか、shared_ptr の実装の仕方知ってて、
かつ、GC の動作原理についてちゃんと分かってるなら
別に何の違和感もなく GC を受け入れられるよ。
>>56
そんなヤシがC++を離れたがるかが疑問
>>57
ヘッダ書くのがうざいっす。
くだらんながらも俺がC++に戻りたくない一番大きい理由・・・

GCはGCできちんとメモリが解放されるように
参照のゴミが残らないように気をつけなきゃいかんけど
仮にゴミが残ってても無駄にメモリ食うだけでハングの元にはならない。
もうメモリに十分余裕あるから解放済みポインタが残ってハングする可能性を含むより
多少のメモリの無駄があっても安全な方がいいよ。
>>57
いや、普通にそんな奴でも C# に移ってるよ。
メモリ管理以外にも、プロパティとか
インターフェースとかデリゲートとか結構魅力的。
ライブラリも MFC 使うのに比べたら
.NET フレームワークのクラスライブラリは天国だし。
あと、58の言うヘッド書くのうざいっての激しく同意。

>>57
C♯に移行する理由は、そういう低レベル(低層という意味)な問題じゃない。
現実的に便利なんだよね。
オレもヘッダはめんどくさい。
勝手にやってくれるんだから勝手にやらせておけばいい
6258:03/08/21 08:32
あとイベントハンドラが言語レベルでサポートされてるのも大きいな。
63デフォルトの名無しさん:03/08/21 11:23
C++でwhile(cin>>a){処理}のように入力が成功したら繰り返すのはどうしたらいいんでしょうか?
while((bool)(a=int.Parse(Console.ReadLine())))
と書いてもbool値に変換できませんって怒られます。
ほーう、C/C++屋はC♯に移行する人も多いのか。
Delphi屋は全然移行できないみたいだよ。

【.NET】C♯Builder Personal update 2【フリー】
http://pc2.2ch.net/test/read.cgi/tech/1058786955/
>>63
false = 0, true = 0以外 と思ってませんか?
>>63
それは int が bool に変換できないとかいう以前の問題な気が。

string line;
while( (line = Console.ReadLine()) != null)
{
int a = int.Parse(line);
}

あと、int を bool に変換したかったら a != 0 ってしないと駄目。
それに、int.Parse は変換できなかったら 0 返すんじゃなくて、例外出す。
6763:03/08/21 13:26
>>65,>>66
レスありがとうございます。>>66さんのコードでは何を入力したらループが終わるんでしょうか?
何も入力しないでエンターを押してもループが続くんですが。
6863:03/08/21 13:35
もしかしてwhile( (line = Console.ReadLine()) != null)は無限ループで
try{
int a=int.Parse(line);
}
catch{
break;
}

でループから抜けるっていうのでいいんですか?
>>67
Ctrl+Zかな?
Ctrl+C
ああ、空行入力でループ抜けたかったら
!= null を != string.Empty に。
72デフォルトの名無しさん:03/08/21 13:58
>>68で抜けるのと>>71で抜けるのとどっちがいいんだろうか?
>>71にきまってるだろ
やれやれだぜ
>>72
そりゃ仕様次第だろ。
リダイレクトとかパイプ使いたいんだったら ctrl+C で終わるようにしたほうがいい気がするし、
ctrl+C なんてものの存在を知らない人をターゲットにしたいんなら空行で終わりにした方が。
っつーかさ、空行で終わるのもctrl+C で終わるのも仕様なんだったら両方実装するだろ。
どちらかにする意味がわからん
77デフォルトの名無しさん:03/08/21 22:48
.NETでMFCのCIPAddressCtrlにあたるものってありませんか?
78デフォルトの名無しさん:03/08/21 23:27
C#で画面をキャプチャする方法をご存知の方がいましたら、教えてください。
あれこれメソッド探したけど見つかりませんでした。
C#コンパイラって自動的にinline展開とかしてくれるのかな。
たとえば
Hoge GetHogePlus() { return m_hoge.GetHoge(); }
みたくメソッドの中身が単純なコードとか。
>>79
少なくとも JIT 時にはインライン展開するはず。
MSIL 化する際に展開されるようになってたかどうかは記憶にない。
81デフォルトの名無しさん:03/08/22 04:50
イテレータみたいなものってありますか?
あとコレクションクラスの解説をしてある本とかないでしょうか?
>>83
IEnumerable IEnumerator
ヘジたんキタ━━━(゚∀゚)━━━ !!!!!

The .NET Show : Managed Code
http://msdn.microsoft.com/theshow/episode035/default.asp
84デフォルトの名無しさん:03/08/22 07:38
>>83
ロングホーンのAPIってことですか
85デフォルトの名無しさん:03/08/22 11:09
Windowsコントロール内にタイマーを置き、一定時間ごとにマウスカーソルの
位置を調べるということをやっています。
それはSystem.Windows.Forms.Cursor.Positionを参照することで実現できたんですが、
全画面上での位置しか取得できません。
そのWindowsコントロールから見て相対位置に計算するにはどうすればいいですか?
Control.PointToClient
Control.PointToScreen
>>86
おかげさまで下記のような感じで無事にできました。ありがとうございまふ。

System.Drawing.Point p1,p2;
p1=this.PointToScreen(new System.Drawing.Point(0,0));
p2=System.Windows.Forms.Cursor.Position;
p2.Offset(-p1.X,-p1.Y);
88デフォルトの名無しさん:03/08/22 21:18
匿名メソッド、デリゲート代入の文法がマイナーチェンジ
ttp://www.gotdotnet.com/team/dbox/default.aspx?key=2003-08-22T05:59:42Z
前のほうがいいような
C#2.0にはDon Symeたんが大きく関わってるから、やっぱり関数型的な要素が入ってきてるね。
templateも導入されるらしいが、C++みたいに書きづらいのはいやん。
JavaやC++と比べて進歩が早いな。
釣り警報
ObjectSpaces(ぼそ)
>>92
C++は土台が腐ってるから進歩はないな。
JavaにしてもC#の後追い以外の部分は完全に停滞しているしな。
977 ◆QkRJTXcpFI :03/08/23 00:47
まあ、枯れると言うのはいいことでもあるわけで・・・
98デフォルトの名無しさん:03/08/23 00:56
っていうかJAVAがすでに完成されてるから、未熟なC#には開発の余地があっていいね
>>98
釣りとしても100点満点中3点。
現時点ですでに Java よりも C# の方が機能多いし。
>>99
3分以内に一人釣れたから合格点かと

100get
1017 ◆QkRJTXcpFI :03/08/23 01:10

>>99
俺は釣りじゃないのでマジに教えて欲しいんだけど
>現時点ですでに Java よりも C# の方が機能多いし。
どういうことでしょうか?
お前ら最強伝説スレに帰れ
>>101
1.5でC#の機能が追加されるっしょ。
1047 ◆QkRJTXcpFI :03/08/23 01:16
>>103
え?>>100の言ってる機能ってそういうことなのか・・・
言語文法の事じゃん・・・
>>103>>99
>>103
なんで先発のJAVAが後発のC#に後れを取っているんだ?
>>106
そりゃあんた、パクらせたら世界一の大企業、M$ 様がパクったんだぞ。
パクり元よりもいいもの作ってるに決まってるじゃん。
つまりJavaよりC#の方がいいものだと言いたいわけか。
つまりJAVAが世界最強ってことか。まあ、納得。
何を以って「いい」だの「最強」だのと言ってるのかが分からない
>>110
個人的主観
>>111
個人的ではない主観ってあるのか?
いや、だから、おまえら C# 最強スレにカエレ。
GACのエキスパートがblogに登場。なかなか貴重な情報が。
ttp://blogs.gotdotnet.com/alanshi/
他人的主観
116デフォルトの名無しさん:03/08/23 13:26
A.csの中にあるクラスがものすごく縦長になっているので、それと同じクラスの続きをB.csに書きたいんですけど、
続きとは認識されず、すでにそのクラスはありますと言われてしまいます。
こういうことはC#では、不可能なのでしょうか?
>>116
次のバージョンから可能。
>>114
URLがまぎらわしい
荒らし依頼かとおもた
まいくそそふとがんばれ
120デフォルトの名無しさん:03/08/23 15:43
>117
の予定
staticメソッドからインスタンス毎の変数を参照したい場合
どういう実装がスマートですか?
このstaticメソッドはコールバック関数で、インスタンス自体の参照を
渡したりとかは出来ないです。
>>121
そのコールバックのデザイン自体が間違ってる気が・・・
インスタンスは一つだけ?それとも複数?
CheckBoxってなんでAutoCheck付いてないの?ひとつひとつ処理書かなきゃいけないから面倒だ
CheckBoxにAutoCheckつけて何するんだ?
メニューかなんかと間違えてないか?
>>122
インスタンスは複数作る想定で実装してます。
ちなみにコールバック関数はローカルフックのコールバックなので
変更できません。
>>125
そしたらコンストラクタで自身をstaticなArrayListだかhashに登録するしかないんじゃないの。
どうやって目的のオブジェクトを見つけるのか知らないけど。
TabControlのタブの部分の総横幅をページ部分の横幅に合わせる方法ありますかね?
2段になったとき、ものすごく無様なんで。。
>>116 >>117
縦長クラス厨の横行を防ぐためにも1クラスのファイル分割を
サポートしてほしくない・・・と思ったけど
コンバータで自動生成したメソッドだけ別ファイルにはきたいときは便利だな。
C#ってCの#includeみたいなのあったっけ?
ねーっつーの
夏休み早く終わらないかな・・・
131デフォルトの名無しさん:03/08/24 10:19
C#の限界が垣間見えました
あと1週間の辛抱か。
大学はまだ続くところもあるよ
134デフォルトの名無しさん:03/08/25 04:34
C#でコンソールアプリを作った場合も起動とか描画とか遅いの?
>>134
JIT コンパイルしないと駄目だから、初回起動は遅い。
描写って、コンソールに文字出力すること?
それの速度は C++ の cout とかと比較したことない。
>>135
コンソール出力も遅いらしい。
ttp://sellsbrothers.com/spout/#Buffering_.NET_Console_Output
コンソール出力の速度が気になるのか
138デフォルトの名無しさん:03/08/25 15:22
C#からTransparentBltを使おうと思うのですが、
IntPtr dst = g.GetHdc();
IntPtr src = gSrc.GetHdc();
TransparentBlt(dst, 10, 10, 300, 300, src, 0, 0, 290, 290, 0xff0000);
g.ReleaseHdc(dst);
gSrc.ReleaseHdc(src);
だと、
gにまったく変化がない。
どうして?
ありがちー
140デフォルトの名無しさん:03/08/25 23:04
ありがちぶりをおしえてくらはい
141デフォルトの名無しさん:03/08/26 20:08
C#で改行はどうすればいいでしょうか?
VBのControlChars.CrLFに当たるものは?
environment.newline
>>142
ありがとうございまいた。
StreamReaderってforeachに渡せないのは変じゃね?
145デフォルトの名無しさん:03/08/26 22:56
sss <-> "sss"
を相互に変換するStringのメソッドって無いの?
>>144
ぜんぜん変じゃねー
>>145
意味わからん
148デフォルトの名無しさん:03/08/26 23:04
>sss <-> "sss"
"sss" <-> "\"sss\""
ってこと。Trimみたいなやつ。
149デフォルトの名無しさん:03/08/26 23:07
どっちのインターフェースが一般的?
string Search(string key); // 見つからなければnullが返るかも

bool Search(string key, out string result);
>>149
個人的に下の方を選ぶかな

if (x.Search(key, out result))
{

}

string result = x.Search(key);
if (result != null)
{
>>149
とりあえず前者。
途中で書き込んじゃったスマソ
どっちかって言うと上の例の方がスッキリする感じ。
>>144
どうしたいかわからん

>>148
どうしたいかわからん
後者はマニュアルレスで使えるが
前者はマニュアル読まない厨房がぬるぽ起こしそうだな。
155デフォルトの名無しさん:03/08/26 23:19
ぬるぽ起こしたいよな
   (´・ω・`)  ガスッ
   と7と ヽΣ ∧_∧
     ヽ   つ ´Д`)>>155
   〃  し´ ( つ つ
         / / /
        (__)_)
マニュアル読まないなら後者でもbool値を返すことを知らない罠
>>157
インテリセンス使えよ。
>>158
すまん。Javaスレから、C#がどんなもんか見に来ただけだよ。
160デフォルトの名無しさん:03/08/27 00:54
まだ機能は全然だけどInifileクラスを作ってみた。
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5BInifiles%5D%5D
IniReader
ttp://www.mentalis.org/soft/class.qpx?id=6

やっぱDllImport使うのは反則かな?
読み込んだ Ini をキャッシュして、
さらに環境外でのファイルの書き換えの監視までサポートしてくれれば
相当使えると思うんだけど。
163デフォルトの名無しさん:03/08/27 02:06
namespaceを初期化する為のコードを記述できて
そのnamespaceをusingするだけで自動的に呼ばれるブロックって無い?

namespace MyNamespace
{


 initialization
 {
  Console.WriteLine('using MyNamespaceするだけで自動的にこのブロックが実行される');
 }
}
>>163
???

何のために?
>>164
namespace内のクラスの初期化・登録等々。
いちいち外部から明示的に初期化コードを呼び出すのは面倒なので。
1行書けば済むことでは。
・・・やれやれ
というかnamespaceを勘違いしてる気がする。
namespaceってのは識別子が重ならないようにするためのものであって
実行時制御をするものではないはず。
usingってのはいちいちネームスペースの名前まで全部書くのがめんどいから、
「何も書かずに識別子書いたとき、デフォルトでそのnamespaceの中探してね」
ってことなので、中身の初期化どうこうは管理外。ぶっちゃけ全部手書きで
名前解決してやればusing使わなくてもプログラムは書ける。

要するに、苗字みたいなもの。
鈴木太郎君と山田太郎君が居たとき、ただ太郎君と呼ぶだけじゃどっちかわからないけど、
苗字までつければ区別できる。でも毎回苗字まで呼ぶのはめんどいから、
using 鈴木 とやって、太郎君を呼んだらそれは鈴木の方だよとあらかじめ言っておくわけ。


そういうことやりたかったら複数クラスをまとめて管理する
管理クラスでも作るほうがよろしいかと思われます。
>>162
環境外のファイル書き換えの監視は
http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfSystemIOFileSystemWatcherClassTopic.asp
あたりでできるかな。

個人的には、読み込んだ .ini ファイルからXML Schemeを自動で作ってくれるとか(その逆とか)の、
XMLとの相互運用を考慮したものをキボンヌしてみる。
170デフォルトの名無しさん:03/08/27 04:15
>>163
ネームスペースの意味わかってねー

>>160
せめてConverter使えー

ってかXMLSerializer使ったことあるかー?みんなー
Delphiのユニットみたいな物を想像しているのかね?
>>144
>StreamReaderってforeachに渡せないのは変じゃね?

作ってやったぞw

使い方:
foreach(string ln in new TextReaderForeach(すとり〜むり〜だ〜))
{
Debug.WriteLine(ln);
}


public class TextReaderForeach : IEnumerable, IEnumerator
{
private bool eof=false;
public System.IO.TextReader reader;
public TextReaderForeach(System.IO.TextReader reader){this.reader=reader;}
public IEnumerator GetEnumerator(){return this;}
void IEnumerator.Reset(){throw new InvalidOperationException();}
object IEnumerator.Current{get{string ln=reader.ReadLine();eof=(ln==null);return ln;}}
bool IEnumerator.MoveNext(){return!eof;}
}
質問です。C#でstd::listに相当するコレクションはありますか?。
よろしくお願いします。
174デフォルトの名無しさん:03/08/27 07:33
MSDNに.NET compact framework 1.0SP1再りょうふパッケージ
っていうのが出てるんですけどVC.NET2003に入っているのからvervが上がっているんでしょうか?
順序づけされたコレクションの特定の位置にオブジェクトを挿入したり削除したり
したいってわけです。
176デフォルトの名無しさん:03/08/27 07:55
>>174
さいはんぷのことか?
177174:03/08/27 08:02
再頒布です
あとVCじゃなくてVS.NET2003でした。
インストールしてあるフォルダのランタイムと落とせるようになっていたものとの
CABファイルのタイムスタンプは違うんですがどちらも
v1_0_5000_0だったんです。
>>170
>ってかXMLSerializer使ったことあるかー?みんなー
シリアライズは変更の激しいアプリの設定には向かないと思うが。
MSのダウンロード情報をWebサービスで利用できるSDKだって。

Microsoft.com Web Services SDK, Version 1.0
http://www.microsoft.com/downloads/details.aspx?familyid=66cc3c1f-1f44-4f22-ad4c-ed581084df8d&displaylang=en
180デフォルトの名無しさん:03/08/27 11:11
っていうかXMLは無駄にでかくなるだけだと思うが
181デフォルトの名無しさん:03/08/27 11:22
Application.CommonAppDataRegistryフォルダを一発で作る方法おせーて
182デフォルトの名無しさん:03/08/27 12:35
>148
Trimでパラメータ指定すればできるだろ?
183AKATSUKI:03/08/27 13:43
・データ Access2000
ユーザID | パスワード
---------------------
1000 | 0001
1001 | 0002
『レコードを抽出してユーザIDとパスワードのレコード
が一致したならMessageBoxに[OK]を表示』というやり方でやりたいんですが・・・。
自分で↓のように作ってみたんですがうまくいかなくて・・。textBox1にユーザID、textBox2にパスワードを入力するようにしてあります。
誰か教えてくれませんか?
========ソース==========================================================
//実行ボタン
private void button1_Click(object sender, System.EventArgs e)
{
//レコードを抽出
dataView1.RowFilter = "ユーザID='" + textBox1.Text + "'";
dataView2.RowFilter = "パスワード='" + textBox2.Text + "'";
if(textBox1.Text == "" || textBox2.Text == ""){
MessageBox.Show("入力が違います1");}
else{
if(dataView1.ToString() == dataView2.ToString() )
{
MessageBox.Show("OK");
}
else{
MessageBox.Show("入力が違います2");
}}}
private void Form1_Load(object sender, System.EventArgs e)
{
odaPas.Fill(pasSet1,"T_パスワード"); //データを読み込む
}
====================================================================
SELECT COUNT(*) FROM テーブル WHERE ユーザID='あれ' AND パスワード='それ'
をExecuteScalarして、
>>178
XMLSerializerのシリアライズはバイナリじゃないぞ
>>185
バイナリかどうかってことじゃなくてシリアライズが問題。
情報A,B,C,Dを保存していたのをソフトのバージョンアップで
A,C,E,Dの情報を保存するようになったとたん破綻するってこと。
レジストリやINIファイルならその問題はおこらない。
>>186
だからXMLSerializerだって言ってるだろうが!
>>186
xmlでも起きないよね。
XmlSerializerクラス使ってたことあるけど、
>>186な感じでプロパティ1つでも変わると互換性が無くなってしまい、解決方法が解らず。。
なんか上手い設定保存方法ないかなぁと思ってるんだが、、。
興味ない要素は無視すればいいだけだろ
誰がどうやって?
192183:03/08/27 19:11
>>184
すいません。
よくわからないです・・・。
>>189
Application.UserAppDataPathに保存すれば万事解決。





という悲しい落ちなのか・・・
194189:03/08/27 20:33
>>193
そうじゃなく、例えば

class Setting {
  public int Value1;
}

のような設定を管理するクラスをXmlSerializer.Serializeしたとして、
後で設定を増やしても、


class Setting {
  public int Value1;
  public int Value2;
}

XmlSerializer.Deserializeだと正しく読み込めないと言うこと。
iniのような1つずつ設定を保存していく方法はめんどくさいし、、。
>>194
ビルドし直し=シリアルの同一性の保障がない。
だからデータの互換性なんてあきらめろ。
というのがApplication.UserAppDataPathの戻り値に込められた
MSの意図なのだと思ってしまうのだが。
>>194
うちでは正しく読めてるよ。
開発途中でいくつか保存したい項目が増えたけど、問題は起こらなかった。
「正しく読めない」って何が起こるの?
クラスのプロパティ名を変えたり削ったりすると例外吐くよ
198189:03/08/28 18:05
>>196
本当だ、、今試したら読み込めた。。。
読み込めないのは>>197が原因だったみたい。。
ありがとです。
なんでこんな作りかけが入ってるのか
200デフォルトの名無しさん:03/08/28 20:13
StreamReaderクラスのFlushメソッドってヘルプ見たけどなんかよくわかんない。
これ使った方がいいの?誰か詳しい人いませんか?
MSDN TV: SOAP: Service-Oriented Architecture and Programming, Pt. 1
http://www.microsoft.com/downloads/details.aspx?FamilyID=0724b007-d1e7-4d86-b929-bdc6ba1fc810&DisplayLang=en

鈍箱たん登場。
>>200
StreamReaderにFlushメソッドなんて見あたらないんだが。
StreamWriterならまだCloseしたくないけどストリームに書き出したいとき。
203 :03/08/28 21:55
C#でテンプレートとかサポートされた開発環境が手に入るのはいつ頃?
いまはまだ違うんでしょ?
>>203
ベータ版なら年末から来年初め。
正式版は再来年初め。
結構先の話なんだな。テンプレ。早くほすぃ。
2004年後半かと。
207 :03/08/29 00:25
>>204 >>206
ありがとう。微妙に食い違ってるが正式版は来年後半から再来年初めあたりか。
今でも充分便利な言語だろうけど、言語解説書とか金払って買うと後悔しそうだな。
208デフォルトの名無しさん:03/08/29 11:33
Petzold本のコードのキーを判定するところで
if((kea.Modifiers&Keys.Control)==Keys.Control)
って言うのがあったんですが、
if(kea.Modifiers==Keys.Control)
と違いはあるんでしょうか?
keaはKeyEventArgs型です。
209デフォルトの名無しさん:03/08/29 11:45
>>208
その他のキーとの同時押しの場合でもOKなようにしてるんだよ。
Shift+Ctrlとか。
>>208
著作権って知ってる?
無断転載は禁止されているはずですよ?
あなたも死刑判決ですね(ゲラ
引用
死刑って小学生ワードの一つだよな
今朝のニュースで死刑って言ってたけどあいつらは小学生だったのか。
214デフォルトの名無しさん:03/08/29 15:19
>>210
引用を知らない貴方も死刑判決(ゲラ
>>213
つまらん
死刑って、こまわり君だろ。
>>215
212に言ってくれ。
>>210-218
つまらん
おまいら極刑
C#で、Officeのように切り離しの出来るツールバーを作るようなサンプルはありませんか?
220は死刑決定だな(ゲタ
最後に言わしてくれや
222に退廷を執行します。
        _,..-‐'´ ̄ ̄ ̄``ー-、.._
      /     ,、.l´`!ヽ、     ヽ、
   /       イ._ヽ! ,!' _/ヽ     ヽ
.   /       lニニ(ニ)ニ、ニ!      l
.  !      ヽ'´,イ lヽノ      /
.   ヽ、       ̄ ̄      _,.ィ´
     `ー! ‐‐‐‐‐  ‐‐‐‐‐‐ !´
       「`!┬‐‐‐‐‐‐‐‐┬!`!
     __K二二二二二二ニ/!
     l ii,!`"===・、 ====・" l'´,!
    人jj      ≡  .._   lrイ_
    彡´.... i'´ r、.,....ィ ノ. ..... `Y
.   /  ::::::        ::::::::  ヽ
  ,./-         ー        ...!、
 ヽ =‐‐‐‐ー'ー-----‐'ー‐‐‐‐=ノ   死刑。
   ヽ      三三       /  _r7-┐
    `ー 、..__ ‐-‐ _,.....-t='´/´ ̄ ,._彡´
       l `ーニニニ--ri二 `ー--イ,、
         !  '´ ̄ ̄___!´    / ヽ
       >--‐ri'´   _,.-'´   ノ
      /   / l _,.- '´,r'    ,イ
.    /    /‐ヘ´........_i'   r'´
   /    /   ヽ  .!__,......,」
.  / _,.. -‐'´      ヽ、..!   /
   ´             ヾ_,!
225デフォルトの名無しさん:03/08/30 04:31
SmtpMail.Sendを使用してメール送信するときメールを送信し終わるまで監視することは出来ないでしょうか?
226デフォルトの名無しさん:03/08/30 04:56
メインフォームが表示されたらメインフォームの前面に
ログインフォームを表示したいのですが、
なぜか5回に一回くらいの割合で
ログインフォームとメインフォームを行き来できる状態になってしまいます。
ログインフォームはメインフォームを親ウィンドウとした
モーダルダイアログで表示したいのです。
流れとしましてメインフォームのコンストラクタ、Loadイベント内で
メインフォームに関する初期化を行い、初回アクティブ時
ログインフォームを表示する、という風に考えています。
以下はActiveイベントのコードです。
private void MainForm_Activated(object sender, System.EventArgs e)
{
if(bFirstActive)
{
bFirstActive=false;
LoginForm frm=new LoginForm(this.GlobalObject);
if(frm.ShowDialog()==DialogResult.OK)
// if(frm.ShowDialog(this)==DialogResult.OK)これにしても結果は変わらず。。
ucForm.Focus();
else
this.Close();
frm.Dispose();
}
}
いったいどこがおかしいのでしょうか。ご指摘お願いできませんか?
よろしくお願いします。
Windows.Form以外のGUIライブラリが欲しいっす
つうか、メニューバーのデザインがヘボイやつしかねえじゃん。
新しいデザインの方は使わせない気ですか?
使おうと思えば使えるからいいんじゃないの?
標準はあれだけで十分。
>>226
frm.ShowDialog(this)で開いたfrmとthisを行き来できる時があるということか?
そんなわけないよ。
LoginFormのコンストラクタでなんかやってないか?
JavaにもDelphiにもあるActionクラス相当がないのが致命的
CSBスレにカエレ
233226:03/08/30 12:35
>>230
そんなことあるから困ってるんですよ〜。
LoginFormのコンストラクタでは引数を変数に格納しなおしてるだけです。
ただひとつ気になるのが、
Oracleに接続してコンボボックス等を初期化するのでMainForm側の初期化処理が長い
ということです。
OleDbCommand のFillメソッドを多用しています。
でもこれはコメントアウトしても同じ現象が起こるので
関係ないと自分では思っています。
そういえばクリック連打して複数起動した時に再現できる確立が高い
ように思えます。
いったいなぜこういうことが起こるのでしょうか。
どなたか心当たりありませんか?
よろしくお願いします。
俺が言えることはアプリ起動時にLoadイベントよりMoveイベントの方が先に呼び出されると言うことだけです。
comコンポーネントにActiveMovieControlがないのですがどうすればいいですか?

このコンポーネントを使って、自作のMoviePlayerを作りたいのです
>>235
参照ボタン押して
C:\WINDOWS\system32\msdxm.ocx
を指定すればいいかと。
旧バージョンよりはwmp9やDirectXのほうがいいような気も。
237226:03/08/30 20:35
初期化処理を省いてもやっぱりだめでした。
前述の通りLoginFormのコンストラクタは
引数を変数を格納しているだけです。
また、Activeイベント以外の他のイベントでも試してみたのですが、
同様の結果でした。
あと、この現象の起こりやすい方法がわかりました。
ビルドしたexeをすばやく5〜6個起動して
立ち上がるより前に別のウィンドウ(なんでもいい)
をいくつも立ち上がると発生率がかなり高いです。
私はexeを連打してタスクバーのショートカットより
フォルダを別窓でバンバン開いてます。
そもそも起動時に認証ダイアログをモーダルウィンドウで表示する
コードは
>226
のであってるのでしょうか?
もうこれ以上原因を追求できなくなってきて上記のコードがやっぱり
怪しい、、とにらんでますが解決できません。
もう一声よろしくお願いします。
238235:03/08/30 20:54
>>236
wmp9やDirectXをする場合はどうすればいいのですか?
>>238
wmp9だとCOMのとこのWindows Media Player (c:\windows\system32\wmp.dll)。
DirectXだとMicrosoft.DirectX.AudioVideoPlayback.dll。(これは普通はないかも)
ちゃんとやるんならどちらもSDK入れてドキュメント見たほうが。
240235:03/08/30 21:55
>>239
ありがとうございます。うまく再生できました
>ちゃんとやるんならどちらもSDK入れてドキュメント見たほうが。
これのヘルプなんてあったんですね。勉強して参ります
>>179使ってみた人いる?
amazonのようには盛り上がらないか。
242デフォルトの名無しさん:03/08/30 23:34
ソフト作ったのですが、デバッグなしで開始だと起動するのに
F5で開始するとハングアップするのはなぜでしょうか?
ウィンドウズ上で動くソフトなのですが
>>242
自分が作った所にバグがあるのでしょう。
244242:03/08/31 00:34
>>243
どういう意味ですか?
>>244
あんたの作ったバグが分からない限り、
ハングアップする理由なんてわからないってことだよ。
>>242
デバッガ有り無しは忘れて普通にデバッグしてみたら?
このケースはC#では出会ったことが無いので
どんな原因興味あるんで見つかったら教えてよ。
247242:03/08/31 00:45
>>245
バグの表示は何もでないです
コンパイルしても何もエラーはでません。
F5を押すと何も表示されないまま、ハングアップします
タスクマネージャーで見るとプロセスとしてはあるのですが

フォームを使ったアプリなんですが、普通こういうことって起こらないの?
>>247
だからバグがあるんだよ。
コンパイルエラーがでるようなものは記述ミスでありバグとは言わん。
249242:03/08/31 00:54
>>248
よくわからないのですが、私のプログラムに問題があるってことですか?

私はフォームを作って、それに上記で質問した>>239 MWP9を貼り付けただけのものです
プログラムの記述は何もしてません
ちなみに、フォームだけ作った状態でF5をやっても、コンパイル後反応無くなります

こういう意味では無くて?
再インストールしたら?
251242:03/08/31 01:14
M$のプログラマをアンインストールしに行って来ます
後ろで動いてるソフトが原因とか
vs終了してエクスプローラから実行してみたら。
ソースをどっかにアップしろや
255242:03/08/31 01:32
ソース
http://www.42ch.net/UploaderSmall/source/1062261023.txt

>>252
とくに何も動いてません。ノートンも一応切ってみましたが、同じ状況でした

>>253
やって見ても、同じくプロセスとしては起動してるのですが、画面には何も表示されません
起動したときのウインドウの初期位置が
はるか彼方に行っていたりしてな。
257242:03/08/31 01:57
>>256
調べてみようと思ったら
デフォルトでは右下にある初期位置設定画面が無くなってるのですが
どうやって表示させるのですか?
258242:03/08/31 02:01
>>256
やはり、プロパティ見ましたが、スタートポジションはデフォルトだったのでそれは違います
センターに設定してみましたがやっぱりダメでした
たまーに表示されないことがあるのでそれかと思って実際に試してみたが
いつも表示されないね。
260242:03/08/31 02:14
>>259
それは私のプログラムのことですか?
>>260
そうだよ。
VS.NET上から実行しない場合とデバッグなしの場合は問題なし。
262242:03/08/31 02:31
ななんと!!他の人のパソでも同じ現象が!!
ってことは、VS.NETが吐き出すソースが変ってことですよね?
どこが原因かわかりますか?


このソフトエロ動画視聴用作ったんです
上の矢印でいいシーンを繰り返してみたり、スキップできるんです
Divxなどは早送りやコマ送りができないので
それが擬似的にできるソフトを作ろうと思ってます
大昔作ったwmp9絡みのもの、デバックありで実行したら表示されない。
もちろん当時は何の問題もなかった。
それにPlayer.Controlsでエラーが出る。
調べたらPlayer.Ctlcontrolsに変わったらしくてそれは解決できた。
表示されないのはよーわからん。
264242:03/08/31 03:19
>>263
そうですか・・残念

さっきも言ったように、新規プロジェクトでフォームだけ作成しても
同じ状況になるので、やっぱ再インスコか・・・
ありゃスマソ。
表示されるよ。ものすごい時間かかるが。

mscorlib.resources.dll
(↑を読み込んだ後ここでしばらく休憩 Zzz...)

accessibility.dll
(↑を読み込むと表示)
266242:03/08/31 04:15
>>265
おおお!そうなんですか?
でも、みなさんが、フォーム作っただけで開始してもそんなことにならないんですよね?
それとも、VS.NETの自体にバグがあるのかな?

夜遅くまで検証して頂いて申し訳ないです。

C#もうだめぽ
268デフォルトの名無しさん:03/08/31 06:57
webブラウザ作ろうとしているんですがAxWebBrowserのメンバの解説はどこかにないんでしょうか?
ヘルプに無いようなんですが。
あるよ
270デフォルトの名無しさん:03/08/31 07:20
>>262
あんたじゃ無理だからあきらめろ
271デフォルトの名無しさん:03/08/31 07:28
>>269
MSDNライブラリをAxWebBrowserで検索しても出てきませんでした。
.NET frameworkのクラスにウェブページを表示するのに使うのはどれなんでしょうか?
272242:03/08/31 07:32
>>270
確かに無理かもしれないけど、そんな言い方ないんじゃないですか?
一応欲しかった機能は作れたので、私はこれで満足してます。
>>272
わざわざ煽りに反応しなくても。

>>271
参考:緑のバイク
ttp://homepage3.nifty.com/midori_no_bike/CS/index.html
MSDNへのリンクも文中にある。
274271:03/08/31 07:57
NET2003付属のライブラリには無いんですね。
HttpWebRequestとHttpWebResponseでもWebページ見れそうですが
「AxWebBrowser1」とか「WebBrowser1」とかで検索しろよ。
日本語で.NETコンポが大量に掲載されてるサイトどこ?
あー俺もデバッグで起動するとdllの読み込みで固まることある。
20回に1回くらいかな。
>>265で書いてあるように、たぶん待ってれば起動するんだけど
すぐにデバッグ停止して、再起動してる。
たぶん環境との相性の問題だろうね。
278デフォルトの名無しさん:03/08/31 16:47
C#からMS OfficeについているBookShelfを操作することってできないですか?
自前の辞書インターフェースを作りたいのですが。
犯罪だろ馬鹿
280デフォルトの名無しさん:03/08/31 17:37
bookshelfに/dというオプションと引きたい単語を渡せば、それを表示してくれるよ。
同時に/hも試してみて。
C#から起動するのは、自分で調べてね。
>>280
単に起動するだけではなくCOM経由で
その内容を取り込んだりしたいんです。
>>281
C++だろうがC#だろうがCOMに対応していないソフトは
COM経由で操作することは出来ない。

たぶん、ウインドウハンドルとかクリップボードを利用して
裏技的なやりかたで取得するしかないんじゃないかな?
C#でもAPIは使えるので試してみるのもいいかもしれない。
void C()の関数内でどの関数から来たか知る方法ってありますか?

void A()
{
  C();
}

void B()
{
  C();
}

void C()
{
  AとBどっちの関数からきたか?
}
>>283
引数に判別用の物を追加しては?
>>284
そうなんですけど
前の関数をもう一度繰り返した後、また戻ってくるようにしたいだけなので
もっと簡単な方法があるのかなと・・

あと、void C() この関数引数なくても動作する物なので
他の関数から利用する場合、引数入れないといけなくなっちゃうので
スマートじゃないかなーと
>>286
さっぱり要領を得ないが設計が間違ってるような気が。
あと引数の問題ならオーバーロードさせれば問題なし。
無理すればStackFrameやStackTrace使えばできそうだが・・・
あまりいい方法じゃないな
289283:03/09/01 06:44
>>287
オーバーロードって文法ですよね?
なるほど、オーバーロードで調べてみます

>>288
無理すればってことは難しい方法なんでしょうね・・
私にはちょっとむりぽ・・

どもでした。
290デフォルトの名無しさん:03/09/01 08:03
VS.NETのフォームデザイナでコントロールの配置をフォームのサイズに対して
n分の一っていうようにはできないんでしょうか?
やはり自分でコードかかないとできないんですか?
そんな機能あったってうれしくない
>>290
おまえのやりたいことはデザイナのプロパティでできる
293290:03/09/01 13:11
私がやりたいのは
this.button1.Location = new System.Drawing.Point(this.ClientSize.Width/3, this.ClientSize.Height/3);
というのをデザイナからできるかどうかです。
できる。以上。
295290:03/09/01 13:25
どうやればできるんでしょうか?
プロパティにそれらしいところが見つかりません
そのnは常に一定なのか?
297290:03/09/01 14:31
>>296
一定です。
Anchorとは違うか
299226:03/09/01 22:29
お世話になっております。
一からプロジェクト作り直して
・起動時にForm2をモーダルダイアログとしてForm1より前面に表示
こんだけの処理を書いて試してみましたが、
やはり無理でした。
状況は以前と同じです。
連打で複数起動して起動までの間に
すばやく別窓を多数表示させる、という方法で
複数起動したいくつかのうちでForm1とForm2を行き来のが
混じっているのを確認しました。
初回Active時のみフォームを表示するという
>>226のコードはどうやら根本的に間違っていると思います。
頭をリセットして考えたのですが、他に方法が思い当たりません。
私のクソコードはボツだということはよくわかりました。
みなさんならどうしますか?
お教えくださいませ。
再度知恵をお貸しください。
C#でmp3を再生するのはどうすればいいでしょうか。
自力でデコーダを搭載しないと行けないのでしょうか
>>300
media player を利用すればいいだろうが
>>300
Microsoft.DirectX.AudioVideoPlayback.dll
【C♯初心者】今から始めるC♯ Part01
http://pc2.2ch.net/test/read.cgi/tech/1062421817/
C#のCOM経由でエクセルを制御する場合、
エクセル単体で起動するよりも高速化は無理ですか?
ファイル開くのだけで1分くらいかかるのですが・・・。
304と同じくExcelネタなのですが、ado.netでExcelのデータの更新はできないのでしょうか?
複数のExcelファイルにSQLを発行するアプリケーションをつくっているのですが、
SELECT文まではうまくできたのですが、UPDATE文がとおらないです

調べた範囲ではINSERTはうまくいくそうなのですが。
adoならレコードセットで更新できるそうなので更新部分だけadoでつくるしかないでしょうか。
>>304-305
おまえら互いに答えてやれよ
>>306
教えてくださいって言ってる人が
他人のために調べてあげるだろうか?
308デフォルトの名無しさん:03/09/02 23:56
Windowsアプリケーションを作成しているのですが、そのアプリの設定ダイアログで
悩んでいるので質問します。

最近のアプリって設定項目が多いせいか、タブ切り替えからツリー選択式になって
きているのが多いと思うのです。で、そういう設定ダイアログを作ろうと思っているの
ですが、VS.NET2003ではどのようにデザインすればいいのでしょうか?

タブ式ならば、タブコントロールでできるのですが、ツリー式のように、ダイアログ左側
にツリーがあって、そこを選択されたら、その都度、表示されている画面を切り替える
というのはどうやってGUIをデザインするのでしょうか?

毎回、プログラムから表示位置とかコントロールとかを指定して描き直しとかになるので
しょうか?それだと、かなりしんどいので、なるべく、GUIでサクサク作りたいのです。

よろしくです。
>>308
Delphi+TreeView+NoteBookでサクサク
310デフォルトの名無しさん:03/09/03 00:11
今VC#.NET STD 2002を持っているのですが
2003を買う必要がありますか?
必要があるとしたら何故でしょうか?
311308:03/09/03 00:46
>>309
VS.NET2003の場合はどのコントロールになるのでしょうか?
>>310
物欲を満たすために絶対に買うべきだ。
買わなければずっとすっきりしないでいることになる。
これ以上に必要な理由は一切ない。
>>310
日本経済の活性化のために購入せよ
VS.NET買っても儲けるのはゲイツ?
アメリカの景気が良くなれば日本も良くなるよ
たとえば2004が出なかったらどうする?とか思うじゃん。
XPは飛ばして2000で我慢とかいってもなかなか耐えられないじゃん。
だから買っておけよ。
>>311
C♯には数多くの限界があるため実現するのは非常に面倒くさいと言えるでしょう。
318310:03/09/03 02:45
2chにマジレス期待した私がバカでした。
今度くるときは荒らしとしてきます。


さようなら
>>308
ユーザーコントロールの追加でコントロールをデザイン、
ユーザーコントロールを切り替えていく。
320デフォルトの名無しさん:03/09/03 06:39
VisualC#のインストールってネット繋がないとインストールできないの?
プロダクトアクティベーションは電話でも出来るはず。
322デフォルトの名無しさん:03/09/03 07:24
>>321
アクチベーションしないとインストールできないんですか?
インストールはできるけど起動制限があります。
324デフォルトの名無しさん:03/09/03 07:55
>>323
起動制限っていうのはなんでしょうか?
325デフォルトの名無しさん:03/09/03 08:04
VS.NET2003は4回起動できます。
>>308
どーしてもGUIがいいというなら左側TreeView、右側TabControlを配置してしまう。
フォームがツリーノードクリックイベントをキャッチしたら
対応するTabPageをアクティブに。
当然、タブが表示されてるのが嫌だと思うので、TabControlのY座標をマイナスにして
うまくタブが見えない位置に配置する。どうだ?

>>310
312はマジレスと思うが・・・
>>308
UserControl継承した設定フォームを作って、
TreeNode.Tagに格納するなどして、あとはパネルとかで表示しる
328310:03/09/03 09:13
>>326

>>312のような心理的なことはどうだっていいの
それは自分の判断でしょ、人に聞いても参考にならない

私が聞きたいのは、2002と2003の違いが知りたいの
ここが便利になったとか、2003でないと不都合あるとか
329327:03/09/03 09:15
>>319で既出だったすまそ
>>328
違いはMSサイトに書いてあるけど、まさか読まないで質問なんてあり得ないよな。
それ見て満足できなきゃ、買えとか買うなとか言ってほしいだけに見える。
そうでなきゃ違いにこだわりすぎる理由はないからな。
もうまじで買った方がいいよ。健康のためにも。
このスレへの迷惑をなくすためにもな
>>328
一番大きな違いって、.NET Frameworkが1.0対応から1.1対応に変わったことかな?

ttp://www.microsoft.com/japan/msdn/vstudio/productinfo/topten/upgrade.asp
あとは、「Visual Studio .NET 2003 にアップグレードする 10 の理由」を見て。
2002もってないので、どこが違うのかは分からん。
333310:03/09/03 16:26
>>332
おれ2002で.NET Framework1.1インスコしたぞ。だめなの?
見たけど、あんまし欲しい機能とか変わってないな
2002でいいか
334310:03/09/03 16:30
>>332
なんで2002も持ってないのに、初日に2002買ったおれより詳しいの?
318 名前:310[] 投稿日:03/09/03 02:45
2chにマジレス期待した私がバカでした。
今度くるときは荒らしとしてきます。


さようなら
より洗練されたVisual Studio .NET 2003の新機能を探る
ttp://www.atmarkit.co.jp/fdotnet/special/vs2003/vs2003_01.html
337デフォルトの名無しさん:03/09/03 16:48
システム時刻を変更したいのですがどうしたらいいのでしょうか?
DateTime.Nowは読み取り専用なんで設定できませんでした。
MSDNライブラリ検索してもVBのメソッドしかでてきませんでした。
C#で時刻を変更できるメソッドかプロパティはないんでしょうか?
VBのライブラリ使えばいいじゃん。
339310:03/09/03 17:15
>>336
メモリと起動速度だけはちょっとメリットあるかもね
でも2002でNET Framework1.1使える以上余りメリットないね
バージョンアップ見送ります
もうちょっとレベルの高いスレ立てないか?
>>339
2002でNET Framework1.1使えない。
>>335
見事に荒らされてる
343310:03/09/03 17:23
>>341
インストールしたよ
344337:03/09/03 17:39
.NET Compact FrameWorkなんですができるんでしょうか?
345332@2003もち:03/09/03 17:53
IntelliSenseが.NET 1.1にも対応しているとか、@IT特集にあった新機能が
魅力的に思えないとかだったら、無理して2003にする必要はないでしょう。

1.1のインストールは、環境さえ満たしてればできますが、
追加されたAPIに完全対応しているのかな? 2003のように使えるならいいのだけど。
あと、OSを再インストールする時に、手間が少しだけなくなることも利点の1つか。
2003は本体を入れるだけで1.1環境になるけど、2002では本体+1.1を入れないといけない。
>>345
残念ながら >>341
>>346
おっと、失礼。
1.1をインストールしても、2002では対応はしていないという事ですね。

>>310
1.1を使いたいなら2003へ移行、1.0でいいなら2002のまま。ってことで。
この程度のアップデートで金取るのはMSとコーエーくらいのもんだ。
うみゅ。
WindowsUpdateだともう1.1しか入れてくれないものだから
Windows.Formsとかを含んだのだと2002でビルドしたのは配布が面倒なり。
.NETって駄目ね。
あら、そんなことないわよ。
>>345
1.0→1.1でいろいろバグがつぶされてるので1.0はお勧めできんよねー。
353310:03/09/03 22:22
所詮2chでえられる知識なんてこんなもんか・・・
やっぱり買うか買わないかは時分できめます。
それじゃあ。
2ちゃんに決めてもらおうとしてる時点で買う資格無いね。
絶対買うなよ。
355310:03/09/03 22:51
>>354
あなたの示唆するところではありません。
356デフォルトの名無しさん:03/09/03 22:51
時代はJava。
357310:03/09/03 22:52
>>356
厨房は書き込まないでください。
358310:03/09/03 22:53
>>357
贋物は死んでもかまいませんよ?
>>355
恥ずかしくなる日本語だな。
>>353
すでにリンクなど情報は出てるからもう自分で決めるしかないだろ。
361310:03/09/03 22:55
>>359
あなたには言われたく在りません。藁
で、釣果のほどは?
363デフォルトの名無しさん:03/09/03 22:58
示唆ってこんな使い方するのか?
痛すぎる…
365310:03/09/03 23:00
>>363
チョンですか?藁
366310:03/09/03 23:02
>>365
だからにせものは消えてください。

しさ 1 【示唆】

(名)スル
〔「じさ」とも〕それとなく物事を示し教えること。
「―を与える」「―に富む話」「政界の腐敗を―する事件」
>>366
>>354はそれとなく?
368デフォルトの名無しさん:03/09/03 23:05
>>367
釣りですか?藁
369368:03/09/03 23:06
あーん。騙るつもりが名前入れ忘れた(恥
370310:03/09/03 23:07
>>367
普通に会話で使いますが?
ニュースとかみない?
イタタタタ
372310:03/09/03 23:09
>>370
東スポでよく見るよな
C#より日本語という言語を選択することをお勧めする
310に言い負かされて必死になっている馬鹿がいるスレはここですか?
本物の>>310は恥ずかしくてもういないだろ
376310:03/09/03 23:14
>>372>>373
引きこもりですか?それともただの馬鹿ですか?
放置できないあなたも
378310:03/09/03 23:14
>>375
ということにしたいのですね? :)
354 名前:デフォルトの名無しさん[sage] 投稿日:03/09/03 22:26
2ちゃんに決めてもらおうとしてる時点で買う資格無いね。
絶対買うなよ。

355 名前:310[] 投稿日:03/09/03 22:51
>>354
あなたの示唆するところではありません。

クラスAとクラスBがあります。
クラスBにはクラスAにあるButton1.Textに"テスト"を代入するメソッドTestがあります。
しかし、クラスAからこのクラスBのメソッドTestを呼び出してもButton1.Textに"テスト"が代入されません。エラーも出ません。
どうすれば、このメソッドTestを使えるようになるのでしょうか。
381310:03/09/03 23:16
>>378
贋者ですけど同感です。
382310:03/09/03 23:16
>>380
空気嫁。
383310 ◆IlmTU23eNk :03/09/03 23:18
>>382
贋者が多すぎます。
384デフォルトの名無しさん:03/09/03 23:19
385310 ◆IlmTU23eNk :03/09/03 23:21
>>384
だから何ですか?
>>380
コードも出さないでどうやって答えろと
387デフォルトの名無しさん:03/09/03 23:24
>>380
public
>>387
それが原因ならコンパイルエラーが出るような気がするが……

コード見ないとなんとも言えないが。
>>386
>>387は答えられたみたいですよ。
>>387
>エラーも出ません。
ちなみにプロジェクト内すべてのprivateをpublicに置換しても無理でした。
何でデバッガでステップインしてインスペクトしないの?
393380:03/09/03 23:34
空気四でませんでした。無かったことにしてください。
>>392
今日知った言葉を並べているみたい。
>>380
オブジェクトが違ってたなんてことは決してないよね。
当然だよね。
別インスタンスのフォームのText操作してたりして・・
結局コードが出せなかったか。


何で放置できなかったんだろう、俺。
398380:03/09/03 23:39
310がうざいからネタ質問して話題を変えようとしただけなんだけどな。
つ、、釣られたのか(;´д⊂
雑談スレ逝ってくれ
401310(本物):03/09/04 02:12


放置できない時点であなた達の負けです






↓以後、C#の話題
402デフォルトの名無しさん:03/09/04 02:14
今VC#.NET STD 2002を持っているのですが
2003を買う必要がありますか?
必要があるとしたら何故でしょうか?
1.0と1.1の違いも添えて教えて下さい
403402:03/09/04 02:23
2chにマジレス期待した私がバカでした。
今度くるときは荒らしとしてきます。


さようなら
404402:03/09/04 02:35
無駄無駄無駄無駄無駄ッ!!
2002で作ったプログラムは配布すると
一般の方は実行できないのでしょうか?
よろしくおねがいします。
>>405
WUすればいいだけ
>>405
twintailは2002(.NET1.0)です。
実行できます。
>>406>>407
なんですか?それは?
410310(本物):03/09/04 03:00
twintailのソース見たけど
なぜそれぞれネームスペースの名前が違うの?
CLASS単位で名前変えればいいのに
それと、上のレスで2002で作られた場合
面倒なことしなければならないって書いてたけど
何か特別なことしてるの?


WUするのは1.1で作られた場合だけでしょ?
>>410
ネームスペース分かってる?
>>410
> なぜそれぞれネームスペースの名前が違うの?
作者の趣味だろ?

> WUするのは1.1で作られた場合だけでしょ?
一般に使われている 98, Me, 2000, XP には .NET Framework 1.0 も
初期状態ではインストールされていません。
413310(本物):03/09/04 03:09
>>412
なるほどそういうことか。
適切な回答ありがとうございます。
414310(本物):03/09/04 03:10
>>411
質問してる人に質問してどうするんですか?と質問してみます。
頼むから初心者スレに逝ってくれ>310
>>414
うぜえ氏ね
初心者(310(本物))さんはこちらへどうぞ

ふらっとC♯(Part4)
http://pc2.2ch.net/test/read.cgi/tech/1059028988/

もしくは

【C♯初心者】今から始めるC♯ Part01
http://pc2.2ch.net/test/read.cgi/tech/1062421817/
418310(本物):03/09/04 03:28
>>417
お、くだすれまだあったんだ。タイトル変わってたから気付かなかった
419310(本物):03/09/04 05:46
twintail
このソフト作った人すげーよ
ソースも公開してくれてるし、まじで神だな
これみながら勉強するよ
live2chより全然軽いし(・∀・)イイ!
420デフォルトの名無しさん:03/09/04 07:46
C#で時刻を設定できないのでしょうか?
421310(本物):03/09/04 07:55
>>420
うせろ!初心者!!すれ違いも甚だしいな
>>421
バーカ。氏ねよ。
423420:03/09/04 08:09
すれ違いなんですか?相談室とありますが?
よろしくお願いします。
424デフォルトの名無しさん:03/09/04 08:20
>>423
【C♯初心者】今から始めるC♯ Part01
http://pc2.2ch.net/test/read.cgi/tech/1062421817/
ここはスレタイが微妙すぎる。
どういう人を対象にしてるかわからん。
>>424は間違いです。

初心者向けはこっちでした。

ふらっとC♯(Part4)
http://pc2.2ch.net/test/read.cgi/tech/1059028988/
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
427423:03/09/04 08:43
ふらっとのほうにいってきます。
誘導ありがとうございました。
428デフォルトの名無しさん:03/09/04 10:50
429305:03/09/04 18:11
ado.netでExcelファイルに対してSQLのUPDATEステートメントが発行できなかった件ですが、
.netでないほうのただのADOを使うことにより解決したので報告します
ADOのほうでは普通にUPDATEステートメントも使うことができました

スレ汚しすいませんでした
>>429
それが解決なのか…
432デフォルトの名無しさん:03/09/05 14:24
>>308
1度テンプレートを作ってしまえばあとはGUIでサクサクになる方法見つけたよ。

[デザイン編]
1. 左側にTreeViewを配置して設定項目を追加する
2. 右側の設定表示領域にPanelを配置
3. 2.のPanelと同じ領域にTabControlを配置
(PanelとTabControl内のTabPageの領域が同じ位置・サイズになるようにする)
4. 3.のTabControl.VisibleをFalseに設定する
5. 各TabPageにPanelを配置してDockをFillに設定する
6. 5.で配置したPanelの上に設定用のコントロールを配置する

[コード編]
7. TreeViewで項目が選択されたらその項目に対応するTabPageを検索し5.のPanelの参照を取得
8. 7.で取得したPanel.Parentを2.のPanelを設定する(この時点で設定項目が表示される)
9. 前回8.で設定されたPanelのParentを元のTabPageに設定する
(古い設定項目が消える。消さなくてもZオーダの設定だけでよいかもしれない。)
(10. 別のFormのPanelを同様の方法で引っ張ってくることも可能かもしれない。)
433デフォルトの名無しさん:03/09/05 15:00
フォームを区切る横線ってどうやって出すんですか?
>>433
無理です
435308:03/09/05 16:50
>>432
おお、確かにこれなら、デザイン的にもいい感じですね。

つまり、タブにデザインするんだけど、表示上は隠しておいて、
必要になったパネルだけを引っぱってくるという感じですね。



でも、なんというか、ドトネトのGUIコンポーネントって貧弱すぎの
ような気がします。delphiやswingとかなんかもっといろいろ揃って
いるのに。。

MSはドトネトは、あくまで、サーバサイドの技術として売っていこうと
しているのでしょうか?クライアントサイドにももっと力をいれれば、
コンシューマレベルではいっきに普及するのに。
十分リッチクライアントを意識してると思うが…
>>435
全てが中途半端なのが.NETの良いところなんだよ。
>>435
だからLonghornで、だっちゅーの。
>>435
簡単に拡張できるからいいんじゃないの?
オレ的には基本だけ押さえてあれば十分なんだが。

っつーかなにが欲しいんだ?
440308:03/09/05 17:58
>>439
そうですね。。

ツリーと表が合体したようなコントロールがほしいです。
よく、メーラのツリー表示機能なんかで使うコントロールです。

あとは、表自体がヘボいので、表の各セルに好きなGUIコンポーネント
をくっ付けられたら文句ないです。
今ある表って、アイコンとかでさえ、自由に表示できないし。。。

あ、ちなみに、ここでいう表ってのはListViewのことです。
441439:03/09/05 18:04
>>440
ツリーもリストもあるじゃん。
アイコンだって表示できるけど「自由に表示」ってどういうこと?

基本的に表は表であって、セルにコンポーネントが配置できるほうが特殊だと思う。
やろうと思えばできるし、難しくもないんだけど…
442デフォルトの名無しさん:03/09/05 18:05
>>440
そこら中に沢山コンポが転がってるの使ったらよろし
443デフォルトの名無しさん:03/09/05 18:08
TreeView.ImageList.TransparentColorが無視されるんだけどなんで?
>>443
それどこに書いてる?
445443:03/09/05 18:17
どこってどういうこと?

ImageListに背景色Redなビットマップ登録して
ImageList.TransParentColorにRedをしていして
TreeView.ImageListにImageList1登録して
TreeViewやTreeNodenoImageIndexを指定してビットマップ表示すると
背景の赤が抜けなくてそのまま赤く表示されてしまう。
446444:03/09/05 18:39
>>445
IDEで設定してるってことね。

そのビットマップの赤ってほんとにRGB=255:0:0なのか?
447443=432:03/09/05 19:42
>>446
画像自体には問題なかったけどプロパティごちゃごちゃと
いじってたらなぜか解決してしまった。原因不明。

>>308
Visual Studio.Net風オプション設定フォーム作ってみたよ。
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%A5%C4%A1%BC%A5%EB-%A5%AA%A5%D7%A5%B7%A5%E7%A5%F3%A5%D5%A5%A9%A1%BC%A5%E0%5D%5D
shdocvwのマネージコード版が欲しい。
HTMLを表示できるRichTextBoxっぽいのでも良いけどさ。
>>448
次のバージョンでサポートされるから1年半ほど待て
450デフォルトの名無しさん:03/09/06 17:01
SDKを使い、テキストエディタでチマチマと練習してます。
とりあえずウィンドウは出せるようになりました。

けれども、cscでコンパイルしたexeをクリックをすると、
プログラム自体は起動するのですが、ウィンドウのバックにDOS窓が出てしまいます。
このDOS窓を出さないようにするには、どうしたらいいんでしょうか?
コンパイルオプションで設定するんでしょか。
>>450
/t:winexe を付ける。

csc /t:winexe hoge.cs
452450:03/09/06 19:32
>>451
無事、Windowsアプリケーションができました。
ありがとうございますー。
Windowsアプリって実はDOSなんDESか?
>>453
DOSではなくコンソールアプリケーションというアプリの種類だな。
cscの仕様として、/targetオプション(略形式/t)が指定されなかったとき、
デフォルトで/target:exe(コンソールアプリケーション)が指定される、という話。

デフォルトと違うのが欲しいならちゃんと指定してくださいってことだ。
/target:winexeとか/target:libraryとか。一度csc /hを見てみるよろし。

                  ノ      } ゙l、   」′           .,/′   .,ノ _,,y
    .,v─ーv_         〕      〕 .|  .il゙            《 ._   .,,l(ノ^ノ
   ,i(厂  _,,,从vy      .,i「      .》;ト-v,|l′          _,ノ゙|.ミ,.゙'=,/┴y/
   l  ,zll^゙″  ゙ミ    .ノ       .il|′アll!           .>‐〕 \ _><
   《 il|′     フーv,_ .,i″       ||}ーvrリ、             ¨'‐.`   {
    \《 ヽ     .゙li ._¨''ーv,,_     .》′  ゙゙ミ| ,r′                }
      \ ,゙r_    lア'    .゙⌒>-vzト    .ミノ′                 〕
       .゙'=ミ:┐  .「      ./ .^〃     :、_ リ                   .}
         ゙\ア'   .--  ,,ノ|    、    ゙ミ}                   :ト
           ゙^ー、,,,¨ -   ''¨.─   :!.,   リ                   ノ
              〔^ー-v、,,,_,:     i゙「   }                  .,l゙
              l!     .´゙フ'ーv .,y    ]                  '゙ミ
              |     ,/゙ .ミ;.´.‐    .]                   ミ,
              |     ノ′ ヽ      〔                   ミ
              }    }     ′    }                   {
              .|    .ミ     .<     〔                    〕
              .{     \,_   _》、    .{                    .}
              {      ¨^^¨′¨'ー-v-r《




456402:03/09/07 12:18
でかいチンコが見えるようなきがするのは気のせいか?
>>456
多分疲れてるんですよ。ゆっくり休養してくださいな。
独習C#とかいうのは買いですか?
>>458
やめとけ
ぶあついから?
461デフォルトの名無しさん:03/09/07 18:58
>>458
おれ買ったよ。読んでないけど
>>461 読んでないのなら当てにならないな。
*「せんもんしょ は 買っただけではいみがないぞ
  ちゃんと装備しないとな」
マジレスすると、それなりに使える内容では?
せっかく買ったんだったら読めよ
466デフォルトの名無しさん:03/09/07 21:55
 
おれ読んだけどよかったよ、
プログラミング初心者なら買いでは?
VSも買っただけでは意味ないよ
469デフォルトの名無しさん:03/09/08 18:38
TextBoxのEnableがfalseの状態の時に
ドロップアンドドラッグ通知を受け取る方法はありますか?
ありますよ
471469:03/09/08 20:15
すみません。質問の仕方が悪かったです。
ドロップアンドドラッグ通知を受け取る方法をおしえてください。
あと、追加で質問なのですが、確実に存在するファイルを
System.IO.File.Existsで判定しているのにfalseが帰ってきます。
原因と対策をおしえてください。
>>471
File.Existsの方はソースだしたら教えたげる。
473469:03/09/08 20:33
>>472
ソースといってもどこからどこまでさらせばいいのかちょっとわからないので
自分なりにまとめた結果を書きます。

1.Form_Loadイベント時に自作の関数(仮にfunc_aとします)を20回ほど呼び出す。
2.func_aでは変数宣言部の最後にFile.Exists(string 引数)とし、ファイルが存在するかチェックする。
3.そのときは正常にfunc_aは終了(return)する。
4.Formにあるボタンをクリック時に指定のファイルを読む。(そのファイルにはファイルの場所が1行事に書いてあります。)
  ここではStreamReaderとReadLineを使っています。
5.ReadLineで得た結果をfunc_aの引数として実行する。
6.試しに引数の値がForm_Load時にfunc_aを実行した時と同じものにしても、
  ファイルが存在しないとみられる。

となっております。
474デフォルトの名無しさん:03/09/08 20:37
スレ違い

【C♯初心者】今から始めるC♯ Part01
http://pc2.2ch.net/test/read.cgi/tech/1062421817/

>>473
1)まず
public static void Main() {
System.IO.StreamReader r = new System.IO.StreamReader("読み込みたいファイル");
string s;
while ((s = r.ReadLine()) != null)
Console.WriteLine(file(s).ToString());
}
でtrueが返ってきてるか

2)func_aのFile.Existsの結果をMessageBox.Showで出してみる

つうかfunc_aでFile.Existsをどう使ってるんだ?
476475:03/09/08 20:56
だぁ、
Console.WriteLine(File.Exists(s).ToString());
だった。
477469:03/09/08 21:07
1)file(s)のところでエラーが出たので、まんまs.ToString()にしました。
結果は読み込んだファイルが1行づつ表示されました。

2)正常に実行される時はtrueですが、うまく行かない時はやはりfalseでした。

File.Exists自体はほんとは使う必要は無いですが、
FileStream fileStr = File.OpenRead( "ファイルから読み込んだ行" )をした時に、
エラーが出てる用なので、確認として使ってます。
478469:03/09/08 21:13
1)の結果修正。
読み込んだファイルの行の数だけfalseと表示されました。
>>473
素直にソースうぷ汁
どの部分出したらいいかわかんないんなら関係してる部分すべて
480469:03/09/08 21:19
すみません。原因がわかりました。
テキストファイルをオープンする時にEncodingをdefaultにしたら、すんなり通りました。
メッセージボックス表示しても、デバッグ時に確認しても違いが無いから気づきませんでした。
ホントにすみません。

つるし上げという事で、どこかうpロダあったらうpしたいと思います。
つるし上げワロタ
482デフォルトの名無しさん:03/09/10 00:13
DataGridのことで質問です。
プログラムでグリッドのヘッダがクリックされたことを
エミュレートしたいのですが、どうすればいいのでしょうか?
よろしくお願いします。
>>482
Invoke
>エミュレート
485デフォルトの名無しさん:03/09/10 13:16
ある自作ライブラリで対になったInit(), Done()メソッドがあって
Init()を呼び出さずにDone()が呼び出されたら例外を投げたいのですが
どの例外を投げるのが適切でしょうか?
デバッグ時にバグ検出する為のものではなく
ライブラリの仕様にしたいのでAssertは以外がよいです。
>InvalidOperationException
>オブジェクトの現在の状態に対して無効なメソッド呼び出しがおこなわれた場合にスローされる例外
とか。
487sage:03/09/10 14:27
スレ違いかもしれませんが...
型付データセットで、 (type=xs:string)となっているRowのデフォルト値を
"String.empty"にしたいのですが。
default=""とかやってみたけどできません。どなたか方法知ってますか?
>>487
すれ違い

【C♯初心者】今から始めるC♯ Part01
http://pc2.2ch.net/test/read.cgi/tech/1062421817/
The C# Design Process
A Conversation with Anders Hejlsberg, Part I
http://www.artima.com/intv/csdes.html

The Trouble with Checked Exceptions
A Conversation with Anders Hejlsberg, Part II
http://www.artima.com/intv/handcuffsP.html

Delegates, Components, and Simplexity
A Conversation with Anders Hejlsberg, Part III
http://www.artima.com/intv/simplexity.html
490482:03/09/11 19:07
>>483
レスありがとうございます。
具体的にどう使えばいいのかわかりませんでした。
MouseMoveをInvoke経由で呼び出せばいい、ということはわかったのですが、
ただ呼び出すだけではこの列がクリックされた、という風にイベントを発生させることができません。
もう少しだけヒントいただけないでしょうか?
よろしくお願いします。
491デフォルトの名無しさん:03/09/13 12:28
C#で、コンソールを使って複数のファイルをコンパイルするにはどうすればいいんでしょうか?
Javaだと、関連のあるファイルを勝手にコンパイルしてくれたのですが・・・・
>>491
Java、勝手にコンパイルなんてしてくれたっけ?

csc -r:lib1.dll,lib2.dll,lib3.dll file1.cs file2.cs file3.cs
493469:03/09/13 14:40
ラベルの描画速度って遅く無いですか?
スクロールさせたりすると結構残像が残る。
なにか対処法ありますでしょうか
>>493
おまえの限界
ラベルの幅を越えた文字列があっても、自動改行されない方法はありますか?
>>495
ありました。
どういう方法ですか?
>>491
>Javaだと、関連のあるファイルを勝手にコンパイルしてくれたのですが・・・・

してくれんぞ。
499475:03/09/13 21:42
>>491
> Javaだと、関連のあるファイルを勝手にコンパイルしてくれたのですが・・・・
そもそもどうやってそれが関連あるソースかどうか判断するんだろう?
500デフォルトの名無しさん:03/09/13 21:42
いい感じですな。

Snippet Compiler
http://www.sliver.com/dotnet/snippetcompiler/
>>498-499
Delphiと間違えてんだろ。
Delphiは名前空間とファイル名が一致するからusesしてるファイルを検索すれば可能。
>>500
ICSharpCode.TextEditor.dllが消えたので
日本語使うとき気持ち悪くならなくなったかなと思ったが
今度はインライン変換できなくなってしもた。
でもすごく進化してていい。
>>500
しかし変化の激しいソフトだな。(w
504デフォルトの名無しさん:03/09/15 13:23
Windowsフォームを作っているんですが、メニューの追加やテキストボックスの登録で
やたらとソースが長くなりました。
当然他のソースファイルに分割するわけですが、どうもうまく動かない。該当部分を抜き出すと

メイン処理がこれで
public class MyForm : Form {
  //コンストラクタ
  public MyForm() {
    this.Size = new Size(700, 500);
    this.Text = "テキストエディタ";
    this.Controls.Add(TextBoxBuilder.InitializeTextBox());
  {
}

テキストボックス追加処理がこれです。
class TextBoxBuilder {
  public RichTextBox textbox = new RichTextBox();
  public static Control InitializeTextBox() {
    return textbox;
  }
}
505504:03/09/15 13:36
あ、二つは別々のファイルです。

コンパイルすると、テキストボックス追加処理の四行目、"return textbox;"で
「静的でないフィールド、メソッド、またはプロパティ'TextBoxBuilder.InitializeTextBox' で、
オブジェクト参照が必要です」といったエラーが出ます。
今の自分では、どこが間違っているのかわからなくて困っております。
参照するtextbox変数もstaticにしる
>>506
できました!
何だか基本的な事だったようで、お恥ずかしい・・・・
VS.NET2003で、プラグイン機構を持つWinFormsアプリケーションの
開発で行き詰まってます。

あるメソッドが実行される際、当該メソッド内で呼ばれる他のメソッドの情報を、
実行時に取得したいと思うのですが、方法が思い浮かびません。
具体的に取得したい情報は以下の通りです。
 ・メソッド総数
 ・各メソッドの親子関係(どのメソッドから呼ばれたか/どのメソッドを呼ぶか)

プログレスバーの処理を凝ろうと思っていて、「〜〜を処理中(2/5)」というように
処理総数と既処理数を表示したり、処理が階層構造をもつ場合に子処理の内容を
表示したり(例えば、タスク「インストール」の子処理として「ファイル**をコピー中」と
表示するなど)したいのですが、その際に、メソッドの実行計画を取得したいのです。

また、これらの情報をロギングにも流用したいと思うのですが、log4netなどの
ロギングフレームワークとの連携についても、頭を悩ませております。

理想としては、メソッド名や処理内容の説明などはXMLドキュメントを、
ロギングに関してはlog4netをそれぞれ利用・流用し、開発者は各クラス・メソッドの先頭に
属性を設定する程度の手軽さで、プログレスUIへの詳細情報の提供とロギング機能を
同時に享受できるようにしたいのです。


こういった処理には定石があるような気がするのですが、探せど見つからず、という状況が
続いております。どなたかご教授いただければ幸いです。
>>508
仕事でやってることならば、2chで聞かずにfjとかで聞けよ。
ちょいと聞きたいんだが、PropertyGridで表示させる
プロパティの内容を動的に変更することってできるのか?
VS.NETのヘルプを見ると、GridItemを実装して云々、という
ようなことがほのめかされているんだが、よくわからん。
511510:03/09/17 04:01
すいません。自己解決しました
うーん・・・なんか使えないフォントが多い
GDI+だとしょうがないのかな?
 エクスプローラでファイル一覧を表示するときに、左側にアイコンが出ますが、
これを拡張子ごとに他のアイコンに変更したいのですが、やったことある方いらっ
しゃいますか?
514デフォルトの名無しさん:03/09/18 07:03
VC#でフォームプログラム作ってる方はフォームのコントロールの配置は
デザイナでやってますか?自分でコード書いてますか?
515デフォルトの名無しさん:03/09/18 07:07
>>514
そんなにデザイナは使い物にならないのか?
516475:03/09/18 07:16
>>513
なぜこのスレで?
ってあーもーいつまでこの名前使ってるんだか。
>>517
なにが
どこかにC#(というか.NET)の正規表現の詳しい説明なあい?

普通のと少し違うよね?
ごめんなさい

私が馬鹿でした

人間やめます
>>519
> どこかにC#(というか.NET)の正規表現の詳しい説明なあい?
普通にヘルプにあるが。
オンラインのMSDNだと
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconcomregularexpressions.asp
らへんが入り口かね。

ところで何を以て普通と言うんだろうね?
>>521
うん、ごめん
早とちりだったよ

いまヘルプみて自分の愚かさがわかったtt
>>516

 どのスレがいいでしょうか?
>>523
エクスプローラの質問ならPC初心者板あたり。
>>524

 すいません、説明が足りませんでした、プログラムから制御したいんです。

 書き込み中に何度も、ぞぬたんが落ちたので、何度も書き直していて、そのことを
書くのを忘れていました。(^^;
526510:03/09/18 09:16
>511 騙ってんじゃねぇぞゴルア。スルーされたじゃねぇかよ。

ちなみに自己解決したならしたで、どうやったかを
まとめるのが当たり前だと俺は思ってるぞ。
>>526
じゃあまとめろやハゲ
//表示がずれてしまいます。誰か助けてください。
public class Form1 : Form
{
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint (e);
string s = @"
    ┏━━━ / |━━━━━┓
    ┗┳┳━ |_| ━━━┳┳┛
      ┃┃ /  ヽ     ┃┃
    ┏┻┻ |======| ━━┻┻┓
    ┗┳┳ ヽ__ ¶_ ノ ━━┳┳┛
";
e.Graphics.DrawString(s, new Font("MS Pゴシック", 12), new SolidBrush(Color.Black), 0,0);
}
public static void Main(){ Application.Run(new Form1()); }
}
>>528
だってそれAAがずれてるじゃん
>>529
TextBoxに表示するとずれません。
531デフォルトの名無しさん:03/09/18 11:11
>>530
それMS UI Gothicだからじゃねーの?
532402:03/09/18 14:59
巨大なチンコAAを表示してどうするつもりだ?
>>532
>>455のことか?
>>532
あんなもんおれのティンコと比べたら大した事無いよ
>>528
MS Pゴシックはフォントサイズによってずれます。
そもそもプロポーショナルフォントでAA書く時点で間違い。
2chがそうなんだけどね。
537デフォルトの名無しさん:03/09/18 18:02
フォームの×ボタンを押したときの処理は、
どのようにすればいいのですか?
>>537
Closingイベント
539537:03/09/18 18:57
private void Form_Closing(object sender, System.EventArgs e)
だと、処理してくれないんだけど・・・・
間違ってますか?
>>539
CancelEventArgsだよ

それともイベントが発生しないと言うこと?
もしかして、Formにタブコントロール置いてる?
>>539
で、そのメソッドをForm.Closingイベントに追加したのかね。
つかデザインのプロパティのイベントのClosingをダブルクリックするのが一番早いけどな。
private void OnPaint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g = e.Graphics;
Bitmap bitm = new Bitmap( ClientRectangle.Width, ClientRectangle.Height );
Graphics buffer = Graphics.FromImage( bitm );
paint( buffer );//実際の描画処理
g.DrawImage( bitm, 0, 0 );
}
とやったときに、最後の
g.DrawImage( bitm, 0, 0 );で描画したいのですが、
paint関数ないでの処理一つ一つで描画されてしまいます。
どこがいけないのでしょうか。
543539:03/09/18 19:32
>>540
CancelEventArgsにするとエラー出ます。
閉じるボタンを押したときにデーターベースの更新処理をしたいんだけど、
イベントが発生してないみたいです。
タブコントロールはおいてません。

>>541
フォームの×ボタンをダブルクリックするとLoadイベントに
なってしまいます。

メインフォームからボタンを押して、このフォームを開いてるんですが、
それって関係ないですよね?
>>543
> CancelEventArgsにするとエラー出ます
じゃ何かイベント登録部分が間違ってる

> フォームの×ボタンをダブルクリックするとLoadイベントに
そうじゃなく、プロパティタブに雷マークがあるからそこクリックするとイベント一覧が出る
545543:03/09/18 21:01
>>544
感謝です。
雷マークのclosingダブルクリックで出来た所に
コード書いたら処理してくれました。

自分で書いたコードと同じだと思うんだけど、
何で出来なかったんだろう?

ありがとうございました。
>>545
イベントの登録だろ。
普段は畳まれてるinitializeComponentメソッドのFormの部分でも観察してみ。
>>546
なるほど。
this.Closing += new System.ComponentModel.CancelEventHandler(this.Form_Closing);
ってのがイベントの登録なのね。

ついでにもうひとつ教えてほしいんだけど、
処理中にポインタを砂時計にすることって可能なんですか?
Cursor = Cursors.WaitCursor
というかコレくらいは検索すれ
>>548
検索に疲れ、つい質問してしまった。
ごめんなさい。

今度は集計で迷う予定なので、
その時はまた教えてくださいね。
550542:03/09/19 21:40
スレ進行が止まっているのなら
>>542について一緒に考えて下さい。
>>550
this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
でイベント追加して
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) に542のコードを書いて、
private void paint(Graphics g)に適当に時間を空けながら4角形4つ書くコードを書いてみたんだが、
4つ全部書き終わった後で描画されてますよ?

具体的にpaint()ってナニやってるの?
072
中間報告
記念すべきこのスレ立てからの姉妹サイトのレス伸び率

1 デフォルトの名無しさん 03/09/01 22:10

【C♯初心者】今から始めるC♯ Part01
436レス

ふらっとC♯(Part4)
207レス

C♯相談室 Part11
252レス
554デフォルトの名無しさん:03/09/20 17:19
MDIの子ウィンドウを親ウィンドウのクライアント領域の外に持っていくと
スクロールバーが出るじゃないですか。
あれを出さないようにするにはどうすればいいんでしょう?
AutoScrollをfalseにしても駄目みたいだし。
555誰か知らない?:03/09/21 12:17
.NET Frameworkで作ったDLLの中身ってオブジェクトブラウザで見えちゃいますよね。
自分の作ったDLLの中を見られたくないんですけど、どうすればいいんでしょう?
>>555
Obfuscatorを使うしか手はない。けどpublicメンバだけはどうしようもない。
557556:03/09/21 12:29
マジですか
見られても理解できないコードを書けばok
クラス名とかは乱数で作成
インターネットショートカットの、プロパティのところの「表示回数」を取得する方法ってありますか?
なんかいらいらしてたけど、オナニーしたら気分さっぱり。
562デフォルトの名無しさん:03/09/22 01:22
C#で作ったプログラムって空のウインドウだけで起動直後のメモリ使用量が
タスクマネージャで見ると10,260Kもあるんだけど。いったん最小化して元に
戻すと2,396Kに減ったけど、どうにかならんもんか。
563デフォルトの名無しさん:03/09/22 01:45
ファイルを開くとき、その中間に入ってフィルターでいじるようなことは簡単に出来ますか?
ファイルA→→プログラムB→→プログラムC
このファイルを開くときBでヘッダを書き換えてそれをCに渡す
実際にはファイル自体は書き換えられていない状態で、Cがその部分を読むときだけフィルターされる感じです。
564デフォルトの名無しさん:03/09/23 14:48
現在のウィンドウをBitmapに保存するにはどうすればいいでしょうか。
bmpファイルではなくSystem.Drawing.Bitmapという意味です。
565564:03/09/23 15:39
すいません。自己解決しました。
566564:03/09/23 16:08
>>565
してません。
今後自己解決をした奴は、解決方法を書くこと。知識の共有という奴ですな。
教えてもらって解決した場合も、結果レポートを書くとなおよし。
568デフォルトの名無しさん:03/09/23 16:55
この手のスレで他人を騙るのはいい加減無しにしないか?別に面白くもないし。
初歩的な質問であったにせよ、質問してる本人は真面目に質問してるんだから。
あんたのスキルがどの程度かしらんが、あんたも初心者の頃があっただろ。
人に質問して助けてもらったことが生涯で一度もなかったとでも?
つまらん遊びでスレを費やすな。
>>564
キャプしてSystem.Drawing.Bitmapに取り込みたいということかな?

ttp://www.7cho-me.com/~kawaz/diary/?200212b&to=200212172S3#200212172S3
>>567-568
どこかで聞いたようなセリフだなwww
571564:03/09/23 18:22
>>569
いえ、違います。もうどうでもいいです。ほっといて下さい
>>567
何仕切ってるんだよ!厨房が!!

>>568
おれは十分おもしろい
573デフォルトの名無しさん:03/09/23 18:34
ほんとにDel厨には困ったものだ
574568:03/09/23 18:39
>>570-572
おまえら会社ではよっぽどコケにされてるんだろうな
いやただのヒッキーか学生か?
とにかく、荒らしてる奴は一体何がしたいんですか?
日ごろの鬱憤をここで晴らそうとしないでください。
初心者を虐めることで自尊心を補えると勘違いしないでください。
わたしが初心者とわかると急にえらそうになって、
そんなに初心者いじめてる奴はたいしたスキルもない香具師ばかり
上級者や、充実してるプログラマはそんなことはしない
今からでも遅くなりません。初心者にやさしくして、ここを良スレにするように心がけてください
まず、初心者である私を育成してください。
プリンセスメーカーやたまごっちやったことありますか?
あなた達の育成の仕方で私の今後の態度も変わります。
いいたいことはこれだけです。
もう二度と同じことはいいません。これが最後の忠告です。
あなたに米粒ほどの良心があることを祈っています
プログラマって友達いないのって本当ですか?
2chで人とコミュニケーションしてるつもりになってるのは本当ですか?
キモイです。氏んでください
576564:03/09/23 18:42
>>571
しつこいですね。

とりあえず解決しました。
Win32APIを使わずにやりたかったのでGraphics操作時にBitmapを対象に行うようにし、
そのBitmapのバックアップをグローバル変数で保存しておくという形にしました。
返事くださった方々ありがとうございました。
>>576
バカみてえな質問してんじゃねええよ!!クソが!!
初心者スレ逝け!!
ついでにその解決法( ・,_ゝ・)プークス
578デフォルトの名無しさん:03/09/23 18:49
>>574
文章の感じが【C♯初心者】今から始めるC♯ Part01 の1氏と似ているが、
同一人物?真似ているだけの愉快犯なら、あんたも相当危ないぞ。
>>568 お前2ちゃんに来ない方がいいよ。一番ダメなタイプ。
>578
コピペにマジレスw
あなたは恥ずかしいインターネットでつねwwww
>>578
どうもこのスレを潰して【C♯初心者】今から始めるC♯ Part01 をメインにしたいらしい。
中間報告もその現れ。
>>568
スキル:始めたばかり、超初心者
職業:ひきこもり
友達:0人
彼女いない暦:32年
レスした理由:
ああいうやつは、本当に許せないんですよ。
ぼくはバカなので>>564の質問には答えられませんが
常識だけは知っています。荒らしは許せんです。はい。
>あなた達の育成の仕方で私の今後の態度も変わります。
他人の言葉でくるくる変わってんじゃねーよ。
584デフォルトの名無しさん:03/09/23 18:56
>>581
その企みは無駄な努力だと思うけど。
アラシはみんなむこう、真面目に質問したい人はこっちという分担にすれば
みんな納得すると思うが。
585568:03/09/23 18:58
惜しいな、結構いいセン行っているんだが。
おまえら釣られすぎ、荒らしはスルーしろよ
何年2chやってんだよ、まったく
>>585の発言で平静を装ってはいるものの、内心腸煮え繰り返っている>>568
プログラマは大きく分けて2タイプいます。

潔癖、完璧主義:
根っからのプログラマー
でも、それ以外は全然ダメダメ君
リーダーシップ取って人をまとめたりするのは苦手
顧客のニーズを把握するのが苦手(人の話し聞くの苦手だから)

完璧主義の落ちこぼれ:
口ではでかいこと言うけど
ちょっと、つまずくとすぐやる気を無くしてしまう
基本的に完璧主義なので、一回挫折するとなかなか立ち直れない
そして、ひきこもる
この手のスレで他人を騙るのはいい加減無しにしないか?別に面白くもないし。
初歩的な質問であったにせよ、質問してる本人は真面目に質問してるんだから。
あんたのスキルがどの程度かしらんが、あんたも初心者の頃があっただろ。
人に質問して助けてもらったことが生涯で一度もなかったとでも?
つまらん遊びでスレを費やすな。
590デフォルトの名無しさん:03/09/23 19:12
今無性に興奮しています。何かいいエロビデないですか?
>>574

【C♯初心者】今から始めるC♯ Part01
http://pc2.2ch.net/test/read.cgi/tech/1062421817/473

のコピペ。っつーか二度と同じこと言わないんじゃなかったのかよ(藁
元すれ1 ◆jYDOLr.5ps必死だな(w
592デフォルトの名無しさん:03/09/23 19:14
>>568は2ch初心者及びVB厨にケテーイ
593デフォルトの名無しさん:03/09/23 19:14
そういや今から始めるC♯がその後伸びていないが、1氏はやはりこちらで
お仕事中か?
594デフォルトの名無しさん:03/09/23 19:15
>>591=>>568
必死だなww
595デフォルトの名無しさん:03/09/23 19:18
>>574=>>568
同じ病に犯されています
596591:03/09/23 19:21
>>594
誤爆?
597デフォルトの名無しさん:03/09/23 19:21
30レス伸ばしてやったぞ、感謝しろ
598デフォルトの名無しさん:03/09/23 19:22
>>590
ドリームウーマン12
599590:03/09/23 19:23
>>598
アリガd
これからビデオ屋逝ってきまつ
お取り込み厨悪いんですが、質問させてください。
これからプログラミング勉強したいと思っておりまして
Delphiなんかいいのではと思っているのですが
まだ、店で売られていますでしょうか?
暇だから肛門にえんぴつ入れてみよっと
あなたらがしたことで私は忘れるしません
>>600
勉強程度ならダウンロード版Personalで十分だろ。
604600:03/09/23 21:05
すいません、解決しました。
解決したとき 射精くらい気持ちよかったです。
>563
せっかく標準入出力が備わってるんだからパイプで渡せばいいんとちゃう?
C:\>TYPE ファイルA|プログラムB|プログラムC
NUnit使ってる人いる?
http://www.atmarkit.co.jp/fdotnet/tools/nunit2/nunit2_01.html
このHP読んだんだけど、テストされる側、つまり正規のプログラム自身も
クラスライブラリプロジェクトにしないとテストできないみたいなんだけど
これだと普段ビルド後に正規のプログラムを起動したいとき、dllだからできない。
いちいち起動するときだけWindowsプログラムプロジェクトに切り替えたり
するのもめんどいし。
普通はこれどうやって使ってるの?
607606:03/09/24 00:06
すいません。説明載ってました。スレ汚し失礼しました
608606ホンモノ:03/09/24 00:11
>>607
新手の嫌がらせヤメテクレー
609606:03/09/24 00:24
モマエらどうせまともに答える気ないんだろ?
もういいよ!自分で調べるよ!!
>>607-609
今日のひるまっからいるな
暇人
612606:03/09/24 00:35
>>607-610
まじでうざい奴らだな
確かにおれは自分で調べる気もないし
質問してるのに為口だけどさ、邪魔することはないだろ
誰か早く答えてくれよ。このままじゃおれの質問シカトされっだろ?
>>606
>>612
もう少し言葉の勉強からはじめた方がいいですね
いくら2chでも礼儀は必要です
よってあなたの質問は放置します。終了。
614606ホンモノ:03/09/24 00:44
最悪だ・・・最悪のタイミングで質問してもうた。
つぅかなんでこの板、ID表示してないのよ。
まじでNUnit使ってる人、教えて欲しい。困ってるので。
615デフォルトの名無しさん:03/09/24 00:49
>>606
スマン、NUnitなんてもの使う程、高度なプログラム作ってないだよ。
@ITの会議室で質問したほうがよくないか?そんなに賑わっている訳じゃ
ないが、登録制だから粘着荒らし君もいないし。
我々が荒らし君を引きつけている間に早く行くんだ!!
>>614
スルーよろ
617606:03/09/24 00:52
>>615
つぅかわからないならレスするな糞DQN会社クビになったやつ
618606ホンモノ:03/09/24 01:05
>>615
ありがとう、悲しみを怒りに変えて生きるよ!
おまえたちがやったことは忘れないからな
C#にも、テスティングフレームワークがあったのか。
探せばあるだろうと思ってたけど、面倒だから探さなかったよ。
日本語の解説もあるし、ちょうど新しいコード書くところだから、
ためしに使ってみるかな。
C#ではAttributeのおかげでグッド
むしろウザい。Test継承してtestXXXでいいやん。
>>606
可愛そうになってきた。
このURL見たところ別にDLLにする必要は無いと思うんだが。
624606ホンモノ:03/09/24 08:49
>>623
ここの説明だとテストされる側をdllで出力されるようにビルドして
テスターからはそのdllを参照し、メソッドを呼び出すという仕組み。
テストされる側をexeで出力するとテスターからexeを参照しようとしても
dllやcomじゃないと参照できないと怒られる。まぁ当然だけど。
NUnitはテスターのdllを呼び出し、テスターはテストされる側を参照設定しているわけで
テスターコンパイル時にdllにテストされる側のうちの必要なクラス(テストされるクラス)は
組み込まれテストされる側がどんなファイルにしろNUnitが読み込むのはテスターdllなわけで
別に大丈夫じゃないんかと
JAVAにすがろうとする、メーカー対策だったりして
627デフォルトの名無しさん:03/09/24 18:05
double型をint型に変換すると、小数点以下切り捨てられてしまいますが、
小数点以下四捨五入することは可能ですか?
628デフォルトの名無しさん:03/09/24 18:09
>>627
0.5を足して、少数を切り捨てると四捨五入になるよ。
(探せば少数を丸める関数とかあると思うけどね)
>>627
@IT会議室 > Insider.NET 会議室 > 四捨五入
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5507&forum=7
630626:03/09/24 18:48
いまさら築いた激しく誤爆。ゴメソ
>>630
大丈夫。このスレでJavaなんて単語出してもスルーされるだけだから。
632627:03/09/24 20:17
>>628,629
ありがとうございます。
>>627-628
っていうか、Math.Round 使えよ。
>>633
っていうか、>>629嫁よ。
>>633
君のは誤答だ。間違った道に引きずり込もうとする罠だな。
正直628の方法でいいじゃん。
>>634-636
いや、Round って偶数丸めしてくれるだろ。
単純な四捨五入よりも偶数丸めの方が平均誤差少なくなるし。

単純な四捨五入って 0.5 とかのど真ん中の値を常に切り上げちゃうんだけど、
偶数丸目って 0.5 の場合に限り、偶数になるように丸める
例えば、
3.5 → 4 (誤差 0.5)
4.5 → 4 (誤差 -0.5)
5.5 → 6 (誤差 0.5)
6.5 → 6 (誤差 -0.5)
平均すると誤差がなくなるってこと。
>>637
いや、そんなことはみんな分かってると思うぞw
業務系(特にお金扱う場合とか)は、「四捨五入」って言われたら
誤差が多かろうが少なかろうが、それに従わないと。
639デフォルトの名無しさん:03/09/25 15:33
コンポーネント作成について詳しく説明した書籍ってないですか?
640デフォルトの名無しさん:03/09/25 17:20
>>573
をよろしくお願いします
641640:03/09/25 17:28
済みません。もうすこしで自己解決できそうです。
解決できたらこのスレで大々的に発表する予定です。
642デフォルトの名無しさん:03/09/25 22:48
573 :デフォルトの名無しさん :03/09/23 18:34
 ほんとにDel厨には困ったものだ

とあるが、なにをどうお願いしたいのだろう。
643デフォルトの名無しさん:03/09/26 00:22
http://memo.st.ryukoku.ac.jp/archive/200309.month/6508.html

Delphiにはとんでもないセキュリティホールが隠されていたそうです。
Del厨はこんなものをマンセーしていたのかよw
やはりネイティブコードは駆逐されるべきだな。
644デフォルトの名無しさん:03/09/26 00:56
ごめんなさい
>>563ですた
645デフォルトの名無しさん:03/09/26 01:04
>>644
なんだ、Delスレにみんなで殴り込んでくれ、というのではないのか。
646デフォルトの名無しさん:03/09/26 21:42
>>645
http://memo.st.ryukoku.ac.jp/archive/200309.month/6508.html

Delphiにはとんでもないセキュリティホールが隠されていたそうです。
Del厨はこんなものをマンセーしていたのかよw
やはりネイティブコードは駆逐されるべきだな。
>>646
Delphiスレでやれよ。C#スレを荒らすためにやっているとしか思えん。
The .NET Show: Tablet PC
http://msdn.microsoft.com/theshow/episode036/default.asp

Tablet PCほしくなった。
さすが信者
650デフォルトの名無しさん:03/09/27 07:35
xmlに設定をシリアライズする時に
シリアライズするクラスのメンバが変わるとエラーになるんですが
回避できないでしょうか?
INIの方がサイズ小さいし、そんなことで困らない
シンプルいずベストですね。
>650
シリアライズって便利だけど、過去ログに、
・2次(以上)に影響のあるクラスを多数受け持つと実情に差し障りがあるくらい遅くなる
・メンバ変更されると読めない。(>650)

じゃ、Compositeパターンで多数のCompositeクラスが発生すると考えた時にはどんな設計がベター?
ひとりよがりではつまらないので後フォロー宜。
1.LeafとCompositeから共通に呼ばれるNode(Data)クラス(IEnumerableインターフェイス実装)
2.Nodeには呼ばれ先を記述(Keyプロパティ)
3.Nodeのみシリアライズ。デシリアライズ時に呼ばれ先を見て適宜に割振る。

んー、ちょっと結合度が高くなるかなぁ?
要はNodeが設計変更されにくくなれば良いんだけど。
扱うデータは既に決定してる業務系って特殊なのかな。
654653:03/09/27 15:14
多数のCompositeクラス→多数のCompositeオブジェクト
Compositeクラスは一応ひとつだけって想定で。
655デフォルトの名無しさん:03/09/27 15:44
WebBrowserコントロールで画像は読み込ませないようにする(テキストのみのブラウザ)にする
方法を調べているのですが、ぜんぜん糸口が見えず苦悩しております。

どなたかお知恵を頂けないでしょうか?
656_:03/09/27 15:45
>>656
Good job!
デシリアライズをReflectionでFieldごとにExceptionトラップすれば、
メンバ増えても、一応読みこみはできるはず。
あげ
みなさんはどの程度のソフトで金取れるとおもっていますか?
秀丸くらいじゃないと
MS-Officeくらいが最低ラインかな。
ロジックよりもコンテンツ勝負だろ。
単にデータ表示するだけのソフトでもコンテンツ次第では大金になる。
大金か?
ナンバー図予想ソフト
>>665
騙しか?(藁
totoならある程度の精度で予想できるんじゃないか?
2回に一回当たったらかってやる。
669デフォルトの名無しさん:03/09/29 18:31
会社の方針でC#の勉強始めました。
元々VB使ってたので、VB.NETの方が馴染み易かったんだけど...
やっは今でもC>VBなのかなぁ?バイトコードも全く違うのかなぁ?
>>669
C#の前にまず.NETFrameworkの勉強をした方がいいかも。
あとC#はC/C++よりJavaに近いよ、文法的に。
671デフォルトの名無しさん:03/09/29 18:49
>>670
レスサンクスです。
CASE文でBREAk必須にはビクーリしました。
JAVAが圧倒的に有望視されてますが、一般の会社の業務アプリ
にはMS系がいいと思うのですが。結局LINUXにしてもOS導入が
安く済んでも運用コストが高くつくと思うんですが。プリンタドライバ
一つとっても充実されてないし...
最近のLinuxはWinと比べても全然安くないって話じゃなかったか?
JavaはJspとしては確かに地位を築いてるけど、
クライアントPCのアプリケーションにはさっぱりだからねぇ。
なんだかんだいってC#はよくできてると思う。

ところでフォームから新しいフォームを作った時に、
特定のイベントを強制的に実行させる方法ってありますか?
例えば元のフォームをクリックした時に新しいフォームを作り、
そのフォームの移動イベントを発動させると言ったモノです。
MouseDownイベントなどを使うのではなく、Windowsに認識させたいです。
MSの言い分を鵜呑みにするとWindowsの方が低コストだそうだ
VB.NETネットでもC#.NETでも同じ。
慣れてる方を使うのが賢い。
>>674
> ところでフォームから新しいフォームを作った時に、
がインスタンスを作ったときを指すなら、デフォルトコンストラクタにそのイベントで実行されるメソッドを追加。
Show()/ShowDialog()時なら、Form_Loadメソッドにそのイベントで以下略。
イベントはあくまで特定の状態になったときに通知されるもので、
実際にはイベントに関連づけられた普通のメソッドが実行されるって前提はOK?
>>677
Javaの遅さって何?
>>679
Sunの能力不足。
681デフォルトの名無しさん:03/09/29 20:36
OOPLだから遅いんだよ(*^-^*)
682デフォルトの名無しさん:03/09/29 21:02
Formを継承して、くつったクラスで、Show()を呼び出されないように、
private new void Show()
とオーバーライドしたのだけど、やはり、form.Show()で表示されてしまいます。
なにか考えかたが間違ってますか?
間違ってます。
それじゃオーバーライドしてません。
684デフォルトの名無しさん:03/09/29 21:04
オーバー来度とオーバーロードの違いは?
685684:03/09/29 21:05
なに?
686デフォルトの名無しさん:03/09/29 21:07
>>683
どうすれば、オーバーライドできるの?
> Formを継承して、くつったクラスで、Show()を呼び出されないように
そもそも設計自体おかしい感じ
>>684
オーバーライド = 上書き
 継承もとクラスのメソッドの挙動を書き換える。
オーバーロード = 予定された以上に使う
 同じ名前を複数のメソッドで使いまわす。

>>686
出来ない
"オーバーライド"じゃなくて"隠蔽"だ、って言いたいんだろ。
とはいえ私も682の回答はできないが。
私の場合は取り敢えず必要なメソッドを持ったラッパクラスを作った。
691デフォルトの名無しさん:03/09/29 21:15
>>687
モーダルでしか使われないウインドウだから、使いかた間違わないように
Show()のほうはつぶしておこうと思ったのだけど。。。
692674:03/09/29 21:16
わかんなくなってきたので分けて考えたいと思います。

普通ウィンドウを移動しようとすると、ウィンドウの中身は動かずに輪郭だけ動いて
決定後にウィンドウの中身が描画されますよね。(OSの設定次第だけど)
フォームのコントロールバー以外の所をクリック、ドラッグドロップしたときに
こういう状態にすることは可能ですか?
protected override Show()
{
}
>>693
どうも、サンキューです。
>>692
Win32だとWM_NCHITTESTなんだけどなぁ。
まだ.NETは細かいところに手が届くまでには行かないよねぇ。
俺も少し前にプログラム側でヘルプモード(マウスカーソルが?)にしたくてもやり方わからなかったし。
>>693
Showはvirtual指定されてないみたいだから無理じゃないの?
それ以前にoverrideでアクセス修飾子は変えられないし。
>>691
フォームをモーダルで使うかモードレスで使うかは使う側の勝手なので
それに依存した動作を行うべきではない。
とか思うのはちょっと原理主義かな?
699684:03/09/29 21:52
>>689
あーなんかわかったような気がする。ありがとう。
>>698
原理主義というか馬鹿
ウィンドウスタイルをNoneのままタスクバーに表示させたいのですが、
アイコンが表示されないので、子フォームを作り、透明度を100%にし
擬似的にそう見せようと思いました。
が、やはり動作がしっくりきません。
なにかいい方法があるでしょうか
データグリッドで文字をパスワードキャラ(*など)として表示させるにはどうすればいいのでしょうか?
「*」としか見えない項目をグリッド表示する意味はあるのかと小一時間
>>702
How can I put a combobox in a column of a datagrid?
ttp://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#q480q

このcomboboxと同じやり方でやればいいんでないかな?
705701&702:03/09/30 22:51
自己解決しますた。失礼しますた
>>705
最近よく顔出すね。
暇人。
>>706
一々相手するからだ
下記ページにあるサンプルコードを動かしてみたことのある方は
居られないでしょうか。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconraisingeventshandledbycomsink.asp

下記の環境でエラーが出てしまいます。
ご意見いただければと。

・.Net側コードはC#のものを使用し、
 VB6用のコードはExcelマクロとして作成
 ※Excelで動かしたいので・・Excel2000、パッチ等は全て当たっている状態

・エラーメッセージ
実行時エラー '-2147024894(80070002)'
'myButton'メソッドは失敗しました:'Class1'オブジェクト

Excelでは無理?VB6なら普通に動く?
709708:03/10/01 03:13
自分で試したところうまくいきました。スレ汚し失礼しました
Del厨なのかなぁ
711708:03/10/01 03:41
>>709 騙らないでくれ。

Excelはもちろん試して駄目。
VB6は環境がないので試せないので書かせてもらった。
それでも質問するなというのか。
>>711
当然
713デフォルトの名無しさん:03/10/01 08:32
ったく、最近の質問房は礼儀ってもんがなっちゃいねえな。
質問の最後の行には


「答えろPGども」


だろ?
714デフォルトの名無しさん:03/10/01 12:54
答えろプロゲーマーども
さらにすぐにレスがつかないからと言ってやたらと上げまくる奴が特にウザイ。
>695
これみたいな、「.NETではまだ細かい所に手が届かない」ってのは
次のVisualStudioのリリースとかで解決されたりするのかな?
放置? MSの方針?
>>716
.net framework を慎重に設計したいからでしょう。
>>716
「次の」っていうか、「次以降の」だろうな。
次でエンタープライズ関係、Longhornに乗っかるヤツでクライアント方面の強化が図られるかと。
過去のしがらみを断ち切るため、無理にAPIとの相性は考慮してないのでしょう。
720デフォルトの名無しさん:03/10/01 23:58
言い訳必死w
煽り必死w
722デフォルトの名無しさん:03/10/02 01:26
>>721
オ マ エ ガ ナーーーーーーーー!!!!!!
WM_NCHITTESTなら、対応できるハズですが。
なんの話をしているか知らんがC#でWM_NCHITTESTは普通に使える。
こういう過去の資産を簡単に取り込めるのが.NETのいいところだね。
http://www.users.gr.jp/ml/archive/viewer.aspx?name=cs&no=828
http://www.egroups.co.jp/message/dotnet-csharp/850
725デフォルトの名無しさん:03/10/02 02:36
どこがw
どうせレスするなら反論しろよ(w
>>725
明らかにいいとこだからさすがにちょっと無理があるよ     とマジレス
反論できないとか。
730デフォルトの名無しさん:03/10/02 07:21
.NET厨必死だなw
将来.NETがWin32から切り離されたときに動かなくなるんじゃないか?
MSは.NETをほかのプラットホームにも、もって行こうって、
本気では考えてないんじゃないのかな?
Winに依存した部分が多すぎるもん。
一応乗っけることまではするだろうなぁ。
IEのようにね。要はアリバイ作りにすぎん罠。
質問。
C#って、名前空間の中にクラスを書いて、その中に関数を書く訳だけれど
これって、宣言部と実環境とかに分けて書くことは出来ないの?

関数のスタート地点にタブが2つ入っちゃってやりにくいです。


あと、C++ユーザの俺に、C#の良さを教えてください。
仕事に絡んでないせいもあって、どんどん勉強する気が失せています。
オラに元気を(ry
C#を使ってみて、そのよさが分からないのならC++のままの方がいいと思う。
>>734
C++なら名前空間がネストになるからタブはもっと入ると思うが?
Delphi使えば一発で良さが分かる。
>>734
俺も最初の頃はタブが2つイヤーンだったがいつのまにか慣れてしまった。
{
}
にも慣れたし。
{
}
はどれとどれがセットなのか分かりづらいな。

VBからC#に移行して、もうVBに戻るつもりは無いほど好きなんだけど、
ことこの一点に関してはVBの方が一目で分かって好きだったな。

Sub
If
For
Next
End If
End Sub

それともコメントでも付ければいいのか。

{ // Namespace
{ // Class
} // End Class
} // End Namespace

せめてエディタのタブ列に薄線でも入ってれば分かりやすかったんだけども。
MSILについて勉強したいんですが、何かよい情報源はないでしょうか。
CLRはスタックありの極普通のプロセッサとそれ程変わりませんが、
如何せん情報が少なすぎます。みなさんどうやって勉強されてますか?
sscliを解析するしかないのかな?それともildasmとバイナリを
見比べて覚えていくもの??
>>740
入門向けではないけどこの本とか。
http://www.microsoft.com/mspress/books/5771.asp
あと、意外と便利なのがWebMatrix ClassBrowserについてるIL Reference。
>>741
あ、これなんかよさゲですね。
これ買ってみます。どうもありがとうございます。

ホントはマイクロソフトにはVMに関してプロセッサメーカみたいな
かちっとしたドキュメントを期待したいところですが、
IL自体がバージョンごとに微妙に違うっぽいところから
そういうのはもう少し時間が経たないとだめかもしれないですね。
>>742
WebMatrix初めて入れて使ってみましたが、これ(・∀・)イイ!!です
これなら.NETFrameworkの逆汗もできてすばらしいです。

あとはオブジェクトファイル形式とマシン語との対応表かなあ。
ひとつ疑問なのですが、ILメソッドごとに割り当てられる
evaluation stackや引数、ローカル変数っていうのは、
実メモリ領域としては、スレッド実行コンテキストの
スタックに確保されるのかな?それとも、ヒープ領域なんでしょうか?

自分としては、スタックフレームが
...|ILメソッド用スタック|CLRエンジン用スタック|ILメソッド用スタック|...
っていう感じにスタック領域を使ってるのかなと思ってるのですが。。。
教えて、偉い人。
>>739
プログラミングの作法として、括弧の対応が分からなくなるほど
長い関数は書くなってのがある。あと、ちょっと長めになっちゃって
括弧の対応が分かりにくいって思ったら、コメントを入れておくもの。

}//if(a == 0)
}//for(k
}//for(j
}//for(i
}//MethodName
}//class ClassName
}//namespace Name

とか。
>>746
あ、このドキュメントいいかもです。サンクス子です。
749739:03/10/03 13:26
なるほど。

作法としては分かるのですが、Namespace, Class, Methodの3つの閉じカッコはどうして
も出てくるわけで、この時点でもう見難いなと思っちゃうんです。

で、半ば冗談で書いた方法が実際に使われているのですね。
この辺はエディタ側でやってくれればいいのにと思うのです。

自動的にコメントを入れられたらうっとうしいから、}を含む行に移動
したらどこかに対応する{行を参照表示してくれるとか。Excelみたいに
カッコを色別で分けてくれるだけでもいいや。

早々に消してしまったけど、C# Builderを試用したときにこれはいいなと思った機能
があった。タブ文字表示だったか、タブ列に縦の補助線表示だったか。

ああいうのを取り入れてほしいなと思いつつ、アドバイスいただいた方法でしのぎます。
ありがとうございました。
>>749
1ファイル1クラスにすれば Namespace と Class の括弧は明白になるんだけどな。
Method はさっきも書いたが、1画面に収まらなくなったら処理を分けて、
極力括弧の対応付く長さにする。

自動でコメント付けるのは流石にやめてほしいなぁ。
begin end最強説
lispの鬼のような括弧、最強
VS.NETは{、}を入力すると対応する括弧を強調表示してくれるはずだが。
対応する括弧が画面外にあってわからないことも良くあるが、それは俺のコーディングスタイルが悪いだけだしな。
C#厨もこれ見て目を覚ませ
http://movies.livedoor.com/soft/asx/lin_500.asx
>>744
16進数との対応表ならSSCLIのclr/src/inc/opcode.def
756デフォルトの名無しさん:03/10/04 22:17
http://sourceforge.jp/softwaremap/trove_list.php?form_cat=160
  1 146   C
  2 119   C++
  3  90   Java
  4  55   PHP
  5  44   Ruby
  6  32   Perl
  7  24   Delphi/Kylix
  8  21   Other
  9  17   Assembly
 10  16   Python
 11  13   Objective C <--------C++に敗北して廃棄状態
 12  12   C# <--------超負け組み
 13  7   Unix Shell
 14  5   Tcl
 15  5   Lisp
 16  4   Visual Basic <--------廃棄処分
低レベルな言語順ですねw
dataGridでEnterを押したときに、textBoxに移動したいのですが、
dataGridのKeyDownイベントに
if(e.KeyCode == keys.Enter)
{
textBox.Forcus()
}
とやっても、イベント発生しません。

どうすればいいのでしょうか?
759758:03/10/05 14:44
すいません、自己解決しますた。
>>758
とりあえずフォーカスのつづりが違うが、そんなオチでは
あるまいな。
ふらっとc#はなくなったのですか?
ではこちらで質問させて頂きます。

for(;;)

   for(;;)
   {
       if()
       {
          break;
        }
    }


このような2重のforループ文の中でのif文で真だと判定してbreakで
飛びたいのですが、1つだけでなく、2重のforループ文から一気に外へ飛びたいのですが、
何かいい方法は無いのでしょうか?
このような場合は、goto文を使うのが良いのでしょうか?(c#にあったかな?)

それとも、今回私は2次元の配列を調査するために2重のforループ文を使用してる訳ですが、
こう言う場合は、例えば10×10の配列を100要素の一次元の配列に変換して
一重のforループ文に書き直すのが良いスタイルなのでしょうか?
ご意見お聞かせ下さい。
それと最近良く聞くフレームワークって要するにライブラリのことなのでしょうか?
763758:03/10/05 16:24
自己解決してません。

>>760
そんなオチではありません。
764761:03/10/05 16:44
自分でhelpを探してるうちにいい情報が見つかったので一応報告しておきます。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

class Test
{
static void Main(string[] args) {
string[,] table = { {"red", "blue", "green"},
{"Monday", "Wednesday", "Friday"} };
foreach (string str in args) {
int row, colm;
for (row = 0; row <= 1; ++row) {
for (colm = 0; colm <= 2; ++colm) {
if (str == table[row,colm]) {
goto done;
}
}
}
Console.WriteLine("{0} not found", str);
continue;
done:
Console.WriteLine("Found {0} at [{1}][{2}]", str, row, colm);
}
}
}goto ステートメントを使って、入れ子になったスコープの外側に制御を移します。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

どうやらgoto文はc#、オブジェクト指向の時代になっても有用なようですね。
c#のhelpでも2重のforループ文から抜け出す例としてgoto文の利用例があるわけですからね。
やはり2重のforループ文から抜け出すのはこのスタイルが1番有効な訳ですね。
もし、もっと良いスタイルとかあったらお聞かせ下さい。
break とか continue などをコンパイルすると、結局は goto に置き換わってるんだけどね。
>>764
まあ、C# でも switch 文の中と多重ループ抜けの時には goto 使う。

goto 使いたくなかったら、内側のループを戻り値 bool の関数にして、

for(;;)
{
 if(!InnerLoop())
  break;
}

>>764
766 のようにするのが推奨なんだが
結果として再利用性のかけらも無いループのためだけのメソッドが出来上がったりしたらかえって可読性が下がって本末転倒
リファクタリングの本とかでも、たまにリファクタリング前より糞なコードが出来上がってたりして萎える

名前つき break/continue があれば一番いいんだが、C# には取り入れられないのかな
>>766,767
この推奨方式って、3重ループ以上の時はどうすんの?
>>768
ループの数だけ関数化。

まあ、面倒だし、多重ループ抜けには goto 使っていいよ。
例外投げて脱出に決まってんだろ。
多重ループどころか関数の多重呼び出しすら好きなだけ抜けられる優れものだ。
>>770
ワラタ
>>770
まあ、釣りだと思うが、
例外を意図的に起こしちゃ駄目だって。
773_:03/10/05 21:56
770ではないが、
>>772の方が意味わからん。
>>773
>>772が言うには、throw hoge_exception ってやっちゃダメなんだってさ(藁
例外って、ユーザが不正な文字列入力してきたとか、
そういうコンパイルの時点では避けようのないミスが起きたときに出すもの。
goto 的なことをするために例外投げちゃ駄目。
>>774
ループ抜けるために投げるのはダメだろ。
エラーで抜けるなら構わんが。
ループが最後まで実行されず、途中で抜けなければいけないのは十分例外に値するとか言ってた香具師がいたな。
>>776
当たり前だろ。>>772もっかい嫁
>>778
772だけ読めば確かにツッコミ所満載というか言葉足りないけど、
元発言(2重ループのbreak)からの流れでは意味不明ではなかったよ。
むしろ例外処理をベースに制御構文を再構築すべきだな
if(exp)
{
 ...
}
catch(IfException)
{
 // elseの処理
}
781デフォルトの名無しさん:03/10/06 19:39
>>772,>>776
エラーでなくても制御を変えるために例外投げるのは今や常識。
概念としても、エラー⊂例外だろ。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemThreadingThreadClassAbortTopic.asp
>>781
2重ループから話飛びすぎじゃないか?なんでThread.Abort()よ。
ちなみにいつ頃まで非常識だったのか教えてくれ。
783758:03/10/06 23:05
758もよろしくお願いします。
>>783
KeyDownで拾えないならGridが先に拾うってことだから、諦めて
ProcessDialogKeyだっけ?もっと先に拾えるイベントを使うしかないのでは。
使ったことないけど、Excelみたいのでしょ。
入力確定でコントロール自体が拾ってんじゃないの?
>>781
確かに、割り込みをうまく扱うためによく例外が使われるのだが、
制御を変えるためにどこにでも使用していいと言うものではないんだよ。
例外が発生した時の処理は相当重いということはご存知かな?
ここまでして嫌われるgotoって...なんて可哀想。
787デフォルトの名無しさん:03/10/07 00:27
UserControlの内のStatusBarにボタンを埋め込みたいのですが
うまく表示できず困っています。
宇宙仮面さんのHPより以下のコードを拝借しました。
private void OnDrawItem(object sender, System.Windows.Forms.StatusBarDrawItemEventArgs sbdevent)
{
if (sbdevent.Panel == this.statusBarPanel3)
{
StatusBar sb = (StatusBar)sender;
Rectangle rect = sbdevent.Bounds;
this.progressBar1.SetBounds(sb.Location.X + rect.X, sb.Location.Y + rect.Y,
rect.Width, rect.Height);
}
}
これはUserControlの外側、つまり普通に使うとボタンがStatusBar上に
描画されるのですがなぜかUserControl内だと表示されません。
OwnerDrowに使用するボタンは消え、StatusBarに表示されない、と言った
現象です。
Tabで移動するとどこかタブ順からしてどこかにあるボタンに移動していうるのはわかるのですが。。
どこがおかしいのでしょうか?よろしくお願いします。
788787:03/10/07 00:59
>>787
申し訳ないです。
this.progressBar1.SetBounds(sb.Location.X + rect.X, sb.Location.Y + rect.Y,
rect.Width, rect.Height);
この文で宇宙仮面さんのとこの例のまま
プログレスバーになっていました。
実際は
this.button1.SetBounds(sb.Location.X + rect.X, sb.Location.Y + rect.Y,
rect.Width, rect.Height);
でした。
なにかしらお心当たりのある方、なにとぞよろしくお願いします。
>>787-788
試してみたけど表示されたよ。
Controls.Addの順番かなんかの問題じゃない?
791787:03/10/07 11:48
うまくいきました!!ありがとうございます
792デフォルトの名無しさん:03/10/07 17:43
こんにちは。VS.NET2003を使用しております。
DLLにある関数を使用しようとして、DllImportとすると、
  MarshalDirectiveException 追加情報 : PInvoke 制約 : 変数を返すことはできません。
が発生して困っています。

インポートしようとしている関数がVB6用で、ヘッダファイルを見ると戻り値がVARIANTになっています。
どうもこの辺が怪しいような気がしています。
C#でVARIANT型の戻り値をもつ関数をDllImportする方法をご存知の方はいらっしゃいますでしょうか?

使用しようとしているのは、BASP21のbsmtp.dllです。

[DllImport("Bsmtp.dll")]
public static extern object RcvMail(string szServer, string szUser, string szPass, string szCommand, string szDir);

と記述しています。
また、具体的な中身は分かりませんが、Bsmtp.dllといっしょにあるBsmtp.hを見ると、

EXTERN_C
BSMTP_API
VARIANT APIENTRY RcvMail(BSTR* szServer, BSTR* szUser, BSTR* szPass, BSTR* szCommand, BSTR* szDirname);

のように定義されているようです。
よろしくお願いします。
>>792
本当にVARIANTが戻り値?
戻り値はHRESUTで、VARIANTは[out,retval]じゃないの?
794792:03/10/07 18:04
>>793 おぉぉっ!レスサンクス
一応、BASP21公式ページの方で、「BSMTP DLLを直接Visual Basicから呼出せばいいのです。」と書いてあり、
Private Declare Function RcvMail Lib "bsmtp" _
(szServer As String, szUser As String, szPass As String, _
szCommand As String, szDir As String) As Variant
とやれ、って書いてありましたので、そのようにしています。

DLLImportの基礎的なことがわかってなくて申し訳ないです。
dllの方のソースはないんですが、それって調べる方法ありますか?
>>792
見事にVARIANT戻してるね。
とりあえずそのサイト見てみたらタイプライブラリもついてるみたいだし、それ参照に加えたらなんとかならない?
796792:03/10/07 18:32
>>795
それは、Tlbimp.exeで〜Lib.dllを作成して、参照、と言うことでしょうか?
その方法では該当メソッドについて、戻り値objectとすることでうまく動きました。
情報小出しになってしまって大変申し訳ありません。

ただその方法だと(当然ですが)元DLLを
regsvr32しなければいけないので、躊躇していました。

また、VB用の過去資源を持ってらっしゃる方は多いと思います。
今質問させていただいてるDLL以外でも、
多分そのうち同じような問題にぶち当たりそうな気がしたため、
こちらで質問させていただきました。

長くなってしまって申し訳ありませんが、よろしくお願いします。
797C ◆MI8gZkKzuI :03/10/07 18:50
多重ループを関数にして、returnで脱出ってのはC#ではできないの?
再帰は普通に出来るだろ
799デフォルトの名無しさん:03/10/07 19:02
>>792
とりあえず、IntPtr で宣言しておいて、Marshal.GetObjectForNativeVariant()
とかで変換するしかないんでない?
800デフォルトの名無しさん:03/10/07 19:21
XML-Webサービスで,SOAPメッセージのヘッダーの扱いを調べているんですが,

サービス側コードで,SoapHeaderを継承したヘッダークラスを作り,
[WebMethod]
[SoapHeader("myHeader")]
ゴニョゴニョ

というやり方で,SOAPヘッダーを作ることは出来たのですが,

<soap:Header>
<MyHeader>
<path>
<forward>AAAAA</forward>
<return>BBBBB</retrun>
</path>
</MyHeader>
</soap:Header>

のように,ヘッダー要素を入れ子にすることは可能なのでしょうか?
宜しくお願いします.
>>796
カスタムマーシャラとか試してみたがうまく行かなかった・・・
>>800
これでいけるんじゃない?

public class MyHeader : SoapHeader {

  public Path path;
}

public class Path {

  public string forward;
  public string @return;
}
803792:03/10/07 20:07
ためしに、VARIANTを使用していないほかのメソッドをインポートしようとしてみたら、
今度はNullReferenceExceptionでした....

もうお手上げです。DLLImportについて1から勉強しなおします。
とりあえず当面は素直にCOMから使用するようにします。
お手数おかけした皆様、どうも申し訳ありませんでした。
804800:03/10/07 20:35
>>802

有難うございます.でも,そのやり方だと,クライアントアプリ側で
MyHeader myHeader = new MyHeader();
とヘッダインスタンスを作って,
myHeader.path.forward = "AAAAA";
とアクセスした瞬間に,

『オブジェクト参照がオブジェクトインスタンスに設定されていません』
というエラーが発生してしまうんです.

ちなみに,普通のメンバ変数だけのヘッダクラスではこのエラーは発生しないのですが.

何か,普通とは違う方法が必要なのでしょうか?
>>804
そりゃあ、pathもnewしないと駄目だろ。
806800:03/10/07 20:50
>>805
(#゚Д゚) が〜ん・・・

永らくお世話になりました・・・
いやいや,どうも有り難うございました.
newがめんどくさかったら、Pathをclassじゃなくてstructにしたら?
808800:03/10/07 20:59
>>807
それは少し試したんですが,サービス側でそのように記述しても,
WSDLとしてクライアントに渡って,自動的に生成されるプロキシクラスのコードでは,
中を見たときに,classに勝手に変換されていたんです・・・
809807:03/10/07 21:05
>>808
おお、そいつはすまんかった。
810787:03/10/07 22:37
>>789-790
お手数おかけします。

方法は合ってるとして、手順を変えて試すために
サンプルアプリケーションを作成しました。
基本的にデフォルトのままです。
追加したUserControl1の上にボタンを貼り付け(button1)
ステータスバーも設置(statusBar1)
statusBar1のShowPanelsプロパティをTrueへ変更。
statusBar1のPanelsコレクションにstatusBarPanel1を追加。
statusBarPanel1のStyleプロパティをOwnerDrowに変更。
UserControl1にstatusBar1のDrawItemのイベントハンドラを追加
if (sbdevent.Panel == this.statusBarPanel1)
{
StatusBar sb = (StatusBar)sender;
Rectangle rect = sbdevent.Bounds;
this.button1.SetBounds(sb.Location.X + rect.X, sb.Location.Y + rect.Y,
rect.Width, rect.Height);
}
Form1のLoadのイベントハンドラを作成して以下を記述。
UserControl1 uc=new UserControl1();
this.Controls.Add(uc);
uc.Show();
uc.BringToFront();
結果は>>787とまったく同じでした。
ほんと心当たりでもいいのである方、力になってください。
よろしくお願いします。
readOnlyのファイルを削除するにはどうすればいいでしょうか?

FileInfo.Delete();

これを使っても例外が発生して削除できません。
よろしくお願いします。
>>811
FileInfo.Attributesで属性いじるとか。
813811:03/10/08 16:00
>>812
できました。即レスありがとうございました
814デフォルトの名無しさん:03/10/08 18:20
コレクション内の値の参照方法について質問です。

ArrayList hogeAL = new ArrayList();

for(int i = 0; i < 10; i++)
{
 int[]hoge = new int[5];

 for(int j = 0; j < 5; j++)
 {
  hoge[j] = i * j;
 }

 hogeAL.Add(hoge);
}

という感じで、ArrayListに配列を追加しています(上の例はサンプルなので実行内容に意味はないですが)。

で、ArrayList の n 番目に入ってる配列の、m 番目の要素を
取り出したい時、多重配列のような気持ちで

int unko = hogeAL[n][m];

とすると「角かっこ[]付きインデックスを'object'型の式に適用することはできません。」とエラーが出てビルドできません。
でもこれ、ウォッチ式だとちゃんと値が取れるんです。 hogeAL[n][m] で。
といってもしょうがないので、今のところ

int[] kuso = (int[])hogeAL[n];
int unko = kuso[m];

という形で取り出しております。もうちょっといい方法はないものでしょうか?
>>814
ラッパークラスを作る
>>814
>>815か、或いは
int unko = ((int[])hogeAL[n])[m];
と明示的にArrayListの中身を一度int[]にキャストしてやるか。

//この変数名はどうにかならんか。
class IntArrayList : ArrayList
{
 public int[] this[int index] {
  get { return (int[])List[index]; }
 }
}

とか汁
818デフォルトの名無しさん:03/10/08 19:17
genericsが導入されたらライブラリで使われてる
配列(string[], int[])ってgenericsに置き換えられるのかな?
819デフォルトの名無しさん:03/10/08 23:31
現在のNICの情報を取得及びIPAddress,Subnet,Gateway,
DNS等を設定するにはどうすればよいでしょうか?
WMIを使うのが吉と、どこかのスレで見たような
気がするのですが…
教えて君ですいません。
820787:03/10/09 01:09
今流行の自己解決しました。
どうやらどういう訳かパネルに描画したボタン、
というよりはステータスバーのパネル自体が裏側にまわっていたようです。
this.button1.BringToFront();
とすることで無事表示することができました。
それにしてもなぜこういう現象が発生したのでしょうか。
原因はまだわかってません。
ちなみに調べていく過程で描画したのに表示されなかったボタンに
イベントを作成してみたらTabキーで移動してスペースキーにて
イベントの発生を確認しました。
で、見かけだけの問題だとわかったので解決法に行き着きました。
なにかの参考になればと思い解決に行き着くまでの経緯も載せておきました。
でもほんとなんでthis.btnLeftMost.BringToFront();が必要なのだろうか。
謎です。
vectorに載せるほどの物でもないソフトを評価してもらうスレとか
サイトをご存知ないですか?
自分では気付かないところとか指摘してほしいのですが
>>821
適当なアップローダに挙げてここで聞けば?
C#スレの中でこのスレが一番ふさわしいと思うし。
823デフォルトの名無しさん:03/10/09 09:26
float型のif文はどういう風に書けばいいでしょうか?

float f=0.5F;

if (f<0F) return true;
else false;

これだと戻り値がfalseになります
よろしくお願いします
824デフォルトの名無しさん:03/10/09 10:36
FormのPaintを処理する時本によってOnPaintをオーバーライドするのと、
Paint+=new EventHandler(hoge)
と二種類ありますがどちらがいいんでしょうか?
825デフォルトの名無しさん:03/10/09 10:50
フォルダの共有をするために
APIのNetShareAddを呼びたいのですが引数はどうすればいいのでしょうか?
826デフォルトの名無しさん:03/10/09 11:25
>>823

0.5 と 0.0 と、どっちが大きいかわかってますか?
>>826
ネタにマジレスk(r
828824:03/10/09 11:46
>>826
しまったーー!!!
うわ!はずかしいー!おれってバカw
おれプログラミング向いてないかも・・・・(;つД`)

>>827
恥ずかしながらネタじゃないです。
829823:03/10/09 11:47
↑間違い、824じゃなくて823でした
830デフォルトの名無しさん:03/10/09 12:30
VisualStudioのソリューションエクスプローラーなんだけど、
ファイル開くたびに「クラスにコンポーネントを追加するには・・・・」画面がいちいち出てうざいです。
これってどこから設定変えるんでしたっけ?

あと、フォームをクリックすると勝手にデザイナが出てくるのも。
毎回、右クリ→コードを表示にしてるんだけど、メンドクサイ・・・・
すいません、「クラスにコンポーネントを追加するには・・・・」問題は
解決しました。

でもやっぱりダブルクリックでコードデザイナが開くよ・・・
>>831
意味がわかりません。とりあえず落ち着いてください
すみません、教えてください。

public class TestClass
{
 private ArrayList nakami;

 public TestClass()
 {
  nakami = new ArrayList();
  nakami.Add(new NakamiClass());
  nakami.Add(new NakamiClass());
 }
}

public class NakamiClass
{
 private Color[] color;

 public NakamiClass()
 {
  color = new Color[2];
  color[0] = Color.Black;
  color[1] = Color.White;
 }
}

というクラス定義があって(続く)
testClass = new TestClass();

Type[] et = new Type[] {typeof(NakamiClass)};
System.Xml.Serialization.XmlSerializer serializer =
 new System.Xml.Serialization.XmlSerializer(typeof(NakamiClass), et);
System.IO.FileStream writer =
 new System.IO.FileStream(filePath, System.IO.FileMode.OpenOrCreate);
serializer.Serialize(writer, testClass);
writer.Close();

としてXMLに書き出したのですが(続く)
835デフォルトの名無しさん:03/10/09 17:17
<?xml version="1.0"?>
<TestClass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NakamiClass>
<anyType xsi:type="NakamiClass">
<color>
<Color />
<Color />
</color>
</anyType>
<anyType xsi:type="NakamiClass">
<color>
<Color />
<Color />
</color>
</anyType>
</NakamiClass>
</TestClass>

のように Color の値が保存されません。どうしたらよいでしょうか?
836825:03/10/09 17:35
構造体を引数にうまく渡せなかったので
C++でラッパーのDLL作ってなんとかしのぎました^^;
Colorをintに変換して保存してロード時に
Color.FromRgbでいいんじゃないですか?
public void ScaleTransform(float, float);

画像によったら、↑で正確に拡大縮小されない物があるのですが
こういう問題はどうやって克服すればいいでしょうか?
840833:03/10/09 18:44
>>837

ありがとうです。
色々試してもColorが保存されないんで、
Color.FromRgba で int で保存させたらばっちりでした。

でも何でなんだろう?
841833:03/10/09 18:48
>>839

ぐはあ。

「型によっては、先に変換しないと XML にシリアル化できないものがあります。
 たとえば、System.Drawing.Color は、その ToArgb メソッドを使用して、
 XML にシリアル化できる整数に変換する必要があります。」

そこに思い切り書いてありますた。すっきりしました、ありがとうー
842デフォルトの名無しさん:03/10/10 16:14
>>838
どなたかいませんか?
該当コードとうまく行かない画像をアップすれば誰か答えてくれるかもしれん
844838:03/10/10 16:22
>>843
それがどうもお恥ずかしい話なのですが、エッチなものでして、
モザイクかけてうpすればいけるかな?
あと、一つだけの画像じゃなくて、半分ぐらい?がうまく拡大縮小できません
845838:03/10/10 16:29
    private void PicView(FileInfo fi)
    {
      float sx=0,sy=0;
    
      Bitmap bitmap=new Bitmap(fi.FullName);
    
          
      pictureBox1.Image=new Bitmap(pictureBox1.Width,pictureBox1.Height);

      Graphics g=Graphics.FromImage(pictureBox1.Image);
    
      g.Clear(this.BackColor);
      g.ResetTransform();

      sx=(float)pictureBox1.Width/(float)bitmap.Width;
      sy=(float)pictureBox1.Height/(float)bitmap.Height;
846838:03/10/10 16:30
      if(sx>=1 & sy>=1)//画像が小さいなら
      {}
      else
      {
        if(sx<1 & sy>=1)//横幅がはみ出す場合
        {
          //MessageBox.Show("横幅がはみ出す場合");
          g.ScaleTransform(sx,sx);
        }
        else
        {
          if(sx>=1 & sy<1)//縦幅がはみ出す場合
          {
            //MessageBox.Show("縦幅がはみ出す場合");
            g.ScaleTransform(sy,sy);
          }
          else
          {
            //MessageBox.Show("両端がはみ出す場合");
            if(sx<=sy)
              g.ScaleTransform(sx,sx);
            else
              g.ScaleTransform(sy,sy);
          }
        }
      }
847838:03/10/10 16:32
問題の画像の一つです。
http://up.isp.2ch.net/up/a46611b91aef.jpg
848838:03/10/10 16:35
何をしたいのかと言うと、固定サイズのpictureBoxに画像を縦横拡大比固定で表示させたいのです。
既存のメソッドでは、縦横比があっていない拡大strechと画像サイズに合わせるAOTOなどで
思っているようなことができないので、自分でやろうと思ったのですが・・・
よろしくお願いします
849838:03/10/10 16:37
すいません、最後のコード欠けてました

      g.DrawImage(bitmap,0,0);
      pictureBox1.Refresh();

    
    }
>>838
C#によるプログラミングWindouws下にそうできるコード載ってましたよ。
勝手に引用していいかわからないので書きませんが。
851838:03/10/10 17:00
>>850
ここのことを言ってらっしゃるのでしょうか?
http://ukamen.hp.infoseek.co.jp/Programming1/ImageViewer/ImageViewer2.htm

これはstrechと同じ事をしてるのだと思うのですが?
>>845
DrawImage はスケーリングをサポートしてたと思うけど
それを使わずに ScaleTransform を使うのは何か理由があって?
853850:03/10/10 17:17
>>838
違います。
イメージとPictureBoxのサイズの比率と
DrawImage(image,int x,int y,int Width,int Height)で描画しているコードでした。
854838:03/10/10 17:17
>>852
VC#300の本を見ながらやってるもので
そのままやって見たんです

それと、DrawImageでやる場合というのは直接画像サイズ指定するんですよね?
DrawImageを使って↑のコードとまったく同じ動作するものを作ってみたのですが
それでもうまくいきません。
で、サイズがちゃんと取得されていないのかと思いbitmapとpictureBox1のサイズを
表示してみたのですが、完璧にあっています。

ちなみに、この画像を他のフリーのビューアーで拡大してみるとちゃんと表示されます
しかし、↑のコードでやると、ちゃんと縮小されない、0.5倍にしたいのに、0.8倍ぐらいになって、
pictureBoxからはみ出してしまいます。

>>852さんは、DrawImageだとちゃんと動作すると言うことがおっしゃりたいのですか?
855838:03/10/10 17:23
>>853
g.DrawImage( myBitmap, 0, 0, this.pictureBox1.Width, this.pictureBox1.Height);
このコードはどう見ても、pictureBoxのサイズに縦横比無視で引き伸ばしているように見れるのですが・・・・
俺はこれで正しく動いた
838 の目指してる動作とはもしかしたら違うかもしれないが

private void Form1_Load(object sender, System.EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
if ( dlg.ShowDialog( this )==DialogResult.OK )
{
using( Bitmap bmp = new Bitmap( dlg.FileName ) )
{
float scale = Math.Min( 1.0F, Math.Min( pictureBox1.Width/(float)bmp.Width, pictureBox1.Height/(float)bmp.Height ) );
pictureBox1.Image = new Bitmap( bmp, new Size( (int)(bmp.Width*scale), (int)(bmp.Height*scale) ) );
}
}
}
ところでこれじゃ駄目なの?

Image origin = Image.FromFile(fi.FullName);
Image image = new Bitmap(origin, pictureBox1.Size);
pictureBox1.Image = image;
858838:03/10/10 17:49
>>857
えーーと、これはstrechと同じ機能ですね。
画像の縦横比は崩したくないのです(^^;

>>856
ぱっと見で理解できないので、今から試して見ます
859838:03/10/10 17:57
>>856
おお!これです。思ってたとおりにできました(理由はわかりませんが)
あれだけ長いコードをたった2,3行で完璧にできるなんて・・・・
私の計算の仕方が間違っていたのでしょうか?
>>859
C#の力を思い知ったか!
861838:03/10/10 18:03
>>860
完全に参りました!!なんかすごいですね!
私のコードなんて恥ずかしい・・(VBから始めたからかな?)

みなさん、ご迷惑お掛けしました。 && どうもありがとうございました
862838:03/10/10 18:10
>>856
何度見ても惚れ惚れする綺麗なコードですね。
一応何をやってるか理解できました。
基本的なアルゴリズムは私ので間違いなかったんですね。

DrawImageやScaleTransformは、まともに働かないことがあるっていう理解でよろしいでしょうか?
>>862
知らんが
> 0.5倍にしたいのに、0.8倍ぐらいになって
正しく 0.5 倍になってることを確認したか?
864838:03/10/10 18:34
>>863
それも確認済みです。
あと、計算方法がもしかしたら間違ってるのかと思って
条件分岐の部分はコメントにして、単純に
g.ScaleTransform(0.5f,0.5f);
にしてもやはり、0.8倍ぐらいに表示されます。

>>864
ScaleTransformは使ったこと無いがDrawImageが失敗したことはないなぁ。
画像の解像度とか影響してくんのかな・・・
866838:03/10/10 18:42
>>865
私もそれが気になったので解像度について調べたのですが96dpiまでなら対応してるそうです
で、うpした画像は確か76dpiぐらいだったと思います

867838:03/10/10 18:47
>>865
ScaleTransformもDrawImageも試したのですが、
大体同じような結果で表示されました。
DrawImageがちゃんと動いてるとしたら、ScaleTransformもうまく動くはずです。
多分、冒頭のビットマップインスタンス生成のところで何か間違いを侵しているのかな?
と、思っていろいろ試してるのですが、んー難しいです。もう少し勉強してきます。
ありがとうございました。
すいません。
Graphics.DrawRectangles メソッド (Pen, Rectangle[])
についてですが、
このヘルプにあった表記の通り、一次元の配列しか受け付けないのでしょうか?
実際自分ではやってみたのですが、2次元の配列は駄目でした。
つまり、一次元の配列ならメソッドが用意されてるが、2次元以上は自作しろと言うことなのでしょうか?
C#でTWAINを使用してデジカメなどから画像を取得したいのですが、
適当なクラスライブラリが見つかりません。
何か良い智恵は無いものでしょうか?
一応、Windows標準のイメージングを使用すると出来るらしいと
聞いたのですが、XPにはイメージングが入ってないもので…
871デフォルトの名無しさん:03/10/11 01:40
文字を半角数字かどうか判断するのはどうするのでしょうか?
Char.IsDigit()だと、全角も数値と判断されてしまいます。
if文で判断するしかないでしょうか?
if('0' <= ch && ch <= '9')...
regex
regexをわざわざ使うよりかは自作のisDigitを作った方がいいかと。
わざわざ自作のisDigitを作るくらいならregexを使った方がいいかと。
>>870
サンクスコ
これで何とかなりそうです。
検索キーワード「txt」で検索した場合

txtもTXTもTxtもTXTもtxtもヒットさせるにはどうすればいいですか?

別アプリの操作をしたいのですが
なにから調べて良いのかがわかりません。
(そんなことが出来るかもわからないですが)

とりあえずは「ペイント」で
「鉛筆」ボタンと「ブラシ」ボタンを交互に押させてみたいのですが
参考になる情報などありませんでしょうか。
878838:03/10/11 06:52
さらにいいことがありました。
>>856氏のコード利用させてもらうと、スライドで画像見てる場合
描画に時間のかかる画像の場合、すべて表示されずに次の画像が表示されてましたが。
すべて表示されるまで、次の画像へ行くのを待ってくれます
(なぜかはわかりませんが)
879838:03/10/11 06:53
>>878
すいません。勘違いでした。表示されない場合がありました
>>876
検索対象を先に ToLower しとく。
>>880
ものすごく低速ですね。
WebClientクラスのUploadFileがうまくいかない
Webサービスでファイルをアップロードできるのかな
オフィスファイルはシリアライズできないみたいだし
FTP使うのもな
>>881
いや、検索対象が短かったら普通 ToLower 使うぞ。
長いときは Regex クラスでも使え。
ToLowerってそんなに遅いのか?
正規表現の場合だって全文字についてケースを区別しない比較(どちらかにそろえて同じかどうか比べるってことだろ?)をするはずだから、
むしろ検索が高速になるようにあらかじめToLowerしちゃった方がいいんじゃないの?
>>877
APIで自己解決しました。
ただ操作したい対象がタブコントロールのタブの場合
今のところ操作できません。引き続き情報募集です。
886 ◆/gyxcnlOg. :03/10/11 20:42
質問
フォルダ内のサブフォルダ以下のすべてのファイル数を調べるにはどうすればいいでしょうか?

目的
フォルダ内のサブフォルダ以下のすべてのファイルを検索する時に、プログレスバーを用いてファイル検索の進行具合を表現したい。
それには、再帰処理で検索する前にすべてのファイル数、容量などをプログレスバーにセットしたい

試したこと
私が思いつくのは、再帰的にDirectoryInfoなんか使って数を数えていく方法だけですが
それをやると、検索するのと同じぐらい時間がかかる(ディスク読みに行くので)無意味でした。
Explorerでフォルダ右クリックしたら、ファイル数が一瞬ででますよね?
ああいう感じで取得したいのです

よろしくお願いします
>Explorerでフォルダ右クリックしたら、ファイル数が一瞬ででますよね?
一瞬では出ないだろ。
ともかくC#のクラス使うと途中でGCが走って遅くなるような気がするからWin32APIのFindFirstFileとか使えば?
888デフォルトの名無しさん:03/10/11 22:52
C#の限界が垣間見えますた。
889デフォルトの名無しさん:03/10/12 00:57
うむ。いままで普通にやってたことをやるには結局DllImportしなきゃならない。
ファイルのアイコンを取得する程度のこともできない。
将来的に.NetFrameworkってどこまで機能追加していくのかな?機能は段々
追加していくんだろうけど、WinAPIの機能全部盛り込んだりしたら、サイズ
がでかくなりすぎるだろうし、その辺りの切り分けってどう解決するんだろう。
>>889
つかそういうのはWindowsに特化してるし、必須じゃないからなあ。
別にヘッダがあるか無いかの話で、必要ならDllImportするだけ。
LonghornでほとんどがDllImportしなくて済むようになるかと。
ってゆーかできなくなるんじゃねーの?
WinAPIの大半を削除したらしいし。
894デフォルトの名無しさん:03/10/12 03:31
皆さん、C#でアプリケーションを作成する際、
Doc/ViewやMVC1やMVC2アーキテクチャは使っていますか?
つかっていらっしゃる方どのように実装しています?
ModelのイベントをViewが受け取って、
ViewのイベントをControllerが受け取って、
ControllerがModelを制御する
896デフォルトの名無しさん:03/10/12 03:56
どのように実装しています?
どのようにも何も、そのまんまだけど?
898デフォルトの名無しさん:03/10/12 05:09
Viewはどのように作っていますか?
>>893
どこかの素人向け記事を鵜呑みにするなよ。
WinAPIの大半を削除したら旧アプリが動かなくなるだろ。
900デフォルトの名無しさん:03/10/12 09:22
>>899
あなたはまだうぃんどうず3.1ですか?
901デフォルトの名無しさん:03/10/12 09:32
プログラムコードでコントロールをフォームに作成するにはどうすればいいですか?
ユーザーがボタンを押すとフォームにラベルを作成したいのです
>>900
ワラタ
次スレの>>1に追加願い。
http://dobon.net/vb/dotnet/index.html
905901:03/10/12 09:59
そのラベルはArrayListを継承した自作のクラスなんです。
それをラベルと同じ見た目で表示したいのです。
>>905
ButtonのClickイベントで、FormにLabelをAddすればいいんじゃないのか?
907901:03/10/12 10:51
>>906
そのやり方がわからないのです(^^;
Label lbl = new Label();
lbl.Text = "テキスト";
lbl.Location = new Point(123, 456);
フォーム.Controls.Add(lbl);
909901:03/10/12 11:21
>>908
いけました!ありがとう
自作クラスでも継承しておけば、ラベルと同じ表示になるんですね。
>>909
205の「ArrayListを継承した自作のクラス」ってのは、
「public class MyLabel : ArrayList」…って解釈でいいのかな?

もしそうなら、Controls.Add は出来ない。
911901:03/10/12 12:42
>>910
すいません、継承はLabelでした
で、フィールドにArrayListです。
オブジェクト指向って難しい・・
キャストってそんなに高いのか?
・・・まぁ、頭の隅にはとどめておこう。
914デフォルトの名無しさん:03/10/12 15:16
protected override void WndProc(ref Message m)
{
const int WM_NCHITTEST = 0x0084;
const int HTCLIENT = 1;
const int HTCAPTION = 2;
base.WndProc(ref m);
if (m.Msg == WM_NCHITTEST && m.Result.ToInt32() == HTCLIENT && NonMove())
{
m.Result = new IntPtr(HTCAPTION);
}
}/**/

とやってフォームを移動出来るようにしました。
これだとフォームをダブルクリックすると最大化されてしまいますが、それを無効にする方法を
おしえてください。
>>914
MFCだと↓でいけるので、これをC#に翻訳

void CMyDlg::OnNcLButtonDblClk(UINT nHitTest, CPoint point)
{
if ( DefWindowProc( WM_NCHITTEST, 0, MAKELONG( point.x, point.y ) )!=HTCLIENT )
Default();
}
916デフォルトの名無しさん:03/10/12 15:35
>>913
何?どういう意味?
>>916
> is should only be used when it's only necessary to test the type of some object.
> If you're going to use the object if the is condition succeeds, use as instead.
> This prevents two cast operations which can be expensive.

is はただオブジェクトの型をテストする必要があるときだけ使用されるべきである。
is の条件が満たされたときにそのオブジェクトを使用するのなら、変わりに as を使用するべきだ。
そうすれば、高価になりがちなキャストを2度行わなくて済む。

と、俺のつたない英語力は読んだんだが、正直キャストの2度や3度どうでもいいじゃん?とか思ってしまう。
>>917
動的型情報の取得に結構コストがかかる。

それに、obj is Type ? (Type)obj : null;
とすると、(Type) でまた動的型情報の取得する上に、
型が違ったときに例外を投げるコードまで入っちゃうし。
919デフォルトの名無しさん:03/10/12 18:58
AVIやMPEGなどの動画を簡単に生成できるようなクラスとかってまだないんだっけ
920デフォルトの名無しさん:03/10/12 20:55
>819
誰か答えてあげて…
俺も書こうと思ったら先越されてるは、誰も答えてないわで…
>921
ん??
923デフォルトの名無しさん:03/10/13 03:56
monthCalendarで取得した日付の計算はどのようにしたらいいのですか?

textBox1.Text = monthCalendar1.SelectionStart.ToString("d");
textBox2.Text = monthCalendar1.SelectionEnd.ToString("d");
で日にちの範囲を取得しました。
textBox2に入ってる日にちからtextBox1に入ってる日を引きたいのですかどうすればいいのでしょうか?
>>923はマルチにつき放置の徹底をお願いいます。
どのスレ・レスとのマルチかを示すURLひとつ出さないのは、単なるうっかりミスですかね。
http://pc2.2ch.net/test/read.cgi/tech/1062421817/533
引き続き放置にご協力ください。
>>925
めんどうだからだろ
どぼんとことのマルチだな
/// <summary>
  これは何ですか?
/// <summary>
>>928
文法エラーだろ
>>923
TimeSpan
932デフォルトの名無しさん:03/10/13 16:09
ボタンをクリックするとサウンドがなるようにしたいのですが、どのようにすればよいのでしょうか?
どうしてもわからないのでよろしくおねがいします。
933デフォルトの名無しさん:03/10/13 16:38
メディアプレイヤー搭載したフォームを作ったのですが
下記のファイルがないとアプリが起動しないようなのです

AxInterrop.WMPLib.dllとInterop.WMPLib.dll
↑これは配布してもいいんですか?

>>933
Interop.Hoge.dllはCOMを使う為に自動生成されたDLLだから配布OKでしょ。
539 元すれ1 ◆jYDOLr.5ps [age] : 03/10/13 14:50
あ、これだけだと動かないや。
AxInterrop.WMPLib.dllとInterop.WMPLib.dllもいるみたい。
↑これは配布してもいいんですか?


540 元すれ1 ◆jYDOLr.5ps [age] : 03/10/13 16:36
C♯相談室 Part11
http://pc2.2ch.net/test/read.cgi/tech/1061262958/

ここではレス付きそうにないのでこっちに移動します
936933 ◆Ikx9obzOAY :03/10/13 17:01
>>934
情報thx
AxInterrop.WMPLib.dllこちらも自動生成されたのでOKですか?
937あぼーん:あぼーん
あぼーん
>>937=精神的部落羅
939デフォルトの名無しさん:03/10/13 18:20
940あぼーん:あぼーん
あぼーん
941あぼーん:あぼーん
あぼーん
942名無しさん♯:03/10/13 18:54
( ゚д゚)つ 新スレドゾー
http://pc2.2ch.net/test/read.cgi/tech/1066038651/l50
943928:03/10/13 19:03
ありがとうございます。理解できました。



>>942
ありがd
945デフォルトの名無しさん:03/10/14 12:41
新スレ酷いことになってるな・・・
System.Net.Sockets.Socketって継承できないのでしょうか?
class CustomSocket : System.Net.Sockets.Socket{}
でエラーになるんですけど。
C#触って3日目の房ですみません。
947946:03/10/14 14:23
すみません。自己解決しました。
>>947
帰ってきた日常を感じるな。
「スレッド処理を長時間行わせていると」
ってのと
>十分なクォータがありません。
からみて、リソースリーク関連かな?
タスクマネージャ等でアプリケーションとシステムの状態を監視しなさい。
まずは、問題を把握しましょう。

FreeOnTerminate を True にしても、Terminate しなかったら意味ないし、
解放し忘れリソースがあったらやはり問題だ。
950デフォルトの名無しさん:03/10/15 03:14
                                                    _,. -‐、 ____r‐ 、
                                                 /´     `      \
          ,,―‐.                  r-、    _,--,、         'フ   ,.......,       \
     ,―-、 .| ./''i、│  r-,,,,,,,,,,,,,,,,,,,,,,,,―ー.    ゙l, `"゙゙゙゙゙ ̄^   \   r‐''~´  ,.、  ヽ'"    _,..‐,'゙ヾ.´
    /   \ ヽ,゙'゙_,/   .゙l、         `i、   \ _,,―ー'''/  .,r'"   .|    ヽ'       └''´,.:‐r''ヽ,
.,,,、.,,i´ .,/^'i、 `'i、``     `--‐'''''''''''''''"'''''''''''゙     `゛   .丿  .,/     └''´>      _,.-、      `'´ ∠,,,
{ ""  ,/`  ヽ、 `'i、                        丿  .,/`    .ヾヽ''´      '─''''          }
.ヽ、 丿    \  .\                      ,/′ 、ヽ,,、   |   ,.r、________,r 、  j
  ゙'ー'"      ゙'i、  ‘i、.r-、      __,,,,,,,,--、     / .,/\ `'-,、 `‐'',ゞ---------────‐'´`ヽ´
           ヽ  .]゙l `゙゙゙゙"゙゙゙゙ ̄ ̄     `'i、  ,/ .,,/   .ヽ  \   !、                ノ
            ゙ヽ_/ .ヽ_.,,,,--―――――ー-ノ_,/゙,,/′     ゙l   ,"    ,ゝ   r‐┐    rヮ    <´
                 `             ゙‐''"`        ゙'ー'"   i´    }_」    │ヽ.   j
                                               ヽ、  ,人       丿  ヽ._,.ノ
                                                  `- '   `ヽ、__/


c#って全角の?は使えないんですね。
は?
ユニコード問題だね?
C# の言語仕様上の問題。あきらめろ。
954デフォルトの名無しさん:03/10/17 10:28
> マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

よくヘルプにこう書いてあるけど、意味がわからない。
どういう使い方をすると、安全でないの?
>954
日本語訳のミス。
956954:03/10/17 12:02
すまそ。
よく読んだら意味が分かった。
staticのメンバはスレッドセーフで、そうでないメンバはスレッドセーフでないって意味ね。
こんどは意図的な誤回答か。

いよいよ2ちゃんねるらしくなってきたな。
>>253のことじゃないよ。分かってる人は分かってると思うけど、念のため。
959OJのdat読み込みミス:03/10/17 20:56
誤 >>253
正 >>956
どうやったら253と956を間違えるんだろう
961デフォルトの名無しさん:03/10/17 22:41
int   edokko     SJIS
----------------------------
253 == "ニゴミ" == 6C AB ED 0D
956 == "クゴム" == 8B AB ED 1D
962デフォルトの名無しさん:03/10/18 16:18
列挙型のオーバーロードの方法について質問があります。
こんなコードを書いたのですが、コンパイルできません。これは無理なんでしょうか?

using System;

class EnumOverload
{
static void Main(string[] args)
{
Console.WriteLine((ColorBit.Blue | ColorBit.Red).ToString());
}
public enum ColorBit : int
{
Black = 0,
Red = 1,
Blue = 2,
Magenta = 3,
}
public static ColorBit operator |(ColorBit cbA, ColorBit cbB)
{
return (ColorBit)((int)cbA | (int)cbB);
}
}
>>962
enumに [Flags] をつければ演算子再定義もも不要だよ。
964デフォルトの名無しさん:03/10/18 17:24
16bitCRCと32bitCRC算出したいのですが、
解説ページを見てもよくわからなかったので聞かせて下さい。
特にわからなかったのが16bitと32bitの違いです。
まとめてdll化したのが公開されているので
最悪使わせてもらおうとは考えていますが
やはり自分のコードに納得の上でC#で実装したいと考えています。
16bit版と32bit版のサンプルってありませんか?
すぐ見つかると思ったのですがさっぱり見つかりませんでした。
また、理解しやすい方法などあれば教えて下さい。
ごちゃごちゃ書きましたが目的はC#で16bit版と32bit版の
CRC算出関数を作成することです。
よろしくお願いします。
965962:03/10/18 17:25
>963
ありがとー。
Magenta が無事出力されました。
966デフォルトの名無しさん:03/10/18 18:04
文字コードの変換について教えて頂きたいことがあります。

JISコードをunicodeに単漢字ごとに変換したいと希望しているのですが、
次のようなコードを作ってみたところ、うまく変換されません。

using System.Text;

private void btnTest_Click(object sender, System.EventArgs e)
{
byte[] data1 = new byte[2];
data1[0] = 0x30;// '亜'のJISコード1バイト目
data1[1] = 0x21;// '亜'のJISコード2バイト目

byte[] data2 = Encoding.Convert(Encoding.GetEncoding("iso-2022-jp"),Encoding.Unicode,data);
string str = "";
str += (char)(data2[0]*0x100+data2[1]);
MessageBox.Show(str); // ← '亜'が表示されない
}

よろしくお願いします。
967修正:03/10/18 18:06
private void btnTest_Click(object sender, System.EventArgs e)
{
byte[] data1 = new byte[2];
data1[0] = 0x30;// '亜'のJISコード1バイト目
data1[1] = 0x21;// '亜'のJISコード2バイト目

byte[] data2 = Encoding.Convert(Encoding.GetEncoding("iso-2022-jp"),Encoding.Unicode,data1,0,2);
string str = "";
str += (char)(data2[0]*0x100+data2[1]);
MessageBox.Show(str); // ← '亜'が表示されない
}
>>966
エスケープシーケンスの問題。

byte[] bytes = Encoding.GetEncoding("iso-2022-jp").GetBytes("あい01う2");
でbytesを見ると、
1B 24 42 24 22 24 24 1B 28 42 30 31 1B 24 42 24 26 1B 28 42 32
って配列になる。
全角文字列の開始/終了位置にそれぞれ3バイトのエスケープシーケンスが必要なわけだ。
969ちんげ:03/10/18 19:05
c#のソフトはwinnyで落とそう。
>>968
変換できました。ありがとうございます。
penisu maturi
>>971
おまえのちんこを祀った。
973デフォルトの名無しさん:03/10/19 20:13
>>971
おれもおまえのちんこを擂った
埋めろ
975デフォルトの名無しさん:03/10/20 12:56
(・∀・) オチンコ!
(・∀・) チンコ!
(・∀・) ンコ!
(・∀・) コ!
(・∀・) !
976デフォルトの名無しさん:03/10/21 01:29
pictureboxで描画した画像をbitmapで保存する方法を知ってるかたいますか?
宜しくお願いします。
977デフォルトの名無しさん:03/10/21 02:11
pictureboxImage.Save("hoge.bmp");
で如何かしら?
978デフォルトの名無しさん:03/10/22 16:18
正規表現を利用しHTMLのタグ(小なり記号から大なり記号の間)を取り除きたいのですが、
どんな正規表現にすればよいのでしょうか?

<h1><b>TEST</b></h1>

TEST


 
<[^>]+>
980デフォルトの名無しさん:03/10/22 17:02
>>979

.*を使うと思って試行錯誤してました・・・

<[^>]+> 、完璧です!!
ありがとうございました!!

981デフォルトの名無しさん:03/10/22 18:19
外部のDLL関数呼び出しのために使用する
以下のようなクラスがあります。

[StructLayout(LayoutKind.Sequential)]
public class AAA
{
  public uint dwAbc;
  public uint dwFef;
}

[StructLayout(LayoutKind.Sequential)]
public class BBB
{
  public uint dwGhi;
  public uint dwJkl;
  [MarshalAs (UnmanagedType.ByValArray, SizeConst=1000)]
  public AAA[] aaa;
}

クラスBBBのサイズを求めようと、

BBB bbb = new BBB();
Marshal.SizeOf(bbb);

とすると例外が発生してしまいます。

サイズを求める方法はないでしょうか?
982981:03/10/22 18:23
× Marshal.SizeOf(bbb);
○ int size = Marshal.SizeOf(bbb);
983デフォルトの名無しさん:03/10/23 05:14
>>977
ありがとうございます。やってみます。
また、質問です。
”メモリ不足です。”というエラーが出ます。
多次元配列やギザギザ配列([ ],[ ] )を使ったせいなのですが
現在、プログラムが使えるメモリがどれくらいで、プログラムがどれほどメモリを占有しているか、
調べる関数はあるのでしょうか?実際の変数の大きさ、オブジェクトのメモリ(ビット)が
プログラムの大部分のメモリと考えてよいのでしょうか?
ちなみに、メモリは1GBくらいでした。
984デフォルトの名無しさん:03/10/23 14:14
やれやれだぜ
変数 n に数字を入力して、n / 5 + 32 を計算するプログラムを作成せよ。
また結果を表示せよ。

コレがどうしてもわかりません誰か式を書いて解説していただけないでしょうか?
↑マルチはけーん
すまそ、マルチじゃなかった
じゃあ、ちゃんと言い直そうぜ。

>>985
シングルはけーん
>>985
むしろ何が分からないのかが分からない。
おれもマルチかとオモタよ。
でもこれ荒れるのを期待したネタでしょ?
埋め
膿め
宇目
うめー
うめえ
1000取ったらゲイツの奥さんと不倫する。
998
1000前夜祭
( ̄ー ̄)ニヤリッ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。