C♯相談室 Part22

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

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


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


関連リンク
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
2名無しさん♯:05/03/01 07:42:36
3デフォルトの名無しさん:05/03/01 08:10:41
このスレは Java 信者がのっとった
4デフォルトの名無しさん:05/03/01 12:14:56
         ヘ  o ,    ── /   __,   /  _,   /_/_/       __,   /
          /  \ ´   ── /        /   ─'  /    _       / 
         _/    \   __ /   ___/   ___/     /   ___/
                                     ̄ ̄ ̄
                    _ , ― 、
                  ,−'  `      ̄ヽ_
                 ,'            ヽ
                (   `ー'ー'ヽ`ー'ー'ヽ  )        
               (  ノ ''''''   '''''':::::::ヽ  )
               ( . )(●),   、(●)、.:( ) +
               ( )   ,,ノ(、_, )ヽ、,, .::::( )    <ヨン様が華麗に4get!
               . ヽ )   `-=ニ=- ' .:::::::|ノ  +
                  \  `ニニ´  .:::::/      +
               ,,.....イ.ヽヽ、ニ__ ーーノ゙-、.
               :   |  '; \_____ ノ.| ヽ i


5デフォルトの名無しさん:05/03/01 16:19:24
http://www.amazon.co.jp/exec/obidos/ASIN/1555583156/qid=1109661372/ref=sr_8_xs_ap_i1_xgl/250-7527971-5341830
これ無料で貰ってくれる人キボン。
希望者は[本よこせ]くらいのタイトルでメール下さい。
65:05/03/01 16:19:57
先着1名で。
7デフォルトの名無しさん:05/03/01 20:35:44
>>5
悪書だった?
ちょっと面白そうだけど感想希望。
8デフォルトの名無しさん:05/03/01 22:01:08
ためしにメッセに登録してみたw
9デフォルトの名無しさん:05/03/01 22:06:19
1さん乙カレー
10デフォルトの名無しさん:05/03/01 22:15:57
C#ってMS信者以外誰も使ってないよな(藁
11デフォルトの名無しさん:05/03/01 22:53:43
社会に出てみればわかるよ
12デフォルトの名無しさん:05/03/01 23:09:02
>>10
っ[MONO]
13デフォルトの名無しさん:05/03/02 00:15:14
↑消しゴム
14デフォルトの名無しさん:05/03/02 00:24:26
FormアプリケーションでForm上のオブジェクトのちらつきを抑えたいときに
Form上でダブルバファリングするだけではうまくいかないものでしょうか

フォーム上の各コンポーネント全てでちらつきを押さえるようなコードを書かないとだめ?

ついでにWバファリングするコードってこんな感じでよいのかな?
SubForm:Form{
    Image _bitmap = new Bitmap(500, 500);
    protected override OnPaint(PaintEventArgs e){
        base.OnPaint(new PaintEventArgs(Graphics.FromImage(_bitmap), e.ClipRect);
        e.Graphics.DrawImage(_bitmap, 0, 0);
    }
}
15デフォルトの名無しさん:05/03/02 00:50:47
>1
もつかれ
16デフォルトの名無しさん:05/03/02 01:15:57
前スレでリストビューのInsertについて質問した者です。
無事、追加することができましたので御報告します。

それにしても、
ListView1.Items.Insert(
と入力した時点で()の中の1つめの引数はStringだと出ていたので、
System.Windows.Form.ListViewItem型をInsertできるとは微塵にも思っていませんでした。

有り難う御座いました。
17デフォルトの名無しさん:05/03/02 03:34:42
ttp://park16.wakwak.com/~mimi/dotnet/network/remoting_sample.html
スレッド間で通信するために、このページを参考に作ってみたのですが、
Windowsのファイヤーウォールの警告が表示されます。
TCP/IPを使っているので警告が表示されるのは仕方がないと思いますが、
別の手段などで警告を表示せずに通信するにはどうすればよいでしょうか?
18デフォルトの名無しさん:05/03/02 03:46:14
警告を表示させずに通信されたらファイアウォールの意味がないわけだが。
1917:05/03/02 04:15:31
>>18
それは分かっています。別にファイヤウォールを騙すなりをしたいのではなくて、
プロセス間で通信をするのが目的なので何らかの手段を示して頂きたいと思いまして。
20デフォルトの名無しさん:05/03/02 07:05:22
>>17で「スレッド間」ってのは誤字?
21デフォルトの名無しさん:05/03/02 07:29:23
スレッド間でTCP/IP通信はできるけどする意味がないから多分誤字でしょう
22デフォルトの名無しさん:05/03/02 07:31:06
ColorDialogについて質問です。
ColorDialogでアルファブレンドの値を決められるようにすることはできませんか?
色と同時にアルファ値を決められるようなUIは1から自作しないとできないのでしょうか?
23デフォルトの名無しさん:05/03/02 10:46:54
Windowsのエクスプローラーみたいに
ファイル名 | ファイルサイズ | 種類 | 更新日時

といった風にテキストを分けたりするにはsplitterを使うのでしょうか?
splitterを使用してもたくさん分割できないので(使い方が下手なだけかもしれませんが・・・)
もしかしたら他のコントロールを使用するのでしょうか?
先輩方のアドバイスをいただければと思います。
24デフォルトの名無しさん:05/03/02 10:48:36
ListView使え。
25デフォルトの名無しさん:05/03/02 11:00:43
>>14
private void Form_Appl_Load(object sender, System.EventArgs e)
{
 SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
っていうことじゃなくてか?
26デフォルトの名無しさん:05/03/02 12:04:47
Pingを打ってその値をテキストに出したいんですが
C#などでPingを打つ場合はどういう手順でやるんでしょうか?
サンプルや事例があれば教えていただければと思います。
27デフォルトの名無しさん:05/03/02 13:14:22
>>26
C#が動く多くの環境でpingコマンドが使えると想定して
コンソールでpingコマンドを動かしてしまって、それの
出力を取るというのも一つの手だ。
28デフォルトの名無しさん:05/03/02 16:05:05
>>26
宇宙仮面氏のとこにサンプルがあるよ
http://ukamen.hp.infoseek.co.jp/Programming1/WinPing/
29デフォルトの名無しさん:05/03/02 18:18:40
pipeが使えれば普通にやれる気がするけど、.NETでpipeはどうやるんだろう。
30前859:05/03/02 19:10:27
スルーのままスレが終わってしまったので再び。

あるクラス(A)の持つ読み取り専用のデータ(B)をクラスとして公開すると
参照先で(B)が持つ(C)の内容を変更される可能性がある。
class A{
 private B dataB;
 public B DataB{ get{ return dataB; } }
}
class B{
 private C dataC;
 public C DataC{
 get{ return dataC; }
 set{ dataC = value; }
 }
}
クラス(B)のメンバであるクラス(C)も読み取り専用すればいいのだろうが、
そうするとクラス(A)でも変更できない。
解決策として、クラス(B)を構造体にして、
外部にはインスタンスをコピーしたものを公開する、という方法は
構造体の使い方として間違っている?
メンバをコピーするメソッドを書かなくていいし、
データが軽ければ複製の負荷もわずかだろうし。
31デフォルトの名無しさん:05/03/02 20:15:33
こんども>>1000までスルーするかw
32デフォルトの名無しさん:05/03/02 20:32:18
ちんぽびゅんびゅんびゅーーん
33デフォルトの名無しさん:05/03/02 23:22:59
現在DLLを読み込んでいるかなどの情報を知ることができるのでしょうか?
アプリケーションの起動時にそのような情報を取得し表示したいのですが
どうしたらよいでしょうか?
34デフォルトの名無しさん:05/03/02 23:35:00
>>33
意味が良くわからんな。
特定のアプリケーションドメインにロード済みのアセンブリならAppDomainのGetAssembliesメソッドがあるが。
35デフォルトの名無しさん:05/03/02 23:45:20
>>20
>>21
誤字です。すいません。何か妙案ありますでしょうか?
3614:05/03/02 23:58:37
>>25
ああ、なんて便利な・・。C#素敵です
ありがとうございました。
3714:05/03/03 00:09:43
>>30
クラス(B)のメンバであるクラス(C)も読み取り専用にして
クラスAでは実はクラスBのサブクラス(クラスCを書き込み可能)をいじっているとかいうのではだめかな
もしくは、基準を変えて、クラスBの下にgetだけできるインタフェースを作って, class AではdataBのインタフェースだけもてるとか
38デフォルトの名無しさん:05/03/03 00:45:47
Longhornには.NET Framework 2.0 が標準でインストールされているんだよな?
39デフォルトの名無しさん:05/03/03 01:09:05
WinFSにつづいてWinFXも開発延期になったら搭載されないかもしれない
それってもうLonghornじゃないな(笑)
40デフォルトの名無しさん:05/03/03 03:56:08
>>30
こんなのどうだ?
C#知らないから勘で書いてみる。勝手に翻訳してくれ。

class A {
 private BChild dataB;
 public B DataB { get { return dataB; } }
 class BChild : B {
  public C DataC { set { dataC = value; } }
 }
}
class B {
 private C dataC;
 public C DataC { get { return dataC; } }
}

誰かこれをコンパイル通る文に変換してくれ。

要は、Bでは「Cは読み取り専用」にして、
Aの内部クラスとして「Cを変更可能にしたB」をBの子クラスとして定義。
41デフォルトの名無しさん:05/03/03 03:59:21
>>40
書き忘れたので自己レス

> public B DataB { get { return dataB; } }

return dataB; はBにキャストしてから戻す文に変更してくれ。
return (B)dataB; とか書くのかな?
42デフォルトの名無しさん:05/03/03 07:36:20
・プロジェクトAでアプリAを作りました。
・プロジェクトBでアプリBを作りました。
ここでこれらのアプリを連携させたいと考えました。(AでBをいじり、BでAをいじるように)
これを実現させるために単純にAでBを参照追加、BでAを参照追加のようにすると
DLL参照で循環が起こってしまうのですが、どのようにするのがセオリーなのでしょうか?
43デフォルトの名無しさん:05/03/03 08:52:35
>>42
プロジェクトCを追加
44デフォルトの名無しさん:05/03/03 09:40:44
コンソールでコマンドを打ちたいのですが
コンソールの起動とコマンド実行時の結果を取得したいのですが
使用するコントロールはどのあたりを使えばよいかヒントをいただけないでしょうか?
もしくはそういったことを解説しているサイトがあれば教えてください。
45デフォルトの名無しさん:05/03/03 09:40:46
>>42
お前さん構ってもらえないからってしつこすぎw
46デフォルトの名無しさん:05/03/03 10:03:43
AxSHDocVw.AxWebBrowserでブラウザ表示するプログラムを練習中です。
URLを指定してHTML文やXML、SVGを表示することは出来ました。
string で作成したHTML文を表示することはできましたが、
stringで作成したXML文やSVGを表示する方法が分かりません。
下記で表示すると、タグがとれたXMLやSVGのテキストが表示されます。
axWebBrowser1.Documentのキャストを何にすればXMLとかが普通のブラウザ表示されるのでしょうか?
いちいちSVGをファイル保存したくないのですが。

string strResult;//結果文字列用変数
private void button1_Click(object sender, System.EventArgs e)
{
 object o = "";
 localhost.Service1 webservice = new localhost.Service1();//インスタンス生成
 strResult = webservice.ReadJob(textBox1.Text);    // WebサービスからXML文をもらう
 axWebBrowser1.Navigate("about:blank", ref o, ref o, ref o, ref o) ;//string文字をブラウザ表示するため、about:blankを指定
}
private void axWebBrowser1_DocumentComplete(object sender, AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e)
{
 IHTMLDocument2 html;
 html = (IHTMLDocument2)axWebBrowser1.Document;
 html.writeln(strResult);
}
47デフォルトの名無しさん:05/03/03 10:05:34
48デフォルトの名無しさん:05/03/03 10:23:24
>>46
XMLにせよSVGにせよ、Navigateするときに拡張子を見てプラグインを起動させるといったデザインのはずなので、
オンメモリのを直接ってのは無理じゃないかな。
49デフォルトの名無しさん:05/03/03 10:33:35
C#でネットワーク関係を詳しく扱っているサイトとかありませんか?
探せど探せど基本的な事やデータベースとの連帯を重視しているサイトしか
見つけられなくて、ネットワーク関係を詳しく扱っているサイトありましたらおしえてください。
50デフォルトの名無しさん:05/03/03 10:51:37
aaa-bbb-ccc-111

のような文字列から、最後の - の直前までを取得したいのですが、
どうやればいいのでしょう?

上記の場合、取得したい文字列は aaa-bbb-ccc になります。

これが a-b-c-1 の場合、取得したいのは a-b-c になります。

よろしくおねがいします。
51デフォルトの名無しさん:05/03/03 11:01:53
string.LastIndexOf を使え
52デフォルトの名無しさん:05/03/03 11:05:32
正規表現を使う手もあるけどな。
ま、そんな単純なのならLastIndexOfで十分だ。
5346:05/03/03 11:18:40
>>48
ありがとうございました。内容に合わせた拡張子でtempファイル作るようにします。
あともう1点。
svgの画像を印刷しようとすると
用紙に合わせた縦横変倍になってしまいます。プレビューでもなります。
ブラウザには正しく表示されてるのに何ででしょう?
足りない設定があるのでしょうか?
他に印刷方法あったら教えてください。
private void button2_Click(object sender, System.EventArgs e)
{
 object o = "";
 SHDocVw.OLECMDID Print = SHDocVw.OLECMDID.OLECMDID_PRINT;
 SHDocVw.OLECMDEXECOPT PromptUser =
  SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_PROMPTUSER;
 axWebBrowser1.ExecWB(Print, PromptUser, ref o, ref o);
}
54デフォルトの名無しさん:05/03/03 11:20:38
>>49
つ MSDN & GotDotNet

抽象的すぎる。
どんなことが「詳しく」になるんだ?
それにソケット絡みのはコーディングそのものは大して複雑にもならない。
TCPやIPの理解ならC#である必要はどこにもないし。
55デフォルトの名無しさん:05/03/03 11:31:03
>>30
Cはイミュータブルなクラスか構造体ってことでいいのかな?
B、CともにイミュータブルにするかICloneableを実装するってことじゃだめ?
56デフォルトの名無しさん:05/03/03 11:57:11
>> 51 >> 52
ありがとうございます。ばっちりできました。助かりました。
57デフォルトの名無しさん:05/03/03 12:42:28
>>53
むりぽ。
IEでの印刷もそうだし、IEの仕様なんだろ。
HTMLを基本にして、SVGはobject/embed要素で表示するようにすれば幅/高さを指定できるようになるが……。
5846:05/03/03 18:18:30
>>57
embedでHTMLに組み込むとプリントは正しく出来ますが、
ベクター画像として印刷するのではなくビットマップ画像になってしまうみたい。
そうするとSVGを使用する魅力がなくなる。

3回ぐらい繰り返しで出力させると正しいサイズで出てくるあたり挙動不審(w
さらに印刷プレビューで正しく表示されたとき、何倍にしても同じサイズで表示されてる…。

SVGは諦めろと…。
59デフォルトの名無しさん:05/03/03 21:11:01
ある文字列が日付 (yyyy/mm/dd) として正当かどうかを検査するにはどうしたら
よいでしょうか?

isdate 関数みたいな事がやりたいのですが。。。
60デフォルトの名無しさん:05/03/03 21:33:56
isdate関数なんてありませn
61デフォルトの名無しさん:05/03/03 21:35:29
1) 正規表現
2) DateTime.Parseをtry-catch
3) Microsoft.VisualBasic.dllを参照してMicrosoft.VisualBasic.Information.IsDate
62デフォルトの名無しさん:05/03/03 21:48:52
>>59
試してないが、DateTimeに変換出来なかったらえらーじゃ駄目なの?
63デフォルトの名無しさん:05/03/03 22:43:53
>>61
DateTime.Parse()と/の位置チェックぐらいかな。
03/04/05みたいな不定な文字列でもParse()は通っちゃうから。
64デフォルトの名無しさん:05/03/03 22:44:51
>>62
DateTime は 2005/02/29 を 2005/03/01 と解釈するし
そういうよけいなことはしないでほしいのです
65デフォルトの名無しさん:05/03/03 22:49:54
>>64
別に変換したDateTimeを使えと言ってるわけではないが。
DateTime.ParseExactならフォーマットも指定できるな。
66デフォルトの名無しさん:05/03/03 23:25:49
>>64
それはあってんじゃねーか? そんな日ないし。
67デフォルトの名無しさん:05/03/03 23:26:13
>>64
というかだね、厳密に仕様が決まってるなら自分で解析すべき
で、それができないとしたら仕様が曖昧か、C#以前に
プログラミングスキルが足りないのどちらかだろ
68デフォルトの名無しさん:05/03/04 10:46:38
関数f(A a) の宣言において、「この関数は引数を変更しない」ことを示したいときは
どのようにすればいいのでしょう(C++におけるconst参照渡し)
out,refがあってinがないのが不可解でなりません。
69デフォルトの名無しさん:05/03/04 10:53:31
>>68
out/refを書かなければ、変更しないから不要なんでしょ。
70デフォルトの名無しさん:05/03/04 10:54:49
>>69
そんな馬鹿な。
vod f(A a) {a.b=10;}
ってコードも通りますよ。
71デフォルトの名無しさん:05/03/04 10:58:52
>>70
それは、「引数を変えてる」わけじゃないからねぇ。
72デフォルトの名無しさん:05/03/04 11:02:02
>>70
outやrefだって、メンバへのアクセスについては関与しないだろ。
7370:05/03/04 11:12:30
>>71-72
あ、なるほど……
でもそうなると、ある関数が引数のメンバを変更するかどうかは
関数の宣言を見るだけではわからないってことですか。
74デフォルトの名無しさん:05/03/04 11:50:34
>>73
ってことです。

C++でクラスのポインタを渡すようになっていたら、それを
どうされるのかわからないのと一緒。
7570:05/03/04 12:04:51
>>74
へー。そういうものなんですか。

調べてみたけど、C#ってconst関数がないんですね。
erick gunnersonがなんか書いてた。
http://weblogs.asp.net/ericgu/archive/2004/04/22/118238.aspx
76デフォルトの名無しさん:05/03/04 12:46:46
Forms.LabelをFormに貼り付けてF2を押したら編集する。といったようなものを考えました。
そこで、LabelEditorみたいなものを作りたいのですが、ラベル内のTextの位置って
Labelメンバから取ってくることは可能でしょうか?
LabelEditorの出現位置がLabel内のTextにぴったり被さるようにしたいのですが
77デフォルトの名無しさん:05/03/04 14:23:38
いきなり質問失礼します。
見積書のテンプレートを読み込み、それを書き換えて見積書をつくるプログラムの一部を作っています。

    //"Template\Estimation.txt"を開く
    System.IO.StreamReader sr = new System.IO.StreamReader(@"Template\Estimation.txt", System.Text.Encoding.GetEncoding(932));
    //内容をすべて読み込む
    string s = sr.ReadToEnd();
    //閉じる
    sr.Close();

これでsに見積書のテンプレートが読み込まれて

    //sを書き換える
    s.Replace("name", this.txtName.Text);

のように書き換えたいのですが、うまく書き換わらずに、最後に

    MessageBox.Show(s);

とやると元のテンプレートのまま吐きだしてしまいます。
やはり
    s.Replace();
とやっただけではsは書き換わらず、
    s = s.Replace();
というふうにすべきなのでしょうか?
78デフォルトの名無しさん:05/03/04 14:29:24
>>77
わかってるんだったらそうしなよ。
ついでにリファレンスのSystem.Stringも熟読。
79デフォルトの名無しさん:05/03/04 14:30:15
初心者は混乱するんだけど “string オブジェクトは変更できない” のよ
string.Replace のリファレンスを見ると、『置換した文字列を返す』 って書いてあるから、

string newText = s.Replace();

が正解。s = s.Replace() でも良いけど。
80デフォルトの名無しさん:05/03/04 14:38:44
つか見積書ってナニよ?
時間帯からして仕事のソフト?
素直に上司に質問しなさい!

つか、仕事の質問を2chにするなとw
81デフォルトの名無しさん:05/03/04 14:43:42
>>80
このスレは仕事の質問ばっかりだが。
俺も仕事中にこっそり答えている。
82デフォルトの名無しさん:05/03/04 14:49:32
いえいえ、滅相もない!
http://cdrtest.hp.infoseek.co.jp/cgi-bin/snup/src/VisualVision0053.zip
↑のような自分専用のオークション管理DBを作っています。
TemplateフォルダにあるEstimation.txtを読み込み、落札者に見積メールを送信する機能を
付ける際に、テンプレートを書き換える必要があったのです。
試しに起動して、リストビューからアイテムを選んで右クリック→各種メール送信→見積メール
ってやってみてください。
皆様のおかげで無事、書き換えることができるようになりました。
83デフォルトの名無しさん:05/03/04 14:51:14
>>80
ここは@ITの会議室ほど露骨ではないと思ふ。
84デフォルトの名無しさん:05/03/04 14:51:55
C#を覚えようと参考書かって勉強したが、挫折シマスタ(´・ω・`)
面白いことなくてやる気失せマスタ
85デフォルトの名無しさん:05/03/04 14:52:41
あぁ・・・焦って公開してしまってから後悔しています。
何というかお恥ずかしい・・・
本当にまだC#を勉強し始めたばかりなので、ロクでもないソフトなのですが・・・

まだ動かない機能が殆どなので余り怒らないでくださいね。
86デフォルトの名無しさん:05/03/04 15:05:56
>>82
ヤフオクの管理ソフトかよw
87デフォルトの名無しさん:05/03/04 15:52:19
System.Drawing.Font または DirectX.Direct3D.Font から
GetGlyphOutline で取得できるようなアウトラインデータを取得するまでの流れが思いつきません。

良い案ありますか?
88デフォルトの名無しさん:05/03/04 16:08:58
オーバーロードされた関数をデリゲートに渡すにはどうすればよいのでしょうか?
delegate void test(string text);
new test(MessageBox.Show);
としてもエラーが出てしまうのですが...
89デフォルトの名無しさん:05/03/04 16:14:08
>>88
MessageBox.Show(string) は void じゃなくて DialogResult
90デフォルトの名無しさん:05/03/04 16:14:31
>>88
MessageBox.Showメソッドの全てのオーバーロードでDialogResultが返されるわけだが。
9188:05/03/04 16:22:17
>>89,90
解決しました。
ありがとうございました。
92デフォルトの名無しさん:05/03/04 16:31:27
Windows.Form です。
重い処理を実行した時に、"応答なし"となるのを避けたくて、
その思い処理をスレッド化?しました。

その場合、"応答なし"にはならなくなりましたが、処理中にもかかわらず、
フォーム上のコントロールが自由にさわれるようになってしまいました。

例えば、ボタンでその重い処理を実行しているとすると、スレッドで実行した
直後にまたボタンが押せるようになります。
スレッドにしなかった場合は処理している間はフォームはイベントが発生
しませんでしたので、このような事はおこりませんでした。

応答なしの表示はしたくないけど、フォーム上のイベントを拾いたくない
なんて都合のよい事をやろうとすると、どのように組むべきでしょうか?
93デフォルトの名無しさん:05/03/04 16:33:24
>>92
ボタンを押した時にボタンのEnabledをfalseにすればいいじゃない。
見た目的に押した感じは出したいのならフラグを使えばいい。
94デフォルトの名無しさん:05/03/04 16:45:16
>>87
GetGlyphOutlineを使うしかないような気がする。
9587:05/03/04 17:32:03
>>94
そこまでの手順を (T-T
96デフォルトの名無しさん:05/03/04 17:46:21
Graphics g、Font fがあるとして、
g.GetHdcでデバイスコンテキスト取得。
f.ToHfontでHFONT取得。
SelectObjectでデバイスコンテキストにHFONTを選択。
GetGlyphOutlineを実行。

SelectObjectで元のオブジェクトに戻す。
g.ReleaseHdcでデバイスコンテキスト解放。

基本的な流れはこんなもの。
構造体の書き方とか読み方は調べれ。
9787:05/03/04 17:51:03
>>96
すげ。有り難うございました m(_ _)m
9830:05/03/04 20:27:41
>>37,40,55
回答どうもありがとう。
明日は早く起きなきゃならないのでひとまずお礼だけ。
日曜に試してからまた報告する。
99デフォルトの名無しさん:05/03/05 00:24:57
とてもアホなことだと思うのですが、関数に文字列の参照を与えて、中身を埋めてもらおうと思ってます。

こんな感じ
Func(out string hoge)
{
hoge = "XXXX";
}

ですが、呼び出し側で以下のようにしてみても駄目。
string test = ""; //仮にダミー値とする。
Func(test); //文字列を記入

そもそもstringを使うところが間違っているのでしょうか?

100デフォルトの名無しさん:05/03/05 00:28:46
>>99
コンパイルエラーだろうけど、エラーメッセージを良く読もうよ。

あとoutパラメータに渡す場合初期値を与える必要は無いよ。
101デフォルトの名無しさん:05/03/05 00:31:38
コンパイルエラーなら Func(out test) 呼び出し側にもout が必要。
10299:05/03/05 00:39:51
大変失礼しました。

>100,101
 ありがとうございます。
 一生懸命Func(&test);
 とかやっておりました…orz 文法嫁よ、俺
 
103デフォルトの名無しさん:05/03/05 03:18:45
日の丸みたいな画像(bmpとかjpg)読み込んで円のGraphicsPath を作る方法ない?
ウインドウの形を指定するファイルに使うつもりなんですが。
上の例のファイルを指定された場合は丸いウインドウを作ると。
104デフォルトの名無しさん:05/03/05 04:04:48
●ツールバーに画像が表示されない(VS.NET2003)
ttp://backno.mag2.com/reader/BackBody?id=200412090600000000104516000
の症状が出たので手動で
ToolBar.Buttons.Addrangeをツールバーのボタンの設定の後ろに移動させるのだが、

ドッキング場所を(Dock)の設定をTopからRightに変更してる場合だと
今度はツールバーの横サイズがツールバーのボタンの横サイズに強制変更されるから
ボタン全体が表示されなくなる罠が...。
DockはNoneにして、AnchorをTop,Rightにして一応解決とした。
105デフォルトの名無しさん:05/03/05 04:21:37
>>103
1.画像を走査して境界検知
2.境界点の位置を元に座標作ってGraphicsPathのコンストラクタに渡す
とかなるんじゃないかな。
106103:05/03/05 05:34:18
>>105
自作しかないのか。。
107デフォルトの名無しさん:05/03/05 05:56:14
そんなマニアックな関数ないと思うYO
画像処理を勉強して自作
108デフォルトの名無しさん:05/03/05 13:09:03
c#で指定時刻に音が出るプログラムを作りたいのですが
*.wavといったデータから音を出すにはどうすればいいでしょうか
それが難しければ、ビープ音を出すにはどうしますか。
109デフォルトの名無しさん:05/03/05 13:20:04
>>108
.net framework 2.0 ならば

System.Windows.Forms.SystemSounds.Beep

ってのがある
1.1 において一番コーティングが楽なのは、MDX 使って

new Microsoft.DirectX.AudioVideoPlayback.Audio("ファイル名", true);

の一行
110デフォルトの名無しさん:05/03/05 13:21:42
111デフォルトの名無しさん:05/03/05 13:27:24
>>108
長々書いてたら先越されたw

それ以外のアプローチを示しておこう。
・Process.Startでファイルを実行させる
・Microsoft.VisualBasic.dllを参照してMicrosoft.VisualBasic.Interaction.Beepメソッドを呼び出す
 (ただしこれは音の長さも周波数も設定できない、極めて簡単なもの)
・Win32APIのBeep関数を使う
・Win32APIのPlaySound関数を使う

>>109
.NET 2.0なら勧めるのは寧ろSystem.Console.Beepメソッドじゃないかなーとか。
System.Windows.Forms.SoundPlayerクラスとか。
112デフォルトの名無しさん:05/03/05 13:49:15
TabControlがリサイズ時に禿しくチラつくのは私の環境だけですか?

1.FormにTabControlを追加
2.TabCntrolのDockをFillに設定
3.TabPagesを2つ3つ追加

これで実行すると、ウィンドウをリサイズするたびにタブがちらついてしまいます。
ダブルバッファリングを有効にしてもダメでした。。。
113108:05/03/05 13:55:40
もうこんなにレスが.....

Win32APIのPlaySound関数というのは当たりをつけていたのですが
DllImportのやりかたとか自信がなく図書館で4冊ばかり借りてきても
サウンド関係、DllImport、ビープなど全く目次や索引にないようでした。
今は「きつねとけい」をメインに使っているのですが30分おきしか
鳴りません。
http://www.yk.rim.or.jp/~tara/
114デフォルトの名無しさん:05/03/05 14:09:16
>>112
ちらつく事はちらつくけど、深刻なちらつきではないなー。

>>113
>>110に懇切丁寧にサンプルが書かれてるじゃん。
115デフォルトの名無しさん:05/03/05 14:16:42
http://www.atmarkit.co.jp/fdotnet/
Win32 APIやDLL関数を呼び出すには?とか読むと良い
文字列バッファや構造体の渡し方まで関連記事に出てる
116デフォルトの名無しさん:05/03/05 14:21:46
.NET Framework のドキュメントのほうが個人的に見やすい……
117108:05/03/05 15:05:18
>>110 を参考に(というかコピーして)
テストしています。いまのところビルドまでは
うまくいくのですが、実行エラーが出るのです。
110のサンプルの中では、dll名が"coredll"と
なっているのでPlaySoundが入っているdll名を
探しているところです。
118デフォルトの名無しさん:05/03/05 15:07:01
>>117
winmm.dll じゃないのか?
119デフォルトの名無しさん:05/03/05 15:16:07
>>103
http://www.geocities.com/Paris/LeftBank/1160/download.htm
How to create a region from a bitmap ?
A Visual Studio 97 (MSDev 5) project which demonstrates
how to use ExtCreateRgn() and SetWindowRgn() to create
a region from the non "transparent" pixels in a bitmap.

[ 160 lines in one .cpp for the BitmapToRegion() function]
120103:05/03/05 15:26:06
>>119
おお!帰ってきたらテストします。ありがと。
121108:05/03/05 16:27:50
>117
winmm.dll で動くようになりました。
とりあえずボタンを押せばサウンドが鳴るようになりました。
122112:05/03/05 17:22:35
>>114
そうですかー。
気にしすぎなのかな?
123デフォルトの名無しさん:05/03/05 18:15:57
ちょっと便乗しまして質問を・・・

サウンドの再生方法はわかるのですが、
リソースに追加されたファイルを再生するにはどうしたらいいのでしょうか??
124デフォルトの名無しさん:05/03/05 20:06:58
>>123
Win32APIのPlaySoundの話と仮定する。

・マネージドリソース(.resources)または/resで追加したファイル(VSでは埋め込まれたリソース)の場合
 バイト配列に読み込んで、
 pszSoundパラメータにバイト配列を、
 fdwSoundパラメータにSND_MEMORYを指定してPlaySoundを呼ぶ。

・/win32resで追加した.resファイルの場合
 pszSoundパラメータにエイリアス名を、
 hmodにMarshal.GetHINSTANCEで取得した値を、
 fdwSoundにSND_RESOURCEを指定してPlaySoundを呼ぶ。
125デフォルトの名無しさん:05/03/05 20:16:12
見直したら.resourcesもどうせ/resで追加するんだから、「または」から前の部分いらないや……。
126123:05/03/05 23:37:35
>>124 - >>125
レスどうもありがとうございます。

ファイルをバイト配列に入れたり、
バイト配列を再生することはできたんですが、
リソースを扱うことが出来ません・・・。

a.exeというソフトにb.wavというファイルを埋め込んだ(ID:1)場合、
どのようにすれば取り出せるんでしょうか??
System.Reflection.Assemblyで取り出せるのかなと思ったのですが。。。

ちなみにこんなコードを書きました
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetEntryAssembly();

System.IO.Stream stream ;
System.IO.BinaryReader breader ;

stream = assembly.GetManifestResourceStream("a.b.wav") ;
breader = new System.IO.BinaryReader( stream ) ;
byte [] data ;
data = breader.ReadBytes( (int) stream.Length ) ;
この後byte配列を再生しようとしました
たびたび申し訳ないのですが、ご指摘よろしくお願いします
127デフォルトの名無しさん:05/03/05 23:53:50
悪くないと思うが。
byte[]にデータは入ってるんだよね?
なら後はPlaySoundの方の書き方の問題かも知れない。
……と言っても悩む余地もないところだがなぁ。
128デフォルトの名無しさん:05/03/06 02:49:10
>>124
>  バイト配列に読み込んで、
>  pszSoundパラメータにバイト配列を、
>  fdwSoundパラメータにSND_MEMORYを指定してPlaySoundを呼ぶ。

SND_ASYNCもつけてGCが動いて死んでみたりするので、この方法はやめた方がいいかと。
安全にするにはGCHandleで固定化したアドレスにしなきゃいけないし、
SND_ASYNCをつけないならPlaySoundの呼び出しがブロックされるとかなり使いづらいし。
129デフォルトの名無しさん:05/03/06 20:10:08
一旦、
string[] sample = new string[10]
とやった文字配列sampleのLengthを追加することってできますか?
130デフォルトの名無しさん:05/03/06 20:17:38
プロパテまたはインデクサ 'System.Array.Length' は読み取り専用なので割り当てすることはできません。
131デフォルトの名無しさん:05/03/06 20:32:31
意図がわからんな。
ま、頻繁に操作する文字列ならStringBuilderつかっとけ。
MSの言によると5回以上操作するなら大体のケースでstring作り直すより早くなるそうだ。
132デフォルトの名無しさん:05/03/06 21:22:05
どこに質問するべきなのか微妙なのですが、一応、いつもお世話になっているこちらで質問させて頂きます。
よく、掲示板などのCGIファイルのURLの末尾に「?」を付けて変数を渡しますよね?
つまり
bbs.cgi?name=克也
って感じです。
これを
Process.Start("http://xxxxx.com/bbs.cgi?name=克也");
みたいにやって、IEで開けば問題ないのですが、
WebClient.OpenRead使って同じように「http://xxxxx.com/bbs.cgi?name=克也」からダウンロードしようとすると見事に文字化けしてしまうのです。

掲示板のページ自体はS-JISでして、IEを使ってURLを開く場合は恐らく勝手に変換しているのでしょうが、
WebClient.OpenReadを使うと見事にUTF8で送信してしまうために、
掲示板をみても見事に文字化けをしてしまいます。
(実際、IEのエンコードでUTF8にすれば自分の書き込みした部分だけは正常に見れます。)

いろいろ考えたのですが、なにぶん、未熟者故に・・・
どうかご助言の方を宜しくお願い致します。
133デフォルトの名無しさん:05/03/06 21:25:17
>>132
System.Web.HttpUtility.UrlEncode
134デフォルトの名無しさん:05/03/06 21:25:21
こんばんは
プログラム中で、自プログラムがあるディレクトリを取得する方法ってありますか?
135132:05/03/06 21:29:13
早速本当に有り難う御座います!
136デフォルトの名無しさん:05/03/06 21:29:30
>>134
System.Windows.Forms.StartupPathかな。
System.Reflection.Assembly.GetEntryAssembly().LocationからPath.GetDirectoryNameした方が確実かな?
137132:05/03/06 21:35:31
これですね♪
@ITも探したのですが、探し洩れたようです。
申し訳ない・・・
http://www.atmarkit.co.jp/fdotnet/dotnettips/212urlencode/urlencode.html
138デフォルトの名無しさん:05/03/06 21:51:32
>>136
Application.ExcecutablePathはどうよ。
139デフォルトの名無しさん:05/03/06 22:21:22
>>136
あ、できました。。ありがとうございました。
140デフォルトの名無しさん:05/03/06 22:57:22
GUIまわりのテストFrameWorkってないんですかね?

NunitでGUIテストもできるのかな?
141デフォルトの名無しさん:05/03/06 23:08:58
>>140
GUIまわりのテストって殆どの場合、目視確認じゃないか?

というのは、GUIなんだから見た目の問題だろ?
どの値を引数で渡したからどの値が返ってくるってもんでもないよな?
142デフォルトの名無しさん:05/03/06 23:14:38
>>129
数が不定の場合は、ArrayListで作っておいてToArray()汁。
143デフォルトの名無しさん:05/03/06 23:46:24
C#の勉強で、ファイルの情報を得てそれを表示するという簡単なプログラムを
作ってるんですが、よく分からない点があるので教えてください。

textBoxにパス名を入れ、listBoxにそのフォルダ内のファイルを表示し、リストアイテムを
右クリックでcontextMenuを出しそこのサブメニューにサイズやら日付やらを表示しようとしてます。
リストを右クリックしメニュー出す所までは来ましたが、そこから先に行こうとして
よく分からない現象に遭遇してます。

最初に右クリックで選んだときはちゃんと表示されますが、次に別のファイルを
選んでも最初のファイルの情報が表示されるのです。ブレークポイントで確認して
menuItem.Text = 〜; のように新たに代入してるはずなのに、実際には変わってません。

メニュー関係で気をつけるべき点などあれば教えてください。
メニューに表示するのが間違いとかいうのは重々承知してますが…。
144デフォルトの名無しさん:05/03/06 23:52:45
>>143
あり得ないUIだな……。

関係ないMenuItemを操作してるだけだろう。
その場でnewしたやつとか。
コードがないからどうとも言えないが。
145デフォルトの名無しさん:05/03/07 07:40:43
モニタの解像度を変更することはできますか?
146デフォルトの名無しさん:05/03/07 09:22:26
複数のPNGを重ねて使いたいのですが、PictureBoxの枠の色が表示されてしまいます。
画像をうまくレイヤーとして使うにはどうしたらいいのでしょうか?
147デフォルトの名無しさん:05/03/07 10:01:45
>>145
Win32API使わないと無理じゃないかな。
EnumDisplaySettingsとChangeDisplaySettings。

>>146
枠の色?
詳しく。
148146:05/03/07 10:31:19
>>147
透過されて欲しい場所に不要な色が付いてしまっているのです。
ならばとBackColorやBackgroundを指定すると、確かに透過はされているようなのですが
PictureBoxではなく、それを配置したFormやUserControlを背景に表示したいんです。
149146:05/03/07 10:32:25
訂正
×Background
○BackgroundImage
150デフォルトの名無しさん:05/03/07 11:14:25
>>146
無理してビルトインクラスを使わずに、DCに直描きしたほうが楽になれるよ。
151デフォルトの名無しさん:05/03/07 11:30:34
よくわからんが、PictureBoxのBackColorをColor.Transparentにするんじゃダメなの?
152146:05/03/07 11:39:06
>>151
ヤッターできたよ。どうもありがとう。

>>150
そうしようとGraphics描画に変更しかけてた。
153デフォルトの名無しさん:05/03/07 18:21:16
Delphiから移転してきた者です。
今まで作っていたプログラムをC#に移行しはじめているのですが、
最近疑問に思うのはC#で作られたプログラムは動作は十分速いのですが、
メモリの消費が桁違いということです。
Delphiで作ったプログラムの消費メモリが5MBのときに、C#のプログラムは20MBほど使用しています。
処理速度を云々するプログラムではないので、若干スピードが落ちても構いませんので、
消費メモリを少なくする方法なないのでしょうか?

一応、やっとWin2kが動く程度の非力なマシンでも動かしたいソフトなので・・・
154デフォルトの名無しさん:05/03/07 18:23:18
あきらめなさい(マジレス)
155デフォルトの名無しさん:05/03/07 18:46:57
>>153
最小化させる
156デフォルトの名無しさん:05/03/07 20:25:10
>144
遅くなりましたが、ソースをアップしました。
どなたかどこか変なとこがあるか見ていただけないでしょうか。
http://www.uploda.org/file/uporg54284.txt
157デフォルトの名無しさん:05/03/07 20:25:36
C# + .NET Framework で作成した EXE を DLL のように、
別のプログラムからインスタンスを生成して実行する事はできないでしょうか?

EXEとしてダブルクリックして起動したい場合もあれば、
別のプログラムから、インスタンスを生成し、かつコンストラクタの引き数に
値を渡してそれを元に処理したい、という事がやりたいんです。

コンストラクタをオーバーロードしているだけなので
できれば 1つの実ファイルとしてまかないたいのですが、
無理でしょうか?
158デフォルトの名無しさん:05/03/07 20:31:28
できるよ。.exeと.dllはダブルクリックで起動できるかどうかの差ぐらいしかないし。
ただしVS.NETの制限で、直接参照設定する事ができないので、
VSを使う時は.csprojにReference要素を自分で追加する必要があるけど。
159デフォルトの名無しさん:05/03/07 21:22:39
>>156
いろいろいじってみた。

……ソースには問題ないね。
理屈上はこれで正しく動作する。.NET 2.0では実際正しく動作する。

どうも.NET1.0/1.1のContextMenu.Showにバグがあるようだ。
キャッシュされたのがいつまでも表示され続けてしまう。

listBox1のContextMenuプロパティにcontextMenu1を設定して、
contextMenu1.PopupイベントでTextの書き換えを行うようにすれば回避はできる。
160デフォルトの名無しさん:05/03/07 21:50:22
>>153
.NETのアプリでメモリ使用量を気にするのは意味のない行為。
ちょっと調べればすぐわかること。
161デフォルトの名無しさん:05/03/07 21:52:37
俺の予想だとLonghornあたりから
タスクマネージャで見たメモリ使用量が
マネージコードに関しては1/10に表示される機能がつくから
それまでがまんする。
162デフォルトの名無しさん:05/03/07 22:06:24
セットアッププロジェクトをビルドしたら、下のようなファイルが出来たのだけど、
配布すときは、Setup.msiを渡せばいいの?

InstMsiA.Exe
InstMsiW.Exe
Setup.Exe
Setup.Ini
Setup.msi
163103:05/03/07 22:11:33
>>119
完璧なサンプルでした。ありがと。
164デフォルトの名無しさん:05/03/07 22:27:10
>159
各.NET環境との比較までしていただいたようで、お手数をお掛けしました。
やっと目的の動作をするようになりました! 多謝です。
165デフォルトの名無しさん:05/03/07 22:51:07
>162
Setup.exe
Setup.msi
Setup.ini
がいるような希ガス
試しに別のフォルダに入れて個別に実行したら
Setup.iniがないとか言って怒られたような・・・
166デフォルトの名無しさん:05/03/07 23:32:29
>>165
今、試してみました。
msiだけを別フォルダにいれて実行したら、一応インストールされました。
(ほかの環境ではうまくいくかわかりませんけど)
167デフォルトの名無しさん:05/03/07 23:55:09
>166
じゃあmsiだけでいいんじゃない?
@ITに記事があったと思うんだが見つからないorz
168デフォルトの名無しさん:05/03/07 23:58:50
あったあった
http://www.atmarkit.co.jp/fdotnet/tools/vssetup/vssetup_01.html
WindowsInstaller があれば msi だけでいいみたい
169157:05/03/08 00:35:49
>> 158
ありがとうございます。できましたー。
170デフォルトの名無しさん:05/03/08 01:57:10
>>168
そういうページがあったんだ。
まず、検索すべきだった。
めんどくさくてヘルプも調べず検索もせず、試行錯誤で
インストーラーを作ったけど、かえって時間も無駄だった。
171デフォルトの名無しさん:05/03/08 10:42:32
ttp://dobon.net/vb/dotnet/graphics/drawoutlinestring.html
で縁取り有りの文字を描いて
ttp://dobon.net/vb/dotnet/graphics/measurestring.html
でその文字の大きさを計測したいのですが、MeasureStringメソッドが
普通の文字描画しか対応していません。
縁取り有りの文字の大きさをはかるにはどうしたらいいのですか?
172デフォルトの名無しさん:05/03/08 10:46:33
GraphicsPath.GetBoundsで取れない?
173デフォルトの名無しさん:05/03/08 15:27:19
PictureBoxとGraphicsに関する質問なのですが、
OnLoad時だとPictureBox.CreateGraphicsを取得して、Graphics.Draw〜をしても反映されません。
それ以外のイベントでは出来てるのですがどうしてなのでしょうか?
できればCreateGraphicsから得られるものに統一したいです。

現在の対処としてはGraphics.FromImage(PictureBox.Image)を使ってるのですが
これだと今度はOnLoad以外のイベントでは無効となってしまいます。
174デフォルトの名無しさん:05/03/08 15:41:30
OnLoadはForm.OnLoadです。
175デフォルトの名無しさん:05/03/08 15:51:17
>>173
PictureBox.Imageに対して描画するのとPictureBoxに対して描画するのは全く別の行為であるというのは認識してる?
176デフォルトの名無しさん:05/03/08 16:01:01
>>175
OnLoad以外のイベントではGraphics.FromImage(PictureBox.Image)でDraw〜が使えないのですが。。
177デフォルトの名無しさん:05/03/08 16:16:41
ごめんなさい。PictureBox.Refreshすれば反映されました。
178デフォルトの名無しさん:05/03/08 17:01:24
g.FillRectangle(Brushes.Transparent, 0, 0, 20, 20);
g.DrawString(str, msgFont, Brushes.White, 0, 0);

Imageに文字を書く際、背景を透明に塗りつぶしたかったのですが出来ません。
Brushes.Blackなど実際に色を持つものなら可能なのです。
解決法を教えてください。
179デフォルトの名無しさん:05/03/08 17:05:26
透明な四角形を描いたって事になったんじゃないか?
Graphics.CompositingModeとか。
180デフォルトの名無しさん:05/03/08 17:31:11
textBox1でenterキーを押した時にbutton1を押すにはどうしたらいいですか?
ボタンを押すのも、button1_clickを呼ぶんじゃない方法が
@ITかどこかで読んだ気がするけど忘れちゃって
181デフォルトの名無しさん:05/03/08 17:32:21
Buttonのメソッドを舐めるように見れ。
182デフォルトの名無しさん:05/03/08 17:52:38
>>179
出来たよありがとう
183デフォルトの名無しさん:05/03/08 18:03:35
Control.Disposeされた時に通知を受けるイベントってありますか?
Form.OnCloseのような感じで使いたいのです。
Disposeじゃデストラクタ呼ばないようですし。
184デフォルトの名無しさん:05/03/08 18:25:13
protectedのDispose(bool)をオーバーライドするのが確実じゃないかな。
185デフォルトの名無しさん:05/03/08 18:50:43
>>184
うーん、Disposeはoverride出来ないようですね。
ポリモーフィズムが使えない。
186デフォルトの名無しさん:05/03/08 18:55:27
え?
Control.Dispose(bool)はvirtual(正確にはComponent.Dispose(bool)がvirtualで、Control.Dispose(bool)はそのoverride)だよ?
187デフォルトの名無しさん:05/03/08 19:03:33
>>186
ああ、なるほど。Disposeは普通のメソッドで、Dipose(bool disposing)がvirtualなのね。
内部でDispose(true)を呼び出すからoverrideするのはDispose(bool)と。
同じオーバーロードは同じ修飾子を使っていると思い込んでいた。

ありがと。
188デフォルトの名無しさん:05/03/08 20:47:02
C#でしかできない、できにくいことってありますか?
ゲームを作るうえで
189デフォルトの名無しさん:05/03/08 21:11:58
別にないんじゃない?
190デフォルトの名無しさん:05/03/08 21:53:32
うん、どうしてもってところだけC++とかで書けば良いんだし・・・
C#だけっていうなら弱点はあっても、C#をベースに所々にCとかを入れれば
まず大丈夫だねw
191デフォルトの名無しさん:05/03/08 23:30:08
すいません、質問です。
ListViewでViewをDetail,Scrollableをfalse,Anchorを上下左右にしてFormにはりつけて
Formをリサイズすると、ヘッダが最初に表示されている領域しか描画されないのです。
解決法をどなたかご存知ありませんか?

リサイズが終わった時点でReflesh()、Invalidate()などを行ってもヘッダ領域の描画は回復されませんでした。

192デフォルトの名無しさん:05/03/09 00:16:04
C#
193デフォルトの名無しさん:05/03/09 01:16:13
C♭
194デフォルトの名無しさん:05/03/09 01:35:17
.NET2まだ?
195デフォルトの名無しさん:05/03/09 02:09:48
まだ。
196デフォルトの名無しさん:05/03/09 02:19:31
>>191
Scrollableを一時的にtrueにしてまた戻すととりあえずどうにかなることはなるが。
197デフォルトの名無しさん:05/03/09 04:37:38
N項の関数を無項関数に変換するのメンドウじゃない?
198デフォルトの名無しさん:05/03/09 07:53:14
なんか噂だとLongなhornとかいう次世代なWinなdowsでWinなAPIがなくなってC#をWinなdowsはより親密になる
っていう噂と聞いたのですがホントですか?
199デフォルトの名無しさん:05/03/09 08:43:05
>>198
デマです
COM、COM+、OLE、ODBC、CORBA、RPC
いつの時代もペンテ師がいて、新技術習得に献金するよう
世間を扇動してるだけです。
200デフォルトの名無しさん:05/03/09 09:12:31
もう1つは、次世代のWindowsといわれるLonghornへの対応です。
Longhornの多くの部分はVB.NETが生成するコードと同じマネージ・コードで書かれているといわれています。
つまり、LonghornというOSと、VB.NETで作成されたプログラムはダイレクトに接続され、最も効率よく動作することになります。
現在は、VB.NETで作成されたプログラムはクラス・ライブラリとWin32 APIを経由してOSの機能を呼び出していますが、
LonghornからはWin32 APIを経由することはなくなると思われます。
さらに、Longhornの新機能はWin32 APIではアクセスできず、Longhornのクラス・ライブラリを経由してアクセスするのではないかと思われます。
もちろん、そのようなアクセスは、VB.NETならたやすく達成できるでしょう。
Longhornの能力をフルに引き出すならVB 6からVB.NETに乗り換える必要がある、ということになるかもしれません。

http://www.atmarkit.co.jp/fdotnet/vbcheer/vbcheer09/vbcheer09.html

これのこと云ってるの?
201デフォルトの名無しさん:05/03/09 09:16:18
あ、やっぱ
http://www.atmarkit.co.jp/fwin2k/insiderseye/20040107winfx/winfx.html
こっちか・・

つまりWin32APIの後継としてWinFXが実装されるわけねw
202デフォルトの名無しさん:05/03/09 09:24:17
だからマーケティングのデマだって
2000年から.Netを普及させるために煽ってたけど
最近になってロングホーン自体の存在が危うくなってきた
203デフォルトの名無しさん:05/03/09 10:13:09
いつものことだな
204デフォルトの名無しさん:05/03/09 10:20:38
int idx;
string str;

string [] week =
{"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};

for (idx=0; idx<week.Length; idx++)
{
str = str + week[idx] + "\n";
}

label1.Text = str;
label2.Text = week.Length.ToString();

という単純なものを作成してみたのですが
未割り当てのローカル変数strが使用されました

と出てきます。
2行目で
string str;
としているので未割り当てではないと思うのですが
何か間違っている所がありますでしょうか?
未熟すぎる私にどなたかアドバイスをいただければと思います。
205デフォルトの名無しさん:05/03/09 10:25:45
宣言 != 割り当て
空文字列でも入れとけ。
206デフォルトの名無しさん:05/03/09 14:33:41
空文字列は = "" ではなく = string.Empty を推奨汁
207デフォルトの名無しさん:05/03/09 14:35:46
そのココロは?
208デフォルトの名無しさん:05/03/09 14:55:32
どこかでこっちの方がいいって書いてた
209デフォルトの名無しさん:05/03/09 14:58:22
String.Empty vs. ""
ttp://www.codebetter.com/blogs/brendan.tompkins/archive/2003/10/14/2585.aspx

ここかも。
str.Equals(String.Empty) is faster than comparing to ""!
210デフォルトの名無しさん:05/03/09 15:08:06
試しに
public static void Main() {
  string empty1 = String.Empty;
  string empty2 = "";
}
としてみたら
 warning CS0219: 変数 'empty2' は割り当てられていますが、その値が使用されていません。
と言われた。
どちらかというと "" の方がいい気がするのですがいかがなものでしょう。
211デフォルトの名無しさん:05/03/09 15:08:09
これ比較するときの話でしょ?
とは言えEmptyの方が分かりやすいくていいかも
212デフォルトの名無しさん:05/03/09 15:14:48
>>210
おぬしは
>warning CS0219: 変数 'empty2' は割り当てられていますが、その値が使用されていません
の意味を良く分かっていないような気がする
213デフォルトの名無しさん:05/03/09 15:45:52
>>212
そのまま「変数宣言するだけしておいて放っておかれてるのがあるよ」っていう意味じゃなくて?
よけいなコードは残しておかないようにする時は警告出された方が嬉しいと思ったんだけど駄目ですか。
214デフォルトの名無しさん:05/03/09 15:59:40
String.Empty でググってみたら色々出てきて
""よりもString.Emptyの方がメモリが(中略)でいいらしい
215212:05/03/09 16:00:12
>>213
ああ、そういう意味ね
チェック目的ならばそれでも良いかもしんないな
216デフォルトの名無しさん:05/03/09 16:49:01
>>202
longhorn開発中止かもしれないの?
217デフォルトの名無しさん:05/03/09 17:09:04
>>216
>>202が言いたいのは、Longhornは鋭意開発中だけど目玉機能が削られすぎて
新世代OSとは云えないじゃん、という嫌味なんじゃないの?

個人的には多くのことをマネージドコードで書けるようになるのは大歓迎だけどね。
生産性が高まりそう。
218デフォルトの名無しさん:05/03/09 17:29:59
よみがえるWinFS――LonghornではなくXPで
ttp://www.itmedia.co.jp/news/articles/0503/09/news051.html
Microsoftによると、Longhornには当初WinFSは含まれないが、
同技術のリレーショナルデータベース機能の威力を示すものとして、
デスクトップ検索機能が搭載される。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
また余計なことを…またEUとか米司法省とかが文句言ってくるだろう。
219デフォルトの名無しさん:05/03/09 18:43:55
単発の質問で申し訳ありません。
テキストボックスなどはボーダースタイルを3Dやシングルなどにできますが、
コンボボックスはデザインを変更できないのでしょうか?
220デフォルトの名無しさん:05/03/09 19:36:52
無理って云ったら?
221デフォルトの名無しさん:05/03/09 20:02:44
222デフォルトの名無しさん:05/03/09 20:41:24
ファイル(&F)とかにするとショートカット追加できますが、
これを → キーとかに対して行いたい時はどう書けばいいんでしょうか?
223デフォルトの名無しさん:05/03/09 20:41:59
こんにちわ、初めまして、C#を始めたばかりの学生です。
あるボタンを押すとテキストボックスの文章の末尾にフォーカスを移動させたいのですが、
テキストボックスにフォーカスを移動させることはできるのですが、
文章の末尾に入力を持ってくることがうまくできません。
ご助言の方、どうか宜しくお願い致します。
224デフォルトの名無しさん:05/03/09 20:44:20
>>222
KeyPreviewとKeyDownとで自前実装。

>>223
SelectionStartが現在のキャレット位置に対応する。
SelectionLengthも気をつけて。
225222:05/03/09 20:46:16
ぁぅ 急にめんどくさくなるんですね。
今回はスルーします。
ありがとうございました。
226223:05/03/09 20:59:06
一応、むちゃくちゃですが、
TextBox1..Select(TextBox1.Text.Length,0);
っとやることでできました。
227デフォルトの名無しさん:05/03/09 21:05:27
>>226
それも正しいよ。無茶苦茶じゃない。ピリオドが一つ多いけどなw
228どなたか:05/03/09 21:54:58
不明なモジュールでNullReferenceExceptionが発生しました。
ソースコードの位置は特定できません。

スタートアッププロジェクトを変えると、たまにこのようなエラーが起こりませんか?
しかも、デバッグ実行の時のみで継続すると普通に継続できてしまう。。
このエラーが起こった人いませんか?
229デフォルトの名無しさん:05/03/10 12:03:14
>228
再インストール推奨。
230デフォルトの名無しさん:05/03/10 13:47:09
>>228
ネイティブコードのデバッグを有効にしてデバッグしてみたら?
231デフォルトの名無しさん:05/03/10 15:41:21
stringの初期化って、nullじゃダメなのかな?
クラスフィールドはnullで初期化されるので
俺はいつもnullでやってるんだが。

みんなはstring.Emptyでやってるの?
232デフォルトの名無しさん:05/03/10 16:15:45
""
233デフォルトの名無しさん:05/03/10 17:02:40
string.Empty
の方が速いって↑の方で云ってたなぁ
だから昨日とか今日もstring.Emptyにしてる。
それ以前はstring abc = "";だったw
234デフォルトの名無しさん:05/03/10 17:13:30
そんなものコンパイラがなんとかしてよと思ったけど
そうできないような違いが""とstring.Empryにはあるのか?
235デフォルトの名無しさん:05/03/10 18:37:32
質問なのですが、
どなたかmldファイルを再生する方法をご存知じゃないでしょうか?
236デフォルトの名無しさん:05/03/10 19:55:40
すいません。
DataGridで特定カラムのFocusを飛ばすって出来ますか?
DataGridTextBoxColumn.TextBox.TabStop=Falseだけじゃ上手く行かないので。
237デフォルトの名無しさん:05/03/10 20:33:13
CurrentCellChangedで監視。
前回の位置を保存しておいて、それを基に移す場所を決定。
238デフォルトの名無しさん:05/03/10 22:00:46
ずっと.NetFramework1.1使いつづけてきたんですが
1.1SP1にバージョンあげても問題ないでしょうか?
不具合が出たとか聞いたんですが。
239デフォルトの名無しさん:05/03/10 22:07:43
それはバージョンを上げるとは言わない。
私はSP1を当てて問題出てない。
240デフォルトの名無しさん:05/03/10 23:00:23
>>235
MIDIに変換するC#のコードがどっかで公開されていた。
んでMIDIに変換してからWindowsMediaPlayerのコントロールに渡せばよくない?
241デフォルトの名無しさん:05/03/10 23:44:11
Cマイナー
242デフォルトの名無しさん:05/03/10 23:46:16
キーボードの同時押し(↓+→+Z とか)を取得する方法があったら教えてください
DirectInput使うのは癪なので、.net frameworkでやりたいんですが
243デフォルトの名無しさん:05/03/10 23:55:06
キーボードの同時押しは保証されないとかどっかで読んだ気が。
いずれにせよ.NETのライブラリの範囲じゃ無理。
APIのGetKeyboardState関数かな?
244デフォルトの名無しさん:05/03/11 00:01:23
>>223二関連して
RichTextBoxでフォーカスがない時にScrollを一番下にするにはどうしたらよいのでしょうか?
SelectionStart= TextLength;
ScrollToCaret();
みたいにしても無理のようで(このメソッドではキャレットの位置はフォーカスがない時には移動されないようで)

RichTextBoxにバックグランドで長々と文字列を書き込むことを想定しているので、どうしたものかと・・
245デフォルトの名無しさん:05/03/11 00:09:52
246デフォルトの名無しさん:05/03/11 00:14:08
>>242
オイオイw、意外とWM_KEYDOWNとか見て無いんだよなw
247デフォルトの名無しさん:05/03/11 00:27:30
>>240
MediaPlayerのコントロールの存在に気付きませんでした。
これからmidi変換のソースを探してみます。

本当にありがとうございました。
248244:05/03/11 00:30:45
おおお、まさにこれかも。試してみます。ありがとうございます。
249デフォルトの名無しさん:05/03/11 00:36:58
>>242
キー押された時間を取得してやればいい
check = Math.Abs(arrowdown-arrowright);
check2 = Math.Abs(arrowdown-keyz);
if (Math.Abs(check-check2) < 100) {
//statement
}
250デフォルトの名無しさん:05/03/11 00:39:53
ちなみにオートブレーキセーフティじゃないぞ
251デフォルトの名無しさん:05/03/11 01:02:40
>オートブレーキセーフティ
>オートブレーキセーフティ
>オートブレーキセーフティ
252デフォルトの名無しさん:05/03/11 01:07:44
if (arrowdown > arrowright) {
  max = arrowdown;
  min = (arrowright > keyz) ? arrowright : keyz;
} else {
  max = arrowright;
  min = (arrowdown > keyz) ? arrowdown : keyz;
}
if (max-min < 50) {

}

こっちのがいいか
253デフォルトの名無しさん:05/03/11 01:24:32
>>250
Anti-lock Braking Systemな、マジレス。
254デフォルトの名無しさん:05/03/11 01:53:26
マジレスで返されても困るけどな
昔CMであったから言っただけなのにw
255デフォルトの名無しさん:05/03/11 07:19:34
デザイナーでレイアウト時と実行時をUserControl側で判断する方法はないですか?
UserControl側でthis.DesignModeを使ってLoad時に判断しようとしてもうまくいきません。
そのUserControl編集中はうまく判断できるのですが、
UserControlをFormに貼り付けるとうまく判断されないのです。
256デフォルトの名無しさん:05/03/11 08:37:22
C#初心者です。
変数の宣言とか、関数の戻り値にnewとかつけますよね。
newをつけるときと、つけないときは、どう見ればわかりますか?
257デフォルトの名無しさん:05/03/11 08:54:12
class Class1{
    public override string ToString(){
        return "aaa";
    }
}

class Class2{
    public new string ToString(){
        return "bbb";
    }
}

////////

Class1 a = new Class1();
Object b = new Class1();
Class2 x = new Class2();
Object y = new Class2();

Console.WriteLine(a.ToString());
Console.WriteLine(b.ToString());
Console.WriteLine(x.ToString());
Console.WriteLine(y.ToString());
258デフォルトの名無しさん:05/03/11 11:34:17
>>255
フォームのデザイン時にも、UserControl側のif (DesignMode)の部分が実行されるが。
259デフォルトの名無しさん:05/03/11 15:31:11
Pointのような値型にはnullが代入できないのって不便じゃないですか?
260デフォルトの名無しさん:05/03/11 15:33:42
ごく希に不便を感じるが、なれればどうと言う事も。
.NET 2.0のNullableも面白いとは思うがどう実用するかというとDBNullに対応する以外に余り思いつかない。
261デフォルトの名無しさん:05/03/11 18:07:56
private void _btnPrint_Click(object sender, EventArgs e)
{
prndoc.PrinterSettings.PrinterName = (string)_listPrnNames.SelectedItem;
prndoc.PrinterSettings.Copies = 1;
foreach (PaperSource ps in prndoc.PrinterSettings.PaperSources)
if (ps.SourceName == (string)_listPaperSource.SelectedItem)
prndoc.DefaultPageSettings.PaperSource = ps;
foreach (PaperSize ps in prndoc.PrinterSettings.PaperSizes)
if (ps.Kind == PaperKind.A4)
prndoc.DefaultPageSettings.PaperSize = ps;
prndoc.DefaultPageSettings.Margins.Left =
(prndoc.DefaultPageSettings.PaperSize.Width - 2677 * 100 / 400) / 2;
prndoc.DefaultPageSettings.Margins.Right =
(prndoc.DefaultPageSettings.PaperSize.Width - 2677 * 100 / 400) / 2;
prndoc.DefaultPageSettings.Margins.Top =
(prndoc.DefaultPageSettings.PaperSize.Height - 3880 * 100 / 400) / 2;
prndoc.DefaultPageSettings.Margins.Bottom =
(prndoc.DefaultPageSettings.PaperSize.Height - 3880 * 100 / 400) / 2;
prndoc.Print();
}
262デフォルトの名無しさん:05/03/11 18:09:53

private void prndoc_PrintPage(object sender, PrintPageEventArgs e)
{
Graphics g = e.Graphics;
Image image = Image.FromFile(fileinfo[number].FullName);
Rectangle rect = new Rectangle();
// myrect(image, rect);
g.DrawImage(image, 0,0, 667, 970);

// g.DrawImage(image, rect.X, rect.Y, rect.Width, rect.Height);
if (++number < _listFilenames.Items.Count)
e.HasMorePages = true;
else
e.HasMorePages = false;
}

Microsoft PhotoEditorから印刷するよりも
このようなソースで印刷する方が、圧倒的に処理時間が長いんですよ。
PhotoEditorの印刷と、C#2.0での印刷って、そこまで違うもん
なのですか?PhotoEditorをなんらかのDLLでファイルオープンから
印刷まで操作できるのなら、それも良いのですが・・・・
263デフォルトの名無しさん:05/03/11 22:18:33
オーディオファンの皆様に朗報です。
たった1000円で皆さんのオーディオ機器を見違える程にバージョンアップ!
スピーカー、ヘッドフォン、アンプ、ケーブル、更にはiPodにまで使えます!それがエージングCDというモノ!
エージングとは新しいオーディオ機器を慣らすことです。
オーディオ機器は買った当初は音がなじんでおらず、
たいていの場合、音が硬かったり、こもったり、ヌケが悪かったりします。
スピーカーの場合、エッジやダンパーの張りの不均一、接着剤の乾き具合、コーンのよじれなどが原因だと言われています!
兎に角凄いCDです!そこらへんの同じようなCDよりも全然違います!
実際、私が試した時には新品のスピーカーは音が自然になり、
使い古したスピーカーも音の抜けが良くなり、当分買い換える必要がないなっと思った程です。
普通に使っていればエージングなんて不必要だと思う方もいますが、それはある意味、非常に残念な事だと思います。
エージングは進行が可逆的な為に定期的にエージングや消磁などをしないとどんどん音が濁っていくからです。
オーディオファンの皆様ならこの音の変わりようを『耳』で体感できるはずです。
http://openuser10.auctions.yahoo.co.jp/jp/user/voyager_820?
まずは1回試してみてください!
264255:05/03/12 01:43:16
ポートをListenするUserControlでDesignModeの時に実行させたくないんですが
そのUserControlを他のUserControlに貼り付けて、それをFormに貼り付けると実行されてしまうのです。
if(!DesignMode){
   this.ServerComponent.ListenStart();
}
みたいにしてるんですけど。デザイン時にポートがListenされてしまう・・
265デフォルトの名無しさん:05/03/12 01:43:54
>>263
スレ違い
サウンドプログラミング2
http://pc5.2ch.net/test/read.cgi/tech/1091054082/
266デフォルトの名無しさん:05/03/12 02:16:27
>>264
if(LicenseManager.UsageMode != LicenseUsageMode.Designtime && !this.DesignMode) {
とやってみる。
DesignModeプロパティが効かなくてもLicenseManager.UsageModeは効くことがある。逆もある。
でも、どっちも効かない場所もある……

DesignModeプロパティはコントロールがロードされる前など、コンストラクタとかではまず使えない。
267デフォルトの名無しさん:05/03/12 02:18:04
Formでボタン1で処理を実行し、Form上のTextBoxに経過を表示しする
そして、何時でもボタン2で中止するような物を作りたいのですが
ボタン1で処理をBeginInvokeで記述しようとすると、中止することができないのです。
どのようにしたらよいのでしょうか?
//Form内にて・・・
MyWebService webService = new MyWebService();
ThreadStart threadStart;//ThreadStartデリゲートを流用
void doSomethingButton_Click(object sender, EventArgs e){ doSomething();}
void doSomethind(){
  threadStart = new ThreadStart(doBody);
  this.BeginInvoke( threadStart, new object[]{});
}
void doBody(){
  richTextBox1.Text += webService.Test();
}
void stopProcessButton_Click(object sender, EventArgs e){
//?????????
}
268デフォルトの名無しさん:05/03/12 02:22:56
>>267
ManualResetEventかAutoResetEventを用意して停止したいときにSetメソッドを呼ぶ。
停止される側のスレッドの処理では時々WaitOneを呼び出して停止状態に入ったか確認する。

だが、そもそも複数スレッドから画面のコントロールを操作するな。
269デフォルトの名無しさん:05/03/12 02:25:55
なんかBeginInvokeを変に理解してね?
このコードじゃwebService.TestがUIスレッド上で行われる事になるんだが。
まさかTestメソッド内でスレッドを作ってるとかいう変態コードでもあるまいし。
この部分を別スレッドにしなきゃなんないんじゃ?
で、そのスレッドからBeginInvokeを呼ぶと。

んん、勘違いしてる?
270267:05/03/12 03:31:27
>>だが、そもそも複数スレッドから画面のコントロールを操作するな。
そういわれましても。。
デリゲート先が同期か非同期かわからなかったりするもので、スレッドは2つになってしまう可能性があるのです。
例えば、
Form1(){
  //.....
  HeavyProcessEngine hpe = new HeavyProcessEngine();
  hpe.Progress += new MyEventHandler(doSomething);
}
void doSomething(object sender, MyEventArgs evt){
  if(InvokeRequired)[
    this.BeginInvoke( new MyDelegate(evt) , new object[]{evt});
  }else{
    doBody(evt);
  }
}
void doBody(MyEventArgs evt){
   richTextBox1.Text += evt.Message;
}
271267:05/03/12 03:45:38
>>268,269 ありがとうございます。
>>269 267のコードではBeginInvokeいらないですね。。
やっぱり、変に理解しているかもしれないですけど。
#とりあえず、処理を中止する感じのコードはこんなになってしまいました。
//Form内にて
private delegate void MyDelegate(string text); Thread thread;

void doSomethingButton_Click(object sender, EventArgs e){ doSomething();}
void doSomething(){
  doSomethingButton.Enable = false;
  thread = new Thread(new ThreadStart(threadBody));}
void threadBody(){
  try{
    MySocket socket = new MySocket();
    socket.ListenStart();//60秒以内にコネクトがないとTimeoutExceptionを発生
  }catch(Exception ex){
    threadSafeMethod( ex.ToString());}
}
void threadSafeMethod(string appendText){
  if(InvokeRequired){
    this.BeginInvoke(new MyDelegate(_appendMethod), new object[]{appendText});
  }else{
    _appendMethod(appendText);}
}
void _appendMethod(string appendText){
  richTextBox.Text += appendText;
  doSomethingButton.Enable = true;
}
void stopProcessButton_Click(object sender, EventArgs e){
  thread.Abort();//<なんかダメッポ・・
}
ManualResetEvent系 勉強せねば。。
272デフォルトの名無しさん:05/03/12 16:39:29
初めまして、.net入門者です。
今まで、自宅サーバーでPerlを動かしていたのですが、
この度、C#を勉強することとなり、少し疑問に思ったことがありますので質問させてください。

自宅サーバーでホームページを公開する際、通常はCGIとしてPerlやPHPを使用しますが、
C#は使用できないのでしょうか?
また、ASP.netとC#の違いについてご教授をお願い致します。
273デフォルトの名無しさん:05/03/12 17:01:09
その程度自分で調べようとは思わないの?
274デフォルトの名無しさん:05/03/12 17:20:59
>>272
PerlでCGIプログラムを実現するように、C#でASP.NETを実現します。
PerlとCGIを比べるのが見当違いなのと同様に、C#とASP.NETは比較できません。

ここと
http://www.atmarkit.co.jp/fdotnet/csharp_abc/index/index.html
ここを
http://www.atmarkit.co.jp/fdotnet/aspnet/index/index.html
読み進めると少しずつ解ってきます。

あと教授じゃなくて教示な。
275デフォルトの名無しさん:05/03/12 17:28:43
書き忘れた。
C#でCGIも可能だけど、普通はしない。
ASP.NETアプリとして作ります。
276デフォルトの名無しさん:05/03/12 17:45:17
普段はC#でプログラム組んでるけど、Webアプリに関してはPHPを支持する。
277デフォルトの名無しさん:05/03/12 18:47:28
PHP(プッ
278デフォルトの名無しさん:05/03/12 19:10:12
さっそく釣られてるよ。馬鹿だ
279デフォルトの名無しさん:05/03/12 19:21:02
あるDLLのAPIが何らかのハンドルを返し、
失敗したらNULLを返すという動作をしてるのですが、
これをC#で戻り値がNULLかどうか判定するとき
if (handle.Equals(null))
とするのは正しいのでしょうか。
(CとかC++の)NULLの定義は((void *)0)とか0とか色々
書いてあってよく分からず、0ならば(handle==0)という式の方が
良いのかなーとか混乱してきました。
280デフォルトの名無しさん:05/03/12 19:25:58
ハンドルは.NETではSystem.IntPtrで表す。
System.IntPtrは構造体なわけで、null値は取り得ないってのは分かるね?

Windowsではハンドル値NULLは0の再定義。
あとはIntPtrのフィールドを良く読め。
281デフォルトの名無しさん:05/03/12 20:05:22
>280
即レス感謝です。
nullって参照型なんですね。構造体は値型と。
そして IntPtr.Zero を参照したところ、そのものずばりなコード例が
ありました。ありがとう。
282デフォルトの名無しさん:05/03/13 22:48:44
2173が3ヶ月待ちなんてありえませんが 
普通にどこの量販行っても3割引で在庫たっぷりだよ 

で、それはさておいてこのモデルは本当に買いだと思いますよ。 
電波ソーラーじゃなくても秀逸な国産時計。 
性能+作りがいいのに88200円で買えるなんて至福です。 
革だから嫌とか言う奴は一年中同じ時計一本ですか? 
283デフォルトの名無しさん:05/03/13 23:11:03
過疎化してるからって意味不明なこと書くなよ
284282:05/03/13 23:23:19
うわぁ!ここだったか・・・
誤爆しました、申し訳ない。
285デフォルトの名無しさん:05/03/14 00:40:40
VS.netで開発しているのですが、
起動時の引数 Environment.GetCommandLineArgs
がある状態のデバッグをしたいのですが、どうすればいいのでしょうか?
286デフォルトの名無しさん:05/03/14 00:42:22
わけわからん。
ブレークポイントの条件式でも書けば?
287デフォルトの名無しさん:05/03/14 00:46:39
>>285
昔のバージョンはデバッグ用に引数を指定できる機能があったから、
今のVSでも、探せばあると思うけど。
288デフォルトの名無しさん:05/03/14 00:46:52
時計板の連中は資本家なので嫌い
289デフォルトの名無しさん:05/03/14 00:47:42
>>285
プロジェクトのプロパティ→構成プロパティ→デバッグ→コマンドライン引数
のことでは。
290286:05/03/14 00:51:28
しまったそっちの話か……orz
291デフォルトの名無しさん:05/03/14 16:20:50
httpsサーバと通信するソフトを作りたいんですが
どこかに良い解説サイトありませんか?
httpは分かるんですがhttpsは分からないんです
認証とか暗号化とか
292デフォルトの名無しさん:05/03/14 16:24:00
普通にHttpWebRequestを使えばいい話だが。
293デフォルトの名無しさん:05/03/14 18:01:20
C#でタスクスケジューラーにタスクを追加したいのですが、
Win32_ScheduledJob
とやらを使うということしかわかりません。

どうしたらいいんでしょうか?
294デフォルトの名無しさん:05/03/14 18:04:45
WMI
295293:05/03/14 18:44:49
Win32_ScheduledJobがWMIの一つのクラスってのはわかってるのですが、
サンプルを探してもVBでSWbemつかってるのしか見つからなかったので
C#でのサンプルコード等あれば助かります。
296デフォルトの名無しさん:05/03/14 18:54:59
297293:05/03/14 20:04:36
そこもみたのですが、タスク追加のやり方がわからないから
サンプルを探してるのですが…

プロセッサの情報を得るサンプルはほかにもありましたが、
C#で、Win32_ScheduledJobを使ってタスクを追加してるサンプルが
を探してます。
298デフォルトの名無しさん:05/03/14 20:16:13
情報の関連づけが下手な人だな。
ttp://wmifun.atinfinity.net/wmisample/win32_scheduledjobb.html
VBのサンプルを見るとWin32_ScheduledJobのCreateメソッドを使ってる。
じゃあC#でWMIのメソッドはどう書くのか?
ttp://www.google.com/search?num=100&hl=ja&q=C%23+WMI+%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89&lr=lang_ja
299293:05/03/14 21:38:20
ManagementPath path = new ManagementPath( "Win32_ScheduledJob");
ManagementClass taskClass = new ManagementClass(path);
taskClass.InvokeMethod ("Create", obj);
でよくわかってないけどいけました…

ありがとうございました。
300デフォルトの名無しさん:05/03/14 22:35:32
「名前を付けて保存」のショートカットのAって何の略なんでしょうか?
301デフォルトの名無しさん:05/03/14 22:40:56
DataGridへバインドしたDataViewの再表示タイミングを
自由に設定できる方法をご存知の方いませんか?
(FlexGridのReDrawみたいな感じで)

RS232Cで50mm周期で受信したデータをDataViewへセットした
DataTableの行へ書き込むと(およそ100項目)
例外VersionNotFoundExceptionが発生してしまいます。
コードは大体以下のような感じです。

// RS232Cからの受信データをDataRowへ設定
// str_data_** は受信データ
// MyTableはDataView.tableへ設定済
DataRow dr;

dr = MyTable.Rows[0];
dr[0] = str_data_00;

dr = MyTable.Rows[1];
dr[0] = str_data_01;



dr = MyTable.Rows[99];
dr[0] = str_data_99;

DataRowが更新される度にDataGridが更新されてしまうので
全データをRowへセットしてから一括更新したいのですが。。
302デフォルトの名無しさん:05/03/14 22:46:58
Visual Studio 2003 C# で開発しています。
コントロールに描画されるフォントに関して質問です。
MS UI Gothic, 9pt を指定しているコマンドボタンがあります。

デスプトップのプロパティにてフォントサイズを大きくすると
上記で設定してあるボタンのテキストまで大きく表示されてしまいます。

画面を 1024x768 を想定し、画面に端から端までボタンがのっているような
画面で、デスクトップのプロパティにてフォントサイズを大きくすると
フォントが大きくなるのと同時に、コマンドボタンの幅まで大きくなり
とたんに1画面に入らなくなってしまいます。

デスクトップのプロパティのフォントサイズの設定にかかわらず、
常に一定のフォントサイズ、コントロールの大きさを保つように
する為には何か注意しないといけないのでしょうか?

ちなみに、上記のクライアントは Windows 2000 です。

よろしくお願いします。
303デフォルトの名無しさん:05/03/14 22:51:46
>>300
Alternateと想像ス
304デフォルトの名無しさん:05/03/14 22:52:11
画像にしてボタンに貼り付けるとか・・・
305デフォルトの名無しさん:05/03/14 22:53:32
>>300
Save &As だった気が
306デフォルトの名無しさん:05/03/14 22:53:50
>>300
Save 'a's
307デフォルトの名無しさん:05/03/14 22:57:33
mp3ファイルを速度を変えて再生するには何を使うのがいいでしょう?
Microsoft.DirectX.AudioVideoPlayback.Audioを使えば再生はできますが速度の変更ができません。
308デフォルトの名無しさん:05/03/14 23:28:49
MMO製作企画を立ち上げました。協力できる人はこちら
http://www112.sakura.ne.jp/~kaientai-project/creategame.htm

2chスレ
http://game10.2ch.net/test/read.cgi/mmominor/1109935948/

(言語は問わず!)開発環境、サーバーを持ってるプログラマ緊急募集です。
309デフォルトの名無しさん:05/03/14 23:32:54
>>307
取りあえずDirectShow。ManagedDirectXではサポートされてないけどな!
ttp://www003.upp.so-net.ne.jp/geek/programming/directshow/index.html

>>308
VC#2003しか持ってなくても大丈夫でしょうか?(w
310デフォルトの名無しさん:05/03/15 00:06:55
なんかワラタ
311デフォルトの名無しさん:05/03/15 00:10:34
>>308
なでしこでもいいですか?
312307:05/03/15 00:30:04
>>309
トンクス。
DirectShowのラッパをみつけたので使ってみます。
http://www.codeproject.com/cs/media/directshownet.asp
313デフォルトの名無しさん:05/03/15 00:38:04
DataTableの中が現在以下のような状態にあります
Columnがaからgまで存在し、行数が5つからなるDataTableがあります。
このDataTableから以下のようなDataTableを作ることは可能なのでしょうか?
カラムのa,b,cだけからなるDataTableを作りたいです。
  a b c
Row-1
2
3
4
5
314デフォルトの名無しさん:05/03/15 01:02:17
>>313
そのDataTableをどうするの?
315デフォルトの名無しさん:05/03/15 01:04:44
>>301
一旦DataSourceからはずすとか?
SuspendLayoutとかBeginInitとか組み合わせたらどうだろう。
316デフォルトの名無しさん:05/03/15 01:36:09
分割したいのですよ。
印刷するのに分割したデータに落としたいと思っています。
317デフォルトの名無しさん:05/03/15 01:41:29
どう印刷するんだ?
そもそもDataTableをどう取得してるんだ?
DataTableをどう使用してるんだ?
318デフォルトの名無しさん:05/03/15 02:04:49
分割できるか出来ないかが知りたいだけなのですが誰かわからないでしょうか?
319デフォルトの名無しさん:05/03/15 02:32:08
誰かわからない以前に、意味がよくわからん。
DataTable新しく作ってほうりこんだらだめなのか?
320301:05/03/15 06:47:03
315さんレスありがとうございます。
今日試してみます。
321デフォルトの名無しさん:05/03/15 10:34:50
>>318
出来ない。 DataTableを新しく作って1行ずつコピーする必要がある。
DataSetを簡易データベースだと思ってる人が多いな。インターフェイスは
似ているが基本的にデータ転送オブジェクトだから使い方を誤ってはいけない。
ニーズはあるからそういうヘルパークラスは作ってもいいかもしれないが、
そういうのがあると今度は、メモリで処理できないくらいのデータを詰め込んで
遅いとか言ってくるのが出てきそうだ。
今でも1万件を超えるデータをDBから条件なしでDataSetに読み込んで遅いと
言ってるのがいるからな。
322デフォルトの名無しさん:05/03/15 14:27:21
AxWebBrowserを使って、webページを表示しています。
web上のボタンをクリックしたときにサーバに送信しているデータを取得するにはどうすればいいでしょうか?
323デフォルトの名無しさん:05/03/15 14:59:51
フォームでPOSTしているデータなら、BeforeNavigateイベントでpostDataを見れば分かる
324322:05/03/15 15:16:38
ありがとうございます
しかしpostDataがどこにあるのかわかりません・・・
もう少し詳しくお願いします
325322:05/03/15 15:22:01
ごめんなさいpostDataの場所はわかりました
が、ためしにyahooなどで、検索時に取得してみたのですが
何も値が入っていません。これはどういうことでしょうか?
326デフォルトの名無しさん:05/03/15 15:29:17
YahooはGETだろ? アドレスの?以降にクエリ文字列が並んでる。

なんてかさ、HTTPの基礎をもう少しさぁ……。
327322:05/03/15 15:37:02
あぁぁ、ごめんなさい
そうですね、基本的なこと忘れてましたすみません

postDataを使用しているサイトのデータを見てみたのですが
中身がbyte配列で格納されているのは正常なのでしょうか?
文字列として取得することはできないのですか?
328デフォルトの名無しさん:05/03/15 15:44:20
前スレの319から100レスぐらい読め。
過去スレ見れないとか言う奴はにくちゃんねる行け。
329322:05/03/15 16:20:44
はじめてにくちゃんねる知りました
今から過去ログ読んできます
330デフォルトの名無しさん:05/03/15 17:10:09
FileSystemWatcherを使って、特定のフォルダを監視するアプリケーションを
作っています。
ウィンドウもコンソールも必要なく、サービスアプリにするほど大袈裟な物でも
ないのですが、どうしたら黙々とバックグラウンドで走らせることができるので
しょうか?
331デフォルトの名無しさん:05/03/15 17:14:26
/t:winexe
Application.Run()
332デフォルトの名無しさん:05/03/15 17:24:44
ここは肉ちゃんねるでした。
333デフォルトの名無しさん:05/03/15 17:48:44
>>330
普通のフォームで作っておいてVisible=falseでフォームを隠す。
>>332
ずっと壷ちゃんねるだと思ってたよ。今旬なのは8チャンネル(笑)。
334デフォルトの名無しさん:05/03/15 17:55:13
335デフォルトの名無しさん:05/03/15 19:43:08
アルファチャネルを含むアイコンを正しく描画する方法はある?
336デフォルトの名無しさん:05/03/15 20:19:50
P/Invokeを使わないのならColorDepthが32bitのImageListにアイコンを突っ込んでImageList.Draw()。
なおVisualStyleが有効になっていないとダメ。
337デフォルトの名無しさん:05/03/15 23:31:29
そんだけでいいのか。
p/Invokeでがんばってたorz
338デフォルトの名無しさん:05/03/16 13:00:09
TCPで簡易チャットを作ろうと思っています。
微妙な質問なのですが、文字を送る場合、
NetworkStreamでWriteするのと
StreamWriterでWriteするのではどちらが良いでしょうか?
前者はバイナリですし、後者はテキストですよね??(あやふやな記憶ですが・・・
339デフォルトの名無しさん:05/03/16 13:17:43
>>338
前者はバイナリで、後者はテキストです
文字列を送る場合ならば Ascii または SJIS 指定の後者でどうぞ
340322:05/03/16 13:25:06
昨日はありがとうございました
無事に解決することができました
もう一つ質問なのですがAxWebBrowserを使って表示しているwebサイト上で
Javascriptが実行されたとします。
その実行を制御することはできるのでしょうか?
341デフォルトの名無しさん:05/03/16 13:40:17
>>339
速レス感謝致します。
342デフォルトの名無しさん:05/03/16 15:58:26
>>338
どの段階でエンコード、デコードするかって問題だから、べつだんどっちでもいいような。
343デフォルトの名無しさん:05/03/16 19:43:16
http://www.forest.impress.co.jp/article/2005/03/07/nasaworldwind_1r.html

このようにコントロールを透過するには
コントロールにbackの画像の範囲を張り込ませてalphaを薄めたフレームを重ねるしかないですか?
コントロールにFormみたいな透過プロパティがあったら便利なんですが。
344デフォルトの名無しさん:05/03/16 23:41:59
少なくともそれはDirectZでやってるみたいだよ
345デフォルトの名無しさん:05/03/17 01:56:25
VBではPoint(X,Y)という関数で、座標(X,Y)の位置に表示されている色コードを返すのがあるんですが、
C#でこれに相当する関数を教えてください。
346デフォルトの名無しさん:05/03/17 02:20:34
ActiveReportsを使用しているのですが、
印刷するオブジェクトが多い場合。
始めのページと次のページに跨ってオブジェクトが印刷されてしまいます。
これはどのようしたら直せるのでしょうか?
NewPage.Afterをしても発生するとき発生してしまい。お手上げ...
347デフォルトの名無しさん:05/03/17 04:44:17
>>346
経験無いなぁ。
どれぐらいたくさん?
348dancexxx1960:05/03/17 16:05:37
シリアルキー解析集「ALTEA」
大好評発売中!

http://openuser10.auctions.yahoo.co.jp/jp/user/dancexxx1960?


市販SOFTやオンラインSOFTのパスワード集です。
オークション関係から画像・OS・表計算・CAD・・・・etc
国内・国外のあらゆる分野のSoftを解析済です。


これを初めて手にされた時には、驚愕される事でしょう。
そして・・・手当たり次第にインストールを始める筈ですw
パソコンをご使用の方なら、必ず!満足されると思います。

解析結果のデータベースには15,000点を越えるパスワードが入ってます。
このパスワード集から検索するだけで、登録や制限解除が出来てしまいます。
シェアウェアを購入して、正規登録したのと同じ状態になります。
余りにもデータが多すぎる為、辞書引のようなパスワード検索SOFTで提供します。

シェアウェア以外にもパッケージ版をVectorなどでオンライン販売してるSOFTにも
多数対応しています。これらをダウンロードして無期限に試用する事も可能です(^^;

WindowsXPやOfficeなどのCDキー(プロダクトキー)ジェネレーターを使えば複数のパソコンに
インストールする事も可能です。デスクトップとノートPCなど2台以上持ってる場合は特に有効ですね。

オンラインSOFTを購入した経験は有りますか?
ありとあらゆる分野の優れたSOFTが、数多くありますよね。
しかし、ほとんどが試用期間や機能制限をして、「気に入ったら購入してください」です。

もう少し使いたいが使用期限切れで、削除・・・再インストールを繰り返していませんか?
349デフォルトの名無しさん:05/03/17 16:53:13
おいおい、nyとかMXで出回っているpandoraを転売かよw
350デフォルトの名無しさん:05/03/17 17:10:00
ALTEA?Michaelだろクズw
351デフォルトの名無しさん:05/03/17 17:32:43
>>348
マジで通報しますた
352デフォルトの名無しさん:05/03/17 21:07:56
>>345
Bitmap myBitmap=new Bitmap(Filename);
Color myColor=myBitmap.GetPixel(X, Y);
353デフォルトの名無しさん:05/03/17 21:24:22
ちょっとPCやネットを知ってる人間なら誰でも知ってるって情報がヤフオクではよく売られてるね。
354デフォルトの名無しさん:05/03/17 22:00:33
ここに貼る意味がわかんねw
355デフォルトの名無しさん:05/03/17 22:18:15
画像を読み込んだ後、4つの頂点を自由に設定して変形するようなメソッドってありますか。
GDI+だと線形しかなくて(´・ω・`)
356デフォルトの名無しさん:05/03/17 22:24:53
ちったあ.NetSDKのファレンス読めやカス
357デフォルトの名無しさん:05/03/17 22:42:58
>>356
読んで見つからなかったから質問したんだyp
warpじゃ実現できなかったし。
358デフォルトの名無しさん:05/03/17 23:22:30
参照型の配列で

ttp://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_015/cs2_015_02.html

list15-4の
17行目のX2してる意味がわからない
同時に文字列がnewされているらしいが
なんでこれでnewになっているのか理解できない

わかる人誰か教えてください
359デフォルトの名無しさん:05/03/17 23:31:32
>>358
何が分からないのかが分からないが……。

>  17行目のX2してる意味がわからない

2倍したかったからだろ。
21行目で文字列の長さを見てるから、i>=5ならar[i]に入る文字列も2文字になる。(ar[5]は"10"が入ってる)

>  同時に文字列がnewされているらしいが
>  なんでこれでnewになっているのか理解できない

ToString()メソッドの中でString型のインスタンスが作成されてるから。
ToString()の返値がその作成されたStringインスタンス。
360デフォルトの名無しさん:05/03/18 22:15:48
>>359
newの部分はわかったのですが
X2している部分は要するに
X2する必要は何もないのだけれど
ただこの場合はたまたまX2しているだけであって
X2のような式はまったく必要ないということでいいんですか?
361デフォルトの名無しさん:05/03/18 22:22:22
そだよ。
あと、直接式の返値のメソッドを呼ぶって意味のサンプルでもある。
だから別に(i + 5).ToString()でも(i * i * 5).ToString()でもなんでも良い。
362デフォルトの名無しさん:05/03/19 01:05:54
格納したIPアドレスを1足したり引いたりしたいのですが、
どこかに情報ないでしょうか?
363デフォルトの名無しさん:05/03/19 01:11:45
どこにどういう形で格納したのかも分からないのに答えられるわけ無いだろ。
364デフォルトの名無しさん:05/03/19 01:53:41
>>362
IPをunitに変換して-1してからIPにもどせばいい
できないなら死ね
365デフォルトの名無しさん:05/03/19 02:12:43
あれだ、仮にIPが192.168.1.1だとしたら
単純に文字「.」でSplitして、[3]が0なら10の位も変える
0ぢゃないなら[3]の数字だけ変えるってのはどうよ?
366デフォルトの名無しさん:05/03/19 02:13:55
>>365
小学生でもマシなルーチン考えるぞ?
367デフォルトの名無しさん:05/03/19 02:21:09
毎日ちょっとずつ総当りでポートスキャンするPGだろうからほっとけw
368デフォルトの名無しさん:05/03/19 09:30:32
フォームのリサイズでDockプロパティを使わずに
textBoxとかもリサイズさせるのは
以下を追加するだけではないのでしょうか?
まったく変わりません。。。。
private void Form1_Layout(object sender, System.Windows.Forms.LayoutEventArgs e)
{
textBox1.Height = ClientRectangle.Height;
textBox1.Width = ClientRectangle.Width;
}
369デフォルトの名無しさん:05/03/19 09:37:22
そのメソッドをLayoutイベントに追加したか?
370デフォルトの名無しさん:05/03/19 10:11:16
>>359,361
わかりました
ありがとうございました
371デフォルトの名無しさん:05/03/19 11:24:10
>> 369
これ自体がLayoutイベントではないの?
372デフォルトの名無しさん:05/03/19 11:47:14
>>371
それ自体はただのメソッド。
オブジェクトのイベントに登録する事で、イベントが発生した時にそのメソッドが実行されるようになる。

で、VSの雷マークでやったならその登録が自動的に行われるんだが……。
まずどうやってこのメソッドを作ったのかな。
373デフォルトの名無しさん:05/03/19 12:30:21
他のイベントを真似して作りました
374デフォルトの名無しさん:05/03/19 12:34:12
なら、
フォームのデザイナを開いてフォームを選択して、
プロパティの雷マークをクリックしてイベント一覧を出して、
そこのLayoutイベントに作成したメソッドをいれな。
375デフォルトの名無しさん:05/03/19 12:51:30
>>374
373は偽者ですが、確かにそのとおり^^

うまくいきました
ありがとうございました!
376デフォルトの名無しさん:05/03/19 13:22:42
VB6でタイプライブラリを通じて他アプリを操作してました。
同様なことをC#でやりたいと思っているのですが、タイプライブラリ側が提供する
Variantを{引数|戻り値}とする関数はどう扱えばいいのでしょう?
単純にVariantをobjectにすればいいだけでしょうか?
それともケースバイケースの対応(≒.NETへの対応待ち)が必要になるのでしょうか?
377デフォルトの名無しさん:05/03/19 13:32:13
まあobjectでやりとりすればいいんじゃね。
378デフォルトの名無しさん:05/03/19 17:46:26
XPathDocumentを使わないといけないんらしんだけど、さっぱりだよぉ〜

root
+A
└1234
└5678
└7890
└0092
+B
└1234
└5678
└7890
└0092
+C
└5678
└7890
└0092

こんな風にrootにA,B,Cがぶら下がっててrんだが

XPathNodeIterator iter = nav.Select(@"/root");
でA,B,Cの3つのなまえとりたいんだけど

iterのカウントが1でちっとも取得できん〜
なにがわるいのかおせーて〜!
379デフォルトの名無しさん:05/03/19 17:59:13
何が悪いってXPath式の理解じゃないか?
/がルートノードから検索開始。
その子供のroot要素を取得。
ほらXPath式通りroot要素一つが帰ってきてるじゃないか。
ttp://www.asahi-net.or.jp/~ps8a-okzk/xml/xpath10/new.html
380378:05/03/19 18:15:30
XPathNodeIterator iter = nav.Select(@"/root");

XPathNodeIterator iter = nav.Select(@"//root/*");
って書き直したら
iterに要素数の3は入りました!


A,B,Cの名前がまったくとれないっすよぉ。。。

rootって名前ばっかりとってきてしまう。。

381デフォルトの名無しさん:05/03/19 18:19:07
>>380
iter取った後のコードを書いてみな。
382378:05/03/19 18:32:07
以下の3行セット、計4パターンためしましたが
からっぽか、rootってはいっております。。。
iter.countは3なのでA、B、Cはとれてるとおもうんですがぇ;;

//iter.Current.MoveToFirst();
//Console.WriteLine( iter.Current.Name );
//Console.WriteLine( iter.Current.Value );

//iter.Current.MoveToFirstChild();
//Console.WriteLine( iter.Current.Name );
//Console.WriteLine( iter.Current.Value );

XPathNavigator nav3 = iter.Current.Clone();
//nav3.MoveToFirst();
//Console.WriteLine( nav3.Name );
//Console.WriteLine( nav3.Value );

//nav3.MoveToFirstChild();
//Console.WriteLine( nav3.Name );
//Console.WriteLine( nav3.Value );
383デフォルトの名無しさん:05/03/19 18:42:16
>>382
……。
イテレータ書いた事無い? .NETにおけるIEnumeratorだけどさ。

XPathNodeIteratorはXPath式で取得したノードを順に取得するためのイテレータクラス。
XPath式で取得したノードを順に取得するのはXPathNodeIteratorであって、
XPathNodeIterator.Current、つまりXPathNavigatorは現在イテレータが指しているノードを表すだけなんだけど。

もう一度XPathNodeIteratorのメンバを見てごらん。
384378:05/03/19 18:56:39
うあああ!!!!
そうか!!!

このお試しコード、値がとれてるかどうかを試すためにかいたんだけど、
うしろに
while (iter.MoveNext())
{
}
ちゃんとやってた。。

whileの中にいれたら、取れました。
ううう、勘違いというか、あきらかに知識不足でした・・・

>>383さんありがとおおお!!!
385デフォルトの名無しさん:05/03/20 00:55:06
Font Font = new Font()
とか書いてると馬鹿になった気になるな。
省略表記キボンヌ。
386デフォルトの名無しさん:05/03/20 01:43:08
JavaからC#に移行してはや2年、
ドメインを取得してホームページをリニュアルしたから、
折角だし掲示板とかチャットを自作しようと思っている。
そこで使用する言語の選択肢が4つ、

・ASP.net with C# → 恐らくスムーズにいくのでは?
・Ruby → 国産言語なの?なんか仲間内で評判が良い
・PHP → 将来性を考えると・・・職場のPCもLinuxだしw
・Perl → なんせ実績がw、それに基本的な事は知ってるしw

一応、現時点ではASP.netにしようと思ってるんですけど、
どうも将来性がないんぢゃないかと思ってしまう。・゚・(ノ∀`)・゚・。
Rubyは好印象なんだけどイマイチ普及率が・・・

う〜ん、どれが良いでしょうね?(っていっても答えづらいし・・・)
要は、「一番将来性があるのはどれでしょう?」
387デフォルトの名無しさん:05/03/20 02:07:03
>>386
PHPじゃないか?
PerlはPerl6で.NETみたいな包括的なスクリプトになるらしいけど。

ASP.netは自鯖とか持ってない人は使えるフリー鯖ってないから
あんまり使われてないから資料もすくないし普及してない。
388デフォルトの名無しさん:05/03/20 02:12:39
ASP.NETは企業のWebシステムでの利用が一番多いだろうね。
389デフォルトの名無しさん:05/03/20 02:17:22
というかそれだけだろう。
IIS5でのNimda騒ぎでIISなんて動かそうとも思わん
390デフォルトの名無しさん:05/03/20 03:15:55
>>386
>>388 の言うとおり、企業システムでは ASP.NET 思った以上に普及してるから
将来消えてなくなるということはないと思う。

最近、商用=ASP.NET、フリー=PHP が主流な希ガス。
391デフォルトの名無しさん:05/03/20 03:29:23
ASP.NETがmonoやprotable.NETで使えるならもう少し希望はあるかも
392デフォルトの名無しさん:05/03/20 09:27:01
将来なんて曖昧なこと云い出すと、どの言語も遅かれ早かれ消えるんじゃないの?
今現在の自分のスキルで一番生産性が高いものを選ぶのが正解だと思うけどなあ。
それがここの住人にはC#ってことだと思った。

よーしチラシの裏に清書するぞー
393386:05/03/20 09:33:12
皆様非常に参考になりました、
確かに.aspって拡張子も.phpって拡張子も同じくらい多く見かけますよね、
一応、急いでいるワケでもないのでPHPとASP.net両方囓ってみますわ
mono+ApacheでLinux環境でもASP.netが使用できる日が来れば理想的なんですけどね・・・
394デフォルトの名無しさん:05/03/20 09:36:33
PHPは非常にとっつきやすいのでおすすめ。楽しいよ。
395デフォルトの名無しさん:05/03/20 09:58:56
オブジェクト指向に慣れきった身としてはRubyに惹かれるんだがなー。
文法がC系だったら良かったのにー。
396393:05/03/20 10:06:02
あれから30分ほど少しPHPを囓ってみました。
無理です!PHPの言語の仕様(というより思考?)自体は嫌いではないんですけど
パッと見た時のソースの綺麗さ(個人的に$とか&とか記号を多様するのは苦手です!)
がJava&C#という流れで来たのでどうしてもなじめません。・゚・(ノ∀`)・゚・。
う〜ん、分かってもらえるか分からないんですけど、
C#とかJavaってC++とかとパッと見た時の印象が違うんですよね、
やっぱIIS+ASP.netになってしまうかも・・・

もうC#中毒かもしれません・゚・(ノД`)ヽ(゚Д゚ )ナクナ ゴラァ!!
397デフォルトの名無しさん:05/03/20 10:25:22
コンボボックスをReadonlyにするほうほうってありますか?
398デフォルトの名無しさん:05/03/20 10:26:54
DropDownStyle
399デフォルトの名無しさん:05/03/20 10:49:07
>>396
漏れと同じだ。ソースが$や&だらけになって、どうしても見た目に馴染めなかった。
PHPは悪くないのにな。
Web系の言語でもColdFusionは違和感がなかった。Javaが土台だからC#派の
漏れと波長が合ったのかなw
400デフォルトの名無しさん:05/03/20 11:13:46
ソースの奇麗さでいうと漏れ的にはこんな感じかな
C > Ruby > PHP > Java >>> C++ >>> C# > ASP >>>>>> Perl
401デフォルトの名無しさん:05/03/20 11:28:33
>>399
ColdFusionも#だらけじゃん。XML風でもXML準拠でない奇妙な構文だし。
お前の違和感の基準が分からん。
402デフォルトの名無しさん:05/03/20 12:31:31
>>401
ASP.NETでいうコードビハインド的な書き方をしないと確かに#だらけになるよな。
403デフォルトの名無しさん:05/03/20 12:46:01
環境に制約が無いなら自分が書きやすいと思った言語使えばいいじゃない。
C#+ASP.NETは良くできてると思う。
404393:05/03/20 13:41:23
ソースの綺麗さに対する基準はやっぱ皆さん異なるんでしょうけど、
個人的に一番綺麗だと思うのはJava&C#ですね・・・
オブジェクト指向でない言語は綺麗には見えません・゚・(ノД`)ヽ(゚Д゚ )ナクナ ゴラァ!!
405デフォルトの名無しさん:05/03/20 13:43:31
私はプログラミングの初心者ですが…教えて欲しいことがあります。
それはタイトル通り、アクセス制御及びパスワード認証プログラミングについてです。
色々と詳しい事を教えていただけないでしょうか?
@自分でホームページをDreamweaver4で制作しています。
A目的はWebショップ用です。
B会員制にしようと思っています。
Cでも、資金はありません
Dやる気はかなりあります!
どうか色々と教えて下さい。本気な為、荒しは遠慮下さい
406デフォルトの名無しさん:05/03/20 14:23:09
ぱぱー
もっとおいしそうな餌がほしいー
407ヘ(゚∀゚ヘ)アヒャ:05/03/20 15:51:30
>>405
もう少し具体的に教えて欲しいなぁ・・・
まず、作りたいのはローカルで動くWin32アプリ?orサーバーで動くWebアプリ?
Webショップをしたいなら既成のPHPとかPerlのプログラムを改良するのが良いと思われ、
Webショップを作りたいならドメインは取った方が良いね、
資金がなくても1年に1000円くらいなら大丈夫でしょ?
あと、自分もDreamweaver使いだけど、バージョンアップすべきだよ・・・
MX2004が出てるから息子にアカデミックを買わせるor海賊版でもいいから(オイオイ)バージョンアップすべき。

↑の方で話題に出てるけど、まぁC#の経験があるならASP.netが無難だね
408デフォルトの名無しさん:05/03/20 16:08:21
へー息子さんいるんだ
409ヘ(゚∀゚ヘ)アヒャ:05/03/20 16:10:13
>>408
ヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノ
まぁあくまで私の場合ですけどねw
VisualStudioなども私ではなく、息子に買いに行かせています(苦笑
値段が全然違いますから・・・
410デフォルトの名無しさん:05/03/20 16:26:42
ぱぱー
もっとおいしそうな餌がほしいー
411デフォルトの名無しさん:05/03/20 16:27:22
へーC#の経験あるんだ
412デフォルトの名無しさん:05/03/20 19:38:28
やる気だけで出来たら苦労しないよ。
やる気が有っても無くてもなんも変わらん。
413デフォルトの名無しさん:05/03/20 21:50:20
>>412
やる気がないと挫折orz

ドラッグ&ドロップでフォーム上に落とされた画像ファイルを
指定した形式に変換して保存するソフト作ってるんだけど
パスに日本語が入ってないとうまくいくけど
日本語が入ってると処理が一切されないんだが。

デバッグしたらパスの取得まではうまくいってるけど
画像判別のためにBitmapを作成されるところから処理が一切されない
ようになってた。

解決方法教えてくれ。
414413:05/03/20 21:52:57
日本語は関係なかった。
ファイルサイズが0KBだとうまくいかなかっただけだった。
415デフォルトの名無しさん:05/03/21 00:25:17
aspx(.NET)はともかくASPみたいなコード用のタグを使いたいならJSPでいいじゃん
というかですね、どうせチャット自作するならKeepAliveなチャットにしなさい
CGI-Perlで出来ることをわざわざ別の言語で実装したってたいした勉強にはならない
416デフォルトの名無しさん:05/03/21 00:49:09
string[] foo= {"","","",""}みたいに宣言してあるものを
コードの途中で初期化できませんでしょうか?


foo[0]="hoge1";
foo[1]="hoge2";
foo[2]="hoge3";
foo[3]="hoge4";

使い終わったので、
foo[0]="";
foo[1]="";
foo[2]="";
foo[3]="";
こんな風に全部の要素に""いれればいいんですけど

↓こんな風に初期化したい。(これだとエラーになる)
foo = {"","","",""}


417デフォルトの名無しさん:05/03/21 00:52:42
空文字列は初期化なのか? と言う気はするが。

無いね。
forで回すか。
418デフォルトの名無しさん:05/03/21 00:55:14
>>416
foreach (String it in foo) {
    it = "";
}

で出来ないかな
419416:05/03/21 00:56:21
正確にいうと初期化じゃないですね^^;

>>417さん
すばやい返事ありがとうです。
forにしまつ!
420416:05/03/21 00:57:57
>>418さんも回答ありがとぉ〜〜〜〜〜〜!!

421デフォルトの名無しさん:05/03/21 01:00:41
>>418
無理。
422デフォルトの名無しさん:05/03/21 01:07:40
>>416
これじゃ駄目なのかな?
foo.Initialize();
423デフォルトの名無しさん:05/03/21 01:15:33
>>422
>このメソッドは、コンパイラが値型配列をサポートできるようにするためのものです。
>ほとんどのユーザーはこのメソッドを使用する必要はありません。
>参照型配列ではこのメソッドを使用しないでください。

>Array が値型 Array ではない場合、または値型に既定のコンストラクタがない場合、 Array は変更されません。

>値型 Array は任意の下限および任意の次元数を持つことができます。

>注意   このメソッドはコンストラクタがある値型でだけ使用できますが、
>    C# にネイティブな値型にはコンストラクタがありません。

事実上C#じゃ無意味。
それ以前にstringじゃどうしようもないし。
424デフォルトの名無しさん:05/03/21 02:20:04
>>423
dクス。試した。
425デフォルトの名無しさん:2005/03/21(月) 12:01:53
i = 1;
if(checkBox[i].Checked){
// 処理
}
という風なのはどうすればいいのですか?
どうしてもエラーになってしまいます。
426デフォルトの名無しさん:2005/03/21(月) 12:12:20
えーと、VB出身者がよく要望を出すコントロールの種類ごとのコレクションって奴を望んでるの?
個人的にはそんな不安定な手法は大ッ嫌いなんだけど。
ttp://dobon.net/vb/dotnet/control/buttonarray.html
427デフォルトの名無しさん:2005/03/21(月) 12:38:27
>>426
大ッ嫌いですか・・・。
いろいろ考えてみます。
ありがとうございました。
428デフォルトの名無しさん:2005/03/21(月) 18:21:42
過去ログを読みましたところ、C#でASP.netではなくCGIを作れるようなのですが、
一体絶対どういう風に作るのでしょうか?
試しに
using System;
namespace csc
{
    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            Console.WriteLine("Content-type: text/plain\r\n\r\n");
            Console.WriteLine("Hello World");
        }
    }
}
こんな単純なHelloWorldを作り、IISのcgi-binに入れたところ動作はするのですが起動時間がかかってしまい、
到底、CGIとしては使い物になりません。
http://www.mythique.org:81/cgi-bin/csc.exe
そもそも↑のプログラムが鯖で動いているのかクライアントで動いているのかさえ分からない状態なので(´Д⊂グスン
429デフォルトの名無しさん:2005/03/21(月) 18:29:10
>>428
それでCGIとして成立してるけど、まあCGIにする意義は無いよな。
430428:2005/03/21(月) 18:36:09
>>429
まぁ意味がないのは分かっているのですが、好奇心というかなんというか・・・
これで起動がもっと速かったら実用的なんですけどね・・・
起動してからの処理はPerlなんかより圧倒的に速いみたいなんですけど、
動き出すまでが遅いという・・・ヽ(`Д´)ノウワァァァン

Consoleアプリを初めて作ったのですが(オイオイ)、初歩的な質問をしてもいいですか?
PerlなどならHTMLなどを出力するときに
print <<"EOM";
<html>
…省略…
</html>
EOM
みたいなことができるのですが、C#ぢゃやはり無理ですかねぇ?
431428:2005/03/21(月) 18:40:34
MSDNに普通にありましたw

string myString1 = "This is the first line of my string.\n" +
                   "This is the second line of my string.\n" +
                   "This is the third line of the string.\n";
string myString2 = @"This is the first line of my string.
This is the second line of my string.
This is the third line of the string.";
432デフォルトの名無しさん:2005/03/21(月) 19:05:39
コントロール配列はVBの癌
433デフォルトの名無しさん:2005/03/21(月) 19:07:46
つかC#でCGIって無謀過ぎだろw
CとかC++なら分かるけど(・∀・)チンポー!!
所詮C#だよ
434デフォルトの名無しさん:2005/03/21(月) 19:25:44
まあ、CGIも無謀ではないけど、C#使うならASP.NETにしろよ。
435428:2005/03/21(月) 20:35:49
「C#でCGI作ったって意味がない!」
っと高を括って色々試してみたのですが、一つ大きな収穫がありました!
ご存じの通り、ASP.netはIISでしか動きませんよね?Apache+monoっていう手もありますが、
monoは発展途上でまだ実用的ではありません。

ただ、当たり前と云えば当たり前なんですけど、
exeのCGIなら和製のANHTTPDとかでも普通に動いてくれるんですよね、
http://www.mythique.org/cgi-bin/csc/csc.exe
実際、↑はANHTTPDで動いていますから・・・

ですので
・鯖はWindowsぢゃなくぢゃ嫌だぁ!ヽ(`Д´)ノウワァァァン
・だけどIISは使いたくないよ!ANHTTPDとかApacheが(・∀・)イイ!!
・PHPもPerlも嫌い!C#で作りたい!v( ̄Д ̄)v
なんて自己中かつ贅沢極まりない輩にはC#でCGIってのは良いかも知れませんね、
(まぁ実際、そこまでWindws非IISでC#にこだわる人はいないでしょうけど)

けど良い勉強になりました。
有り難う御座います。
436デフォルトの名無しさん:2005/03/21(月) 20:50:01
Linux + Apache + MySQL + PHP
→通称ランプ(LAMP)環境

Windows + Anhttpd + C#
→WAC#環境?( ・∀・ )ノ カコワル-イ!!(-Д-)ダサイ

まぁCGIなんて言語はなんでも良いワケで、
WAVBとかWAJAとかなんでもアリになってしまうなw
437デフォルトの名無しさん:2005/03/21(月) 20:55:48
C で書け
438デフォルトの名無しさん:2005/03/21(月) 21:07:35
便乗して色々考えてみる

Assembly    WAA
C   WAC
C++ WAC++
C#  WAC#
Basic   WAB
Pascal  WAP
Ruby    WAR

つまらねぇ
439デフォルトの名無しさん:2005/03/21(月) 21:10:51
MySQL とか PHP ならともかく、C だと NativeCGI だから WAN じゃね?
440デフォルトの名無しさん:2005/03/21(月) 21:25:31
俺はbatファイルだが、何と呼べば?

@echo off
echo Content-Type: text/plain
echo.
echo Hello, CGI!
441デフォルトの名無しさん:2005/03/21(月) 21:38:30
>>440
Bad
442428:2005/03/21(月) 21:47:49
え〜と、質問が何点かあるんですが、
普通、C#のコンソールアプリに引数を渡す場合って例えば
C:\> xxx.exe abc 123
とかいう風にしますよね?
C#のCGIの場合、
http://www.mythique.org/cgi-bin/csc/csc.exe?abc
ってやれば無事に1つ引数を渡せてargs[0]がabcになるんですよ
けど2つめ以降はどうするんでしょう??
443デフォルトの名無しさん:2005/03/21(月) 21:50:05
>>442
引数を表示するようにしとけーw

&で区切れば良いんじゃない?
444428:2005/03/21(月) 22:16:04
>>443
はい、
一応改良しておきました。

static void Main(string[] args)
{
    Console.Write("Content-type: text/plain\n\n");
    try
    {
        Console.WriteLine(args[0]);
        Console.WriteLine(args[1]);
        Console.WriteLine(args[2]);
    }
    catch(Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}

一応、↑のURLだと1つめの引数は渡せています。
445428:2005/03/21(月) 22:17:13
あ!早速試したところ、>>443さんが云うように&で普通に区切れましたw
446428:2005/03/21(月) 22:23:13
あ〜、また問題が発生です、
普通、CGIなら
xxx.cgi?mode=1&pass=123&ID=abc
って感じで通るぢゃないですか、
けどC#だと「=」を入れないで
xxx.exe?1&123&abc
みたいにするので、普通に呼び出すときならいいんですけど、
HTMLフォームから呼び出すとpass=123みたいな書式で「=」が入ってしまってエラーになるんですよ・・・
う〜ん、やはり皆さんが言うとおり辛いですね・・・
447デフォルトの名無しさん:2005/03/21(月) 22:29:18
>>446
自分で分割しろよ
448デフォルトの名無しさん:2005/03/21(月) 22:32:18
>>446
Environment.CommandLineプロパティならどうかな。
449デフォルトの名無しさん:2005/03/21(月) 22:33:35
日記はチラシの裏へ。
450デフォルトの名無しさん:2005/03/21(月) 22:36:47
VisualC++は分かるがVisualC#何ナノ?
451428:2005/03/21(月) 22:36:51
>>447
受け取ってからなら分割なんていくらでもできるのですけど、
受け取る段階でエラーを吐いちゃうんですよ・・・

>>448
早速試してみます。
452デフォルトの名無しさん:2005/03/21(月) 22:40:28
流石C→三冠達成
453デフォルトの名無しさん:2005/03/21(月) 22:40:51
>>450
起動が遅いとか云ってたけど十分ぢゃない?
色々機能を付けないと分からないけど別に起動が遅いってわけぢゃなさそうだね
454デフォルトの名無しさん:2005/03/21(月) 22:45:11
>>453
確かに起動が遅い。が、苦にはならない。
C++とC#の違いは起動時間。ひとつ学習。さらに学習。かなり学習。
455428:2005/03/21(月) 23:18:27
起動してからはC#が速いみたいですね、
起動までが遅いですが・・・
http://feconi.azo.to/csharp/compare01.php
起動後が本当に速いのかどうか上のサイトを参考にして
PerlとC#の速度を測って見ました。

C#のCGIは
http://www.mythique.org/cgi-bin/cst.exe
PerlのCGIは
http://www.mythique.org/cgi-bin/perl.cgi

マシン
IBM ThinkPad X23
低電圧版 PentiumV 866Mhz
RAM128+512MB
って感じです。
456デフォルトの名無しさん:2005/03/21(月) 23:21:20
それ以前に一つ一つ別プロセスとして起動するわけで、
.NETじゃメモリの圧迫とかきつくね?
457デフォルトの名無しさん:2005/03/21(月) 23:24:39
>>455
貴重な情報あんがと。
起動時間以外に差はある?

458デフォルトの名無しさん:2005/03/21(月) 23:36:45
>>455
C#、はえーな。
暇があったら、テキスト処理とか、クラスを使った処理とかでも比べてみるかな。
459428:2005/03/21(月) 23:39:52
やっと>>455の2つのCGIがまともに動くようになりましたので、
宜しくお願い致します。(さっきまでは巧く動いてなかったかもしれません。)
Perl版の方が上のサイトでは
printf("");
という風になってたのを
print "";
に直しました。
また、両方に一応
Content-type: text/plain
を吐き出させるようにしました。
460デフォルトの名無しさん:2005/03/21(月) 23:44:17
>>455のサイトは読んだことあったけど改めて実際に動かして体感すると全然スピード違うんだね
まぁ言語によって得意不得意があるとはいえ、それ以上に差が開いていて吃驚した。
つまりC#は起動が遅いから単純なBBSとかならPerlの方が速くて、
思い動作をさせるならC#の方が有利ってことでOK?
461デフォルトの名無しさん:2005/03/22(火) 00:10:13
リッチテキストのRtfコードの生データに触りたいんですが、
ttp://dobon.net/vb/dotnet/programing/typeinvokemember.html
ここの情報を元に、
string str = (string)r.GetType().InvokeMember("textRtf",
BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.GetField,
null,
r,
null);

というコードでやってみたんですが、Nullしか戻ってきません。
何が間違ってるんでしょう?
出来ればポインタまで行きたいんですが。
462デフォルトの名無しさん:2005/03/22(火) 00:16:02
やってみた。
C# -> time: 171
Perl -> time: 9083
C#やたら速いんだが。
463デフォルトの名無しさん:2005/03/22(火) 00:19:42
思っていた以上にC#って速いんだな・・・
ネイティブぢゃないからPerl並に遅いと思ってたw

つか>>446にもあるけど、C#ってPOST&GETをどうやって受け取るんだろう?
464デフォルトの名無しさん:2005/03/22(火) 16:35:36
移転完了ー。

>>461
生データとかポインタとかよく分からないけど、Rtfプロパティじゃダメなの?
ちなみにRtfプロパティはEM_STREAMOUTを送ってRTFを取得してる。
465デフォルトの名無しさん:2005/03/22(火) 18:18:23
>463
普通 httpd が環境変数に入れてくれるだろ
466デフォルトの名無しさん:2005/03/22(火) 19:32:46
>>463
JITコンパイルしてるからネイティブっちゃーネイティブだけどな。
467デフォルトの名無しさん:2005/03/22(火) 20:16:56
プログラミング言語C#がJISに制定
http://www.microsoft.com/japan/presspass/detail.aspx?newsid=2236
468デフォルトの名無しさん:2005/03/22(火) 22:37:32
おめ
469デフォルトの名無しさん:2005/03/22(火) 22:40:21
Be Sharp! C#
470デフォルトの名無しさん:2005/03/22(火) 23:55:42
長文で失礼します。
以下のように非同期でアイコンを取得するようにしたのですが、
描画されたりされなかったりします。
どういった原因が考えられますか。

private Icon GetVolumeIcon()
{
 // 省略
}

private delegate Icon AsyncGetVolumeIcon();

private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
 AsyncGetVolumeIcon asyncDelegate =
  new AsyncGetVolumeIcon(this.GetVolumeIcon);
 asyncDelegate.BeginInvoke(new AsyncCallback(this.GetVolumeIconCallback),
  e.Graphics);
}
// つづく。。。
471デフォルトの名無しさん:2005/03/22(火) 23:57:03
>>470 のつづき
private void GetVolumeIconCallback(IAsyncResult ar)
{
 Graphics g = (Graphics)ar.AsyncState;
 System.Runtime.Remoting.Messaging.AsyncResult asyncResult =
  (System.Runtime.Remoting.Messaging.AsyncResult)ar;
 AsyncGetVolumeIcon usedDelegate =
  (AsyncGetVolumeIcon)asyncResult.AsyncDelegate;
 using(Icon icon = usedDelegate.EndInvoke(ar))
 {
  g.DrawIcon(icon, 0, 0);
  using(g = this.pictureBox1.CreateGraphics())
  {
   g.DrawIcon(icon, 0, 0);
  }
 }
}

472デフォルトの名無しさん:2005/03/23(水) 00:02:09
Paint内でBeginInvokeって何考えてやがりますか。
473デフォルトの名無しさん:2005/03/23(水) 00:04:49
>>472
やぱり厨な質問でしたか。逝ってきます。。。
474デフォルトの名無しさん:2005/03/23(水) 00:07:40
【MS】マイクロソフトのプログラミング言語「C」がJIS化 「MSがオープンな会社の証明」 [03/22]
http://news18.2ch.net/test/read.cgi/bizplus/1111502177/
475デフォルトの名無しさん:2005/03/23(水) 00:10:35
>>474
コレコレ、オチツケ
476デフォルトの名無しさん:2005/03/23(水) 00:11:05
と思ったらリンク先がってことなのね、
ごめんなさい
477デフォルトの名無しさん:2005/03/23(水) 00:15:54
>>464
おおおう
Thxです。関連情報をググッて見ます。
478デフォルトの名無しさん:2005/03/23(水) 00:40:48
>>463
GETはSystem.Environment.GetEnvironmentVariable("QUERY_STRING")
POSTは、データ長はSystem.Environment.GetEnvironmentVariable("CONTENT_LENGTH")に
データ本体は標準入力に入ってるのでSystem.Console.OpenStandardInput()で
479デフォルトの名無しさん:2005/03/23(水) 03:07:29
>>464
ううむ。これは保存するときに使われる奴という解釈であってるんでしょうか?
目的はRtfコードの編集とセットなので、ちょっと違います・・・。

Rtfプロパティを引っこ抜いて編集して、又戻すという方法だとカーソルの位置が最初に来てしまうんですよね。
カーソル位置の保存とセットをやると、スクロールががたがたに成ってしまう。

残りの手段はやっぱりスクロール系ですが、一定時間スクロール系の処理を止める方法ってありますか?
SendMessageでスクロールの状態を引き抜いて又セットするという方法も試しましたが、やっぱりスクロールはガタガタでした。
480デフォルトの名無しさん:2005/03/23(水) 04:09:33
やりたいこと:圧縮された音楽ファイルをデコードしてメモリ上に展開する

DirectShowを使えばできそうな気もするのですが、デコードしたデータをメモリ上に格納するレンダラがなさそうです。
一度ファイルに落としてから読み直すってのも間抜けだし、なにかいい方法はないでしょうか?
481479:2005/03/23(水) 05:52:21
これはAPI系のスレに行った方がよさそうですな。
逝ってきます。
482デフォルトの名無しさん:2005/03/23(水) 10:17:11
>>479
更新する前に WM_SETREDRAW で画面描画を停止してからいじれ。
向こうに行ったかな?
483463:2005/03/23(水) 15:47:23
>>478
ありがとうございます、
非常に参考になりました。

このスレの皆さんに質問なんですけど、
C#でWebProgrammingと云ったらASP.net、
CGIに使う言語と云ったらPerlや一部ではC++などですが、
C#でCGIを作るということに対する需要ってあるのでしょうか?
国内サイトを探しても関連するサイトは皆無のようですが、
C#というJISにも登録された素晴らしい言語をIIS&ASP.netという枠に収めずにCGIとして広く使えたらなっと思っています。

現状はPerlなどに比べて日本語の扱いやHTMLとの親和性などについて環境が整っていませんが、
Perlで云うjcode.plのようなC#のクラスライブラリを率先して作っていけばC#でCGIというものを
普及させることも意外に難しくはないのではと思っています。

叩きでも構いませんのでC#Programmerの皆さんの意見を聞けたら幸いです
484デフォルトの名無しさん:2005/03/23(水) 16:32:20
>>483
.NETやJavaのように起動に時間と多量のリソースを必要とするものは
リクエストごとにプロセスを起動するcgiには向かない。
どうしても起動したままでリクエストを処理し続ける必要がある。
この問題を解決しないと単純なcgiライブラリを作っても需要は無いと思う。
485デフォルトの名無しさん:2005/03/23(水) 16:45:25
.netではアプリケーションの設定情報にiniファイルを使わずに動的プロパティ設定ファイルを
使えと言うことらしいですが、この動的プロパティ設定ファイルをアプリケーションから
変更するにはどうしたらよいのでしょうか?
SDKを検索してみたのですが、読み出し方法しか見つけられませんでした。
486デフォルトの名無しさん:2005/03/23(水) 16:49:30
>>485
ms-help://MS.NETFrameworkSDKv1.1.JA/cpguidenf/html/cporiApplicationSettingsInServerComponents.htm
487デフォルトの名無しさん:2005/03/23(水) 16:56:00
>>486
そのセクションには動的プロパティ設定ファイルの手動による変更方法は
書いてあるのですが、アプリケーションからの変更方法は書いてないような
気がするのですが…
488デフォルトの名無しさん:2005/03/23(水) 17:02:25
>>485
app.exe.configファイルはiniの完全な代替ではないので書き換えは手動が原則です。
app.exe.configは簡易版のリソース程度に思っててください。
アプリケーションから変更したい場合は分離ストレージを使うか、独自のxmlファイルを
作って読み書きするか、DataSetクラスをつくってReadXml, WriteXmlするのが適当でしょう。
489450:2005/03/23(水) 17:23:53
>>488
なるほど。よく分かりました。
ざっとDataSetを作ってXMLを吐き出してみたのですが可読性はあまり良くないですね。

iniファイルは可読性も高く、アプリケーションからの変更もサポートされていて
それなりに存在意義のあるファイル形式だとは思うのですが、今のところ従来の
iniファイルやレジストリの代替手段としてスタンダードな物は無いと言うこと
なのでしょうか?
490デフォルトの名無しさん:2005/03/23(水) 17:29:35
>>489
XML は次世代のスタンダードだと思うけど……
あ、改行されないのが可読性が低いと?
491デフォルトの名無しさん:2005/03/23(水) 18:01:46
単発質問で申し訳ないのですが

コンストラクタロジックってなんでしょうか?
Google先生に聞いてもこたえがでなくて・・・
http://www.google.co.jp/search?q=%E3%82%B3%E3%83%B3%E3%82%B9%E3%83%88%E3%83%A9%E3%82%AF%E3%82%BF%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF&hl=ja&lr=&c2coff=1&rls=GGLD,GGLD:2004-18,GGLD:ja&start=10&sa=N
492デフォルトの名無しさん:2005/03/23(水) 18:05:27
>>491
コンストラクタで何かやりたかったら書けーってこと

つまり、コンストラクタで行うロジック。わかりにくい
493デフォルトの名無しさん:2005/03/23(水) 18:39:01
HttpWebRequestとHttpWebResponseでhttps(ssl)サーバーとやり取りする場合
暗号化などは勝手にやってくれるんですか?
POSTメソッドでユーザーIDとパスワードを送る必要があるんですが
盗み見されたりしないんでしょうか?
494デフォルトの名無しさん:2005/03/23(水) 18:42:41
勝手にやってくれる。
495493:2005/03/23(水) 18:58:58
そうなんですか、どうも。
496デフォルトの名無しさん:2005/03/23(水) 21:57:26
VisualStudio2003.NETのプロジェクトにアイコンを新規作成で作って
プロジェクトのプロパティで指定したんだけど、ちゃんと反映されません。
ちなみにdirextx.icoで試してみたら上手くいきました。
どうやらちゃんとしたアイコンファイルが出来てなかったみたいです。
どのようにしたらdirextx.icoみたいなちゃんとしたアイコンファイルを
作れるのでしょうか?
497デフォルトの名無しさん:2005/03/23(水) 22:05:35
>>496
イメージの種類
498496:2005/03/23(水) 22:20:30
出来たアイコンを他の画像ビュワーで見たり、
プロパティの全般タブではちゃんと反映されてるんだけど、
.icoファイル自体のアイコンや、それを指定してコンパイルした
実行ファイルのアイコンに反映されません。

>>496
デフォルトの32x32 16色です
499デフォルトの名無しさん:2005/03/23(水) 22:25:31
だから16x16のイメージを見てみろよ。
500デフォルトの名無しさん:2005/03/23(水) 23:07:03
>>499
意味わかりました。禿しくありがとうごさいました。
501デフォルトの名無しさん:2005/03/23(水) 23:57:36
若干すれ違い的な質問失礼します。
現在、C#をメインにプログラミングをしているのですが、
C#の長所でもあり短所でもあるCLIは完全なネイティブではないので(少し変な言い方ですね)
簡単にソースを見られてしまいます。
通常は問題のないことなのですが、暗号化や認証などでは致命的な問題です。
ですので、,netの長所でもある複数の言語を扱えるということを生かして、
プログラムの一部を別の言語で書きたいと思っています。

現在、VisualStudio.net2003Proを使用しておりまして、一部をC++などで記述したいと思っています。
VisualStudioのC++のところにはWin32というものや、MFC、C++.netなどがありますが、
win32というものは.netを必要としないVC6.0と同様のものなのでしょうか?
またC++.netはCLIでないネイティブなプログラムにコンパイルできるのでしょうか?
502デフォルトの名無しさん:2005/03/24(木) 00:06:56
> win32というものは.netを必要としない
必要としない。

> C++.netはCLIでないネイティブなプログラムにコンパイルできる
できる。
503デフォルトの名無しさん:2005/03/24(木) 00:27:04
>>501
あなたが仰る「CLIでないネイティブ」にコンパイルした場合、
「複数の言語を扱える」長所を享受する事は出来ません。
504デフォルトの名無しさん:2005/03/24(木) 00:28:33
C#からC++で作ったネイティブな関数を呼びたいということじゃないの?
505デフォルトの名無しさん:2005/03/24(木) 00:31:56
501の書き方では/r:hoge.dllを考えてるように見えるねぇ。
506デフォルトの名無しさん:2005/03/24(木) 00:33:54
たしか共通言語を難読化するソフトがあったはず。
507デフォルトの名無しさん:2005/03/24(木) 01:19:21
508デフォルトの名無しさん:2005/03/24(木) 01:34:17
>>482
Thxです。
ググッてみます。

そういえば自分は
ttp://www.atmarkit.co.jp/fdotnet/tools/dotfuscator/dotfuscator_02.html
のツールでリッチテキストボックスの中身みたんですけど丸見えでしたね・・・
超が付くようなプログラマーだと、ネイティブだろうと何だろうと関係ないんでしょうけど。
509501:2005/03/24(木) 07:43:05
VC++.netのwin32で作ると共通言語ではないようで、ソースを見ることができませんでした。
ただ、C++の.netで作ると普通に見れてしまう(泣
>>502さんはどうやってC++の.netをCLIでなくコンパイルしているのでしょうか?

やはりCLIも一長一短ですね(泣
私の場合、一長よりも一短の方が痛手になっていますが・・・
510デフォルトの名無しさん:2005/03/24(木) 07:57:28
暗号化や認証はソースを見られても簡単には見破られないようなものを
選択するべきだと思うのですが。

win32プロジェクトはネイティブイメージを作るので当然ソースは見られません。
見たければ逆アセンブリするなどの手段しかないでしょう。
.netプロジェクトはMSILを作るのでC#等と同様、容易にソースが復元できます。

あとはngenなるツールでマネージアセンブリからネイティブイメージを作成する
ツールもあるようですがよくわかりません。
511501:2005/03/24(木) 08:18:01
ngenはVB.netの例ですが↓に書かれていました。
非常に興味深い機能ですね。起動時間を解消できれば上の方で話題になった
C#でCGIも現実味を帯びてくるかと思います。
http://www.atmarkit.co.jp/fdotnet/vbcheer/vbcheer08/vbcheer08.html
512501:2005/03/24(木) 08:28:49
どうもngenというのはCLIをネイティブにコンパイルしたファイルをキャッシュしてくれるプログラムのようですね、
インストール時などにngenでキャッシュを生成しておけばネイティブで起動されるとのことです。
ただ、ネイティブのexeを生成できるということではなく、あくまでキャッシュだとか・・・

けど、CGIなどで起動時間が特に重要性を帯びるプログラムでは良いことかもしれませんね、
少なくともC#で作ったプログラムがC++CGIと同様に動くのですから・・・
513デフォルトの名無しさん:2005/03/24(木) 08:46:30
そんなこと誰でもしってるぞ
それとngenはPCのスペックによってはかってに起動する場合もある。

514デフォルトの名無しさん:2005/03/24(木) 08:47:42
>>501
それとうざいから死ね
春厨なんだろうがな。みたところ春休みの学生か?
CLIの勉強してからこいや
515デフォルトの名無しさん:2005/03/24(木) 09:21:04
サービスアプリのような、要求待ちもしくは終了条件待ちの為の無限ループを
低負荷で行うにはどうしたらよいのでしょうか?
516デフォルトの名無しさん:2005/03/24(木) 09:26:31
リファレンス嫁
517デフォルトの名無しさん:2005/03/24(木) 09:27:58
while(true) などでぐるぐる回している中で Thread.Sleep(1) とかやっておくと
負荷が下がったような気がしましたが気のせいかもしれません。
見当違いなことを言っているかも知れません。
518501:2005/03/24(木) 09:39:59
>>513-514
オマエモナー(=゚ω゚)つ)゚∀゚)グァ
519デフォルトの名無しさん:2005/03/24(木) 09:43:08
>>571
ギャクかよ。

普通にやるならプロセス通信かネットワークサーバーを書く
WindowsサービスをしたいならServiceBase クラス を使う
SDKリファレンスで検索すればすむ話だ。

まぁその文章じゃあと1年はサービスアプリなんてかけないだろうなw
520デフォルトの名無しさん:2005/03/24(木) 09:56:02
>>517
ここに記事があるぞ
まずググルことから勉強シロ

ITmedia エンタープライズ:特集:初めて作る.NET Windowsサービス (1/7)
http://www.itmedia.co.jp/enterprise/articles/0502/01/news083.html
521デフォルトの名無しさん:2005/03/24(木) 10:36:47
素朴な疑問なのですが、
あるクラスのフィールドに別のクラスがあるときに、newするのは、
フィールド宣言するときと、コンストラクタでやるのと、
どちらが良いでしょうか?

public class ClassA {
public ClassB b = new ClassB();
と書くのと、
普通にClassAのコンストラクタでnewするのと、何か違うのでしょうか?

もう1つ、stringの初期化を""でやるのと、string.Empty()でやるのも同じですか?
522デフォルトの名無しさん:2005/03/24(木) 10:50:07
>>521
> 普通にClassAのコンストラクタでnewするのと、何か違うのでしょうか?

フィールド宣言時に初期化するオブジェクトは、必ずコンストラクタよりも先にインスタンスが作られる。
ただし初期化の順番が保証されない。普通は問題ないが、馬鹿なクラス設計してれば問題が起こりうる。

> もう1つ、stringの初期化を""でやるのと、string.Empty()でやるのも同じですか?

空文字列は初期化とは言わないと思うがどうか。
""とString.Emptyは、まあ同じと考えて良いんじゃない?
""は必ず空文字列のシステム参照を返すが、
String.Emptyは初めて呼ばれた時には空文字列の新しい参照を返す……なんてこともあるけど。
523デフォルトの名無しさん:2005/03/24(木) 11:03:56
>>522

有難うございます。特に、

> ただし初期化の順番が保証されない。

ここ1年ほどのモヤモヤしていたものが晴れました。
本当にどうも有り難うございました。
524デフォルトの名無しさん:2005/03/24(木) 11:04:52
>>519-520
あーすみません。
脊髄反射で適当な事書き込みました。
あと1年はサービスアプリ書かなくて済みそうなので
ググルことから勉強シてきます。
525515:2005/03/24(木) 11:14:35
すいません、誤解を受けてるようなのですが>>517は別の方です。
特にサービスが作成したいわけではなく、ループ脱出条件を満たすまで無限ループを
低負荷で行わせるためにはどうしたらいいのかで悩んでいます。

安易に「サービスアプリのような」という言葉を出したのが悪かったと思います。
526デフォルトの名無しさん:2005/03/24(木) 11:32:33
おまいら、教えてください。
エアエッジとかCFに刺さる通信カードを
制御するようなクラスは.netフレームワークにありますか?
ぐぐったりMSDNみたけどわからなかったぽ。
527デフォルトの名無しさん:2005/03/24(木) 11:45:18
フレームワーク上でやるような事じゃないと思うんだな。どういう制御か知らないけど。
528デフォルトの名無しさん:2005/03/24(木) 12:07:00
ポケットPCでアプリつくんだけど、
プログラムで電話かけてネットワークに接続したりしたいのよ。
制御ってほどじゃないよね・・・・
529デフォルトの名無しさん:2005/03/24(木) 12:56:14
>>525
ループ内で何をやらせたいのか何を待機するのかで方法が変わってくる。
System.ThreadingのEventやMutexなどを使うか、
Thread.Sleepで一定時間おきにポーリングするかのどっちか。
530デフォルトの名無しさん:2005/03/24(木) 16:51:03
ASP.NETのC#でABCpdfという製品を使っています。
ひとつ問題が発生し、日本語を表示させると文字化けが起こります。
おそらく文字コードの問題で、SJISにする必要があると考えています。
そこで
string str1 = "あいうえお";

System.Text.Encoding sjisEnc = System.Text.Encoding.GetEncoding("Shift_JIS");
byte[] bytes = sjisEnc.GetBytes(str1);
string str2 = sjisEnc.GetString(bytes);

と変換してみたのですが、str1とstr2は同じ物になります。
最後の行はSJISのバイト配列のデータから文字列(UTF-8)を
作成していると考えると納得できます。

では、bytesのままで文字列として扱おうと思い

string str3 = bytes.ToString();

をすると、str3は"System.Bytes[]"が設定されています。

どうしたら、SJISも文字列を作成できるのでしょうか?





531デフォルトの名無しさん:2005/03/24(木) 16:55:15
System.Stringは内部では必ずUnicode(UTF-16)。
System.Stringを引数にとってるのに化けるならメーカに文句を言え。
532530:2005/03/24(木) 17:30:27
531様、ありがとうございます。
ずっと文字コードの問題だと考えていたため、
無駄なことに囚われていました。
531様の一言で、もっと基本的な問題ではと思うことが出来、
「フォントの指定」が抜けていたことに気が付きました。

ありがとうございます。

533デフォルトの名無しさん:2005/03/24(木) 17:49:43
( ゚д゚)ポカーン
534デフォルトの名無しさん:2005/03/24(木) 19:20:11
( ゚д゚)ポカポカーン
535デフォルトの名無しさん:2005/03/24(木) 21:44:12
( ゚д゚)ポカポカポカーン
536デフォルトの名無しさん:2005/03/24(木) 23:09:53
C#の言語仕様についてなんですが、
case文ってCとかJavaみたいにフォールスルーできなくなってますよね?
それなのに、breakが必要になってるみたいですが、
こうなった経緯や理由をご存知の方いらっしゃいますか?
どうでもいい話ではあるんですが、気になってしょうがないので。
537デフォルトの名無しさん:2005/03/24(木) 23:18:01
538デフォルトの名無しさん:2005/03/24(木) 23:21:46
多分C++からの移行者がフォールスルーを期待してコーディングする事を危惧したんだと思う。
元々C#はC++の後継たることを期待されていたんだし。
フォールスルーされない事が当たり前な人にとっては邪魔なだけだけど。
539デフォルトの名無しさん:2005/03/24(木) 23:25:55
case A:
case B:
 break;

のためじゃないの?
540デフォルトの名無しさん:2005/03/24(木) 23:32:33
541デフォルトの名無しさん:2005/03/24(木) 23:33:40
default:が先頭にあっても動くことに結構驚く。
542536:2005/03/25(金) 00:00:32
>>537-541
ありがとうございます。これでぐっすり眠れます。
特に>>540は、その他に色々気になってたことが載ってたので、
これからじっくり読んでみます。
543デフォルトの名無しさん:2005/03/25(金) 00:29:26
string.Replace("文字列","変更文字列");
を使って文章の一行を置き換える場合、
変更文字列がなかったら、文字列を完全に
消すようにしたいのですがどうにかできないでしょうか?
以下のように改行だけ入ってしまいます。

aaaaaaaaaa

cccccccccc
544デフォルトの名無しさん:2005/03/25(金) 00:32:18
わけわからん。
改行だけってそりゃ文字列変数の問題じゃなくて表示部分の問題じゃないか?
545デフォルトの名無しさん:2005/03/25(金) 00:40:33
>>544
すいません;;

string.Replace("文字列","");
MessageBox.Show(string);
こうしたときに以下のようにしたい
という意味です。

aaaaaaaaaa
cccccccccc
546デフォルトの名無しさん:2005/03/25(金) 00:41:28
Replace("文字列\r\n", "")
にすればいいだろ。
547デフォルトの名無しさん:2005/03/25(金) 00:55:13
>>546
あっ、確かに....
情けない質問にご回答頂き
ありがとうございました。
548480:2005/03/25(金) 04:36:07
だれか たのむ
549デフォルトの名無しさん:2005/03/25(金) 05:33:28
550デフォルトの名無しさん:2005/03/25(金) 08:33:59
一行の高さってどうやって取得すればええんでしょうか?
キャレットの高さでもいいんですが、キャレットは位置しかわからないもんで。
フォントの高さ=行の高さではないですよね?
551デフォルトの名無しさん:2005/03/25(金) 09:53:30
Graphics.Measureなんとかじゃだめ?
552デフォルトの名無しさん:2005/03/25(金) 10:40:26
普通はフォントの高さに等しいけどな。
553デフォルトの名無しさん:2005/03/25(金) 10:52:45
インタフェースを、プロジェクトとして外出しにした場合の出来事なのですが、
VSで、以下の3つのプロジェクトがあります。
ProjA.Interfaces
ProjB.Core
ProjC.Sample

ProjB.CoreがProjA.Interfacesの中身を継承したクラスライブラリです。
ProjCでそのProjBで実装したクラスを使いたい場合に、
参照設定にProjBを加えて、ソース内でもUsing宣言すれば良いと思っていました。。
しかし、
「ProjBは参照されていないアセンブリ内で定義されたインタフェースを持ってます、
ProjAへの参照を追加してください。」というエラーがでます。

実際に、追加すると解決するのですが、何か腑に落ちません。
クラスライブラリを使う時にそのインタフェースのdllも必要になるなら、
インタフェースだらけになるような気がします。どうなんでしょうか?
554デフォルトの名無しさん:2005/03/25(金) 11:34:29
>>553
ライブラリからインターフェイスだけ抽出する意味ってあんまり無いんじゃない?

> クラスライブラリを使う時にそのインタフェースのdllも必要になるなら、
> インタフェースだらけになるような気がします。どうなんでしょうか?

インターフェイスだらけって何が?
555553:2005/03/25(金) 11:54:14
>>554
>ライブラリからインターフェイスだけ抽出する意味ってあんまり無いんじゃない?
確かに、微妙なところですが、大きなソリューションで似たクラスも持つプロジェクトが複数ある時に、
(例えば、中の人用の詳細クラスと、外の人用の簡単なスタブクラスとか)
同じインタフェースを使えば、間違いが少なくなるのではないかと・・・

>インターフェイスだらけって何が?
説明不足ですみません。
クラスライブラリを使う時に、そのクラスの実体のdll以外に、そのクラスが使っているインタフェースのdllまで
必要になるなら、何か、隠蔽してる意味が無いような気がしまして・・・
そういうものなんでしょうか?
556デフォルトの名無しさん:2005/03/25(金) 12:16:12
>>555
実装したクラスにインターフェイスの情報を含めるとすると、実装したクラスが
2つあってそれぞれ別のdllの場合にどちらの情報を使うかって問題が発生します。
メタ情報をモジュールに含んでいる以上こういう仕掛けなのは仕方ないんじゃないかな。
プロジェクトで共通のインターフェイスを使う場合は、VSSやCVSをつかってソースレベルで
共有するようにしてますよ。
557553:2005/03/25(金) 13:33:44
>>556
どうも有り難うございます。仰る通りですね。
今後精進します。
本当にどうも、有難うございました。

558デフォルトの名無しさん:2005/03/25(金) 15:19:17
Windows.Forms.Control.DateTimePicker で、ボタンを押した時に
カレンダが表示されますが、このカレンダの表示をやめて独自のカレンダ
を表示したいと思っています。

カレンダを表示する時に押すボタンが押されたイベント、カレンダの表示を
中止する方法がわかりません。

このあたり御存知の方がいらっしゃいましたらアドバイス頂けませんでしょうか?
559デフォルトの名無しさん:2005/03/25(金) 17:44:37
>>551
>>552
なぜかわかりませんが、例えば文字のサイズごとに横に線を引いていっても全然合わないんです。
しかもフォントのサイズ毎にそのずれ幅が違う。なのにそんなプロパティ等は見当たらない。

>>551でサイズを取得してるんですが、「一行」の幅ではないようなんです。
560デフォルトの名無しさん:2005/03/25(金) 17:53:08
>>559
MeasureString でサイズ測ったら、Ascent と Descent をごちゃごちゃして云々とか?
561デフォルトの名無しさん:2005/03/25(金) 18:00:34
キャレット云々って事は(リッチ)テキストボックスだよな。
GetPositionFromCharIndex/EM_POSFROMCHARで取得するとか?
562デフォルトの名無しさん:2005/03/25(金) 20:16:11
リッチテキストボックスはGDIだから、GdiPlusベースのGraphics関連のナニでは
テキストのジオメトリ等をきちんと求めることは不可能だと思う。

P/Invoke でEM_POSFROMCHAR使うとか、GDIのAPIを呼び出す等が必要では?
563デフォルトの名無しさん:2005/03/26(土) 00:03:52
コンソールアプリでファイル変換のソフトつくってるんすけど
MemoryStreamの開放のしかたおしえてくだせえ〜〜!!

MemoryStream ms = new MemoryStream();

msをつかってWriteしたりする

ms.close();

と、これでストリームはとじれるけど
肝心のリソースはどうやって開放すればいいんでしょうか。。。
564デフォルトの名無しさん:2005/03/26(土) 00:07:50
放置。
参照が無くなればそのうちGCがお片づけ。
565デフォルトの名無しさん:2005/03/26(土) 00:17:24
ガベレジコレクションがやってくれるのって、メモリがなくなってきた時とか
その内ってかんじなんすけど、

すぐに開放して!ってことはできないんでしょうかのぉ。。。

MemoryStreamにDisposeってないっすよね。。。
566デフォルトの名無しさん:2005/03/26(土) 00:19:43
とりあえずGC.Collectしてみる。
567デフォルトの名無しさん:2005/03/26(土) 00:53:32
リッチテキストボックスで&hearts;や&#〜;(〜は任意の数値)などのエンティティを
表示したいのですが、これらのエンティティをrtfに変換するにはどういうロジックを
組めばいいのですか?
&hearts;とかは変換テーブルを考えましたが、&#〜;は変換テーブルでは
対応しきれないんです。
568デフォルトの名無しさん:2005/03/26(土) 01:03:12
System.Web.HttpUtility.HtmlDecode
569デフォルトの名無しさん:2005/03/26(土) 01:03:35
NASAが開発した、WorldWindという地球儀ソフトがありますが、
あのソフトで、worldwind://URL〜とブラウザに打つとソフトが起動し、
URLで指定された文字列で動作するようになっています。
これはどのように実装されているのでしょうか?
570デフォルトの名無しさん:2005/03/26(土) 01:10:45
>>569
.NETとは何の関係もないが、
ttp://hail2u.net/blog/coding/view_sorce_in_firefox.html
こういうようなことをやってる。
571567:2005/03/26(土) 01:14:24
>>568
ありがとうございます。HtmlDecodeで何とかなりました。
572569:2005/03/26(土) 01:16:08
>>570
WorldWindがC#で作ってあるようなので、.NETなら簡単に実装できるんじゃないかと思いまして・・・。
.NETとは関係なくレジストリをいじるんですね。
ありがとうございました。
573デフォルトの名無しさん:2005/03/26(土) 01:20:53
>>566

さんくすでーす!!!
574デフォルトの名無しさん:2005/03/26(土) 03:18:24
>>561
>>562
>>560
>>561

サンクスです。
やってみます。
575デフォルトの名無しさん:2005/03/26(土) 07:19:32
すいません、C#初心者です。どなたか返答お願いします。

例えば、フォーム上にひとつのパネルがあるとして
そのパネル内にラベルが10個あるとします。

ラベルのデフォルトバックカラーは黒として
各ラベルをクリックすると、クリックした以外のラベルは黒に
クリックしたラベルのバックカラーは白にする
という処理を組む場合、バックカラーを黒にする処理を
foreachなどで組むとして、各ラベルのクリックのメソッドができますよね。
その時に、それぞれのメソッドに各ラベルのバックカラーを変える処理を
書くのではなく、クリックしたラベルの(つまり自分自身を)バックカラーを
変える書き方ってあるのでしょうか?

label1.BackColor...
label10.BackColor...

ではなく、this.backColor... (me.BackColor)みたいな感じで。
ちなみにthisを用いるとフォームのバックカラーが変わるのです。
よろしくお願いいたします。
576デフォルトの名無しさん:2005/03/26(土) 08:24:04
>>575
何度読んでも理解できない。
特に「クリックしたラベルの(つまり自分自身を)バックカラーを」のあたりが
577デフォルトの名無しさん:2005/03/26(土) 09:13:53
ArrayList labelArray;


labelArray = new ArrayList();
labelArray.Add(label1);
labelArray.Add(label2);
・・・
label1.Click += new EventHandler(anyLabel_Click);
label2.Click += new EventHandler(anyLabel_Click);
・・・


void anyLabel_Click(object sender, EventArgs e){
    foreach(Label l in labelArray)
        if(l==sender) l.BackColor=Color.White;
        else l.BackColor=Color.Black;
}
578デフォルトの名無しさん:2005/03/26(土) 14:43:52
>>575
何のためにイベントハンドラにsenderオブジェクトが渡されると思っているんだい?
579デフォルトの名無しさん:2005/03/26(土) 20:58:56
使ってるPCに.Net Frameworkがインストールされているか調べるページって
http://hp.vector.co.jp/authors/VA034493/dotnetchecker/
こういうのがあったけど、バージョンが1.1なのか1.0なのか分からないのはまずいかなぁっと思って
一応、↑で話題になったC#のCGIで作ってみました。
http://www.mythique.org/cgi-bin/dnfwc/

ソフト配布時などに初心者ユーザー向けにリンクでも張ってもらえると嬉しいです。
580デフォルトの名無しさん:2005/03/26(土) 21:09:53
>>579
乙。
しかし私はユーザエージェントを書き換えて素のIEにしているので問答無用でfalseが返ってきたぜw
581デフォルトの名無しさん:2005/03/26(土) 21:12:05
>>580
(+。+)アチャー。
やっぱ判別をするのにユーザーエージェントの環境変数使うのは駄目ですかねぇw
他に判別する方法で良い方法がありましたらご教示願いたいです。
582575:2005/03/26(土) 21:40:38
レスありがとうございます。
>>576
すいません。説明不足でした。
「クリックされたラベルから見て、自分がクリックされた、クリックのイベントが
開始された」ということを書きたかったのです。すいませんでした。

>>577
ありがとうございます。やってみます。

>>578
プログラムやり始めたばかりなので、senderの使い方がよくわかってませんでした。
583デフォルトの名無しさん:2005/03/26(土) 22:19:40
>>581
簡易チェッカとしては十分じゃない?
IE5.5以上(だっけ?)以外は無効である旨は書いておくべきだと思うけど。
UA書き換えするようなのは諦めても良いと思う。
あ、返すHTMLで、scriptでチェックしてCGIの結果テーブルを書き換えるとかどうだろう。
script無効ならCGIの結果をそのまま表示するようにして。

一番良いのはノータッチデプロイメントで.configのsupportedRuntime要素を任意バージョンに限定して実行させる事かなぁ。
これも.NET1.0のSP次第とかでSecurityExceptionが発生しうるからその警告も必要だけど。
//あと何故かFileLoadExceptionが発生したりするけど……。ノータッチデプロイメントは仕様がよく分からないなぁ。
584デフォルトの名無しさん:2005/03/27(日) 00:01:19
あぁ〜
やっぱIE以外では無理でした(;>_<;)ビェェン
ノータッチデプロイメントも含め、色々検討してみますね♪
うちのサイトでもIEユーザー以外が15%もいますから・・・
585デフォルトの名無しさん:2005/03/27(日) 17:20:52
一応、>>579を色々と増強してみました。
動作確認して頂けると有り難いのですが・・・
http://www.mythique.org/cgi-bin/dnfwc
586デフォルトの名無しさん:2005/03/27(日) 20:05:48
動きました
587デフォルトの名無しさん:2005/03/27(日) 20:16:58
HttpWebRequestで>>585を取得するとWebException(ServerProtocolViolation)が返ってくるんですが
588587:2005/03/27(日) 20:19:37
squid(プロキシサーバ)を使ったら取得できた。


予期しないエラーが発生しました。
つきましてはバグ改善の為に御報告をお願い致します。
エラーの内容:オブジェクト参照がオブジェクト インスタンスに設定されていません。
589デフォルトの名無しさん:2005/03/27(日) 22:15:53
>>585
ノートンのFWをオンにしているとまともに表示しないんだけど何で?
590デフォルトの名無しさん:2005/03/27(日) 22:51:59
>>587
どうも返ってくるヘッダの一行目が200 OKじゃなくて200 Document followsになってるからのような感じがする。
TcpClientでやったら普通にできるし。

NullReferenceExceptionはUser-Agentが未設定の場合に発生するようだね。
nullチェックもしなきゃね〜。
591デフォルトの名無しさん:2005/03/27(日) 23:38:28
皆さん動作確認本当に有り難う御座います!
>>589
exeだからですかねぇ・・・
ウィルスのたぐいではないので御安心を、
>>590
明日早速試してみますね
592デフォルトの名無しさん:2005/03/27(日) 23:44:46
マウスカーソルを自由に動かす方法ってないですかね?
Point AからPoint Bまで移動させてクリックイベントを発行させるとか
593デフォルトの名無しさん:2005/03/27(日) 23:46:40
System.Windows.Forms.Cursor.Position
594デフォルトの名無しさん:2005/03/28(月) 00:05:53
マウスカーソルをPoint AからPoint Bへ移動させてクリックイベントを発行する方法は
どのようにするのでしょうか?
人に見える形でオペレーションを記録・再生したいのですが
595デフォルトの名無しさん:2005/03/28(月) 00:20:38
そう言う用途ならWin32APIのmouse_event/SendInput関数の方が良いかもね。
596デフォルトの名無しさん:2005/03/28(月) 00:26:45
すいません、2度書き込みしてしまいました。
ありがとうございます。

//while(true)Cursor.Position=p;ってやったら ちゃんとカーソル使えなくなりました・・・
597デフォルトの名無しさん:2005/03/28(月) 00:29:41
Webサービスで、WebサービスクライアントのIPアドレスポート番号はどのように取得したらよいのでしょうか?
ホストネームだけなら取得することができるのですが
598デフォルトの名無しさん:2005/03/28(月) 07:38:00
過去ログ見てたら、structがガベコレされるかされないかでの議論がありました。
途中で終わってたので結論が分からないのですが、
structはガベコレされるのでしょうか、されないのでしょうか。
599デフォルトの名無しさん:2005/03/28(月) 08:21:54
される。
600デフォルトの名無しさん:2005/03/28(月) 08:54:33
え?structってスタックに積まれてるんじゃなかったっけ?
601デフォルトの名無しさん:2005/03/28(月) 09:05:52
602デフォルトの名無しさん:2005/03/28(月) 10:25:01
自分で作成したForm以外(デスクトップとか他のアプリケーションのFormとか)で
マウスカーソルの下にToolTipを表示させたいんだけど何か方法ありますか。
へなちょこなんでサンプルを提示して頂けるとありがたいです。
603デフォルトの名無しさん:2005/03/28(月) 10:57:41
age
604デフォルトの名無しさん:2005/03/28(月) 11:23:11
テキストボックスのプロパティいじって表示させればいいだけな木ガス
605デフォルトの名無しさん:2005/03/28(月) 12:27:58
>>602
そういう機能があるアプリってあるの?
606デフォルトの名無しさん:2005/03/28(月) 14:36:00
はい質問!
上の方にあるC#のCGIってなんてファイル名がないの??
607デフォルトの名無しさん:2005/03/28(月) 14:36:54
間違えた!
なんて拡張子がないの??
http://www.mythique.org/cgi-bin/dnfwc
これって
http://www.mythique.org/cgi-bin/dnfwc.cgi
ってやっても動かないんだけど・・・
608デフォルトの名無しさん:2005/03/28(月) 14:43:27
>>602
グローバルフックを仕掛けて何とかしろ。
なぜか、C#では使えないはずのグローバルフックなのにWH_MOUSE_LLは動いてしまうから。

なんで動くのか理由を知りたいところ。
609デフォルトの名無しさん:2005/03/28(月) 14:47:24
610デフォルトの名無しさん:2005/03/28(月) 14:48:27
>>607
ttp://www.mythique.org/cgi-bin/dnfwc
は、/cgi-binディレクトリのdnfwcというファイルを下さい、と言う要求。
で、レスポンスヘッダとかIEのアドレスバーとかを見れば分かるけど、
「それはdnfwcディレクトリの事である」と言われるので、もう一度
ttp://www.mythique.org/cgi-bin/dnfwc/
を要求する。
/cgi-bin/denfwc/のデフォルトインデックスファイルは、まあレスポンスには返ってこないけどindex.exe。

>>608
自分のウィンドウ上でだけは動く、じゃない?
WH_KEYBOARD_LLなんかも、自分のウィンドウがアクティブの時はフックできてる。
つまり事実上スレッドスコープで動いてると。
611デフォルトの名無しさん:2005/03/28(月) 15:09:00
MSNメッセのログファイルをC#で扱いたいのですが、System.Xml.XmlExceptionが発生してしまいます。
XMLファイルを確認したところ、バイナリが混ざっていたみたいなのですが
バイナリ部分を消す、エラーが起こるファイルを無視する 以外の対処方法はありませんか?
バイナリ部分をスペースや中点に置換えてもいいです。
----------
ハンドルされていない例外 : System.Xml.XmlException: '' (16 進数値 0x12) は無効な文字です。 行 579、位置 12596 です。

  string logFile = "[ログファイルのフルパス]";
  XmlDocument doc = new XmlDocument();
  doc.Load(logFile);
→ XmlNodeReader reader = new XmlNodeReader(doc);

612デフォルトの名無しさん:2005/03/28(月) 15:11:51
文字列に読み込んで置換してdoc.LoadXmlするとか。
613611:2005/03/28(月) 15:29:40
バイナリを全て置換えるにはどうすればいいでしょうか?
614デフォルトの名無しさん:2005/03/28(月) 15:37:04
XMLで使えないUnicode範囲を調べて、Regex.Replaceで\u0000-\u0004\u0008-\u001fとかを置換すればいいんじゃね。
一つ言っておくけれど、何がバイナリ何がテキストって別れてる訳じゃなくて、
バイトの列で考えればバイナリ、文字の列で考えればテキストってだけだぞ。
615611:2005/03/28(月) 17:01:52
おかげさまで解決しました。
"[\u0000-\u0004\u0008-\u001f]"だとタブや改行も消してしまったり、無効文字の取り残しがあるので
"[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]"とすると無事に通りました。
要するにタブ・改行以外のASCII制御文字を取り除けばよかった話でしたorz
616デフォルトの名無しさん:2005/03/28(月) 19:08:52
HashtableをXmlSerializerでシリアライズしようとしても失敗するのですが。
どのようにするのがよいのでしょうか
617デフォルトの名無しさん:2005/03/28(月) 19:18:52
>>616
XmlSerializerを諦めてSoapFormatter/BinaryFormatterを使うか、
Hashtableを諦めてIDictionaryを実装しない独自のテーブルクラスを作るか。
618デフォルトの名無しさん:2005/03/28(月) 19:47:44
即レスありがとうございます。
質問ばかりで恐縮ですが
XmlSerializerとSoapFormatterでSoapFormatterを使った時のデメリットみたいなものはあるのでしょうか?
SoapFormatterはレガシー〜とかどこかで見たのですが。
http://www.din.or.jp/~ginga/dotnet/ms-xml-serialization-note.html

とりあえず、独自のテーブルクラスはちょっと大変そうなので避けようと考えています。
619デフォルトの名無しさん:2005/03/28(月) 19:52:15
あくまで個人的にだが、Webサービスで使用しないのにSOAP形式にするのはなんか嫌だ。
620デフォルトの名無しさん:2005/03/28(月) 19:53:51
見通しがめっさ悪くなるな。
621602:2005/03/28(月) 21:03:46
>>605
IMEWatcherとか

>>608
グローバルフックで他のアプリケーション上でもマウスカーソルの位置の取得はできるようになりました。
Tooltipはどうやったら表示できますか?
622デフォルトの名無しさん:2005/03/28(月) 21:18:40
TabContorol で Appearance を Normal 以外にしたときに
3回クリックしないと DoubleClick イベントが発生しません。
Normal なら 2回で DoubleClick になります。

これって Windows.Forms のバグですか?
バグなら MS に報告したいと思います。

なお .NET 2.0 March CTP でもなおってませんでした。
623デフォルトの名無しさん:2005/03/28(月) 21:20:38
つーかまじで TabControl 使いもんになんねぇ。
BackColor とかもないし。
みんな自作でもしてるのか。
624デフォルトの名無しさん:2005/03/28(月) 21:46:44
UserControl を継承して独自のコントロールを作る時、
例えば、UserControl の上に、TextBox を1つ配置した場合、
TextBox で発生したイベントを、この UserControl で使う側で
処理したい場合、UserControl.TextBox のように TextBox そのものを公開
するしか方法はないでしょうか?

できれば、UserControl 自身のイベントとして TextBox のイベントを
扱いたいと思っているのですが。そうでないと UserControl に
のっている TextBox のイベントは Visual Studio のデザイナで
イベントの割りつけができないので、全て自分でやらないと
いけない気がします。普通そういうもんでしょうか?

何かアドバイスがありましたらよろしくお願いします。
625デフォルトの名無しさん:2005/03/28(月) 21:52:54
>>624
独自イベントTextClickを宣言して、TextBoxのClickイベントでTextClickを発生させる。とか。
626デフォルトの名無しさん:2005/03/28(月) 21:59:18
>> 625
それも考えたのですが、必要なイベントを全て列挙していくのが
大変かな、と思いまして。

複数のコントロールをまとめて 1 つのコントロールとして扱いたいので
UserControl を継承するしか方法がないのですよね。。。うーん。
627デフォルトの名無しさん:2005/03/29(火) 01:19:04
>>626
そのTextBoxのスコープをpublicにするとデザイナ上からイベントの割付とかできるけど、お勧めしない。
625の方法で必要最低限のイベントだけ公開するのが無難。
628デフォルトの名無しさん:2005/03/29(火) 01:46:37
プログラム上から動的にメニューを作成した場合、
作成したメニューのClickイベントなどに対して処理を埋め込むのはどうやればいいですか。
629デフォルトの名無しさん:2005/03/29(火) 01:55:48
とりあえず、デザイナ上でメニュー作って
InitializeComponent 見てみたら?
630デフォルトの名無しさん:2005/03/29(火) 02:26:02
>>625をサンプルで示すとどんな感じになるの?
簡単なコードで教えてほしいな m(_"_)m
631デフォルトの名無しさん:2005/03/29(火) 02:53:14
>>630
public event EventHandler TextClick = null;

private TextBox textBox;

UserControl()
{
// 略
  this.textBox.Click += new EventHandler(textBox_Click);

}

protected virtual void OnTextClick(EventArgs e)
{
  if(this.TextClick != null)
  {
    this.TextClick(this,e);
  }
}

private void textBox_Click(object sender, EventArgs e)
{
  this.OnTextClick(EventArgs.Empty);
}
632デフォルトの名無しさん:2005/03/29(火) 10:22:52
EXEとDLLを同じフォルダじゃない所に置きたいのですが

EXE から見て bin\ というディレクトリに DLL を置いた場合は
.configに<probing privatePath="bin"/>を書けばいいのはわかったのですが

EXEからみて上の階層にDLLを置いた場合はどうしたらいいのでしょう?


633デフォルトの名無しさん:2005/03/29(火) 10:24:51
認められないんじゃなかったっけ。
634デフォルトの名無しさん:2005/03/29(火) 10:26:40
>>633
ムリって事?
635デフォルトの名無しさん:2005/03/29(火) 11:06:15
>>634
ttp://www.atmarkit.co.jp/fdotnet/technology/idnfw11_03/idnfw11_03_03.html
厳密名をつけて<dependentAssembly>要素で指定する。
636デフォルトの名無しさん:2005/03/29(火) 15:00:28
今作っているアプリが、最近コードがでかくなったせいか、立ち上がりがやたら遅くなってきてちょっと困ってます(5-6秒くらい)
おそらく実コードへの変換の時間が掛かっているのだろうと思うのですが、これ以上長くなると嫌な感じです。
起動時間の増大防止のノウハウとかどこかにないでしょうか?
最長でも三秒くらいで立ち上がって欲しい……
637デフォルトの名無しさん:2005/03/29(火) 15:31:30
>>636
ngenでもしてみたら。気休め程度。
アセンブリを更新するときに面倒になるからあんまりやりたくない。
638デフォルトの名無しさん:2005/03/29(火) 15:59:50
>>631
ありがとうございます。
次に作ってみようかなと思っているツールが
簡易表示とメイン表示の二つに分かれていて
共通するコントロール群をUserControlで
まとめた方が良いのかなと考えていたところだったのです。
ちょっとよく分かってなかったりしますが、参考にさせてもらいます。
639デフォルトの名無しさん:2005/03/29(火) 17:18:52
AというプログラムからBというプログラムが実行されたことを取得したいのですが、
ポーリング以外に方法はありますか。イベントのような形で取得できれば良いのですが。l
AもBも自作のプログラムです。
640デフォルトの名無しさん:2005/03/29(火) 18:01:54
他のアプリからPostMessageされたメッセージを処理したいのですが、
ユーザー定義のメッセージと、フォームのメソッドを結びつける仕組みって
ありますかね?
VCのMFCのON_MESSAGEみたいなやつです。

PreProcessMessage
WndProc
DefWndProc
このあたりを調べれば、メッセージの処理はできそうだと思いますが、
こういうことをするのに定石があれば教えてください。
641デフォルトの名無しさん:2005/03/29(火) 18:26:53
>>640
WndProcをオーバーライドして、.Msgでswitchさせる、でいいんじゃない?

>>639
Aがウィンドウ(厳密にはメッセージループ)をもってるなら、起動時にBがHWND_BROADCASTにPostMessageするとか。
642デフォルトの名無しさん:2005/03/30(水) 04:08:27
キョロキョロ
643639:2005/03/30(水) 07:19:56
>>641
ありがとう。それでいけそう。APIは奥が深いなー。
644デフォルトの名無しさん:2005/03/30(水) 11:08:25
>>636
表示するものと、内部処理のクラスの初期化場所をずらせばいいだけだと思フ。
645デフォルトの名無しさん:2005/03/30(水) 14:10:34
Video編集ツール等によくあるタイムラインってどうやって作るんですか?
写真のサムネイル等も時系列に沿って載せたいのです。
646デフォルトの名無しさん:2005/03/30(水) 14:13:01
写真ファイルの作成日付にでも沿って並べれば?
647645:2005/03/30(水) 14:28:46
http://www.adobe.co.jp/products/premiere6/overview04.html
この画面にあるタイムラインってやっぱり独自に線引いたり縮小画像を
を並べたりしなくてはいけないですよね?
648デフォルトの名無しさん:2005/03/30(水) 14:46:14
あたりまえだろ・・・orz
649デフォルトの名無しさん:2005/03/30(水) 14:50:03
http://www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.html
↑このページから、下の二行をコピペしてビルドすると、エラーが出ます。
[DllImport("kernel32.dll")]
private extern static bool Beep(uint dwFreq, uint dwDuration);

> 型または名前空間名 'DllImport' が見つかりませんでした。ディレクティブを
> 使うかアセンブリ参照を使ってください。

DllImportを使うには、なにか設定でも必要なんでしょうか?
650デフォルトの名無しさん:2005/03/30(水) 14:55:22
>>649
一度全部コピペしてコンパイル&実行してみろ。
その後一行ずつ消していってみろ。
651デフォルトの名無しさん:2005/03/30(水) 14:56:51
>>649
usingもコピれハゲ
652デフォルトの名無しさん:2005/03/30(水) 14:58:14
>>649
 .NET Framework上で動作するプログラムから、従来形式の(.NETアセンブリなどではない)DLLファイルがエクスポートしている関数を呼び出すには、
DllImport属性(System.Runtime.InteropServices名前空間)を利用し、その関数が外部にあることをあらかじめ宣言しておけばよい。
これは、Win32 APIを呼び出す場合にも同様である。
653ハゲ:2005/03/30(水) 14:58:23
http://groups.yahoo.co.jp/group/dotnet-csharp/messages/1430?expand=1
エラーメッセージで検索したら見つかりました。
どもおさわがせしました。
654645:2005/03/30(水) 14:58:31
最後に、Adobe系ソフトをC#(.NET frame work)の機能で作れますか?
API呼び出しとか有りです。
655デフォルトの名無しさん:2005/03/30(水) 14:58:44
って書いてありましたが日本語読めないんですかねぇ:P
656デフォルトの名無しさん:2005/03/30(水) 14:59:12
>>654
作れます

もう来るなハゲ
657デフォルトの名無しさん:2005/03/30(水) 15:01:47
dateTimePicker1
dateTimePicker2
と配置して
それぞれの日付を引き算して
textboxにdateTimePicker1からdateTimePicker2までの日数を求めたいのですが
どのようにすればよいのかよくわかりません。
解説しているサイトなどあればアドバイスいただけないでしょうか?
658デフォルトの名無しさん:2005/03/30(水) 15:06:40
>>657
割とそのままだと思うんだが、何が分からないんだ?
659デフォルトの名無しさん:2005/03/30(水) 15:07:55 BE:69876566-
660デフォルトの名無しさん:2005/03/30(水) 16:35:51
ComboBox や DateTimePicker に表示される
ドロップダウンボタンと同じボタンを自前のコントロールにはりつけたいの
ですが、Button を継承するなどして自分で書くしかないでしょうか?

どうも通常のボタンとは、XP Style にした時の描画が違っているので
Button をはるだけじゃ同じようにならないんですよね…。
661デフォルトの名無しさん:2005/03/30(水) 16:37:27
普通のボタンでいいだろ
662660:2005/03/30(水) 16:48:51
>> 661 いいだろって…。

あきらかに VisualStyle の時の描画が違っているのですが。

ComboBox の時などはボタン全体の色が明るくなるのみですが、
普通のボタンだと枠の色がついてしまいます。

また、下向きの > の記号を画像ではりたいのですが FlatStyle を System
に変更すると画像が貼れませんよね?

Combobox や DateTimePicker と見た目が同じボタンをどうにか
作る方法があれば教えてください。
663デフォルトの名無しさん:2005/03/30(水) 17:02:52
ComboBox.Width = 18;
664デフォルトの名無しさん:2005/03/30(水) 17:03:00
一番簡単なのは
ComboBoxのWidthを20ピクセルにすることだよな
665660:2005/03/30(水) 17:52:47
>> 663,664
ありがとうございます。目から鱗でした(^^;

やってみたのですが、あと1つ、ComboBox の ドロップダウンボタンを
クリックした時に空のリストが開いてしまうのですが、
これを開かないようにする方法があれば教えてください。

ドロップダウンボタンがクリックされた事は検知しつつ、
ドロップダウンリストが開かなければ希望の動作になります。

よろしくお願いします。
666デフォルトの名無しさん:2005/03/30(水) 19:40:25
>>665
いやいやいやまてまてまて。
大人しくButton継承して下向きarrow描画しとけって。

どうしてもComboBoxのVisualStyle版に似せたいなら、
できるだけそれっぽく見えるようにOnPaint弄くるのがよろし。
667660:2005/03/30(水) 20:04:36
>>666
うぉ。まじですか。

OnPaint で、ってボタンの描画を全部自前で処理しないと
いけないって事ですか…。とほほほ。

あと、下向き arrow の描画って、もしかしてこれも自分で座標計算をして
2本の線を引くイメージで描画するって事ですか?

敷居がたかいな…(^^;;;
668デフォルトの名無しさん:2005/03/30(水) 20:47:12
ControlPaint.DrawComboButton
669660:2005/03/30(水) 21:27:06
>> 668
こんな便利なメソッドがあったんですね。ありがとうございます。

で、早速、Button を継承して OnPaint をオーバーライドして
ControlPaint.DrawComboButton を書いてみましたが、
FlatStyle が Standard の時はドロップダウンが描画されましたが
FlatStyle を System に変更すると、Windows.Forms.Button が
VisualStyle で描画されてきてしまいます。

VisualStyle の場合、オーバーライドするのは OnPaint ではなく
別のところになるのでしょうか?

いろいろすみませんがよろしくお願いします。
670デフォルトの名無しさん:2005/03/30(水) 21:30:12
FlatStyle.Systemだと描画はOS丸投げになるはず。
671660:2005/03/30(水) 21:50:24
>> 670
という事は、Button を継承して、FlatStyle.System にした場合
ControlPaint.DrawComboButton とかで描画しなおす事ができないって
事になりますでしょうか?

FlatSytle.System な状況の、ドロップダウンボタンを描画する方法は
ないのでしょうか。。。。。
672デフォルトの名無しさん:2005/03/30(水) 21:56:20
FlatStyle.Systemにしなきゃいいじゃん。
673660:2005/03/30(水) 22:07:45
>> 672
おっしゃる通りなのですが…、本末転倒な回答をもらっても
せつないですねぇ。

やりたいのは FlatStyle.System で描画されるドロップダウンと
同じボタンを自前のコントロールにはりたいって事なのです。

簡単には無理なことなのかしら…。
674デフォルトの名無しさん:2005/03/30(水) 22:16:05
そもそもたしかControlPaint.Draw...でVisualStyleの描画はできなかったはず。
.NET 2.0で...Rendererクラスが色々追加されてるし。

ま、私はVisualStyleなんてクソ食らえとしか思ってないからどうでも良いけど。
675デフォルトの名無しさん:2005/03/30(水) 22:18:03
WndProcをオーバーライドして、
http://www.codeproject.com/managedcpp/ManagedUxTheme.asp
↑この辺使って描画すればいいと思う。
676デフォルトの名無しさん:2005/03/31(木) 00:07:48
Cookieが取れない。

HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
myHttpWebRequest.CookieContainer = new CookieContainer();
myHttpWebRequest.Timeout =5000;
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
CookieCollection myCookieCollection = myHttpWebResponse.Cookies;

GoogleではCookieがちゃんと取得されてるのに
他のサイトでは取得できませぬ・・。
Set-Cookieがsecure指定だと取得できないのでしょうか?
677デフォルトの名無しさん:2005/03/31(木) 00:10:52
>>676
取れないところのURL例を示せる? 試してみたい。
678デフォルトの名無しさん:2005/03/31(木) 00:17:40
679デフォルトの名無しさん:2005/03/31(木) 00:41:34
>>678
ん〜、確かにCookiesじゃ拾えないねぇ。
取りあえず代替策としてmyHttpWebResponse.Headers["Set-Cookie"]を提案しておこう。
自力で分解しなきゃいけないけど。
680デフォルトの名無しさん:2005/03/31(木) 01:01:18
質問というか、C#プログラマの同志達に少し意見を聞きたいんですけど、
現在、MSとかも(表向きは)次世代言語として(Javaとの軋轢もあるんでしょうけど)C#を推してますよね?
確かに.net構想やOSの仮想化などは非常に素晴らしい技術ですし、
.net下のC#によるプログラミングは強力かつ非常に効率がよく、
これから是非普及してもらいたいと思っています。

ただ、現状として.net環境で作られた商用プログラムというのは殆ど存在しません。
理由は単に動作できる機種の問題だけではなく、
中間言語と使うという特徴の為にソフトウェアの内部構造が
容易に解析できてしまうというのが原因ではないでしょうか?

そこで現在のC#プログラマの皆さんは今後、商用ソフトウェアが普及する
余地があるのかどうか?またその為の技術への予想などについて
ご意見頂ければと思います。


長文失礼w
681デフォルトの名無しさん:2005/03/31(木) 01:05:28
ユーザがランタイム入れるの嫌がるから。
.NETの焦点は飽くまでWebプログラミングだから。
682デフォルトの名無しさん:2005/03/31(木) 01:11:09
Longhorn が出れば勝手に普及すると思ってる。
683デフォルトの名無しさん:2005/03/31(木) 01:34:53
けど、C++を超えれるとは思えん
684デフォルトの名無しさん:2005/03/31(木) 01:38:24
もとも.NETってエンタープライズ分野をターゲットにしたもの
だと思うんだよね。実際そっち方面では徐々に普及が進んでるし。

商用アプリみたいなものまでC#で作られるようになるのは、言われてる
ようにLonghornしだいのような気がする。
685デフォルトの名無しさん:2005/03/31(木) 01:40:43
つか、商用アプリをC++を使わずにC#を使うメリットってある?
686デフォルトの名無しさん:2005/03/31(木) 01:42:07
普及の問題はLonghornで解決すると思うが、ソースの可読性の問題はなあ。
このスレで前にも問題になったがシリアル認証のロジック部とか見られたらアレだし。
法人なら難読化ソフト買えるのだろうが、日曜プログラマに取って英語版でも高杉。
687デフォルトの名無しさん:2005/03/31(木) 01:50:23
C#先がみえたな フッ
マイクロソフトなんてくそだ フッ
688デフォルトの名無しさん:2005/03/31(木) 01:53:10
ソースごと配ってるような個人たちにも普及してないよね
689デフォルトの名無しさん:2005/03/31(木) 02:37:47
C++をガシガシ使える人には全然魅力無いと思う
C#なんて所詮C++挫折組みが使うんでしょうね
690680:2005/03/31(木) 08:51:03
>>689
C++プログラマにもC#は非常に魅力的に感じていますよ、
実際、私は現在でも職場ではC++しか使用しませんけど、
趣味の範囲では極力C#を使用しています。

>>685
今後、64bit対応OSやCPUなどが普及すると思われますが、
.Net環境で作られたソフトウェアは32bit下では32bitソフトウェアとして、
64bit下では64bitソフトウェアとして動作させることができるようです。
つまり、プログラマとしては32bit版と64bit対応版を作らなくても
1つのソフトで32bit動作も64bit動作も可能になるわけです。
商用アプリは生産性が非常に重要ですからこれは素晴らしいアドバンテージではないでしょうか?
実際、Javaが普及したのもLinux環境などへの移植が容易だということが
非常に大きいと思いますので・・・

>>686
そこが一番の心配なんですよね、
やはり当分はセキュアな動作の求められるロジックはC++などで書くことになりそうです。
691デフォルトの名無しさん:2005/03/31(木) 09:02:40
セキュアて?
安全なとかだったっけ(うろおぼえ)
692デフォルトの名無しさん:2005/03/31(木) 11:31:31
ぐぐれ、あるいは辞書を引け
693デフォルトの名無しさん:2005/03/31(木) 12:22:17
694デフォルトの名無しさん:2005/03/31(木) 12:55:41
てーかだな、C++アプリだって逆汗すれば認証のロジックは普通にわかるし
認証を潰すのだって大抵難しくない。

おいらがC#に魅力を感じているのは、何でもかんでもマクロでグチャグチャ
やるような汚さがない所。
Win32 API の関数名がいちいちマクロだったりするしなぁ……
695デフォルトの名無しさん:2005/03/31(木) 13:01:39
認証ねぇ…。
まぁC#を使うことで良くはならないけど、今更悪くもならないよ。
発売前にクラックパッチが出てしまうご時世ですから。
696デフォルトの名無しさん:2005/03/31(木) 14:18:07
他のアプリケーションを
calc.exe
などで指定して実行はできるのですが
特定のファイルなどを実行するさいはどうすればよいのでしょうか?
たとえばデスクトップに置いてあるファイルを実行するには
どのようにすればよいのかアドバイスいただければと思います。
697デフォルトの名無しさん:2005/03/31(木) 14:27:37
calc.exeを実行するように実行すればいいんじゃね。
何が論点なのかわからんよ。
698デフォルトの名無しさん:2005/03/31(木) 14:49:08
>>697
たぶん

System.Diagnostics.Process proc =
new System.Diagnostics.Process();
proc.StartInfo.FileName = "notepad.exe";
proc.Start();

感じでやってるんだと思う。
当然ここでnotepad.txtをc:\hello.txtとかに変更すると
うまくいかないから
どうすればいいのかって感じで聞いてるんだと思う。
699デフォルトの名無しさん:2005/03/31(木) 15:28:17
System.Diagnostics.Process.Start("C:\test.txt");
が失敗します。
700デフォルトの名無しさん:2005/03/31(木) 16:25:33
その前にのーとぱっどは普通に出てるのかな。

エラーが出てだめなのか、のーとぱっどしか出ないのかわがんね。
701デフォルトの名無しさん:2005/03/31(木) 16:53:02

System.Diagnostics.Process.Start("notepad.exe", @"C:\test.txt");
702デフォルトの名無しさん:2005/03/31(木) 18:07:27
えぇ
703デフォルトの名無しさん:2005/03/31(木) 18:19:02
test.txt は実行可能じゃないから Process.Start じゃ起動できん罠
704デフォルトの名無しさん:2005/03/31(木) 18:24:17
えーと、普通関連づけられたプログラムで起動するんだけど。
Process.Startに渡されるProcessStartInfoのUseShellExecuteがfalseにされてない限り。
705デフォルトの名無しさん:2005/03/31(木) 18:41:37
コンソールアプリを初めて作ったのですが、
起動するとファイルをダウンロードして同じフォルダのデーターを最新にアップデートするという
単純なソフトですのでコンソールウィンドウなんて表示させたくないんです。
ウィンドウを表示させない方法ってありますでしょうか?
706デフォルトの名無しさん:2005/03/31(木) 18:44:56
/t:winexe
VS/VC#ならプロジェクトのプロパティ>出力の種類:Windowsアプリケーション
707デフォルトの名無しさん:2005/03/31(木) 19:24:26
即レス有り難う御座います。
設定のみで出来たのですね。不覚でした。

ありがとうございます。
708デフォルトの名無しさん:2005/03/31(木) 19:55:50
>>686
>ソースの可読性
おまえは何の話をしている。
709デフォルトの名無しさん:2005/03/31(木) 19:57:35
確かにソースの可読性じゃないなw
リバースエンジニアリングのしやすさか
710デフォルトの名無しさん:2005/03/31(木) 20:30:38
そんな前の事いちいち引っ張り出して...
よっぽど暇なんだね
711デフォルトの名無しさん:2005/03/31(木) 20:45:12
スタートアップフォルダを取得するにはSystem.Windows.Form名前空間のApplicationクラスを使うしか方法がありませんかね?
System.ReflectionのAssemblyらへんでは無理でしょうか?
712デフォルトの名無しさん:2005/03/31(木) 20:46:02
>>694
> おいらがC#に魅力を感じているのは、何でもかんでもマクロでグチャグチャ
> やるような汚さがない所。
禿同。あの仕様はうんこすぎる。
713デフォルトの名無しさん:2005/03/31(木) 20:53:41
>>711
ILDASMでSystem.Windows.Forms.dllのSystem.Windows.Forms.Applicationクラスの
get_StartupPathやget_ExecutablePathの動作を見てみるといいよ。
ILなんて分かるかという人でも、呼んでるメソッドを見るだけでも色々分かる。
714デフォルトの名無しさん:2005/03/31(木) 21:29:14
EnableVisualStylesをしてflatstyleをsystemにすれば
buttonなどもVisualStyleに対応しますが、
フォームにMS Web browserを貼り付けると
VisualStyleではなくなってしまいます。
こういうものなんですか?

ウェブブラウザ貼り付けて、かつビジュアルスタイル対応にするにはどうしたらいいの?
715デフォルトの名無しさん:2005/03/31(木) 22:45:45
>>711
EnvironmentクラスのCurrentDirectoryとか、
AssemblyクラスのGetEntryAssembly()から取得とか、
ProcessクラスのMainModuleとか。

GetEntryAssemblyはAppDomainが分かれているときに取得できないので使わない方が無難。
CurrentDirectoryは作業フォルダだったと思う。MainModuleの場所と違ってたりするわけで、どっちが欲しいのかわからないけど。
716デフォルトの名無しさん:2005/03/31(木) 22:46:04
そういうもんなの
717デフォルトの名無しさん:2005/03/31(木) 23:31:41
ねぇ、ぶちゃけ業務でC#使ってる人いる?
WindowsクライアントアプリはVC++ってのが常識みたくなってるからな〜
718デフォルトの名無しさん:2005/03/31(木) 23:37:04
>>717
業務で使ってるやつがほとんどだろ。
719デフォルトの名無しさん:2005/03/31(木) 23:41:29
そうですか
VC#のVC++に対する優位性がないためだれも使おうなんて言い出さないんですよね
720デフォルトの名無しさん:2005/04/01(金) 00:06:06
>>717=>>719は思い込みが激しいな。
おそらく学生だろう。
721デフォルトの名無しさん:2005/04/01(金) 00:09:00
Webアプリ(ASP.NET)の業務でなら使ったけど、クライアントアプリでは使ってないなあ。
722デフォルトの名無しさん:2005/04/01(金) 00:09:28
つうか業務アプリ開発でWindowsなら今は.NETが当たり前だと思うが。
もしくはVB6でしょ。生産性考えなさいよ。
723デフォルトの名無しさん:皇紀2665/04/01(金) 00:15:46
VB以外は生産性が低いなんていってる奴は結局
力不足が殆どなんだよね
724デフォルトの名無しさん:皇紀2665/04/01(金) 00:18:22
意味わかんねw
論点の摩り替えだろ。
725デフォルトの名無しさん:皇紀2665/04/01(金) 00:25:18
ところで今年は何年?
726デフォルトの名無しさん:皇紀2665/04/01(金) 00:29:06

年賀状もこない淋しい奴
727デフォルトの名無しさん:皇紀2665/04/01(金) 00:32:33
時計も付いてないパソコン使ってるの?
728デフォルトの名無しさん:皇紀2665/04/01(金) 00:34:19
おまえばか?
今日は何月何日だ?

ほんと氏ねよ
729デフォルトの名無しさん:皇紀2665/04/01(金) 00:40:24
プッ すぐ釣れたよ春厨
730デフォルトの名無しさん:皇紀2665/04/01(金) 01:16:05
皇紀2665年ですがいまさら何を?
731デフォルトの名無しさん:皇紀2665/04/01(金) 01:25:13
よくわからない暦をおいときますね。
ヒジュラ紀元後第48周期第16年 Safar月
732デフォルトの名無しさん:皇紀2665/04/01(金) 01:29:21
C#が存在する今、.netが使える環境でC#以外の言語使うやつはウンコ
733デフォルトの名無しさん:皇紀2665/04/01(金) 02:00:48
C++のほうが自由でやりやすくね?
734デフォルトの名無しさん:皇紀2665/04/01(金) 02:02:57
マイクロソフトもC#よりC++/CLIに全力を注ぐらしいよ。
資源が豊富だからっていう理由で。
735デフォルトの名無しさん:皇紀2665/04/01(金) 02:13:22
愚問ですがC#って簡単に言うとC++とどう違うんでしょう
マニュアルらしきものを見てもいまいちよく分からなくて
C++はある程度理解していますがまだ使えるレベルではないので
C#を学習したほうが将来的に有利なのでしょうか
736デフォルトの名無しさん:皇紀2665/04/01(金) 02:24:34
C++のポインタを見えなくし、メモリの管理をプログラマの手から奪い去ったもの。

将来の事なんか分かるか。

クライアントアプリならC++、サーバアプリならそうでないもの。
737デフォルトの名無しさん:皇紀2665/04/01(金) 02:30:50
.NETの世界でやるならC#で十分。
738デフォルトの名無しさん:皇紀2665/04/01(金) 02:31:07
>>735
両方勉強しろ。
739デフォルトの名無しさん:皇紀2665/04/01(金) 02:46:50
>>736 
レスありがとうございます

えっそうなんですか
ポインタがなくなるのはうれしいことですが(頭痛のたねがひとつへります)
速度的にはあまり期待しないほうがいいと解釈していいのですね

例えばC/C++では、文字列の3番目に何回もアクセスしたい時は
文字列アドレス+2バイトのアドレスを変数に持っておいたら
アドレス計算はいらないというのがポインタの利点だと
教わった事がありますけど
C#は添字方式でアドレスをその都度計算すると理解していいのですか...ね
740デフォルトの名無しさん:皇紀2665/04/01(金) 02:50:44
文字列の3番目に何百万回アクセスするんだ?
741デフォルトの名無しさん:皇紀2665/04/01(金) 02:52:01
レスありがとうございます

>>737
.NET買えませんw
貧乏ですので

>>738
できればそうしたいのですがあまり覚えいい方ではないので
楽したいなあってw
742デフォルトの名無しさん:皇紀2665/04/01(金) 03:03:44
>>740
えっと...わかりません。教わった事そのまんまです
743デフォルトの名無しさん:皇紀2665/04/01(金) 03:04:04
だみだこりゃ
744デフォルトの名無しさん:皇紀2665/04/01(金) 03:23:10
>>741
.NET Framework自体は無料なんだが…。
勉強にVSはいらんよ。

以下、チラシの裏。
よく「どれやればいいですか」みたいなこというやついるけど…
手当たり次第やれよ。
C#やっててもP/Invoke周りでC++の知識バリバリに必要だし、
C#でGenericsあたりは関数言語からの流入だし(C++Templateもな)、
C#, C++で正規表現ライブラリはPerlだし、
逆にC#で使われてるような設計論(Frameworkな)が
C++で役に立たないわけでもないし、auto_ptrとかで自動管理
しだしたりしたら、GC周りの知識も役に立つし…。

ま、知識は多いほうがいいのでそれを増やすことに精進しなさいってこった。
745デフォルトの名無しさん:皇紀2665/04/01(金) 04:21:42
>>740
やべ、その表現がツボに入ってワロタ
746sage:皇紀2665/04/01(金) 04:25:06
JavaでEJBとか今までやってきたんだけど、
WEB鯖のASP.NETアプリからDB鯖のADO.NETアプリを
呼ぶような形にしようとしたら、
WEB鯖とDB鯖の間の通信機能ってもしかして作りこみ必要?
EJBとかだと、EJBの仕様の中で通信ロジックが閉じてたんだけど。
(ていうか、EJBをサポートする製品によって違うのかな?)
よさげなサイトあったらおしえてけれ。
747デフォルトの名無しさん:皇紀2665/04/01(金) 04:26:01
すごいsageかたしてしまったよ。
748デフォルトの名無しさん:皇紀2665/04/01(金) 04:32:41
>>744
レスありがとうございます

えっ無料ですか?知らなかった
先入観だけで10万以上するもんだと思って調べもしませんでした

とりあえずC++、C#ともにやってみます
(正直、P/Invoke辺りからちんぷんかんぷんですが...)
749デフォルトの名無しさん:皇紀2665/04/01(金) 05:49:26
そんなあなたに参考リンク。

.NET Framework (無料)
http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&DisplayLang=ja
Windows Updateでもインストール可能。
C#、VB.NETコンパイラ同梱。

.NET SDK (無料)
http://www.microsoft.com/downloads/details.aspx?FamilyID=9b3a2ca6-3647-4070-9f41-a333c6b9181d&displaylang=ja
開発用ツール。

Visual Studio 2005 Express 日本語ベータ版 (無料; 要登録)
http://www.microsoft.com/japan/msdn/vstudio/2005/express/
http://pc8.2ch.net/test/read.cgi/tech/1091543344/
統合開発環境

SharpDevelop (オープンソース)
http://www.icsharpcode.net/OpenSource/SD/
http://sharpdevelop-jp.sourceforge.jp/
http://pc8.2ch.net/test/read.cgi/tech/1023727377/
統合開発環境
750デフォルトの名無しさん:皇紀2665/04/01(金) 08:36:33
751デフォルトの名無しさん:皇紀2665/04/01(金) 11:21:58
C#って死滅する理由がないよね! Part4
http://pc8.2ch.net/test/read.cgi/tech/1042464104/l50

こっちでやれや
752デフォルトの名無しさん:皇紀2665/04/01(金) 14:06:46

あれ・・・C++で.netするときは、C++もC#と同じ手法でリバースかかるんじゃなかったっけ?
.net使う場合は言語関係なく出来上がるのは同じじゃなかったのか・・・・
753デフォルトの名無しさん:皇紀2665/04/01(金) 14:27:36
コントロールの左端の画面上の座標を得るにはどうしたらよいでしょうか?

Locationプロパティの場合、そのコントロールがのっているコンテナの
左端からの相対位置になってしまうのですが、そうではなく
画面上(Windows のデスクトップ)の左端からみてどの位置にいるかを
取得したいのですが方法がわかりません。

やりたい事はテキストボックスでダブルクリックしたら、そのテキスト
ボックスの下に、別のフォームを表示させたい、という事になります。

よろしくお願い致します。
754デフォルトの名無しさん:皇紀2665/04/01(金) 14:28:36
DesktopLocation
755デフォルトの名無しさん:皇紀2665/04/01(金) 14:29:49
PointToScreen
756753:皇紀2665/04/01(金) 14:50:47
>>754
>>755
ありがとうございます。どちらもうまくいきませんでした。
というのは DesktopLocation はフォームの位置が取得できるのですが
コントロールの位置が取得できません。その為、DesktopLocation にて
フォームの位置を取得し、コントロールののっているコンテナ(例えばグループボックス)
の位置を取得し、で最後に自分自身の Location を足せばいいのですが、
できれば位置取得はどのコンテナにのっていても自身のコントロールの
左端の位置を取得したいのです。

PointToScreen もコンテナからの相対位置は取得できるのですが、画面から
の絶対位置をコントロールに対して求められないような気がします。
私のコードに問題があるのかもしれません。

例えば
private void ShowOtherForm(System.Windows.Forms.Textbox tb){
Point pt;
// tb に対して絶対座標をを求める
return pt;
}
のような共通関数にしたいので、コントロールから見た絶対位置を
(どのコンテナにのっているかは関係なく)取得させたいと思っています。

お手数おかけしますが、よろしくお願いします。
757デフォルトの名無しさん:皇紀2665/04/01(金) 15:10:25
>>756
ざっくり単純に言って tb.PointToScreen( new Point(0,0) ) でいいと思うけど・・
758デフォルトの名無しさん:皇紀2665/04/01(金) 15:20:17
質問です。
ListBoxにstringを複数表示して、その中の特定の文字列を選択状態にするコードを書いているのですが、
以下のようなコードを書いてみたところ、どうしてもうまくいきません。どこかおかしな所があるか判定してください。

//引数は、情報一覧、選択されている情報。
public InfoDialog(string[] infos, string[] selectedInfos)
{
this.ListBox1.ScrollAlwaysVisible = true;
this.ListBox1.SelectionMode = SelectionMode.MultiSimple;

//とりあえず、情報一覧を表示
this.ListBox1.Items.AddRange(infos);

//全ての選択されているアイテムに対して
foreach(string selectedInfo in selectedInfos){

//ListBox1から探し出して、選択状態に
if (this.ListBox1.Items.Contains(selectedInfo)){
//TODO:なぜか選択状態にならない。
this.ListBox1.SetSelected(EventBox.Items.IndexOf(selectedInfo), true);
}
}

}

追記。
if文のところに、
else
this.ListBox1.SetSelected(EventBox.Items.IndexOf(selectedInfo), true);
と書いてもなぜかArgumentOutOfRangeExceptionが発生しないので、そのあたりが怪しいと思うのですが…

よろしくお願いします。
759756:皇紀2665/04/01(金) 15:20:54
>>757
ありがとうございます。すみません。単純なフォームなら頂いた方法で
できました。

でも、

FormA > TabControl > FormB > GroupBox > TextBox

のように、親フォームの中にあるタブに、子フォームを表示させた場合、
子フォームの中の TextBox にて PointToScreen で座標を取得すると
どうも、TextBox ののっている GroupBox からの相対座標が
かえってくるようです。。。何か他に行なう必要がありますでしょうか?

御教示のほどお願いします。
760デフォルトの名無しさん:皇紀2665/04/01(金) 15:32:59
>>758
>  this.ListBox1.SetSelected(EventBox.Items.IndexOf(selectedInfo), true);

EventBoxって何よ。別コントロールのインデックス見たって仕方ないじゃん。
761デフォルトの名無しさん:皇紀2665/04/01(金) 15:41:48
あ、すみません。それは書き込み用に書き換えた時のミスです;
そこはListBox1だと思って読んでください・・・
762デフォルトの名無しさん:皇紀2665/04/01(金) 15:59:25
>>758
困った事に普通に選択状態になってしまった。

> なぜかArgumentOutOfRangeExceptionが発生しない
selectedInfos各要素が必ずinfosのどれかに一致するならそもそも回ってくる事がないが。

IndexOfは何を返してるんだ?
既に"hoge"がListBoxに入って且つ選択状態になっていて、
その上で更に"hoge"をinfos&selectedInfosの要素として与えたとか?
763デフォルトの名無しさん:皇紀2665/04/01(金) 16:10:18
IndexOfは、指定したobjectがListBoxのいくつめに入っているかを返すメソッドだそうです。
また、ListBoxに先に値が入っていることはありません。

なんでならないんだろうなぁ。もうちょっといじってみます。
ありがとうございました。
764デフォルトの名無しさん:皇紀2665/04/01(金) 16:14:51
>>763
this.ListBox1.SetSelected(-1, true);
これって ArgumentOutOfRangeException 出るんだっけ?
765758=761=763:皇紀2665/04/01(金) 16:26:27
>>764
はい。SetSelectedの引数は、0から始まるインデックス番号、との事なので、出ると思うのですが・・・

>>762さん、もしまだいらっしゃったら、どのようにしたら選択できたか教えていただけないでしょうか?
新しいプロジェクトを作り、Form1.csに以下のメソッドを作成して、コンストラクタで呼んでみたところ、やはり選択されませんでした。

private void a() {
ListBox listBox1 = new ListBox();
listBox1.Size = new System.Drawing.Size(200, 100);
listBox1.Location = new System.Drawing.Point(10,10);
listBox1.ScrollAlwaysVisible = true;
listBox1.SelectionMode = SelectionMode.MultiSimple;
this.Controls.Add(listBox1);

string[] infos = new string[]{"test1", "test2", "なんでだろう?", "なんでだろう2"};
string[] selectedInfos = new string[]{"test1", "なんでだろう?"};

//とりあえず、情報一覧を表示
listBox1.Items.AddRange(infos);

//全ての選択されているアイテムに対して
foreach(string selectedInfo in selectedInfos){
//ListBox1から探し出して、選択状態に
if (listBox1.Items.Contains(selectedInfo)){
//TODO:なぜか選択状態にならない。
listBox1.SetSelected(listBox1.Items.IndexOf(selectedInfo), true);
}
}
}
766デフォルトの名無しさん:皇紀2665/04/01(金) 16:29:32
selectedInfosが本当にinfos内にあるのか、別のlistBox使うとかして
printデバッグしてみたら?
767758=761=763:皇紀2665/04/01(金) 16:30:12
ちなみに、if文の中でWriteLineで適当な文章を吐き出させたところ、それはうまくいっているので、分岐が行ってないって事はないみたいです。
たびたびすみません。
768758=761=763:皇紀2665/04/01(金) 16:32:15
>>766
入れ違いになってしまいました。
試してみましたが、とりあえず、それは大丈夫なようです。
769デフォルトの名無しさん:皇紀2665/04/01(金) 16:34:03
おや、コンストラクタじゃダメだね。
まだFormのハンドルが作られてないからかな。
Loadイベントでやりな。
770デフォルトの名無しさん:皇紀2665/04/01(金) 16:36:41
俺もClickイベントで呼んだら選択してたよ
771758=761=763:皇紀2665/04/01(金) 16:37:43
ありがとうございます、上記のテストプロジェクトではうまく表示できました!
これから、元の方でも試してみたいと思います。

コンストラクタの理解が足りなかったようです。
勉強になりました!
重ね重ね、ありがとうございました。
772デフォルトの名無しさん:皇紀2665/04/01(金) 17:00:19
このスレって問題が解決すると止まるな。
773デフォルトの名無しさん:皇紀2665/04/01(金) 17:01:30
相談室ですから
774デフォルトの名無しさん:皇紀2665/04/01(金) 18:14:48
どのタブページ上でクリックされたか知る方法はないですか?

右クリックでコンテキストメニューが出たときに、このタブページを閉じるってやつがやりたいんですが。
775デフォルトの名無しさん:皇紀2665/04/01(金) 18:23:49
>>774
どうやるんだったかな〜

『このタブ閉じる』 の時に選択されているタブを閉じるとか
あとは、クリックされた座標から該当するタブを割り出すとか
776デフォルトの名無しさん:皇紀2665/04/01(金) 19:24:31
ComboBoxのTextChangedイベントでthis.Textを参照すると、
今入力された文字じゃなくて、その前の状態の文字列が返ってくる・・・。
777デフォルトの名無しさん:int 2ch =05/04/01(金) 20:59:28
ググると色々出てきますが、シリアル通信してる人って何使ってますか?

.netでシリアル通信〜にでてたserialport(Formに貼り付ける奴)と
MSCOMMは試しましたが、感覚的にはserialportの方が使いやすいかな?
って感じでした。(独断)

で、みなさんはどんなのつかってますか?
778デフォルトの名無しさん:int 2ch =05/04/01(金) 22:27:48
PocketPC(.NET Compact Framework)
でクリップボード操作するにはどうしたらいい?
テキストボックスから文字列をコピーやペーストしたいんだけど。
779デフォルトの名無しさん:int 2ch =05/04/01(金) 22:44:02
>>778
フレームワークでサポートされてなかったらP/InvokeでAPI操作だろう。
ここが何かの参考になるかも知れない。
ttp://bbs.wince.ne.jp/ch1/mqbbs.cgi?UMODE=BETA2&FILE=bbs.log.38
あ、テキストボックスならWM_COPYとかWM_PASTEとかでいけるのか?
あれ、でも.NET1.1じゃHandleプロパティが未サポート?
780デフォルトの名無しさん :int 2ch =05/04/01(金) 22:47:38
WEBサービスを使ってoracle10gに接続しています。
しかし、
OracleConnection cn = new OracleConnection();

の行で

「オブジェクト参照がオブジェクト インスタンスに設定されていません。」
のエラーが出てしまいました。
どうしたらいいでしょうか?
781デフォルトの名無しさん:int 2ch =05/04/01(金) 23:05:27
Web上の画像をPictureBoxに表示させたいのですが皆さんはどのようにコーディングしてますか?
782デフォルトの名無しさん:int 2ch =05/04/01(金) 23:09:49
1:HttpWebRequest 使ってダウンロード
2:表示

の手順
……どうでも良いけど、int 2ch = だとエラー起きるからこの板的には int _2ch = の方が良いのではとおもた
783デフォルトの名無しさん:int 2ch =05/04/01(金) 23:11:03
難しいことは良くわからんが・・・
ロングホーンに.NET Frameworkが標準搭載なら
C#を配布しやすくなるということかな?
わざわざLinuxでc#を使うプロジェクトもあることだし、
普及していくんじゃない?
784デフォルトの名無しさん:int 2ch =05/04/01(金) 23:12:46
オブジェクト参照にオブジェクト インスタンスを設定すればいいだけでは?
785デフォルトの名無しさん:int 2ch =05/04/01(金) 23:16:56
>>783
最近買った DELL の PC (XPSP2) には最初から入ってました
Win32API がそろそろ限界だから、代替品を .NET Framework に求めて、
ついでに win がこのまま主流を保つならば、普及せざるを得ないと思う

……何年かかるかは分からんが
786デフォルトの名無しさん :int 2ch =05/04/01(金) 23:35:14
>>780
オラクルの設定 (DB名とか)再確認
IISの設定 アプリケーションの登録など
787デフォルトの名無しさん:int 2ch =05/04/02(土) 01:18:46
ファイルを読み込んでHexで表示したいのですが(みるだけバイナリエディタみたいな感じに)
とりあえずテスト用に以下のコードを書いたのですが、
using(FileStream fs = new FileStream(this.openFileDialog1.FileName,FileMode.Open))
{
fs.Read(b,0,99999);
}
for(int i = 0 ; i < 99 ; i++)
{
this.textBox1.Text += b[i];
}
がTextBoxに16進数でひょうじさせるにはどうしたらいいでしょうか?
そのままだと10進数に直されてしまいます。
788デフォルトの名無しさん:int 2ch =05/04/02(土) 01:22:17
ToString("X2")
789787:int 2ch =05/04/02(土) 01:45:27
多謝。
X2ってなんだよーって感じなのでぐぐってきます。
790デフォルトの名無しさん:int 2ch =05/04/02(土) 07:23:26
C#を始めて1ケ月くらいの初心者ですが
MFCにくらべて洗練された.NETFWのメッセージ処理など気に入ってます。

ところで、皆さんは.NETFramewarkのリファレンスは何をお使いでしょうか?
私のPCは古くて立ち上がるのが遅いので、勉強したりするときのために
紙の媒体が欲しいなと思ってたのですが、
先日送られてきた日経BPのカタログに載っていた、公式リファレンスの
約30冊構成、20万円弱の価格に驚愕してしまいました。。
公式のは貧乏人の私にはとても手が出せないのですが、他に紙の媒体で
5冊ぐらいまでの構成で何か手頃なのはありませんでしょうか? 
791デフォルトの名無しさん:int 2ch =05/04/02(土) 09:02:01
素直にMSDN使っておけ
紙で持ってたっていいことないぞ。5冊で済むわけないしな

起動が遅いなら、本買うお金でPC強化汁
792デフォルトの名無しさん:int 2ch =05/04/02(土) 12:05:16
> MFCにくらべて洗練された.NETFWのメッセージ処理
ってなに?
793デフォルトの名無しさん:int 2ch =05/04/02(土) 13:57:23
20万出して本買うくらいなら、新しいPC買ったほうが絶対によいよな。
794デフォルトの名無しさん:int 2ch =05/04/02(土) 14:14:57
新しいPC買っても解決しないけどな
795デフォルトの名無しさん:int 2ch =5,2005/04/02(土) 14:45:56
紙の媒体を買う理由が「古くて立ち上がるのが遅い」というのであれば解決策の1つだとおもうけど。
796デフォルトの名無しさん:int 2ch =5年,2005/04/02(土) 16:19:28
オンラインのMSDNライブラリの重さは救いがたいよな。
ms-help:// でローカルのを開くのは我慢できるけど。
797デフォルトの名無しさん:int 2ch =5年,2005/04/02(土) 16:21:32
MSDN2の方は場合によってローカルのより早かったりするけれどなw
798デフォルトの名無しさん:int 2ch =5年,2005/04/02(土) 17:10:50
マウスカーソルの左下にツールチップを表示したいんですが
どうやったらいいですか?
799デフォルトの名無しさん:2005/04/02(土) 17:11:32
ツールチップを表示させるのか、ポップアップウィンドウを表示させるのか
800デフォルトの名無しさん:2005/04/02(土) 17:35:38
TextBoxのようなクラスを自作しようと思っています。
そこでGDI+でDrawStringメソッドを利用して描画することまで
解りました。しかし、画面に入りきらない文字列に関してはスクロール処理
をしたいのですが、どのように行えばいいのでしょうか?
 いつもはトランザクション制御とかそんな事ばかりやっていて描画系統は
初心者です。よろしくお願い足マス。
801デフォルトの名無しさん:2005/04/02(土) 17:53:02
トランザクションがどういうのか気にならなくも無いけど、

・スクロールバー貼り付けて最上位の行数決定
・その行数から下に向かって、はみ出るまで描画

でいいんちゃう?自作したこと無いけど
802デフォルトの名無しさん:2005/04/02(土) 18:03:29
なるほど、その辺はわかるのですが具体的にどうやって作るのですか?
サンプルが欲しいと思っています。
メインがenterprise system構築に伴う開発なので全然グラフィック関係など
解らないことを言いたかっただけです。
803デフォルトの名無しさん:2005/04/02(土) 18:15:57
ほう、enterprise system構築に伴う開発をするにはヘルプを読んだりぐぐったりする能力は必要ないと。
804デフォルトの名無しさん:2005/04/02(土) 18:21:50
>>800はJava厨。
805デフォルトの名無しさん:2005/04/02(土) 19:01:54
>>800
…まさか本当のTextBoxみたいに、
入力できたりとかスクロールバーで自由に移動したり
まで要求してるわけじゃないよな?

そうだったら、それはもうサンプルとかのレベルで
書けるもんじゃないのでオープンソースのテキストエディタ
あたりを参考にしれ。

ttp://sourceforge.net/projects/sharpedit
この辺が有名?
806デフォルトの名無しさん:2005/04/02(土) 19:21:43
>>805さんどうもすいません。
このソースを参考にがんばってみようと思います。いろいろありがとう
ございました。ソース見る限りそんなに難しいことはないようで助かりました。
807デフォルトの名無しさん:2005/04/02(土) 20:31:36
GoogleDeskbarみたいに
自分の作ったアプリケーションをタスクバーに登録するにはどうしたらいいですか?
808デフォルトの名無しさん:2005/04/02(土) 20:44:26
全部読んだけど、sharpeditってSharpDevelopのエディタ部分DLL化して
利用してるだけだな。
809デフォルトの名無しさん:2005/04/02(土) 21:31:39
くだらない質問なんですが

VisualStudioがcscに渡しているコマンドラインを確認するにはどうすればいいでしょうか?
C++の場合は、プロジェクトのプロパティにあるんですが・・・
810デフォルトの名無しさん:2005/04/02(土) 22:41:01
プロパティの使い方がよくわかりません。
getもsetもする場合、プロパティを使った方がいいのか、
publicな変数にしたほうがいいのか、それとも何かの基準で使い分けるのでしょうか?
811デフォルトの名無しさん:2005/04/02(土) 22:46:08
まあプロパティに統一しとけ。

初めはパブリックフィールドにしといてあとで必要に応じてプロパティに、と言う手法もあるが、
あとでリフレクション使おうとした時に面倒だ。
812デフォルトの名無しさん:2005/04/02(土) 22:56:59
了解です。
即レスありがとうございます。
813デフォルトの名無しさん:2005/04/02(土) 23:06:17
VS.NETのテキストエディタっていえば・・質問に優しく親切・・スレでこんな質問してるヤシがいるぞ

47 :デフォルトの名無しさん :皇紀2665/04/01(金) 15:07:35
VS.NET2003のテキストエディタのフォントをCenturyとかにすると日本語が大きなサイズになってしまいます。
英文字はCenturyで日本語はMS Pゴシックにする設定はありますか?
814デフォルトの名無しさん:2005/04/02(土) 23:26:20
FontLinkで
815デフォルトの名無しさん:2005/04/03(日) 00:56:18
C++Builderを使ったことがある人がいたら教えてください
BCBのStringGridみたいなコンポーネントが欲しくなるとき無いですか?

そういうときはどうしています?
816デフォルトの名無しさん:2005/04/03(日) 03:02:30
>>815
DataGridで我慢するとか、
http://www.grapecity.com/japan/support/database/P7_302.htm
金を出すとか、Delphiには標準で付いてた気がするが。
http://www.codeproject.com/cs/miscctrl/#Grid+controls
こっちのを使うとか。SourceGridあたり少し修正すれば使えそうでなかなか良さそう。
817デフォルトの名無しさん:2005/04/03(日) 07:24:24
Visual C# を買うとCDが数枚あって面倒なのでDVD化したいのですが、
どこか参考になるところや、DVD化の方法がわかる方いたら
お願いします。
818デフォルトの名無しさん:2005/04/03(日) 07:30:25
何十回もインストールするもんじゃなし、方法を探して実行する方がよほど面倒だと思う。
819デフォルトの名無しさん:2005/04/03(日) 07:49:31
すべてを否定したね
820デフォルトの名無しさん:2005/04/03(日) 11:59:41
CD-ROMのreadme.htmlを読まずに書き込む817がいるスレはここですか?
821デフォルトの名無しさん:2005/04/03(日) 13:17:29
>>817
最初からDVDのがあった気がするが。
822デフォルトの名無しさん:2005/04/03(日) 14:00:32
MSDN サブスクリプションでDVD版も落とせるよ。
823デフォルトの名無しさん:2005/04/03(日) 16:55:28
.Net 2.0のSystem.Windows.Forms.WebBrowserで
Proxyを指定してブラウズする方法について教えてください。

HttpWebRequest httpRec = (HttpWebRequest)WebRequest.Create( "http://www.yahoo.co.jp" );
httpRec.Proxy = new WebProxy( "localhost", 8080 );

HttpWebResponse httpRes = (HttpWebResponse)httpRec.GetResponse();
this.webBrowser1.DocumentStream = httpRes.GetResponseStream();

上記のように表示させると、トップページのHTMLはProxy経由でアクセスするのですが、
<img>タグなどからリンクされているものに関してはProxyが適用できません。

また、上記の方法での表示ではWebBrowser.Urlに現在のUrlが入らない(空のまま)ため、
相対パスのリンクを踏むと about:blank/hoge/hoge のようなアドレスが返されてしまい、
正常にリンク先に飛ぶことができません。(しかしUrlプロパティにアドレスを入れてしまうと、
WebBrowserがProxy無しで勝手に通信し始めてしまう)
824デフォルトの名無しさん:2005/04/03(日) 18:06:35
むり。
825823:2005/04/03(日) 21:40:31
そんなこと言わずに。
826デフォルトの名無しさん:2005/04/03(日) 21:41:38
無理
827823:2005/04/03(日) 21:49:14
そこを何とか。
828デフォルトの名無しさん:2005/04/03(日) 22:30:50
DocumentStreamに直接流し込まず、imgタグのsrc属性を加工してローカルPC上の画像を読みに行くようにする。
モチロン画像はHTMLを解析して自前でリクエスト投げる。

それがイヤならインターネットオプションの設定を一時的に変更するしかないんじゃないかな。
829デフォルトの名無しさん:2005/04/03(日) 22:41:10
>>800
http://www.grapecity.com/japan/support/database/P7_302.htm
ダウンロードしてサンプル動かしてみました。

さすがに7万もするコンポーネントだけはありそうですね。

このレベルだと普通の人には作れないようなかんじです。
ってあたりまえか、7万もするだからw
830823:2005/04/03(日) 22:56:40
>>828
oh my god.
諦められそうですよ。

IEコンポ使ってるタブブラウザとかは、
この辺の処理どうやってるんだろう。
System.Windows.Forms.WebBrowserって
axWebBrowserのラッパーの筈だよね。
831デフォルトの名無しさん:2005/04/03(日) 23:08:22
普通>>828の方法だと思うが
832デフォルトの名無しさん:2005/04/04(月) 00:10:48
>>830-831
IEコンポなら普通はAPIですよ。InternetSetOption()だったかな。
833デフォルトの名無しさん:2005/04/04(月) 00:14:45
要するにインターネットオプションを直でいじると。
834832:2005/04/04(月) 00:22:36
>>833
インターネットオプションではなく、プロセス毎の設定が変えられたはずです。
もう寝ますけど。おやすみなさい。
835823:2005/04/04(月) 10:28:08
>>832
ありがとう。確かにこれ使うとできそう。
http://nienie.com/~masapico/api_InternetSetOption.html

でも結局Win32に逆戻り…。2.0のWebBrowserはCOMのaxWebBrowserより
更にしょぼくなってるね。簡単って言えば、簡単なのかもしれないけど。

本当にこんなのがメインのAPIになっていくのだろうか…orz
836デフォルトの名無しさん:2005/04/04(月) 12:20:58
特定のファイルを実行する方法を探しております。
ネット上で検索するとプロセススタートなどがひっかかりますが
こちらが作成した任意のファイル(テキストやエクセルファイル等)を
実行させる方法が見つかりません。
どのコードを使用すればよいのかいまいちわかりません。
任意のファイルを実行するにはどのようにすればよいのでしょうか?
837デフォルトの名無しさん:2005/04/04(月) 12:25:19
>>836
System.Diagnostics.Process.Start
838836:2005/04/04(月) 13:52:19
>>837
ありがとうございます。

System.Diagnostics.Process.Start("notepad","c:\\hello.txt");

とすることで実行できました。
多少カッコ悪いですが実行できたので良しとします。
もっとシンプルに出来そうな気もしますが・・・まだそこまでのスキルがないので
今後の宿題にしたいと思います。

ありがとうございました。
839デフォルトの名無しさん:2005/04/04(月) 13:56:48
え? Process.Start("hoge.txt")で関連づけられたので起動するだろ?
840デフォルトの名無しさん:2005/04/04(月) 14:10:49
いま出先だから確認できないけど
どっちでもOKだと思う。
軽いとか重いとかどちらがいいかは俺にはまだわからんけど。
841デフォルトの名無しさん:2005/04/04(月) 14:29:21
2回目以降がうまく変わらない orz

[DllImport("urlmon.dll", CharSet=CharSet.Ansi)]
private static extern int UrlMkSetSessionOption(
    int dwOption, string pBuffer, int dwBufferLength, int dwReserved);
private const int URLMON_OPTION_USERAGENT = 0x10000001;

private void button1_Click(object sender, System.EventArgs e){
    UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, textBox1.Text, textBox1.Text.Length, 0);
    if(true){//WebBrowserコントロールを再作成
        panel1.Controls.Remove(axWebBrowser1);
        axWebBrowser1.Dispose();
        axWebBrowser1 = new AxSHDocVw.AxWebBrowser();
        axWebBrowser1.Dock = DockStyle.Fill;
        panel1.Controls.Add(axWebBrowser1);
    }
    axWebBrowser1.Navigate("h" + "ttp://www.ugtop.com/spill.shtml");
}
private void button2_Click(object sender, System.EventArgs e){
    axWebBrowser1.Navigate("javascript:alert(window.navigator.userAgent)");
}
842デフォルトの名無しさん:2005/04/04(月) 16:16:48
Paintイベントで
e.Grahpics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None ;
e.Grahpics.DrawImage( image , x , y , w , h ) ;
として描画しているのですが、画像がスムースになってしまいます(ドットがクッキリにならない)
どう設定すればドットがクッキリした画像を表示できるようになるか知っている人教えてください。
image は Bitmap クラスのインスタンスです。
843デフォルトの名無しさん:2005/04/04(月) 16:50:53
844デフォルトの名無しさん:2005/04/04(月) 21:35:28
どこで聞けばいいのかわからないのですが
とりあえず C# ということで

利用ソフト:Sharp Develop

タブコントロールで、選択状態に関わらず
必ずコントロールを表示するにはどうすればいいのでしょう?
単純にタブ切り替えの見た目だけを利用したいのです

C++Builderでいう、タブコントロールです
845デフォルトの名無しさん:2005/04/04(月) 21:58:14
>>841
C#あんまり関係無いと思いますよ。
適所は無いのかな。
846デフォルトの名無しさん:2005/04/04(月) 23:06:09
動的に配列のお尻にデータを追加したいのですが、どのようにすればいいでしょうか?
イメージはPerlのpushです。
よろしくおながいします。
847デフォルトの名無しさん:2005/04/04(月) 23:07:57
初めからArrayListを使えと。
848846:2005/04/04(月) 23:12:32
ArrayListがありましたか。。。スマソ_| ̄|○
>>847
サソクスです。
849デフォルトの名無しさん:2005/04/05(火) 00:23:13
非同期デリゲートのBeginInvokeで非同期実行してる時に
現在の非同期実行をやめさせる方法ってどうすればよいのでしょうか?
ThreadStart ts = new ThreadStart(method);
IAsyncResult ar = ts.BeginInvoke(null,null);
while(!ar.IsCompleted && _isAlive){
    Thread.Sleep(1000);
}
のようにポーリングを使ってとめたい時に_isAliveをfalseにする方法ならできたのですが
WaitHandleを使う方法があったらその方がよいのかな.と思うのですが
850844:2005/04/05(火) 00:42:59
>>844
とりあえずは、タブのページ毎に
コントロール委追加することで対処

これが正しいかどうかはわからないが
C#歴3日の俺にあったスレがほすぃ
851デフォルトの名無しさん:2005/04/05(火) 01:28:19
初歩的なことで申し訳ないが、
P/Invokeを使った際に、ポインタのポインタとはどのように処理すればいいんだろうか?
自分は無理矢理unsafeでポインター使いまくりで解決できると思ったんだが
どうもうまくいってない模様。

意見求む。
852デフォルトの名無しさん:2005/04/05(火) 01:53:10
Invokeでデリゲートを渡して処理をメインスレッドから分岐するのと
Threadを起してインスレッドから分岐するのではどう違うの?

どちらでも良さげだが・・・
853デフォルトの名無しさん:2005/04/05(火) 01:58:30
RictTextBoxにBOMつきのUTF8データ表示させようとすると
先頭の1文字目の表示がおかしくなるのはなぜなのでしょうか?
854デフォルトの名無しさん:2005/04/05(火) 02:00:09
Invokeでデリゲートを渡して処理をメインスレッドから分岐するのと
Threadを起してインスレッドから分岐するのではどう違うの?

どちらでも良さげだが・・・
855デフォルトの名無しさん:2005/04/05(火) 02:15:45
>>850
俺も最近VB→VB.NET(変更点を学んだだけ)→C#に乗り換えたので
そういうスレほしい。開発環境はSharp Develop使ってる。
856デフォルトの名無しさん:2005/04/05(火) 02:26:15
>>853
UTF8EncodingクラスにBOMの解析能力がないから。
StreamReaderはできてるって?
StreamReader内のメソッドがBOMコードを静的に埋め込んでチェックしてるのさ。有り得ない事に。
857デフォルトの名無しさん:2005/04/05(火) 02:57:32
>>855
ふらっとC♯(Part5)
http://pc8.2ch.net/test/read.cgi/tech/1065196964/

こことか。
858デフォルトの名無しさん:2005/04/05(火) 03:39:52
>>851
http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpconpassingstructures.asp
あたりかな
ドキュメントの「アンマネージ DLL 関数の処理」とか「相互運用マーシャリング」を
一通り呼んでみるといい感じ
859デフォルトの名無しさん:2005/04/05(火) 20:45:45
.net2.0では下記のような処理で
System.InvalidOperationExceptionが発生します。

スレッド内から別のコントロールを弄っちゃいけませんよ、
というような理由なのはわかったのですが、
これの代替となる処理はどう記述すればよいのでしょうか?

public class TestForm : System.Windows.Forms.Form {

  public TestForm() {
  }

  private void CreateThread() {
    Thread T = new Thread( new ThreadStart( ThreadTest ) );
    T.Start;
  }

  private void ThreadTest() {
    this.Controls.Add( new Button() );
  }

}
860デフォルトの名無しさん:2005/04/05(火) 20:55:49
>>859
今まで(.NET1.0/1.1で)別スレッドからコントロールをいじってたのか?

Invoke/BeginInvokeを使う。
861デフォルトの名無しさん:2005/04/05(火) 22:00:16
データバインディングが MS Access 並に使いやすくなって、
コントロールも機能強化されれば、.NET + C# 最強なんだけどなぁ・・・
862デフォルトの名無しさん:2005/04/05(火) 23:14:19
>>860
delegateとInvokeで少しお行儀良く別スレッドのコントロールを触ることができました。
ありがとうございます。
863デフォルトの名無しさん :2005/04/05(火) 23:28:17
IISの設定が悪くてオラクルがうまくうごかないです。
WEBサーバーからメソッドを呼び出してoracleconnection()をnewするとオブジェクト参照エラーになってしまいます。
864デフォルトの名無しさん:2005/04/05(火) 23:41:15
独自ユーザーコントロールを作る時に
Baseクラスとしてabstractで共通処理を書いたのですが
サブクラスをデザイナーで編集しようとすると、できなくなってしまいました。
Baseクラスをabstractで実装するのは無理なのでしょうか?
865デフォルトの名無しさん:2005/04/06(水) 00:25:08
>>861
Forms 2.0 からそんな感じの機能が強化されてた気が
866デフォルトの名無しさん:2005/04/06(水) 00:54:24
いつも思うんだがInvokeって最低だよな、まったく誰だよこんな設計にしたアホチンは
867デフォルトの名無しさん:2005/04/06(水) 01:17:40
Windowsの制限なのは確かだな。
他のOSのウィンドウシステムはどうなんだろ。
JavaもGUI部品操作は単一スレッドを強制するらしいけど。
868デフォルトの名無しさん:2005/04/06(水) 01:19:59
ListBoxをマルチカラムで表示させたいのですが、
どうやったらデフォルトの単一カラムからマルチカラムにきりかえれるんでしょうか。
869デフォルトの名無しさん:2005/04/06(水) 01:29:20
>>868
ListViewにしたら
870デフォルトの名無しさん:2005/04/06(水) 01:36:35
どうしてもListBoxじゃなきゃやだというのなら、
一度プロパティに一通り目を通せ。
871デフォルトの名無しさん:2005/04/06(水) 04:08:20
AutoScaleBaseSizeって何のために使うんだ?
ぐぐると5,12と5,13の二パターンが出てくるが、どっちが正しいのかもよく分からん。
872デフォルトの名無しさん:2005/04/06(水) 09:24:20
>>864
俺も今ちょうど同じ症状が出た。どうしたもんかね。
873デフォルトの名無しさん:2005/04/06(水) 10:19:41
技術的に可能なのか?の質問です。

ブラウザ(IEorネスケ)からWebサーバへ要求を出し、サーバは独自のMIMEタイプのデータを
ブラウザへ応答します。
サーバからの応答を受信したブラウザはMIMEタイプを認識し、
独自のアプリケーション(以下独自AP)を起動します(コンソールアプリ)。
いわゆるヘルパーアプリケーションです。
次に独自APは任意の処理をした後に結果をサーバへ送信します。
この時サーバへ接続しようとする際に独自APから「呼び出し元ブラウザを介して」サーバへ
要求を送りつけることはC#で可能なのでしょうか?
このブラウザがブラウザコントロールで作られたものであるならば可能だとは思っていますが
ん〜任意に開かれたブラウザを制御するのは無理そう。。。
874デフォルトの名無しさん:2005/04/06(水) 11:27:46
Local ProxyというかGatewayというか、
そんな感にネットワークを監視するタイプのアプリとフックで……できるようなできないような。

まぁ、とりあえず.netだけじゃ無理ぽ。
875デフォルトの名無しさん:2005/04/06(水) 11:58:25
めっちゃでかいXMLからいろいろ値を取り出すのに
XPathDocumentとXMLDocumentってどっちが速い?
876デフォルトの名無しさん:2005/04/06(水) 11:59:23
自分で試せよ。
877デフォルトの名無しさん:2005/04/06(水) 12:09:29
やっぱ XmlTextReader っしょ
878デフォルトの名無しさん:2005/04/06(水) 12:18:03
XmlDocumentで開くと、そのXMLのサイズ分 + αメモリ喰うよ。
1Gのファイルを云々ってのは大袈裟だけど。
879デフォルトの名無しさん:2005/04/06(水) 13:05:43
ここを http://www.microsoft.com/japan/msdn/thisweek/step7/remoting/build_clientApps.aspx
みながら、分散処理の実装実験をしているのですけど、
VB知らないので、きっとこうに違いないという思い込みでコードの移植をしています。
Step7.MyRemoting.EmployeeFactory を参照するとこでエラーになります。
当然の結果のような気がするのですが、C#の場合クラスの存在をなんだかの形でコンパイラに通知しておく必要がありそうな気がしています。
どうすれば動くようになるか教えていただけませんか?

C#のサンプルも付けて欲しい……>MS
880デフォルトの名無しさん:2005/04/06(水) 13:07:38
案の定エラーの内容は書かないと。
881デフォルトの名無しさん:2005/04/06(水) 13:08:39
>>880
ども、宣言が見つからないエラーです。
882デフォルトの名無しさん:2005/04/06(水) 13:10:29
詳しく知りたければ自分で書いて確認してみろって事ですか?
883デフォルトの名無しさん:2005/04/06(水) 13:14:37
>>882
書くというか、このページをさらっと読んでみてもらえれば分りますが、
System.Runtime.Remoting.RemotingConfiguration.ConfigureかApp.Config
(どちらも内容良く分からないです)
で接続するための多分クラスを作るなり、なんなりしていると思うのです。
ただ、プログラムにはStep7.MyRemoting.EmployeeFactory を宣言している場所は無いので
エラーは当然だと思うのです。
884デフォルトの名無しさん:2005/04/06(水) 13:19:46
>>883
Step1を読み返せ。
885デフォルトの名無しさん:2005/04/06(水) 13:25:43
>>884
ひょっとしてStep7シリーズって1-7まであるんでしょうか?
すんません、Step1って何処にあります?

一番最初の項目であれば、アトリビュートは一応付けたし・・・
さっぱり分らないです。
886デフォルトの名無しさん:2005/04/06(水) 13:26:18
コンパイル通んないのか、実行時にこけるのか、それすら書いてないんだな
887デフォルトの名無しさん:2005/04/06(水) 13:28:35
コンパイルタイムです
888デフォルトの名無しさん:2005/04/06(水) 13:30:02
>「その 1 : リモート処理で利用できる型の作成」および
>「その 2 : リモート処理が可能な型の作成」で作成したソリューションを開きます。
>このソリューションに、新しいプロジェクトを追加します。
>手順は、 [ソリューションエクスプローラ] で、[ソリューション]を右クリックし、
>[追加]−[新しいプロジェクト]メニューをクリックすると、
>以下の [新しいプロジェクトの追加] ダイアログボックスが表示されます。
889デフォルトの名無しさん:2005/04/06(水) 13:33:58
もちろん全て同一ソリューションで開発しています。
890デフォルトの名無しさん:2005/04/06(水) 13:39:03
は?
その2:リモート処理が可能な型の作成はどこに行った?
Step5は?

どこでなにが起こってるのかさっぱり掴めない。
891デフォルトの名無しさん:2005/04/06(水) 13:48:00
なにしも自分も分ってないので・・・
Step5ってどれですか?
892デフォルトの名無しさん:2005/04/06(水) 13:48:37
なにしろ自分も分ってないので・・・
Step5ってどれですか?
893デフォルトの名無しさん:2005/04/06(水) 13:48:49
後出し祭りだな
894デフォルトの名無しさん:2005/04/06(水) 13:50:01
自分が参照してるページも見えない人がいるスレはここですか?
895デフォルトの名無しさん:2005/04/06(水) 13:55:08
説明まったく分りません、とりあえずヘルプ見ながら頑張ります、どもすみませんね。
896デフォルトの名無しさん:2005/04/06(水) 13:58:03
>>884 >>888
と言う流れでStepが何を指してるかなんかすぐ分かると思うんだが……。
あれか、春って事か。
897デフォルトの名無しさん:2005/04/06(水) 13:59:30
>>896
そのベージの説明をみて分らないから質問してるのでは?
898デフォルトの名無しさん:2005/04/06(水) 14:07:40
ならやったことを箇条書きで書いていくぐらいの事をして貰わないとな。
今のところ[参照の追加]ダイアログを出したかどうかすら定かじゃない。
899デフォルトの名無しさん:2005/04/06(水) 14:17:42
一応書いておきますとして有ります。
しかし関係なのでは、Step7.HostApplication に参照を追加しても Step7.RemotingClient 側とは無関係ですし、
これを参照すると、リモート処理ではなく自前処理になってしまうような気がします。
900デフォルトの名無しさん:2005/04/06(水) 14:25:37
>>899
ならStep7.ClientApplicationにもStep7.MyRemotingへの参照を追加すれば良いんでない?
901デフォルトの名無しさん:2005/04/06(水) 14:27:27
>>900
自前ではなくリモート処理にしたいのですが・・・
902デフォルトの名無しさん:2005/04/06(水) 14:32:54
参照の追加を勘違いしてないか。
ていうかしてる。
いいから参照を追加して実際にプロセス間通信してみな。
903デフォルトの名無しさん:2005/04/06(水) 14:44:48
もうDataSet渡しておけばいいじゃん。
904デフォルトの名無しさん:2005/04/06(水) 14:57:57
セットアッププロジェクトで作った拡張子がmsiのインストーラーを、.netのランタイムが
入ってない環境の人に渡しても、ちゃんとインストールできますか?
あらかじめランタイムをインストールしておくように言わないとだめ?
905デフォルトの名無しさん:2005/04/06(水) 15:00:06
906デフォルトの名無しさん:2005/04/06(水) 15:33:24
アホな質問かもしれませんが
初めて1週間の私にアドバイスいただければと思います。
しょぼいアプリを作ったのですが
実行時にタスクバーに表示されるのではなく
タスクバー右にある時計の横の
小さなアイコンとして表示されるようにしたいのですが
どのあたりの関数もしくは設定を使うのでしょうか?
907デフォルトの名無しさん:2005/04/06(水) 15:36:21
908デフォルトの名無しさん:2005/04/06(水) 15:39:43
2次元のハッシュテーブルを作る事はできませんか?

Console.WriteLine(hashTable[key1][key2].ToString());

のように key1 をもつ中で、さらに key2 をもつ値を管理したいのですが、
他によい方法などあればアドバイスお願いします。

例えば key1 は日付、Key2 は個人ID のような場合、
ある日付の中のある個人ID に設定されている値を読みたい、とか
そのような感じになります。よろしくお願いします。
909デフォルトの名無しさん:2005/04/06(水) 15:45:43
>>908
keyをstring.Format("{0}{}1}", date, id)
910デフォルトの名無しさん:2005/04/06(水) 15:47:34
キーを、日付とIDをメンバに持つ構造体にするとか。
二重ハッシュテーブルにするとか。
なんとなくデータテーブルで保持した方が良いもののような気がするが。
911デフォルトの名無しさん:2005/04/06(水) 16:27:18
class HashHash : DictionaryBase{
    public HashTable this[object key1] {get{略}}
}
912デフォルトの名無しさん:2005/04/06(水) 16:30:51
906の質問と被るかもしれませんが
起動したときにアイコンのみ表示させて
タスクバーには起動してないようにしたいのですが
どうすればよいでしょうか?
913デフォルトの名無しさん:2005/04/06(水) 16:35:39
FormのShowInTaskBarをfalseして、NotifyIconを貼る。
914デフォルトの名無しさん:2005/04/06(水) 16:36:06
ウィンドウ無しで起動したいって事?
TrayIcon管理クラスを作って、Mainメソッドでそれをインスタンス化してからApplication.Run();
915デフォルトの名無しさん:2005/04/06(水) 18:27:11
スプラッシュウィンドウを表示させる
これ逆転の発想
916デフォルトの名無しさん:2005/04/06(水) 21:33:10
参照型の値、例えば自前で作った class の内容を
コピー(参照のコピーではなくて、値のコピー)を行ないたいのですが、
何かよい方法はありませんでしょうか?

class を ICloneable インターフェースを継承するほかないでしょうか?
917デフォルトの名無しさん:2005/04/06(水) 21:36:25
Clone()実装じゃ何か不満が?キャストが嫌とか?
918デフォルトの名無しさん:2005/04/06(水) 21:37:33
Objectのprotectedメソッド、MemberwiseCloneを使えば簡易コピーできる。
919デフォルトの名無しさん:2005/04/06(水) 21:38:10
>>916
それしかないだろうね、中身はMemberwiseCloneで適当にコピーするとか・・・
920デフォルトの名無しさん:2005/04/06(水) 21:39:12
いや、Clone() の他に何か方法はあるのかな?と。

簡易コピーの MemberwideClone ではなく、
完全コピー? を行なうメソッドを教えて頂けないでしょうか?
探してもみつからない…。
921デフォルトの名無しさん:2005/04/06(水) 21:40:00
>>920
ないよーん
922デフォルトの名無しさん:2005/04/06(水) 21:40:51
ないですか?
という事は、完全コピーはどのように実装するのが定石なのでしょう??
923デフォルトの名無しさん:2005/04/06(水) 21:45:01
>>922
自前。メンバを一つ一つコピー

そもそも、どこまで深いコピーを行うかは、場合によりけりだし
924923:2005/04/06(水) 21:45:51
……もしかしたら、シリアライズ→デシリアライズのコンボで完全コピーを作成できるかもしれん
925デフォルトの名無しさん:2005/04/06(水) 21:50:26
>>922
定石っぽいものはないけれど、僕のやっているケースの場合でよければ・・・
これはobject型とかで中身が分らないケースで、プロパティーとか一部メンバくらいは見えているクラスのコピーに使っています。
まず、正体不明のメンバから object.GetType() を使って型を取得して、
さらにその Type 型から GetProperty() 等で、メンバを取り出して、コピーしていきます。
メンバ列挙関数等も揃っているのでこれを使ってコピーする関数を、各種ポリシーでいくつか作って使いまわしています。
速度が遅いのが欠点ですが、使い勝手はいいです。
926デフォルトの名無しさん:2005/04/06(水) 22:01:07
ありがとうございます。

自前でゴリゴリ書くしかないんですね。了解しました。
参考にします。感謝!
927デフォルトの名無しさん:2005/04/06(水) 22:12:33
特定のキーを押したら(Enter+Shift等)ContextMenuをにょきっと出すようにしたいんですが
これは可能ですか?
928デフォルトの名無しさん:2005/04/06(水) 22:14:47
可能ですか? と聞かれると、可能。とだけ答えたくなるな。

ContextMenu.Showを使う。
929デフォルトの名無しさん:2005/04/06(水) 22:42:46
やさしい
930デフォルトの名無しさん:2005/04/07(木) 00:33:51
可能、とだけ答えようとした自分が恥ずかしい。
931デフォルトの名無しさん:2005/04/07(木) 04:07:37
行き詰まってしまったので質問させて頂きます。

System.Diagnostics.Process.MainWindowHandle から取得したウィンドウハンドルから、
コントロールオブジェクトを取得したいのですが、上手くいきません。

以下のようにして取得しようと試みたのですが、control が null になってしまいます。

// notepad のプロセスを取得
Process[] processes = Process.GetProcessesByName("notepad");
// 見つからなかったときは抜ける
if (processes.Length == 0) return;
// メインウィンドウのウィンドウハンドルからコントロールオブジェクトを取得
Control control = Control.FromHandle(processes[0].MainWindowHandle);

MSDN にも何も書かれていなくて困っています。
何か解決法はありませんでしょうか。よろしくお願いします。
932デフォルトの名無しさん:2005/04/07(木) 05:42:58
別プロセスのハンドルからは無理。
933デフォルトの名無しさん:2005/04/07(木) 09:40:23
会社でC#を使用して開発をしてますが
当然のことながら自分が愛用している分厚い本を数冊横において仕事してます。
中には10日で出来る〜といったものから500の技とかもおいてありますが
主に使用しているのはリファレンス本です。
社長とかに「いつかは本を見なくても開発できるようになれ」とか言われたんですが
普通は開発してるときに本とか見ないんですかね?
934デフォルトの名無しさん:2005/04/07(木) 11:20:14
>>933
普通は見ないが見たってそれなりのペースで開発できてれば
なんの問題もないと思うが。
935デフォルトの名無しさん:2005/04/07(木) 11:54:35
C# に関しては見ないが、.NET Framework に関しては時々
936デフォルトの名無しさん:2005/04/07(木) 12:51:15
>>933
きみはリファレンス本みたいな辞書本だけじゃなくて
本質について説明された本を見た方がいいかもね。
937デフォルトの名無しさん:2005/04/07(木) 13:11:00
そりゃC#の本質か?

933ではないけど俺も本は置いてるよ。
でもまぁMSDNの方でたいていは事足りるけどね。

C#の本質が書いてある本があったら俺も見てみたいよ。
938935:2005/04/07(木) 13:16:08
ああ、MSDN は参考書に数えないのか
939デフォルトの名無しさん:2005/04/07(木) 13:45:12
「本を見なくても」ってのは、ネットやヘルプを活用しろって意味なのか、
全部覚えろって意味なのか。
940デフォルトの名無しさん:2005/04/07(木) 13:55:15
誰に聞けば解決できるか知ってれば良いんだよ。
本を暗記しても無駄だよ
941デフォルトの名無しさん:2005/04/07(木) 13:58:14
全部覚えるなんて無理だよ

判らない時に調べる能力があれば
本だろうがなんだろうが問題ない
942デフォルトの名無しさん:2005/04/07(木) 14:03:30
その本は自分で買ったのか会社が買ってくれたのかどっちだ?
会社の金が出ていってるなら「あまり金使うな」という意味かもしれん。

943デフォルトの名無しさん:2005/04/07(木) 14:14:18
っていうかさ、「いつかは」 ってことは期待されてないんじゃ?
944デフォルトの名無しさん:2005/04/07(木) 16:24:13
TreeViewについて質問です。

TreeNode node = new TreeNode("a");
this.treeView1.Nodes.Add(node);

これをやるだけで、画面上のツリービューに横スクロールバーが
表示されてしまうのですが、横スクロールバーを消すにはどのように
したらよいのでしょうか?

先々、縦のスクロールバーは必要になるので Scrollable = false には
したくありません。

よろしくお願いします。
945デフォルトの名無しさん:2005/04/07(木) 16:37:00
ふと思ったんだけど、こういう質問ってさ、
「.NET Framework では出来ないけど、裏技があって、WinAPI を……」
とかいう答えを期待しているの?
946デフォルトの名無しさん:2005/04/07(木) 17:02:13
VisualStudioC#でWebアプリを作成しています。

ところで、aspxで生成されるHTMLをサーバにファイルとして
保存することは可能でしょうか?
aspxで作成したwebをCDに焼く必要が出来てしまったもので、
単体のHTMLとして保存したいのです。

ブラウザから保存していくには数が多いので・・・

どなたかよろしくお願いいたします。
947デフォルトの名無しさん:2005/04/07(木) 17:42:20
GetHTMLWとか?
948デフォルトの名無しさん:2005/04/07(木) 17:47:20
>>946
wgetとかツール使えば
949デフォルトの名無しさん:2005/04/08(金) 00:28:50
スプラッシュWindow作成しようとして、
dobon.net/vb/dotnet/form/splashwindow.html
これ参考に作ってみたのですが、別スレッドでフォームを表示させた
MainがActivatedになると消えるところまでうまくいったのですが、
なぜかスプラッシュWindowのほうがどのWindowsよりも一番最下位に配置
されてしまい困っています。TopValueやActivate()を使用しても効果が
なく困り果てました。
950デフォルトの名無しさん:2005/04/08(金) 00:35:09
それは大変ですね、お気の毒に・・・
951872:2005/04/08(金) 00:54:56
abstract class Base : UserControl {...}
class A : Base {...}
class B : A {...}

デザイナでAを編集しようとすると、
> デザイナは型 'Base' のインスタンスを作成しなければなりませんが、
> 型が abstract として宣言されているため、作成できませんでした。
とのエラーが。
Bは普通に編集できる。

baseクラスのインスタンスが作成できないとデザイナは使えないようだ。謎。
952デフォルトの名無しさん:2005/04/08(金) 01:02:30
なぜかそういう制約があるねえ。
直接の基底クラスはインスタンスかできる必要がある、みたいな。
953デフォルトの名無しさん:2005/04/08(金) 03:02:56
なんかこのスレに基地外が混ざってるな
954デフォルトの名無しさん:2005/04/08(金) 03:22:45
httpプロトコルを使うにはどうしたらいいですか?
955デフォルトの名無しさん:2005/04/08(金) 03:25:00
956864:2005/04/08(金) 07:36:23
>>872
謎ですよね。
しょうがないのでabstractをやめてvirtual化してしまったわけですが..
957デフォルトの名無しさん:2005/04/08(金) 11:40:56
謎もなにも基底クラスインスタンス化したのがデザイナで表示されてるやつだろ
958デフォルトの名無しさん:2005/04/08(金) 20:03:00
Graphics.DrawString() で描画する際、
このテキストの行頭から行末までの幅をpx単位等で事前に取得したいのですが、
どのように計算すればよいのでしょうか。
959デフォルトの名無しさん:2005/04/08(金) 20:04:16
Graphics.MeasureString()
960デフォルトの名無しさん:2005/04/08(金) 21:17:24
>>957
そういう意味じゃなくって、不便な制約だなぁ。
MSほどの男が信じられん。謎だ。という意味です。
961名無しさん♯:2005/04/08(金) 22:53:51 BE:135427384-
新スレですよ。( ゚д゚)ノ
http://pc8.2ch.net/test/read.cgi/tech/1112968209/l50
962デフォルトの名無しさん:2005/04/09(土) 01:38:57
>>961
乙。
しかしこのスレは980辺りでも良いような気もする。

まあいいや、埋め草に.NET2.0/C#2.0のことでも語らないか。

C#2.0で一番使ってるのが無名メソッド。
Expressを使わずSDKでかりかり書いてる身としてはすげえ便利。
デリゲートの引数を使わない場合は省略できるのが良い。

Nullableはデータベースを基本的に使わないのもあって使いどころがない。何か無いか。

ジェネリクスはList<T>, Dictionary<K,V>は使うけど、自分で定義する事がまずない。
実行時解決だから演算子とかほぼ使えないし。
Delegateをwhere指定できないとか。
配列のソートとかに使うとか。結局コレクション絡みか。

yieldはあんまり使わないがあれば便利。

あとなんかあったっけ?
963デフォルトの名無しさん:2005/04/09(土) 03:34:18
このスレは新スレができてからが本番なんだから。
964デフォルトの名無しさん:2005/04/09(土) 03:36:39
俺は static class を使いたい。
965デフォルトの名無しさん:2005/04/09(土) 03:42:30
(゚听)イラネ
966デフォルトの名無しさん:2005/04/09(土) 05:56:48
>>957
基底クラスがabstractなときデザイナは「何」をインスタンス化すればいいのさ?
abstractじゃなければ基底クラス+InitializeComponent+DesignMode=trueで
済むんだけど。
取り合えず、俺はすぱっときれいな実装思いつかないわけだが。
967デフォルトの名無しさん:2005/04/09(土) 06:00:34
スマソ。アンカーミス
>>957 -> >>960
968デフォルトの名無しさん:2005/04/09(土) 11:36:47
>>966
966 ではないが、もしデザイナにそのような機能を追加しようと思うならアトリビュートを使って別のインスタンス可能な互換のあるクラスをデザイナに表示すればいいんじゃないかな
そんなことより、デザイナに最後に配置したコントロールが突然消えてなくなるのは何故?
だんだんこのバグ腹立ってきたんですけど
969名無しさん♯:2005/04/09(土) 14:07:21 BE:114266693-
>>962
匿名メソッドは、C#の言語仕様に型推論を認めたという点ですごく大きいと思います。
将来的には、匿名構造体とかもっと過激に型推論をやってくれるかもしれないので。

NullableはCLIのような型システムではあまり効果がないですね。
むしろ、参照型向けにNon-nullableを作ってくれた方がうれすぃですわ。

genericsは文法を取り入れただけで、データモデルがまだまだ足りないですね。
Tuple、Variant、generic Functionとかがコアに入ってくれないと。

iteratorは遅延リストで無限のデータ構造が扱いやすくなるかなと思ったら、
コレクションクラスの実装がとってもeagerなので、正直使いどころがわからん。

> あとなんかあったっけ?
Partial。w
濫用厳禁。
970デフォルトの名無しさん:2005/04/09(土) 15:36:00
個人的には参照先消滅でファイナライザもしくはDisposeを実行するような機構付きの参照が欲しい
これがあると何も考えずにプログラムできるので・・・
作ってくれないかなぁ
using はいまいち使いずらい・・・

>Non-nullable
これはいいね、欲しい。
初期値は何にするとかちょっと難しい問題もありそうだけど・・・
971デフォルトの名無しさん:2005/04/09(土) 16:05:12
C++/CLI でできるよ
972デフォルトの名無しさん:2005/04/10(日) 00:02:01
つーか2.0になったら今までと同じ事をするのに
今までと同じ文法の書き方で作れるの?
それとも一から勉強し直し?
973デフォルトの名無しさん:2005/04/10(日) 00:36:26
おまいはWindowsがバージョンアップするにつれ
「一から」覚えなおすのか?
974デフォルトの名無しさん:2005/04/10(日) 00:46:16
互換性はあるはず
975デフォルトの名無しさん:2005/04/10(日) 02:08:41
>>957
ですけど、なにか?
976デフォルトの名無しさん:2005/04/10(日) 03:36:24
2003で2.0使えるようにはならない?
977デフォルトの名無しさん
2005使え