ふらっとC♯(初心者用) Part8

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
このスレッドは

「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。

ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

前スレッドはこちら
http://pc8.2ch.net/test/read.cgi/tech/1141458468/l50 (Part7)
http://pc8.2ch.net/test/read.cgi/tech/1122001458/l50 (Part6)
http://pc8.2ch.net/test/read.cgi/tech/1065196964/l50 (Part5)
http://pc2.2ch.net/test/read.cgi/tech/1059028988/l50 (Part4)
http://pc2.2ch.net/tech/kako/1047/10472/1047210828.html (Part3)
http://pc2.2ch.net/tech/kako/1035/10358/1035895873.html (Part2)
http://pc2.2ch.net/tech/kako/1023/10237/1023766485.html

C♯相談室 Part31
http://pc8.2ch.net/test/read.cgi/tech/1145075577/l50
2デフォルトの名無しさん:2006/05/23(火) 00:22:50
C#Builder 1.0 Personal 日本語版 ダウンロード
http://www.borland.co.jp/csharpbuilder/personal/index.html
.NET Framework 1.1 製品ドキュメント
http://www.microsoft.com/japan/msdn/library/ja/netstart/html/sdkstart.asp

@IT Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
Insider.NET 会議室 ディレクトリ
http://www.atmarkit.co.jp/fdotnet/index/bbs/index.html
GotDotNet Japan 掲示板
http://www.gdncom.jp/general/bbs/

宇宙仮面の C# プログラミング / C# Programming
http://ukamen.hp.infoseek.co.jp/
WisdomSoft C#入門
http://wisdom.sakura.ne.jp/programming/cs/index.html
WisdomSoft Microsoft .NET入門
http://black.sakura.ne.jp/~third/system/msnet/msnet.html
どっとねっとふぁん
http://dotnetfan.org/
緑のバイク 初めてのC# 〜 覚え書き 〜
http://homepage3.nifty.com/midori_no_bike/CS/
どぼん!の .NET Tips
http://dobon.net/vb/dotnet/
.NET のつぼ
http://park16.wakwak.com/~mimi/dotnet/top.html


3デフォルトの名無しさん:2006/05/23(火) 01:50:02
C#ではないですが。

WindowsXPのユーザーアカウントごとに同じプログラムを起動し、
それらとデータ交換するにはどうしたらいいですか?
4デフォルトの名無しさん:2006/05/23(火) 03:06:51
いきなりスレ違いかよw
しかも自分で宣言してるしw
53:2006/05/23(火) 03:19:34
>>4
でもC#のコードが欲しいんですよ。

後出しですみませんが。
6デフォルトの名無しさん:2006/05/23(火) 11:04:30
>C#ではないですが
↑↓
>でもC#のコードが欲しいんですよ。



>WindowsXPのユーザーアカウントごとに同じプログラムを起動し、
>それらとデータ交換するにはどうしたらいいですか?

意味不明瞭
73:2006/05/23(火) 12:16:29
>>6
マーケットスピードっていう株取引のソフトがあるんですよ。
それを複数起動するためにアカウントをいくつか作って
ユーザー毎に起動するんですが、
それぞれから抜いたデータを統合したいなと。
銘柄数300って制限があるのを、複数起動で回避したくて。

マケスピとセットのRSSはユーザー毎に起動して動作するのは分かってるんですが、
DDEでの通信でどのユーザーアカウントで動かしてるやつと通信するのか
選択する方法がないと、複数起動の意味がなくて。
300件接続してから次のRSS起動するとその後の接続が新しいRSSに行くのかなとか思わなくもないですが。
8990:2006/05/23(火) 13:03:34
前スレの990です。
やりたいことは下記でできました!ありがとう!

//httpサーバに接続
System.Net.WebClient web =new System.Net.WebClient();
System.IO.Stream stream=web.OpenRead(http://www.yahoo.co.jp);
//読み込み
System.IO.StreamReader sr= new System.IO.StreamReader(stream);
textBox1.Text=sr.ReadToEnd();

参考にしたのはVC#.Net逆引き大全500の極意です
自己解決スマソ
ありがとうございました。
9デフォルトの名無しさん:2006/05/23(火) 23:16:36
MemoryStream の内容を BinaryReader を使って他のストリームにダイレクトに書き込むことは可能でしょうか?
それともどうしても byte 配列に一度コピーする必要があるのでしょうか?
10デフォルトの名無しさん:2006/05/24(水) 00:20:42
2ちゃんの特定のスレッドのデータを取得するプログラムを作ろうと思い
2ちゃんの仕様が書いてあるこちらのサイトを参考にさせてもらいました。

ttp://age.s22.xrea.com/talk2ch/

たとえばhttp要求ヘッダ例として

 GET /newsplus/subject.txt HTTP/1.0
 Accept-Encoding: gzip
 Host: news2.2ch.net
 User-Agent: Monazilla/1.00
 Connection: close

と書かれています。


次にC#で2ちゃんと対話するにはどうすればいいのか調べるためHttpWebRequestクラスの
使い方を解説している以下のサイトを参考にしました。
ttp://dobon.net/vb/dotnet/internet/webrequest.html

ところがこのサイトには上記のhttp要求ヘッダ例のAccept-EncodingやUser-Agent: Monazilla/1.00、
Connection: closeなどを指定している箇所は特に見あたりません。怪訝に思いつつも
実際に2ちゃんのとあるサイトのURLを上記のサンプルプログラムに入れてみたところ
なぜか問題なくスレの内容を取得することができました。

Accept-EncodingやUser-Agent: Monazilla/1.00、Connection: closeといったものは
特に指定しなくても2ちゃんのデータを取得することができるのでしょうか?
11デフォルトの名無しさん:2006/05/24(水) 00:47:13
C#となんも関係ないし
1210:2006/05/24(水) 03:00:49
C#で実装したいと思っていまして・・・
13デフォルトの名無しさん:2006/05/24(水) 07:22:16
 ま た そ れ か
14デフォルトの名無しさん:2006/05/24(水) 12:31:03
>>10
HttpWebRequestじゃなくてもっと低い層のクラスを使うべきでは。
TcpClientとかだったか。
15デフォルトの名無しさん:2006/05/24(水) 16:25:02
>>10
WebClient を使えばいいんじゃない?
WebClient.Headers.Add でヘッダも指定できるし。
1615:2006/05/24(水) 16:26:41
あと、Connection: close も不要だった。
17デフォルトの名無しさん:2006/05/24(水) 18:46:46
コマンドライン引数の受け渡しについて教えてください。

static void Main(string[] args)
{
  string flg;
flg = args[0];
}

上の用に書くと、配列の境界外を参照しています。というような例外が発生してしまいます。
よくあるサンプルだと
 foreach (string flg in args)
{
処理;
}
のようになっていますが、私は1番目の要素にしか興味がないので気持ち悪いです。
申し訳ありませんが、何故このようになるのか教えてください。
18デフォルトの名無しさん:2006/05/24(水) 18:52:30
ヒント:args.Length
1910:2006/05/24(水) 19:51:25
>>14-15
どうやらWebClientだけでなくWebResponseでもヘッダーの情報を指定できるようです↓
ttp://www.atmarkit.co.jp/misc/search/marker.php?query=C%23&pg=www.atmarkit.co.jp/fdotnet/dotnettips/311webreqres/webreqres.html

両者はどう使い分けたらいいんでしょうかね(´・ω・`)?
2015:2006/05/24(水) 20:36:39
>>19
WebHeaderCollection のドキュメントを読むと、
http://msdn2.microsoft.com/ja-jp/library/system.net.webheadercollection.aspx

> WebHeaderCollection クラスには、通常 WebRequest.Headers または WebResponse.Headers を使用してアクセスします。
> 一部の共通ヘッダーは制限付きと見なされ、API (Content-Type など) によって直接公開されるか、システムによって
> 保護され、変更できません。

ヘッダを自由に扱うなら、WebResponse は少々不自由だってことになるね。
2115:2006/05/24(水) 20:43:04
ちなみに、WebClient.Headers のドキュメントを読むと、
http://msdn2.microsoft.com/ja-jp/library/system.net.webclient.headers.aspx

> Headers プロパティは、WebClient が要求で送信するヘッダー情報を含む
> WebHeaderCollection インスタンスを格納します。これは無制限のヘッダーのコレクションであるため、
> HttpWebRequest などの WebRequest の子孫で制限されるヘッダーを設定できます。

ってことだね。
22デフォルトの名無しさん:2006/05/24(水) 20:56:24
System.Windows.Forms.Keys

using Microsoft.DirectX.DirectInput.Key
に変換するような関数はないですか?
出なければうまい方法とかでも良いのですが。
2310:2006/05/24(水) 21:22:13
>>20-21
2ちゃんぐらいでしたらどっちを使っても問題は無いけど
もっと細かいヘッダー情報を指定しようとしたらWebRequest
の方がいいということですね。

というわけでしたWebClientの方で実装してみようと思います。
ありがとうございます。
24デフォルトの名無しさん:2006/05/24(水) 22:59:26
プロパティのsetterを使って状態を変更しようとしても、
場合によっては変更させないようにするような設計ってアリですか?
25デフォルトの名無しさん:2006/05/24(水) 23:06:58
setだけとかgetだけとか普通にあるよ
2624:2006/05/24(水) 23:13:01
説明不足でした。

object X
{
set
{
if (this.State)
this.X = value;
else return;
}
}

こういうようなことです
27デフォルトの名無しさん:2006/05/24(水) 23:14:25
VC#2003のCOMの相互参照を登録するって、COM DLL相当ですか?ActiveX DLL相当ですか?
VBAからイベントハンドラが設定できず困ってます。
28デフォルトの名無しさん:2006/05/24(水) 23:51:41
>>26
それじゃ駄目なのか?
それかせいぜいInvalidOerationExceptionを投げるくらいしかないと思うが。
プログラムでかけないようにしたいとか思ってるならそfれは無茶な話だ。
29デフォルトの名無しさん:2006/05/24(水) 23:52:56
>>10
とりあえずHTTPを勉強したほうがいいんではないかね?
そういえばWebClientの方って圧縮対応してたっけ?
3024:2006/05/24(水) 23:58:09
わかりました。26でいきます。
X = (新しい値);とやってるのに値が変わらないのは
気持ち悪い気がしたのですが、気にしないほうがよさそうですね。
3110:2006/05/24(水) 23:59:30
>>29
> とりあえずHTTPを勉強したほうがいいんではないかね?

確かにhttpよくわかってないです(´・ω・`)
勉強するのにお勧めのサイトご存じないですか?
32デフォルトの名無しさん:2006/05/25(木) 00:04:28
http://www.ietf.org/iesg/1rfc_index.txt

ここで「http」で検索して左側の番号見て
各RFCファイルをダウンロード
33デフォルトの名無しさん:2006/05/25(木) 08:32:18
日本語でおk
34デフォルトの名無しさん:2006/05/25(木) 14:51:17
>>29
GzipStream で、ダウンロードしたストリームを圧縮解除するコードは
自力で書いたことがあるけどね。
DeflateStrem では、うまくいかなかったね。
35デフォルトの名無しさん:2006/05/25(木) 15:06:22
>>34
まちがえた。
(誤)DeflateStream -> (正)DeflateStream
36デフォルトの名無しさん:2006/05/25(木) 17:16:06
37デフォルトの名無しさん:2006/05/25(木) 18:06:02
プログラムのバージョンってどうやって変えるんですか?
(.exeを右クリしてプロパティのバージョン情報ってやつ)
38デフォルトの名無しさん:2006/05/25(木) 18:32:03
39デフォルトの名無しさん:2006/05/25(木) 18:33:13
40デフォルトの名無しさん:2006/05/25(木) 18:35:23
41デフォルトの名無しさん:2006/05/25(木) 22:25:43
C#を使う上でExpressとStandardってどう違うの?
4237:2006/05/25(木) 22:33:39
>>38-40
有難うございました。
43デフォルトの名無しさん:2006/05/26(金) 06:59:44
メニューにアイコンを表示させようと思っています。
調べた限りでは、DrawItem イベントをオーバーライドし、さらに MeasureItem をオーバーライドして
サイズを指定しなければならないようなのですが、
MeasureItem でデフォルトのサイズを指定するにはどうすればよいのでしょうか。
あるいはもっと手軽にアイコンを表示する方法はないのでしょうか。
44デフォルトの名無しさん:2006/05/26(金) 10:22:38
>>43
.NET 2.0のMenuStrip/ContextMenuStripを使う。
標準でアイコンに対応してる

2.0以前なら
http://dobon.net/vb/dotnet/control/menuicon.html
4543:2006/05/26(金) 15:09:47
>>44
どうもありがとうございます。そんな物があるとは知りませんでした・・・
わりと大規模な変更が必要になりそうですが、その価値はありそうですね
46デフォルトの名無しさん:2006/05/26(金) 15:17:11
テキストボックスにドロップされたファイルが
DataFormats.Format format = DataFormats.GetFormat(DataFormats.Text);
と一致するか調べたいのですが、何か方法はあるのでしょうか?
4743:2006/05/26(金) 15:42:26
再びすみません。
ContextMenu と MenuItem を共通のロジックで処理している部分が多数あるのですが、
ContextMenuStrip と ToolStripMenuItem では同じようにはできないのでしょうか。
前者はともに Menu から派生しているのでよかったんですが、後者は継承関係が独立しているようなので・・・
4843:2006/05/26(金) 17:04:18
ContextMenuStrip.Items と ToolStripMenuItem.DropDownItems に対して共通の処理を施すことで対処できそうです。
ありがとうございました。
49デフォルトの名無しさん:2006/05/26(金) 23:20:35
自前のCollectionを作ろうと思うのですが、
AddRangeメソッドを宣言しているインターフェイスってのは、何処にあるのでしょう?
IList,ICollectionにあるのかと思ったのですが。

あともうひとつ、AddRangeを調べてて思ったのですが、
何故(params T[] items)が引数のAddRangeを用意していないのでしょう?
そのほうが便利だと思うのです。
50デフォルトの名無しさん:2006/05/27(土) 02:20:34
>>46
GetDataPresent

>>49
ないみたいね
各クラスでAdd呼んでるんじゃない?
51デフォルトの名無しさん:2006/05/27(土) 23:32:34
Collectionには必ずしもAddRangeが必要、という訳ではないのですね。ありがとうございます>>50
にしても可変長引数のAddRangeが無いの マンドクセ('A`)
52デフォルトの名無しさん:2006/05/28(日) 03:42:03
string html = sr.ReadToEnd();
を実行したところ、(srはSystem.IO.StreamReaderクラス)

System.ArgumentOutOfRangeException: 負の値ではない数値が必要です。
パラメータ名 : byteCount

というエラーが返されてしまったんですがどういう状況にこういうことが起きるのでしょうか?
53デフォルトの名無しさん:2006/05/28(日) 03:53:44
sr のインスタンスはどうやって作ったんだ
54デフォルトの名無しさん:2006/05/28(日) 10:57:53
プロパティとGet...()はどう使い分ければいい?
.NET FrameworkではインターフェイスメンバにGet...()が多い気がするけど
55デフォルトの名無しさん:2006/05/28(日) 11:22:25
軽い処理とおもい処理とか
プロパティのgetは常に同じ値を返すけれども
メソッドのGetは同じとは限らないとか
5652:2006/05/28(日) 12:48:58
>>53
srのインスタンスは

System.Net.HttpWebRequest webreq = (System.Net.HttpWebRequest) System.Net.WebRequest.Create("http://pc8.3ch.net/");
System.Net.HttpWebResponse webres = (System.Net.HttpWebResponse) webreq.GetResponse();
System.Text.Encoding enc = System.Text.Encoding.GetEncoding("shift-jis");
System.IO.Stream st = webres.GetResponseStream();
System.IO.StreamReader sr = new System.IO.StreamReader(st, enc);

という感じでつくりました。
57デフォルトの名無しさん:2006/05/28(日) 14:23:30
> HttpWebRequest、HttpWebResponseクラスを使って応答を受信した時、
> そのステータスコード("200 OK"や"404 Not Found"など)はStatusCode
> プロパティで(またその説明はStatusDescriptionプロパティで)分かります。

ttp://dobon.net/vb/dotnet/internet/httpstatuscode.html

とのことですが、StatusCodeやStatusDescriptionを調べても202や404といった数字の部分は
記述されていません。たとえば404 not foundが返されてきたときのStatusCodeはNot Found、
StatusDescriptionはNot Found、どちらにも"404"という数字は現れません。

この数字を取得したい場合はどうすればいいでしょうか?
58デフォルトの名無しさん:2006/05/28(日) 23:29:32
>>57
StatusCode を int にキャスト

>>56
ネットワークのストリームに対して StreamReader はお勧めしない

>>46
ファイルがドロップされた時は DataFormats.FileDrop になるわけだが。
意味が分からん。
59デフォルトの名無しさん:2006/05/28(日) 23:32:04
>>58
じゃあ何が良いの?
60デフォルトの名無しさん:2006/05/28(日) 23:32:35
>>27
MSDN の「マネージ イベントとアンマネージ イベント」を調べてみ
61デフォルトの名無しさん:2006/05/28(日) 23:34:40
>>59
=56=52 か?
byte[] と MemoryStream でまず自前でネットワークから読みとる。
で、その後 StreamReader なりなんなりの処理をする。
62デフォルトの名無しさん:2006/05/28(日) 23:38:53
>>61
いや、全くの別人だけど気になったもんで。面倒くさそうだなぁ。
63デフォルトの名無しさん:2006/05/29(月) 10:43:47
>61
StreamReaderでいきなり読み取るのがだめな理由でなんでしょう?
64デフォルトの名無しさん:2006/05/29(月) 10:56:11
>>63
重いところだと途中で読みとりを終了する事がある。と言うかあった。
ストリームから読み出すアルゴリズムが、順調でないストリームからの読み出しを考慮していない印象。
.NET 1.0 の話なので改善されてるかも知れないが、信用しないようにしてる。
65デフォルトの名無しさん:2006/05/29(月) 10:57:21
日本語でおk
6657:2006/05/29(月) 14:18:32
>>58
> StatusCode を int にキャスト

どうもです♪
67デフォルトの名無しさん:2006/05/30(火) 00:47:10
なんでC#のSplitメソッドって区切り文字にchar型しか許容しないんだろうね?
String型も許可してもっと柔軟にしてくれればいいのに。

なにか設計思想でもあるんだろうか?
68デフォルトの名無しさん:2006/05/30(火) 03:44:45
2.0ならstring配列も使えるが
69デフォルトの名無しさん:2006/05/30(火) 03:53:43
つか .NET Framework の問題と C# の問題をごっちゃにすんな
70デフォルトの名無しさん:2006/05/30(火) 14:06:45
>>67
どうしてもやりたいんだったら Regex.Split を使うという手もあるね。
71デフォルトの名無しさん:2006/05/30(火) 16:05:45
>>68
Visual Studio 2003(爆安学生版)って.NET1.1だっけ?
72デフォルトの名無しさん:2006/05/30(火) 16:14:07
そだよ
73デフォルトの名無しさん:2006/05/30(火) 16:41:35
>>71
期間限定で2005(.NET2.0)も入手できた。
74デフォルトの名無しさん:2006/05/30(火) 16:52:39
(チッ、2005にしておくべきだった
75デフォルトの名無しさん:2006/05/31(水) 02:49:31
IDisposableを実装したクラスから派生したクラスにIDisposableを実装させたいのですが、
Dispose()はどう定義すればよいのでしょうか?
override指定されていないからオーバーライドはできないようですし、安易にnewしたらまずいですよね?
76デフォルトの名無しさん:2006/05/31(水) 02:57:50
>override指定されていないからオーバーライドはできないようですし

?

protectedならオーバーライドできるでしょ
7775:2006/05/31(水) 03:13:45
>>76
protected override void Dispose() { ... } という風にオーバーライドするということですか?
それでもできません。それにprotectedにしてしまうと外から呼べませんよね。
78デフォルトの名無しさん:2006/05/31(水) 07:23:16
予想: virtual
7975:2006/05/31(水) 17:45:42
>>78
virtualを指定するとコンパイラの警告が出て、newを指定したのと同じことになるようです。
80デフォルトの名無しさん:2006/05/31(水) 17:51:36
ん〜とだな。
基底クラスをいじれる?
8175:2006/05/31(水) 18:46:00
>>80
それができないのです。
82デフォルトの名無しさん:2006/05/31(水) 19:09:48
じゃ、基底クラス書いた奴を罵りながら諦めろ。
一応、再実装させた Dispose() で base.Dispose() を呼び出せば、
基底クラス型から Dispose() を呼び出さない限り(IDispose 型から呼ぶか派生クラス型から呼び出す限り)なんとかなるが。
その基底クラスに protected virtual(or override) の Dispose(bool) もないんだよな。

あと、MSDN の「アンマネージ リソースをクリーンアップするための Finalize および Dispose の実装」を読んで
正しい IDisposable の実装のお勉強を。

.NET 2.0 なら、アンマネージドリソースについて SafeHandle への分割の検討を。
8375:2006/05/31(水) 19:48:01
>>82
どうもありがとうございます。
大変参考になりました。
84デフォルトの名無しさん:2006/06/01(木) 00:48:48
2003でコンパイルすると.NET1.1、
2005でコンパイルすると.NET2.0

ところで実行速度に違いは出る?
85デフォルトの名無しさん:2006/06/01(木) 01:02:54
出てもおかしくないな
86デフォルトの名無しさん:2006/06/01(木) 08:53:14
ボタンクリックイベントに関して質問させて下さい。
現在、10×10のマインスイーパーを作ってみようとしているのですが、
このボタンイベントを配列やswitch文でまとめて扱えるような方法はあるのでしょうか?

現在は、
private void MyIvent(object sender,System.EventArgs e)
{
if(button1.Clicked)
  {
   〜〜〜〜〜;
  }
else if(〜

と、全て定義している感じです。
出来れば、
for(n=0;n<100;n++)
{
if(bt[n].Clicked)
 {
 〜〜〜〜〜〜;
 break;
}
}
のように表記できれば理想的なのですが……
87デフォルトの名無しさん:2006/06/01(木) 11:30:40
Button の Tag にでも識別子突っ込んでたらいいんじゃない?
88デフォルトの名無しさん:2006/06/01(木) 11:31:21
>>86
Buttonの初期化のときに配列かリストにつっこんどくか、
一意のIDを付与する( button.Tag = indexみたいに)

まさか1〜100まで全部手動で宣言・初期化してるの?

 this.button1 = new Button();
 ....
 this.button100 = new Button();

って?

Button[] buttons = new button[100];
for(int i =0;i<100;i++)
{
 buttons[i] = new Button();
 ...
}
ってしてるよな?

つーかマインスイーパのブロックをボタンで実現するってのが
すでに設計ミスの気がするが
89デフォルトの名無しさん:2006/06/01(木) 11:47:23
>>88
正解ですorz
そんなんで出来るんですね……ありがとうげざいました。
デザイナーで適当に作ってたので、その定義に全て合わせてたんです。

とりあえず、まずはfor文ので作ってみます。
90デフォルトの名無しさん:2006/06/01(木) 16:11:28
プログラムとは直接関係ないんですけど
宇宙仮面の C# プログラミングで使用している下記ツールって入手可能?(free)
なんですか?なんかよさげなんで使って見たいんですけど・・・
ttp://www.uchukamen.com/Programming/GC/GC9.GIF
91デフォルトの名無しさん:2006/06/01(木) 17:18:05
>>90
名前を指定して実行→mmc→スナップインの追加
92デフォルトの名無しさん:2006/06/02(金) 08:16:07
>>91
サンクス、でもパフォーマンスの使い方がちょっと複雑だなぁ(w
93デフォルトの名無しさん:2006/06/02(金) 09:23:56
昔は2次配列を仮想VRAMとかいって使ってたなぁ。
94デフォルトの名無しさん:2006/06/04(日) 18:56:07
VSC#EEを使っているのですが、stringとStringはどのような違いがあるのですか?

public string name;
public string age;

stringをStringに書き換えても正常にビルドできたのですが、
stringはpublicと同じ青に、Stringはクラス名と同じ黄緑に着色されたので、疑問に思いました。
95デフォルトの名無しさん:2006/06/04(日) 18:58:59
>>94
string はクラス名ではなくキーワードであって System.String の別名
String と書いた場合は通常のクラス名
96デフォルトの名無しさん:2006/06/04(日) 19:11:12
>>95
なるほど!System.は省略できるからStringと書いてもいけたんですね。ありがとう!

青はキーワードで黄緑はクラスか、憶えておこう。
97デフォルトの名無しさん:2006/06/05(月) 21:14:53
参照設定にSystem.Windows.FormsがあるのにusingディレクティブでSystem.Windows.Formsが使えない。
インテリセンスもSystem.の後にWindowsが出てこないよ。
別のプロジェクトでは問題なくいける。
Winアプリとクラスライブラリという点を除けば条件は同じはずなんだが。
98デフォルトの名無しさん:2006/06/05(月) 21:37:45
一旦参照を削除して改めて追加するとか。
99デフォルトの名無しさん:2006/06/05(月) 21:43:06
>>98
それもやってみたけどダメ。

ていうかごめんなさい、単にそのクラスをプロジェクトに追加していないだけだった……。
System.Windows以外の名前空間はインテリセンスに出てきてそこばっかり目がいってた。
100デフォルトの名無しさん:2006/06/07(水) 03:08:27
変な質問なんですが
C#のpublicなメソッドは、外部からの不正な操作に対して安全なのでしょうか?

と申しますのは、例えばMDIのタブブラウザーでMDI親から子にUrlを渡す場合、
コンストラクタを使う、eventを使う等色々方法があると思いますが、
直接、子のSetUrlメソッドを呼び出して良いのか、それを悪い人に悪用されないだろうか、
ということです。

C++なら子をprivateなclassにし、
親をフレンドクラスにすれば、(実際はどうであれ)安全で安心できたのですが。
101デフォルトの名無しさん:2006/06/07(水) 07:37:02
public を使っちゃなんねぇとなると何も書けなくなるが。
102デフォルトの名無しさん:2006/06/07(水) 10:41:36
public はそういうふうに使うことを想定してるでしょ。

> 外部からの不正な操作に対して安全なのでしょうか?

意味不明。
103デフォルトの名無しさん:2006/06/07(水) 11:41:14
えっと、OracleをODBCで使う処理を作っているのですが
COLUMN_1 の型は NUMBER(9) で

SELECT MAX(COLUMN_1) FROM TABLE_1

とすると、戻り値の型が double になるのですが
これを Int32 にする方法ってあるのでしょうか?

PostgreSQL、MySQL、Access MDB では
Int32 になっているので
できれば SQL 側で Int32 を返すようにしたいのです

ご教示よろしくお願いします
104103:2006/06/07(水) 14:53:23
やっぱいいです
Oracle ODBC はサポート外だっ( ゚∀゚)
105デフォルトの名無しさん:2006/06/08(木) 20:00:54
<チラシの裏>
今は、ウェーブダッシュ問題について調査中
OracleClient を使うのがいけないのか?
</チラシの裏>
106デフォルトの名無しさん:2006/06/08(木) 20:39:23
<チラシの裏>
Oracle の文字コードは AL16UTF16
SQL*Plus や Common SQL Environment では
チルダは化けず

やっぱり C# 側の問題だろうか・・・
</チラシの裏>
107デフォルトの名無しさん:2006/06/09(金) 19:01:26
Extending Explorer with Band Objects using .NET and Windows Forms
http://www.codeproject.com/csharp/dotnetbandobjects.asp

ここのBandObject使ってエクスプローラのツールバー作ってるんですが、
何かコントロールのAllowDropをtrueにしただけで
explorer.exeが終了しなくなるんですが、どうしてでしょう。
ドラッグ&ドロップ自体は動作してます。。

ほとんどサンプル通りで、とりあえず表示できるかどうかやってみただけなんですが
解決策を御存知の方いませんか?
108デフォルトの名無しさん:2006/06/09(金) 22:59:18
>>107

> ほとんどサンプル通りで

「ほとんど」の外を説明してくれないことにはエスパー以外答えられない
109デフォルトの名無しさん:2006/06/09(金) 23:42:09
「ほとんど」の外=panelを追加してAllowDrop=trueにしたこと。
です。
110デフォルトの名無しさん:2006/06/09(金) 23:48:16
Dispose(bool) のオーバーライドか Disposed かで AllowDrop を false にするとかしたらどう?
それともそもそもこの辺すら実行されない?
111デフォルトの名無しさん:2006/06/10(土) 12:26:46
>>110
それもやってみたんですが駄目みたいです。
RevokeDragDropやCoUnInitializeとか
関係あるか分からないけどP/Invokeしてみても駄目でした……
112デフォルトの名無しさん:2006/06/11(日) 16:51:31
>>111
とりあえずspyあたりでWM_CLOSEとかメッセージの流れを追ってみては?
変な動作でも解決策ぐらいは見つかりそうな希ガス
113デフォルトの名無しさん:2006/06/11(日) 18:34:54
2つほど質問なんですが、
文字列を10進数数値に変換したいのですが、
int.Parse("123");
と言うのではなく、
string a = "abc";
といった、文字列を無理矢理10進数数値にするにはどうしたらいいでしょうか?

また、メソッドなどで、引数が2個あるのに0個指定出来たりする物がありますが、
あれはどのようにしたら出来るのですか?
114デフォルトの名無しさん:2006/06/11(日) 18:54:56
>>113
一つ目:何が言いたいのかよくわからない
二つ目:C#では引数の省略はできないはず
115デフォルトの名無しさん:2006/06/11(日) 18:55:15

とりあえずabcを無理矢理10進数にしたときの期待される数値を教えてください


引数は省略されたときの暗黙値を設定することができます
116デフォルトの名無しさん:2006/06/11(日) 18:56:47
>>113
逆に聞きたいのだが "abc" を数値に変換するとどんな値になるの?
任意のオブジェクトを int にしたいのなら GetHashCode ってのがあるが

public void Hoge(){
}
public void Hoge(int a){
}
って感じで複数書けばいいだけ
117デフォルトの名無しさん:2006/06/11(日) 19:45:23
>>116
GetHashCodeにて目的が果たせました。
"abc"をintに変換したところ、536991770という数値が返ってきました。

メソッドに関しても、下記の通りに記述したところ、引数0個指定でも
メソッドが動くことを確認しました。

ありがとうございました。

>>114,115
説明不足すいませんでした。
でも、やりたいことは>>116に書いてあるようなことです。
118デフォルトの名無しさん:2006/06/11(日) 20:04:45
ざわ…
    ざわ…
119デフォルトの名無しさん:2006/06/11(日) 23:59:42
>>117
あんたが求めてるのはこれっしょ?

sscanf(str,"&x",&data);

0x2001D81Aには何の意味もないぞ。

120デフォルトの名無しさん:2006/06/12(月) 00:39:07
>>117
いったい何が目的だったんだ…
121デフォルトの名無しさん:2006/06/12(月) 11:38:28
GetHashCodeには意味あるでしょ
122デフォルトの名無しさん:2006/06/12(月) 17:03:51
MFCのDLLみたいに
exeに
.NetFrameworkを内部に埋め込みTAI
123デフォルトの名無しさん:2006/06/12(月) 17:05:30
デストラクタに終了処理を書いて
スコープ抜けたら自動終了してたおうちゃくものの私に
デストラクタみたいに自動に呼ばれる終了処理を教えて><
124デフォルトの名無しさん:2006/06/12(月) 17:36:12
>>122
EXE1つで数百MB位になりそうだ。

>>123
using
その横着心は忘れるな。
125デフォルトの名無しさん:2006/06/12(月) 21:01:07
楽をしたい
楽をするために今苦労して効率化を・・・
126デフォルトの名無しさん:2006/06/13(火) 00:11:22
そして二度と使うことのない特化型フレームワークが完成する。
127デフォルトの名無しさん:2006/06/13(火) 07:36:32
>>122 >>124

exeには.NetFrameworkのローダ&インストーラを内蔵すれば桶
128デフォルトの名無しさん:2006/06/13(火) 12:42:01
>>126
あるある・・・
129デフォルトの名無しさん:2006/06/13(火) 13:06:55
TextBoxコントロールでコピペ(マウスとCtrl+Vの両方)されたら、
内容をチェックして数値のみコピペOKにしたいのですが、
MouseClickイベントが発生しないし、どのイベントでチェックすれば
いいのでしょうか?
130デフォルトの名無しさん:2006/06/13(火) 13:21:55
TextChanged でやれば?
131デフォルトの名無しさん:2006/06/13(火) 14:10:25
構造体のコピーをとりたいんですが
b = a;
だとポインタをコピーしてしまうようで
aを変更するとbも更新かかるみたいです
132デフォルトの名無しさん:2006/06/13(火) 14:28:10
それは構造体じゃないな
133デフォルトの名無しさん:2006/06/13(火) 16:01:08
HTML上のパラメタ付URLリンクをクリックする事で動作する
ノータッチデプロイメントアプリケーションを作成しています。

パラメタの渡し方について質問なのですが、
例えば http://localhost/test.aspx?q=テスト みたいに
全角をパラメタとしてそのまま渡す事はできないのでしょうか?

デバッグモードでコマンドライン引数を指定し、
画面を起動するとまともに動くのですが、
HTML上からサーバのアプリを動かそうとすると
無反応になってしまいます。

どなたかご教示ください。宜しくお願い致します。
windows2000, VS.NET 2003 ver1.1.4322, IE6 使用です。
134デフォルトの名無しさん:2006/06/13(火) 16:17:48
エンコーディングの問題の予感
だが解決方法は特に思いつかん
135デフォルトの名無しさん:2006/06/13(火) 16:27:03
>>133
URLエンティティかませ
136デフォルトの名無しさん:2006/06/13(火) 22:51:31
M$のマニュアルが読みにくい・・・なんとかしてorz

オススメのリファレンスとかありますか?
137デフォルトの名無しさん:2006/06/13(火) 23:02:57
Ctrl+Alt+J
138デフォルトの名無しさん:2006/06/14(水) 00:48:13
ListBoxを動的に変更したいのですが、
1行に複数のデータ(表示用データと内部用データ)を持たせることはできませんか?

DataSourceだと動的な変更がきかないみたいなので。
139デフォルトの名無しさん:2006/06/14(水) 02:28:57
できる。
140138:2006/06/14(水) 09:33:20
できましたー
Clear()じゃダメなんですねー
141デフォルトの名無しさん:2006/06/14(水) 10:45:34
>>131

*b = *a;
142デフォルトの名無しさん:2006/06/14(水) 14:25:51
>135
すみません。もう少々詳しく教えていただけませんか。
URLエンコードデーコードの事でしょうか?
143デフォルトの名無しさん:2006/06/14(水) 15:14:36
>>142
思ったときにはすでにッ! 行動は完了しているんだッ!
144デフォルトの名無しさん:2006/06/14(水) 22:12:03
文字が全角か半角か見分ける関数ってありますか?
145デフォルトの名無しさん:2006/06/14(水) 22:15:54
そもそも全角半角ってどこで区別しますか?
146デフォルトの名無しさん:2006/06/14(水) 22:16:43
文字の幅?
147デフォルトの名無しさん:2006/06/14(水) 22:27:11
全角文字の中にも半角と同じ幅の文字があるんだよね
148デフォルトの名無しさん:2006/06/14(水) 22:31:48
ちなみに、やりたいことはテキストファイルの文字(unicode)を
一文字ずつ全角半角が調べたいです。
149デフォルトの名無しさん:2006/06/14(水) 22:54:29
>>148
>>145の問いにはどう答える?
何が全角で何が半角かはっきりさせないと答えようが無い。
150デフォルトの名無しさん:2006/06/14(水) 22:58:38
>>149
じゃあ、文字の幅が知りたいです。
151デフォルトの名無しさん:2006/06/14(水) 23:01:23
文字の幅と言ってもフォントその他によって様々だが。
152デフォルトの名無しさん:2006/06/14(水) 23:09:41
>>151
じゃあ、その時のシステム標準のフォントでのフォントの幅を調べる方法を教えてくれ!!!
153デフォルトの名無しさん:2006/06/14(水) 23:12:03
ん?
154デフォルトの名無しさん:2006/06/14(水) 23:14:12
システム標準と言われても、タイトルバーやらメニューやらでそれぞれ任意に指定できるが……。
155デフォルトの名無しさん:2006/06/14(水) 23:18:29
テキストファイルを読み込んで表示するのに文字の幅が必要なんで
タイトルバーやらメニューやらの文字の幅はいらないです。
156デフォルトの名無しさん:2006/06/14(水) 23:33:58
文字コードで調べます、って言えよ
157デフォルトの名無しさん:2006/06/14(水) 23:44:30
文字コードで、と言うと、ひと文字ずつ全てのコードをifで判定するんでしょうか?
158デフォルトの名無しさん:2006/06/15(木) 00:10:27
┐(´〜`)┌
159デフォルトの名無しさん:2006/06/15(木) 00:48:30
>>157
マジレスすると、Graphics.MeasureString
16086:2006/06/15(木) 09:52:12
一応、感謝も込めて報告です。
件の方法でも出来たのですが、一応こんな方法もあったということで。

デザイナーで作ったボタンに対して、
private void MyMethod(Object sender,System.EventArgs e)
{
 Button btn = (Button) sender;
 〜〜〜
}
とすれば、押されたボタンを判別出来ることが分かりまして。
配列にする必要が無くなりました。
後はbtn.TabIndexなりで判別すればいいだけのことですし。

まぁ、手書きでやった方は、構造がよく分かったのでそれはそれでOKだったのですが、
デザイナーでやった方が簡単だったので……。
161デフォルトの名無しさん:2006/06/15(木) 10:00:20
TabIndex・・・
162デフォルトの名無しさん:2006/06/15(木) 11:32:50
ボタン自身に「僕はn番です」って言わせるのが普通だと思うが。。。
163デフォルトの名無しさん:2006/06/15(木) 11:47:20
誰かがお手本を作ってやれよ
164デフォルトの名無しさん:2006/06/15(木) 16:48:33
構造体の内容をバイナリファイルに書く方法教えて
165デフォルトの名無しさん:2006/06/15(木) 17:15:41
BinaryFormatterを使う
166デフォルトの名無しさん:2006/06/15(木) 18:25:24
GraphicsをDisposeしようすると例外が発生します。
「System.ArgumentException: 使用されたパラメータが有効ではありません。」

Disposeしなかったら動作するのですが、それだとお行儀が良くない気がします。
どうすればいいですか?

protected override void OnPaint(PaintEventArgs e) {
 base.OnPaint(e);
 Graphics g = e.Graphics;
 g.DrawString(counter.ToString(), font, brush, 0, 0);
 g.Dispose();
}
167デフォルトの名無しさん:2006/06/15(木) 18:29:31
そのGraphicsオブジェクトは自分で作ったものじゃないから
Disposeしないでほっとけばいい
168デフォルトの名無しさん:2006/06/15(木) 19:02:59
質問です。

ここから


ここまで

上の文のここから〜ここまでの間を含めた文を選択コピーまたは削除するにはどうしたらいいでしょうか?
169デフォルトの名無しさん:2006/06/15(木) 19:04:23
抽象的すぎるな
170デフォルトの名無しさん:2006/06/15(木) 19:10:32
while( null != (str = reader.Readline())
if( str == ここから) bNop = true;
if(!bNop){
writer.WriteLine(
}
if( str == ここまで) bNop = false;
}

飽きた
171デフォルトの名無しさん:2006/06/16(金) 18:20:08
C#で、プログラムから別のアプリケーション(.exe)を起動する方法を教えてください。
172デフォルトの名無しさん:2006/06/16(金) 18:22:43
173デフォルトの名無しさん:2006/06/16(金) 21:13:56
>>172
ありがとうございました!
174デフォルトの名無しさん:2006/06/16(金) 23:13:30
DataGridで列幅を指定したのですが,ヘッダーを非表示にしたら設定が反映されません。ヘッダーを出したら、空白と一番上の線が邪魔になります。
どうすればいいでしょうか?
どなたか教えて下さい。
175デフォルトの名無しさん:2006/06/17(土) 00:06:59
C♯, C#相談室 Part32
http://pc8.2ch.net/test/read.cgi/tech/1149934230/125

125 名前:デフォルトの名無しさん[] 投稿日:2006/06/16(金) 22:25:46
DataGridで列幅を指定したのですが,ヘッダーを非表示にしたら設定が反映されません。ヘッダーを出したら、空白と一番上の線が邪魔になります。
どうすればいいでしょうか?
どなたか教えて下さい。
176デフォルトの名無しさん:2006/06/17(土) 00:22:13
>>174
絶対嫌です
177デフォルトの名無しさん:2006/06/17(土) 16:53:31
こんな事がやりたいんですが。

class SuperStrng
{
 private string str = "abc";
}

class A
{
 static void main()
 {
  SuperString STR = new SuperString();
  Console.WriteLine(STR);
 }
}

出力
abc

SuperStringをどう変更したら実現できますか?
178デフォルトの名無しさん:2006/06/17(土) 16:58:05
>>177
コンストラクタ
179デフォルトの名無しさん:2006/06/17(土) 16:59:30
と、ToString()のオーバーライド
180デフォルトの名無しさん:2006/06/17(土) 16:59:40
ToString を override じゃないかな
181デフォルトの名無しさん:2006/06/17(土) 17:06:28
ウインドウに何か描きたい時ってOnPaint(PaintEventArgs)呼ばないと無理?
182デフォルトの名無しさん:2006/06/17(土) 17:16:34
省略しすぎました。これを実現するならどうなりますか?

class SuperStrng
{
 private string str = "abc";
}

class A
{
 static void main()
 {
  SuperString STR = new SuperString();
  STR = "cde";
  Console.WriteLine(STR);
 }
}

出力
cde
183デフォルトの名無しさん:2006/06/17(土) 17:19:04
Console.WriteLine(STR);

Console.WriteLine("cde");
184デフォルトの名無しさん:2006/06/17(土) 17:21:00
ワロス
185デフォルトの名無しさん:2006/06/17(土) 17:25:41
Console.WriteLine("cde");

Console.WriteLine(str);
186デフォルトの名無しさん:2006/06/17(土) 17:26:19
STR =
とかする時点で new する意味がどっかに行くが
型変換のオーバーロード
187デフォルトの名無しさん:2006/06/17(土) 17:49:45
using SuperString = System.String;
188デフォルトの名無しさん:2006/06/17(土) 17:52:25
>>187
お前賢い

そのために SuperStrng って i が抜けてたのか
189デフォルトの名無しさん:2006/06/17(土) 17:53:32
using SuperString = System.String;
using HyperString = SuperString;
190デフォルトの名無しさん:2006/06/17(土) 18:36:22
C始めたばかりなんですが、等加速度直線運動の計算するプログラムを書いてみました
どうも似たようなのの繰り返しが多いんですが、もっとすっきりさせられないでしょうか?
赤ペン先生お願いします!
ttp://up.spawn.jp/file/up25025.txt
191デフォルトの名無しさん:2006/06/17(土) 18:38:04
>>190
スレタイ800回声に出して読んでごらん
192190:2006/06/17(土) 18:46:32
ゴメン
193デフォルトの名無しさん:2006/06/17(土) 18:47:49
>>190
コンパイル通らなかった
194190:2006/06/17(土) 18:54:20
うちのBorland C++ Compilerではコンパイルできました
195デフォルトの名無しさん:2006/06/17(土) 20:55:34
>>190
ここはC#のスレであって、CやC++のスレではないの。

【初心者歓迎】C/C++室 Ver.28【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1149815331/l50
196デフォルトの名無しさん:2006/06/18(日) 12:03:07
C#2.0でステータスバーにチェックボックスとボタンを追加したいんですけど、
ラベル、プログレスバー、ドロップダウンボタン、スプリットボタンしか追加できないのでしょうか?
197デフォルトの名無しさん:2006/06/18(日) 12:44:24
いざとなれば ToolStripControlHost
198デフォルトの名無しさん:2006/06/18(日) 12:50:41
ControlHost は便利なんだけどフォーカスがちょっとおかしい
199デフォルトの名無しさん:2006/06/18(日) 14:57:50
自分で作った子ウィンドウを再作成するときに、たまに下のような例外が発生してしまいます。

'System.NullReferenceException' のハンドルされていない例外が TestChild.exe で発生しました。
追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。

該当箇所は一番下のShowDialog()なんですが、なにかまずい箇所などありますでしょうか?

if( mChildWnd != null )
{
mChildWnd.Close();
if( mChildWnd.IsDisposed == false )
{
mChildWnd.Dispose();
}
mChildWnd= null;
}
mChildWnd= newChildWnd();
mChildWnd.ShowDialog();
200デフォルトの名無しさん:2006/06/18(日) 15:00:20
マルチスレッドじゃなかろうな
201デフォルトの名無しさん:2006/06/18(日) 15:37:34
本来的には ShowDialog したならそれが閉じられるまで処理が返ってこないんだから、
Dispose は ShowDialog の後に記述するもんなんだが。
202デフォルトの名無しさん:2006/06/18(日) 17:01:23
newChildWnd() はnew ChildWnd() だよな?
newChildWnd() という一続きのつづりだったらその関数内がnullを返しているわけだが。
203デフォルトの名無しさん:2006/06/18(日) 17:06:58
>>200
そうです!
エラーの場所しか見てなかったので書くの忘れてました。
よく分かりましたね。
そうするとスレッド間の同期が怪しいですかね。
ちょっと調べてみます

>>201
ShowDialog してから Disposeする流れにまっています

>202
new ChildWnd() です。
ソースをそのままコピペしたら空白が無くなったみたいです。
すいません。
204デフォルトの名無しさん:2006/06/18(日) 18:31:07
簡単な画像ビューア作るのに、Exifのサムネイルを取り出したいと思って、
したのようなコードを書いたが、new Bitmap(stFilename)の時点で、メインの
画像までロードされてしまうから、遅くてしょうがないんです。
誰かExifのヘッダだけ取り出すような方法をご存じないでしょうか。

Bitmap bitmap = new Bitmap(stFilename);

// サムネイルを取得
Image original;
index = Array.IndexOf(pils, 0x501B);
if (index >= 0)
{
          // Exifサムネイルがあればそれを使用。
PropertyItem pi = bitmap.PropertyItems[index];
original = Bitmap.FromStream(new MemoryStream(pi.Value));
}
else
{
// Exif サムネイルがなければそのままの画像を使用
original = Bitmap.FromFile(stFilename);
}
bitmap.Dispose();
205デフォルトの名無しさん:2006/06/18(日) 18:32:05
頑張ってヘッダを解析する。
206デフォルトの名無しさん:2006/06/18(日) 18:56:04
>>205
言うほど難しくないので激しく同意。
207デフォルトの名無しさん:2006/06/21(水) 13:26:00
hage
208デフォルトの名無しさん:2006/06/21(水) 17:58:30
クリップボードにある画像を、byte配列に変換して取得するにはどうすればいいんでしょう。

ImageConverter converter = new ImageConverter();
byte[] byteArray= converter.ConvertTo(Clipboard.GetImage(), typeof(byte[]));

↑これでいいかなぁと思ったのですが、MD5値を求めるとき期待した値にならないのです。
209デフォルトの名無しさん:2006/06/21(水) 18:01:00
終了ボタンのnameプロパティをcloseButtonにしてはいけないと
どこかで読んだのですが理由が思い出せません。
何故なのでしょうか?
210デフォルトの名無しさん:2006/06/21(水) 18:03:30
>>208
どうbyte配列に変換したいのかが分からんことにはなんとも。
期待した値があるって事は期待したバイト配列が存在するんだよな? それはどんな形式なんだ?
211デフォルトの名無しさん:2006/06/21(水) 18:44:26
>>209
んなーこたーない
Nameプロパティなんて好きな値で結構
212デフォルトの名無しさん:2006/06/21(水) 19:33:41
>>210
すみません。期待した値というのは、MD5値を求めるソフトに画像をつっこんで出てきたものです。
例えばこれとか。ttp://www.forest.impress.co.jp/lib/sys/file/filecompare/wmd5sum.html

>どうbyte配列に変換したいのかが分からんことにはなんとも。
肝心の自分がどう変換したいのか分からない……。
213デフォルトの名無しさん:2006/06/21(水) 19:38:36
つまりは画像ファイルか。
なら受け取った Image を元の画像形式で Save すれば良いだろうが……。
Jpeg みたいな非可逆圧縮ならどうにもならんだろうしそれ以外にしてもヘッダとか変更されてしまわないかな……?
214デフォルトの名無しさん:2006/06/21(水) 21:29:54
無理無理
215デフォルトの名無しさん:2006/06/21(水) 23:44:27
>>208>>212 どこかにコピーしてStreamで読み込めばいいんじゃね?
216デフォルトの名無しさん:2006/06/22(木) 11:39:13
異なる型の要素を、一つのリストにする方法はありますか?
int a;
string s;
の2つの要素を、一つのリストに入れたいのですが
217デフォルトの名無しさん:2006/06/22(木) 11:43:35
ArrayList 使えばよかろ?
218デフォルトの名無しさん:2006/06/22(木) 13:18:41
わかりました
219デフォルトの名無しさん:2006/06/22(木) 17:59:56
Visual Studio Express Editionでコンパイルした実行ファイルから、
コンパイルしたパソコンの情報はどこまで引き出せるでしょうか
たとえば、OSのシリアルナンバーやユーザー名などが埋め込まれることはありますか?
220デフォルトの名無しさん:2006/06/22(木) 18:02:33
>>219
何故それが気になったのか過程を書いてくれないと答えようがない
221デフォルトの名無しさん:2006/06/22(木) 18:38:05
デバッグ情報をnone以外にしてると、
ファイルにフルパスが入るんじゃなかったっけ?
ユーザーディレクトリにおいとくとそこからユーザー名を知ることができたり

まさかシリアル番号が分かったら問題だと思うけど
222デフォルトの名無しさん:2006/06/22(木) 18:44:11
ワレのは割れなんじゃろぅ?
223デフォルトの名無しさん:2006/06/22(木) 18:54:19
ソースとバッチファイルを配布して各自でコンパイルしてもらうとか
224デフォルトの名無しさん:2006/06/22(木) 18:55:20
ワレザーかよ
答える義理はないな
225デフォルトの名無しさん:2006/06/22(木) 19:11:07
ヤフオクで買った物だから割れではないです^^;
226デフォルトの名無しさん:2006/06/22(木) 19:18:25
VL版か?
227デフォルトの名無しさん:2006/06/22(木) 19:26:32
割れであろーがなかろーが、>>220の質問に答える気が無いならコッチも答える気は無い
228デフォルトの名無しさん:2006/06/22(木) 19:28:15
理由なんてそんなに大事なことか?
229デフォルトの名無しさん:2006/06/22(木) 19:36:41
>>228
本人乙

さて、割レ厨は無視して元の雰囲気に戻すよー
230デフォルトの名無しさん:2006/06/22(木) 19:40:17
Expressで割れ決めつけとかアホすぎね???
231デフォルトの名無しさん:2006/06/22(木) 19:44:20
現在右クリックから起動するプログラムを作ろうとしているのですが、右クリックした際、
文字を反転させて選択した部分をプログラムのテキストボックスに送るにはどうしたらいいでしょうか?
232デフォルトの名無しさん:2006/06/22(木) 19:51:56
express って無料なんだがな
一人鼻息の荒いアホがいるな
233デフォルトの名無しさん:2006/06/22(木) 20:01:26
Expressで割れ(笑)
234デフォルトの名無しさん:2006/06/22(木) 20:07:48
>>231
もっと分かるように書いてくれ

何を右クリックするんだ?
サッパリワカラン

まあクリップボードつかうか
COPYDATASTRUCTをSendMessageするかしたらいいんじゃね
235231:2006/06/22(木) 20:40:14
>>234
テキストを
「 」→「■」
みたいに反転させて、そこから右クリック→メニューからプログラム起動
と言うことをしたいのですが、その際にプログラム内のテキストボックスに
反転選択した部分のテキストを送りたいのですが・・・

>COPYDATASTRUCTをSendMessageする
上について調べてみます。ありがとうございました。
236デフォルトの名無しさん:2006/06/22(木) 20:44:04
翻訳完了

ブラウザから文字列を選択
 ↓
その状態で右クリック
 ↓
右クリックメニューから自作アプリ起動
 ↓
選択範囲を自作アプリに反映

これでいいか?
237デフォルトの名無しさん:2006/06/22(木) 20:54:59
IEだとしたら
MenuExtに登録したスクリプトから起動させて、
二重起動のときは既存プロセスにテキスト渡すのかな。

つーかスクリプトからアプリケーション起動ってセキュリティ上できたっけ?
238231:2006/06/22(木) 20:55:06
違います;;
239231:2006/06/22(木) 20:56:21
>>236
まさしくその通りです。

最近日本語が怪しくなってきた orz
240デフォルトの名無しさん:2006/06/22(木) 23:14:31
2枚の画像を重ねた画像を作りたいのですがGetPixcel()とSetPixel()を使う以外の方法ってありませんか?
241デフォルトの名無しさん:2006/06/22(木) 23:25:50
アルファ値を使って半透明で描画
242240:2006/06/22(木) 23:30:54
>>241
こんなのあったのか・・・
d
243デフォルトの名無しさん:2006/06/23(金) 00:05:11
↓のページを参考に、C#でDirectShowをやってるのですが
http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B436361

objMCを後片付けしなくていいのですか?
DisposeやReleaseみたいな。

それともGC任せになるんですか?
244デフォルトの名無しさん:2006/06/23(金) 02:11:07
Expressが無料なのは当たり前
なぜOSの情報が入るのが気になるのか理由を書けってことでしょ
読解力なさ過ぎw
245デフォルトの名無しさん:2006/06/23(金) 02:53:16
>>244
>>225
わざわざオクで買うってことは契約違反のVL版か割れ焼CDだろ
金払ってExpress版買ったというならそれはそれで可哀想な人だが
246デフォルトの名無しさん:2006/06/23(金) 03:57:26
>>243
全ての COM オブジェクトに対して Marshal.ReleaseComObject を行う必要がある。
そうじゃないと解放がアプリの終了時まで遅延される可能性がある。
まあ面倒なんだこれが……。
247デフォルトの名無しさん:2006/06/23(金) 09:18:55
C#の少し大きめのアプリケーションのソースがあるサイトを教えていただけませんか?

入門書だけだとどうも良く分からないのです(⊃д`)
248デフォルトの名無しさん:2006/06/23(金) 09:24:41
お前らほんと読解力ねーな。ヤフオクで買ったのはOSの方だろうが。
ま、俺はワレ使ってようが使ってまいが、気にせんがな。

>>219
そのような情報は埋め込まれないから、安心して配布できる。
249デフォルトの名無しさん:2006/06/23(金) 10:11:03
うそつくなよ
かわいそうだろ
250デフォルトの名無しさん:2006/06/23(金) 10:11:45
>>221
*.pdb にソースなどのフルパスが入ってるがEXEには入ってない。ただpdbごと配布してしまうとばれてしまう。
251デフォルトの名無しさん:2006/06/23(金) 10:30:35
Release ビルドであっても pdb を作る設定にしていると
exe の中に pdb へのパスが書いてあったよ
β2のころの話だから今ではどうなってるか知らんけど
252デフォルトの名無しさん:2006/06/23(金) 14:09:29
>>249
違法VL版or割れ版を持ってる(入手先はヤフオクやP2P)
 ↓
個人情報が入らないか心配
 ↓
まずは無料のExpress Editionで埋め込まれないか確認しよう
 ↓
じゃあ上位版でも埋め込まれないかついでに聞いちゃおう
 ↓
(゚Д゚)ウマー
253デフォルトの名無しさん:2006/06/23(金) 14:46:12
>>251
今でも入っている。だから、プロジェクトのパスにユーザ名が入っていれば、それはわかる。
254デフォルトの名無しさん:2006/06/23(金) 15:01:15
表だって知らないだけでAdobeはしょっちゅうチェックして警告出してるし
MSも・・・
255デフォルトの名無しさん:2006/06/23(金) 15:09:38
正規版Windows確認COMは情報送ってるわな
色々文句言われて次のアップデートからは送らないように変更されるとさ
256デフォルトの名無しさん:2006/06/23(金) 15:18:47
ユーザ名は漏れても大丈夫なように付けとくもんだ
オレはいつも User001〜
コンピュータ名は PC001〜
もしもの時に備えてそういうセキュリティ対策も大事だろ
257デフォルトの名無しさん:2006/06/23(金) 15:23:09
むしろユーザ名とネットで使ってるハンドルが同じ
258デフォルトの名無しさん:2006/06/23(金) 15:26:54
>>254
バカ?
259デフォルトの名無しさん:2006/06/23(金) 15:36:48
>>258はガクガクブルブル震えながら
煽ることで>>254を否定して欲しくてしょうがないそうです
こうしてワレザーの苦悩は続くのであった
260デフォルトの名無しさん:2006/06/23(金) 20:09:09
で、誰もスレ違いだとはつっこまないんだなw
261デフォルトの名無しさん:2006/06/23(金) 20:14:04
>>260
スレ違い
262デフォルトの名無しさん:2006/06/23(金) 20:19:55
ふーん、最近のexeって通信機能標準装備なんだ。
263デフォルトの名無しさん:2006/06/23(金) 20:21:58
264デフォルトの名無しさん:2006/06/23(金) 20:27:49
心配ならマン喫でビルドすりゃいいじゃn
265デフォルトの名無しさん:2006/06/23(金) 20:39:42
expressで割れ(笑)
266デフォルトの名無しさん:2006/06/23(金) 21:13:12
C#で、gzipを処理するライブラリはありますか
Httpを使う小さなアプリを開発してるのですが、gzipエンコードを処理しなくてはならなくなったので
267デフォルトの名無しさん:2006/06/23(金) 21:19:25
SharpZipLib
.NET 2.0 なら System.IO.Compression.GZipStream
268デフォルトの名無しさん:2006/06/23(金) 21:48:02
おお!
こんな便利なものがあったんですね >> System.IO.Compression.GZipStream
269デフォルトの名無しさん:2006/06/23(金) 23:41:03
C#というよりVC#2005Expressの使い方に関する質問です。
普通にプロジェクトを作ると、ソースファイルの入っているフォルダにbinとobjフォルダが作られますが、
それらを別の場所に設定することはできるんでしょうか?
binフォルダの方は変更できたのですが、objフォルダの場所を変える方法がわかりません。
具体的には、projectというプロジェクトを作ると、標準だと
project---project-+-bin
+-obj
というフォルダ構成になりますが、これを
project-+-project
+-bin
+-obj
という具合にしたいのです。
270269:2006/06/23(金) 23:42:44
ずれたorz
具体的には、標準で
projectの下にproject、その下にbin、obj
となるのを、
projectの下にproject、bin、obj
という具合にしたい、ということです。
271デフォルトの名無しさん:2006/06/23(金) 23:42:50
基本的なことですいません
Cから入ったもので、フォームやコンテナやデリゲートの宣言部分のために
ソースがヤケに長くなってしまって見難いんですけど、
こういうのの対処法ってなにかりますでしょうか?

名前空間さえ一緒ならクラスを別々のファイルに分けても平気・・・なのかな?
272デフォルトの名無しさん:2006/06/23(金) 23:46:39
>>271
試してみろよ。
273デフォルトの名無しさん:2006/06/24(土) 07:20:47
>>271
partial
274デフォルトの名無しさん:2006/06/24(土) 08:36:50
>>271
そのセリフってVB6から来た香具師の専売特許だと思ってたよ

C+Win32SDKでもウィンドウクラスの定義やらウィンドウプロシージャの定義やらウィンドウ作成のコードで長くなるよな
同じこと
隠ぺいされている部分が多い分C#の方が見やすい
つか同じことやるならpartialで隔離されているところを含めてもC#の方が短い
275271:2006/06/24(土) 09:44:31
>>272
試してみます

>>273
partialでクラス宣言すればクラスを分割できたのですね!
ありがとうございます!!
276デフォルトの名無しさん:2006/06/24(土) 10:37:28
時代はpartialじゃけん
277デフォルトの名無しさん:2006/06/24(土) 11:46:49
regionだろ
278271:2006/06/24(土) 11:53:41
regionは使ってますが、左側の[+]がうざいんですよ・・・

い、いや、そーじゃなくて、実は大変勘違いしてたようなので書き込みにきたんです
実は、1つのファイル(名前空間)の中にクラスが4つ入ってました!
そりゃ見にくくなりますよね・・・orz

ソース整理してから組みなおすことにします。
ありがとうございました!!
279デフォルトの名無しさん:2006/06/24(土) 11:57:21
> 1つのファイル(名前空間)
なんだこの表現は
280デフォルトの名無しさん:2006/06/24(土) 12:01:45
はいはいはなげはなげ
281デフォルトの名無しさん:2006/06/24(土) 13:08:20
あんまり苛めてやるな

じゃ、次の質問ドゾー
オレは出かけるけどな
282デフォルトの名無しさん:2006/06/25(日) 12:00:43
電卓のアプリケーションを作っています。
ボタンとキーボードのキーを対応させたいのですが
どのようにすれば良いんでしょうか?
KEYPRESSとか調べたんですが、よくわからなくて…


キーボードの'1'を押すと、
電卓の数字の1が押されたことと同じ処理が出来るようにしたいです。
283デフォルトの名無しさん:2006/06/25(日) 12:09:06
なにが分からなかった?
284デフォルトの名無しさん:2006/06/25(日) 12:31:44
共通の処理を書いたKey1Pressみたいなメソッドを用意して、
キーボードの1が押されたときのイベントハンドラとソフトキー1のボタンが押されたときのイベントハンドラから
共にKey1Pressを呼び出すようにする
285デフォルトの名無しさん:2006/06/25(日) 13:04:36
ボタンの名前を &1 にする
286デフォルトの名無しさん:2006/06/25(日) 19:31:11
それだ!
287デフォルトの名無しさん:2006/06/26(月) 10:11:01
>>276
おまいそのCM古すぎ

・質問
DateTimePicker(Win, 1.1)でチェックボックスを表示していて、
日付の側にフォーカスがあるときにTabキーでフォーカスを前後に
移すと、チェックボックス部分のフォーカスを示す点線枠
(視覚スタイルオンならオレンジの強調表示)が残ったままに
なってしまいます。再描画させられませんか?LeaveでRefresh
してみたけどだめでした。
288デフォルトの名無しさん:2006/06/26(月) 14:38:52
関係ないけどさ、「視覚スタイル」って言葉へんじゃね?
なんだよ「視覚スタイル」って。
訳したやつ馬鹿じゃないの
289デフォルトの名無しさん:2006/06/26(月) 23:39:57
>>288
で、何て訳せばよかった?
290デフォルトの名無しさん:2006/06/26(月) 23:46:57
ヴィヅアルスタイルでいいじゃまいか
中途半端に訳すから分からなくなる
291デフォルトの名無しさん:2006/06/27(火) 00:26:41
じゃぁ完全に訳したら分かりやすいのかよ。
単に「最初に使った言葉から変えるな」ってだけだろ。
逆にそれだけなんだったら、一度聞けば「ああ、アレのことか」で済む問題。
たいした事じゃない。
292デフォルトの名無しさん:2006/06/27(火) 09:52:06
既知の訳文が無い場合、そのままカタカナ語にするか、新しい訳文を作ることになる
元の英単語がカタカナ語でも比較的意味が通じるならそれでいいけど、そうじゃないと新しい訳文が付く
日本では「ビジュアル」に美的な意味もあるから「美しい」と間違われる可能性もあり、今回は特に見た目の話だからカタカナ語はやめたんだと思う
そうなると新しい訳文がつくことになるが、そこは言葉の直訳より意味が通じるかが問題
508の観点からすると、要素に意味付けをする際はどの感覚に対して行うかがハッキリする必要がある
今回は視覚の部分ということで、Visualを視覚と訳し、スタイルはそのまま通じるため、視覚スタイルとした

と、妄想ポワワワ
293デフォルトの名無しさん:2006/06/27(火) 10:46:13
ポワトリン乙
294デフォルトの名無しさん:2006/06/27(火) 13:40:29
聴覚スタイルとかあってもいいよな
「野太い男性声聴覚スタイル」とか「萌えアニメ声聴覚スタイル」とか
聴覚スタイル設定により、ボタンテキスト読み上げはアナウンサー声でチェックボックスの読み上げはオカマ声にできるとか

もしかしてすでにある?
295デフォルトの名無しさん:2006/06/28(水) 09:41:06
じゃあ俺は味覚スタイルを
296デフォルトの名無しさん:2006/06/28(水) 16:39:45
じゃあ俺は触覚スタイルを
297デフォルトの名無しさん:2006/06/28(水) 16:40:24
じゃあ俺は味噌田楽スタイルを
298デフォルトの名無しさん:2006/06/28(水) 17:14:06
>>287
ごめんよ、話題逸らして
299デフォルトの名無しさん:2006/06/28(水) 17:15:58
int型の配列をファイルに保存したいんだけど
もしかしてintをbyte[]に直して保存、読むときもbyte[]として読んでintに直さなくちゃならないの?
300デフォルトの名無しさん:2006/06/28(水) 17:16:48
switch (m.Groups[2])
こういう書き方ってできないんでしょうか?
整数型の値が必要ですと言われます。

リファレンス見ると文字列でもいけるはずなのですが。
301デフォルトの名無しさん:2006/06/28(水) 17:28:28
>>300
m.Groups[2] の戻り値、string じゃなくて Group 型だろ。
302デフォルトの名無しさん:2006/06/28(水) 17:34:08
>>299
BinaryReader/BinaryWriter で
int[] array;
for(int i; i<array.Length; ++i) bw.Write(array[i]);
とするか、
System.Array.ConvertAll か System.Buffer.BlockCopy 辺りを使うか。
303デフォルトの名無しさん:2006/06/28(水) 17:34:53
>>299
どういう風に、ファイルに格納するかに依存するが。
304デフォルトの名無しさん:2006/06/28(水) 17:35:46
>>301
そんな型があったんですか

string j = m.Group[2].ToString
とかできないようで今調べてます。
305デフォルトの名無しさん:2006/06/28(水) 17:42:05
string j = Convert.ToString(m.Groups[2]);
でいけました
306299:2006/06/28(水) 17:51:04
>>302
おぉ、すげえ
これは楽だ
トントン
307デフォルトの名無しさん:2006/06/28(水) 17:51:08
>>299
時代はXML
308デフォルトの名無しさん:2006/06/28(水) 18:03:27
>>307
まだ早いと思って誰も書かなかったんじゃないかと
309デフォルトの名無しさん:2006/06/28(水) 19:38:27
switch(i)
case 1 or 2 : 文
みたいにすることはできますか?   
310デフォルトの名無しさん:2006/06/28(水) 19:43:30
case 1 :
case 2 :
  statements;
311デフォルトの名無しさん:2006/06/28(水) 19:59:52
>>310
それは C/C++。
C# だと、
case 1: goto case 2;
case 2: statements
としないと駄目。
312デフォルトの名無しさん:2006/06/28(水) 20:02:58
>>311
実は C# でもできるんだよ。
case を並べる時だけはフォロースルーが有効。
313デフォルトの名無しさん:2006/06/28(水) 20:17:03
>>310
できました。こんな使い方もできるんですね。
応用が利きそうです。ありがとうございました。

314デフォルトの名無しさん:2006/06/28(水) 20:21:40
途中で文章を書いたらだめなんですね。残念。
315デフォルトの名無しさん:2006/06/28(水) 20:24:21
statement が間にはいるなら >>311
316デフォルトの名無しさん:2006/06/28(水) 21:06:52
なるほど、勉強になります。
317デフォルトの名無しさん:2006/06/28(水) 21:23:37
普通に
if (i){
case1
}
case2
じゃダメなの?
318デフォルトの名無しさん:2006/06/28(水) 21:31:49
case 3 があったら面倒じゃないか
319デフォルトの名無しさん:2006/06/28(水) 22:10:38
>>312
うぉ、初めて知った。
↓これか。確かに出来るって書いてる。
http://msdn.microsoft.com/vcsharp/programming/language/ask/switch/
320デフォルトの名無しさん:2006/06/29(木) 16:59:13
VS2005を使用しています。

「Deleteキーが押されたらListBoxから項目を削除する」という処理を実現しようと
KeyPressイベントを設定してKeyPressEventArgsのKeyCharでDeleteキーかどうか
取得できるかなと企んでいたのですが、Deleteキーは取得・設定不可でした。

ListBox上でDeleteキーが押されたかどうか取得する方法は他にないでしょうか?
321デフォルトの名無しさん:2006/06/29(木) 18:26:04
>>320
検索しました?
調べたらすぐ出てきたんですけど・・・・。

keydownイベントに

if (e.KeyData == Keys.Delete)
{


}
322デフォルトの名無しさん:2006/06/29(木) 18:31:36
>>321
Pressじゃダメだったんですね。できましたthx
323デフォルトの名無しさん:2006/07/01(土) 18:32:52
基底クラスのコンストラクタが投げた例外を、
派生クラスのコンストラクタで捕まえることはできますか?
324デフォルトの名無しさん:2006/07/01(土) 18:50:43
無理
325デフォルトの名無しさん:2006/07/01(土) 21:54:07
class A
{
Random rr = new Random();
int z = rr.Next(50)
//以下略
}
っていうクラスがあって、メインの処理のほうで

ArrayList Datas = new ArrayList();

for(int i = 0 ; i < 100 ; i++)
{
Datas.Add(new A);
}

をした後にDatasの中身をそれぞれのzでソートしたいんですけど、
スマートな方法ありますか?
326デフォルトの名無しさん:2006/07/01(土) 22:18:05
C#のstrigは参照型だそうですが、C/C++でいうところの

char* huga( void )
{
  char*  string = hoge();
  printf( "$s", string );
}
char* hoge( void )
{
  char*  string="hogehoge";
  return  string;
}

みたいなことをして大丈夫でしょうか。
C/C++だと、正常に表示されても
「メモリが破壊されてないので"偶然"表示されてるだけ。いつ無くなるかわからないからNG」
とされています。
これはC#でも同じでしょうか。
それともガーベージコレクションが実行されるまでは大丈夫なのでしょうか?

宜しくお願いします。
327デフォルトの名無しさん:2006/07/01(土) 22:18:57
IComparer を実装したクラス作って
Datas.Sort( comparer );

//Dataってもともと複数形だよ
328デフォルトの名無しさん:2006/07/01(土) 22:26:03
>>326
参照が残ってる限りインスタンスは残る。
その場合だと hoge が参照を返すから、huga がその参照を持つのならインスタンスは残る。
329326:2006/07/01(土) 22:58:22
>>328
ありがとうございます。
作ってる最中でstringが実際に値を持たないと聞いて全部作り直しかと思ってました。
それではこのまま作りたいと思います。
330デフォルトの名無しさん:2006/07/02(日) 00:58:33
>「メモリが破壊されてないので"偶然"表示されてるだけ。いつ無くなるかわからないからNG」
だれだそんなこと言ってるあほは?
331デフォルトの名無しさん:2006/07/02(日) 08:43:18
>>326
C#でそれに相当するものをCで書くとこうなる。
char* huga( void )
{
  char* string = hoge();
  printf("%s", string);
}
char* hoge( void )
{
  char* s ="hogehoge";
  char* string = malloc(strlen(s))
  strcpy(string, s);
  return  string;
}
332デフォルトの名無しさん:2006/07/02(日) 11:01:28
>>330
スコープ上いつ死んでもおかしくない。

>>331
staticにすりゃ良いじゃん。

char* huga( void )
{
  char*  string = hoge();
  printf( "$s", string );
}
char* hoge( void )
{
  static char*  string="hogehoge";
  return  string;
}
333デフォルトの名無しさん:2006/07/02(日) 11:04:04
どいつもこいつも huga の return を書かないのはどうしてだ
char* 返しやがれ
334デフォルトの名無しさん:2006/07/02(日) 12:02:57
>>326
つーか、ガベコレの勉強しなおせ。
335デフォルトの名無しさん:2006/07/02(日) 12:05:22
>>334
後から出てきて何偉ぶってんだw
336デフォルトの名無しさん:2006/07/02(日) 12:28:30
>>335
誰もそこ突っ込んでなかったから。

あと、>>326 を C++ 的に書くなら、

std::auto_ptr<std::string> hoge(void)
{
 std::auto_ptr<std::string> str = string("hogehoge");
 return str;
}

じゃね?
337デフォルトの名無しさん:2006/07/02(日) 12:33:03
>>336
それ、strのデストラクタ呼ばれますよね?
338デフォルトの名無しさん:2006/07/02(日) 12:37:42
ここ何スレだっけ?
339デフォルトの名無しさん:2006/07/02(日) 12:43:06
自分の知っている言語の知識をひけらかすスレです
340デフォルトの名無しさん:2006/07/02(日) 13:15:08
>>332
331は配列がヒープに割り当てられることを忠実に再現してみた。
341デフォルトの名無しさん:2006/07/02(日) 14:40:14
>>325
ArrayList.Sort
342325:2006/07/02(日) 16:58:06
>>327 >>341

ありがとう御座います。
しかしながら、IComparerの実装方法がヘルプみても良くわかんなかったので、
勉強してきます。
343デフォルトの名無しさん:2006/07/02(日) 17:33:02
>スコープ上いつ死んでもおかしくない。
スコープで消えるのはstringとやらいう変数だけだ。
静的な文字列領域が勝手に消えるか。
# char*で返したら別の意味でまずいけどそれはまた別の話
344デフォルトの名無しさん:2006/07/02(日) 17:38:15
>>342

class comparer : IComparer
{
 public int Compare( object x, object y )
 {
  int ix = ( (A)x ).z;
  int iy = ( (A)y ).z;

  return ix.CompareTo( iy );
 }
}
345325:2006/07/02(日) 21:52:53
>>344
おおお 出来ました。 ありがとう御座います。

頂いたコードを参考に、理解を深めるために他所で調べていたのですが、

1)Compare()メソッドが負、0、正の値を返すのをArrayList.sort(Comparer)メソッドが利用している
2)CompareTo()メソッドを使わない、もしくはオーバーライドすることによってまったく独自のソートが実現できる
3)引数を持たないArrayList.sort()メソッドはCompareTo()メソッドを利用して比較する

という考え方で良いですか?
346デフォルトの名無しさん:2006/07/04(火) 01:36:05
ビルドしたものを実行すると、ボタンとかが古いデザインになってしまうようになりました。
前まではXPスタイルになってたのですが・・・。
それとデバック開始で試しているときはちゃんとXPスタイルになってるんですよ。
再インストールしてみたのですが駄目でした。

特に設定弄った覚えないんですが・・・orz
347デフォルトの名無しさん:2006/07/04(火) 09:09:12
エスパーの人、答えてあげて
348デフォルトの名無しさん:2006/07/04(火) 12:13:51
Application.EnableVisualStyles();
349デフォルトの名無しさん:2006/07/04(火) 20:08:41
趣味でWinアプリ作ってみたいんでVC#2005EEでデビューしたいんですが
入門に最適な本ってありますか?
プログラム経験は自分のサイトに使う程度のwebアプリをPHPでたまに作るくらいで、OOとかは全く理解してません
350デフォルトの名無しさん:2006/07/04(火) 20:20:32
>>349
まずはWebで入門的なの載ってる所探して、そこ見て勉強始めてみたら?
その上で本選んだほうが、ベストな選択できると思うぞ。Webだけでマスター
できたら、金かからないし。
351デフォルトの名無しさん:2006/07/04(火) 20:32:02
ある程度金を使っといた方がすぐに投げ出しにくくなる気もする
352デフォルトの名無しさん:2006/07/04(火) 20:37:05
>351
投げだしたときのショックもでかいけどな

入門っていうとこんなとこかね?
ttp://www.atmarkit.co.jp/fdotnet/easyvs/index/index.html
ttp://www.atmarkit.co.jp/fdotnet/csharp_abc2/index/index.html
353デフォルトの名無しさん:2006/07/04(火) 20:43:21
>>352
まったくプログラミング初めてだったら、そこのはつらいと思うけど、経験者だったら
そこでもOKかな。後はC#・入門などのキーワードでぐぐって良さげなところを
探すべし。
354デフォルトの名無しさん:2006/07/04(火) 20:57:52
.NET2.0対応の本て少ないな
355デフォルトの名無しさん:2006/07/04(火) 21:21:58
下手な本買うよりMSDN見た方がいいけどな
とりあえずここでも眺めてみたら

「300 秒でズバリ !!」&「10 行でズバリ !!」シリーズ
http://www.microsoft.com/japan/msdn/thisweek/wednesday/
356デフォルトの名無しさん:2006/07/04(火) 22:09:07
>>348
FormのLoadで記述してみましたが駄目でした。
もうワケワカンネorz
357デフォルトの名無しさん:2006/07/04(火) 22:38:59
>>356
すんません、原因分かりました・・・。
アセンブリ名をsvchostにしてたからでした
358デフォルトの名無しさん:2006/07/04(火) 22:51:24
コマンドプロンプトからcsc.exeでビルドする際、
絶対パスにスペースが入るとエラーが出るのですが、
これを回避するにはどうしたらいいでしょうか?
359デフォルトの名無しさん:2006/07/04(火) 22:54:14
ダブルクォーテーション

てかこんな基本……
360デフォルトの名無しさん:2006/07/04(火) 22:54:33
"
361358:2006/07/04(火) 23:04:11
あ""か orz
これなしでもビルドできたのですっかり忘れてました…
ありがとうございます。
362デフォルトの名無しさん:2006/07/04(火) 23:14:00
Documents" "And" "Settings
みたいな書き方でもOKだお
363デフォルトの名無しさん:2006/07/05(水) 00:34:11
>FormのLoadで記述してみましたが駄目でした。
>もうワケワカンネorz

別に関係はなかったようだが、

>この visual スタイルを有効にするには、アプリケーションでコントロールを作成する前に、EnableVisualStyles を呼び出す必要があります。

うまくいくわけねーだろ。マニュアルくらい読め。
364デフォルトの名無しさん:2006/07/05(水) 03:31:41
普通のパソコンには入っていないフォントを使いたいのですが、
どうすればいいのでしょうか? ユーザーに自分でフォントをPCにインストールさせる?
365デフォルトの名無しさん:2006/07/05(水) 04:59:56
>>364
まあそのフォントのライセンス次第だな。

Windows APIにフォント埋め込みに関するものがあるはず。
ごく少数の文字さえ扱えればよいのであれば、ビットマップとして持つのも悪くは無いと思う。
366デフォルトの名無しさん:2006/07/06(木) 03:00:03
アプリ起動時に、そのアプリがすでに起動中だったら、
アプリの起動を阻止し、現在起動中のアプリにデータを渡す。
というのはどうやってするのでしょうか?
367デフォルトの名無しさん:2006/07/06(木) 05:53:01
>>366
http://dobon.net/vb/bbs/log3-8/4481.html
同じようなこと聞いてる人がいました。
MutexとかGetProcessesByNameとかRemotingとかSendMessageとか使えばよさそうです。
368デフォルトの名無しさん:2006/07/06(木) 07:35:24
369デフォルトの名無しさん:2006/07/06(木) 07:53:51
二回言った……。

VB2005 は引数渡すところまで My で多重起動禁止をサポートしてるらしいがどんな手段使ってるんだろ
370デフォルトの名無しさん:2006/07/06(木) 07:55:25
>現在起動中のアプリにデータを渡す。 
こうする必要があるなら、.NET 2.0のRemoting、IpcChannelが使いやすい。
VBならそれ専用のフレームワークが用意されていて、内部でこのIpcChannelを使ってるらしい。
371デフォルトの名無しさん:2006/07/06(木) 09:41:32
>>370
どっかでサンプル見たことある?今API使って組んでるんだけど、API抜きで
できるんだったら、書き替えたいなと。以前一度Webで調べつつトライしたん
だけど、うまく動かなかった。
372デフォルトの名無しさん:2006/07/06(木) 10:12:41
>>371
動かなかったコードを曝せや
「うまく動かなかった」じゃお前とエスパー以外理科できん
373デフォルトの名無しさん:2006/07/06(木) 11:00:02
>>372
いや、別に長々とコード書いて、チェックしてくれとお願いするつもりはないし、
わざわざサンプルコード作ってもらうつもりもない。
どっかのページに載ってるの見たことあったら、urlだけ教えてほしかっただけ。
374デフォルトの名無しさん:2006/07/06(木) 11:07:30
じゃあ無いから諦めろ
375デフォルトの名無しさん:2006/07/06(木) 12:52:45
>>373
なんで貴様の利益だけのためにやる必要があるんだ?
「動かなかったコード」と「動くコード」の比較は「動くコード」だけを見るよりも有意義
貴様の失敗談を晒すことで多くの閲覧者の利益になるのにそれは自分だけというのは美味し過ぎるんじゃないの

結論:自分だけ美味しい思いをしたければ自分で探せ
376デフォルトの名無しさん:2006/07/06(木) 13:00:17
ここは心の貧しいインターネッツですね
377デフォルトの名無しさん:2006/07/06(木) 13:35:06
双方貧しいな
378371:2006/07/06(木) 13:37:37
質問しといてこんなこと言うのもなんだが、カルシウム足りてない奴が多いな(苦笑)。
>>375
あんたの考え方はわかったよ。しかし、おれだったら、この手のスレで人の書いたコード
で、画面スクロールしないと表示しきれんくらいのが出て来たらうんざりするな。そういう
時に限って、ちょっと調べればわかるような初歩的な質問の応酬が延々続いて、読ん
でるとうんざりする。
それよか、もしどっかのサイトで適当なサンプルが載ってればそれを紹介してもらった方
がよっぽどいい。そういうのが無ければないで、それも仕方ない。でもそういう情報が載
れば、みんなにも「有意義」だろうしね。ま、これはあくまでもオレの考え方だ。
(スレ荒らすつもりはないので、この件ではこれ以上書き込むつもりはない)
379デフォルトの名無しさん:2006/07/06(木) 13:45:04
>>375
そう、誰もそんな義務を負ってないよ。でもね、普通の人はこうするんだ。

気に食わないレスはスルーする。
380デフォルトの名無しさん:2006/07/06(木) 14:32:54
>>378
そのレスだけで十分荒らしだ
381デフォルトの名無しさん:2006/07/06(木) 15:21:48
>>378
初心者スレで何いってんだこいつ……
382デフォルトの名無しさん:2006/07/06(木) 15:31:39
>>378
確かに「C♯相談室」でそれやったら煙たがられるよ
だからそういう人でも聞くための「ふらっとC♯」スレがある

>>1くらい嫁
383デフォルトの名無しさん:2006/07/06(木) 15:53:57
>>380-382
自作自演乙
384デフォルトの名無しさん:2006/07/06(木) 16:35:04
優しさが欠けてるレスが多いな

>>1くらい嫁
385デフォルトの名無しさん:2006/07/06(木) 16:48:04
>>381
初心者スレで何いってんだこいつ……
386デフォルトの名無しさん:2006/07/06(木) 16:58:57
自作自演の人にも優しく接するのが初心者スレの粋ってもんです
387366:2006/07/06(木) 17:23:25
>>367,>>368,>>370 さんありがとうございます!

パッとできると思ったんですが、一ひねりいるようですね。
与えられたヒント・Urlのおかげでなんとかなりそうです。
本当にありがとうございます。
あと結果的に荒れる原因となった質問をしてしまい、申し訳ありませんでした。
388デフォルトの名無しさん:2006/07/06(木) 19:45:15
>>366 に脱帽
389デフォルトの名無しさん:2006/07/06(木) 20:53:40
>>366 != >>371ってこと?わけわからん>>387
390デフォルトの名無しさん:2006/07/06(木) 21:05:07
多分そうだと思うが……
391デフォルトの名無しさん:2006/07/09(日) 10:28:00
@ITのC♯入門を読んで学んでるのですが、
ttp://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_005/cs2_005_03.html
のList5-5のソースで詰まってしまいました。
具体的には16,19行目のコードなのですが、それぞれどのようなことをしているのでしょうか?
16行目はTestクラスの中身を1000万個持つ配列を宣言
19行目はインスタンスの宣言
という解釈で合ってますか?
392デフォルトの名無しさん:2006/07/09(日) 10:35:26
>>391
うむ
配列を作っただけでは配列の中身は空っぽだ
393デフォルトの名無しさん:2006/07/09(日) 10:43:03
>>392
インスタンスの宣言が必要なのはTestがクラスだからで、
構造体ならインスタンスは在っても無くてもかまわないのですか?
394デフォルトの名無しさん:2006/07/09(日) 11:10:47
というより、構造体なら配列を作った時点でインスタンスができる
395デフォルトの名無しさん:2006/07/09(日) 11:17:31
>>394
ということはList5-6でも19行目でインスタンスを作ってますが、これは作る必要が無いのですね。
なくても全く問題ないと書いてある理由が分かりました。(というより無い方がいいのかも)
396デフォルトの名無しさん:2006/07/10(月) 00:47:02
C♯, C#相談室 Part32
http://pc8.2ch.net/test/read.cgi/tech/1149934230/561-




正直なところ、HttpWebRequest/HttpWebResponseは初心者には難しいと思う。
初めのうちはWebClientクラスのほうがいいかもしれない。





HttpWebRequest の使い方の例

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://example.com/hoge.html");
req.Referer = "http://example.com/index.html";

HttpWebResponse res = (HttpWebResponse) req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());

string html = sr.ReadToEnd();
sr.Close();
res.Close();
397デフォルトの名無しさん:2006/07/10(月) 00:48:33
HttpWebRequest のRefererプロパティってどのように記述して設定すればいいんでしょうか・・・・
398デフォルトの名無しさん:2006/07/10(月) 00:50:39
HttpWebRequestのインスタンス のReferer プロパティに、文字列を代入する。
インスタンスの意味は分かりますか?
399デフォルトの名無しさん:2006/07/10(月) 00:55:50
HttpWebRequestという構造体の中にRefererというメンバ(インスタンス変数)が入ってるので、それを指定する

ということは
HttpWebRequest.Referer = "〜〜";

ということですか?
400デフォルトの名無しさん:2006/07/10(月) 01:05:08
うーん、ちょっと違うなあ。

>>396を読んでも分からないかな?
この2行なんだけど

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://example.com/hoge.html";);
req.Referer = "http://example.com/index.html";

1行目でHttpWebRequest型の 変数req にHttpWebRequestのインスタンスを代入して、
2行目で req のRefererプロパティに "http://example.com/index.html" を代入している。

Cの構造体でも、似たようなもののはずだけど
401デフォルトの名無しさん:2006/07/10(月) 01:09:40
>>400
ちょっと概念勉強しなおしてきます
ありがとうございます
402デフォルトの名無しさん:2006/07/10(月) 04:01:20
HtmlDocumentの非同期操作時、HtmlWindowだけが変な例外を投げるのですが
なにか良い回避法はありませんでしょうか。

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
backgroundWorker1.RunWorkerAsync(webBrowser1.Document);
//backgroundWorker1.RunWorkerAsync(webBrowser1.Document.Window); // パターン2
}

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
Debug.WriteLine(e.Argument is HtmlDocument); // true
HtmlDocument doc = (HtmlDocument)(e.Argument);

Debug.WriteLine(doc); // System.Windows.Forms.HtmlDocument
Debug.WriteLine(doc.All); // System.Windows.Forms.HtmlElementCollection

Debug.WriteLine(doc.Window); // 例外 : 有効でないキャスト

/*
//パターン2
Debug.WriteLine(e.Argument is HtmlWindow); // true
HtmlWindow window = (HtmlWindow)e.Argument;

Debug.WriteLine(window.Document); // 例外 : ComObjectがどーたら
*/
}
403デフォルトの名無しさん:2006/07/10(月) 08:45:50
>>402
それ、webBrowser1のインスタンスがbackgroundWorker1のスレッドにないからダメなんじゃね?
コピーをつくるなりしないと。
404デフォルトの名無しさん:2006/07/11(火) 01:19:35
レジストリのキーを監視して、書き換えられたりしたらすぐさま元に戻す

ということをTimerのTickで500ミリ秒ごとにやっていまして、
このときに

RegistryKey reg = Registry.LocalMachine.CreateSubKey(省略);
(監視の部分)
reg.Close();

と毎回Closeさせているのですが、やはりTickには監視の部分の
コードだけ書いてCloseとかはプログラム終了時にやるようにした方が
効率いいでしょうか?
405デフォルトの名無しさん:2006/07/11(火) 10:51:31
文字列中に含まれる空白を全て除去したいのですが
なにか良い方法はありませんか?
406デフォルトの名無しさん:2006/07/11(火) 10:54:03
Replaceなり正規表現なりで空白を空文字と置換する
407デフォルトの名無しさん:2006/07/11(火) 16:11:25
初歩的な質問ですみませぬ。
C#.NET 2.0ですが
Debug.WriteLine("hogehoge:\t" + hogehoge);
このような事を hogehoge の記述は一回だけで済ませたいのですが、
どのようにしたら良いのでしょうか?
ググるキーワードだけでも助かりますです。
408デフォルトの名無しさん:2006/07/11(火) 16:28:31
>>407
>初歩的な質問ですみませぬ。 
すいませぬという必要はないが、人にわかるように質問してくれ。
409デフォルトの名無しさん:2006/07/11(火) 16:42:56
「変数名:変数の値」をデバッグに出力したいってことなのかな?
リフレクション?詳しい人よろしく
410407:2006/07/11(火) 16:54:49
>409
> 「変数名:変数の値」をデバッグに出力したい
その通りです。
411デフォルトの名無しさん:2006/07/11(火) 17:25:49
その記述に何か問題があるから質問したんだよな?
なんで一回に済ませたいの?

デバッグ用の関数を作って、そこに変数を渡したらデバッグ出力されるようにとか考えてる?
もしそうだとしても、デバッグのためにプログラムフローを変えることはお勧めしない。
その書き方を必要な箇所に追加しておけば、ビルド時にデバッグ関係を外すとか簡単にできるからおすすめ

Reflectionを使うともしても関数的に代入してしまっては意味ないし、プログラム中で使うとするなら“hogehogeを使う”ことは分かっているんだから複雑な構文を使う意味がない。
必要な箇所で「Debug.WriteLine("hogehoge:\t" + hogehoge);」が一番スマートかつ無駄な処理が無く最適だと思うが。

それでもどうにかしたいのであれば、その理由があると思っている。
もしかしたら違うアプローチで解決できるかもしれないから、根本的な要件を明示してくれ。
412デフォルトの名無しさん:2006/07/11(火) 17:43:48
ちょっち質問
フォーマットの決まったデータを便利に処理するとき、C言語では構造体を当てはめて処理してたけど、
C#ではどうするのが正しいので? ビットフィールドも使えないみたいだし。
413407:2006/07/11(火) 17:53:53
> デバッグ用の関数を作って、そこに変数を渡したらデバッグ出力されるようにとか考えてる?
はい。C言語のマクロ展開のような、簡単にできる方法があればと考えていました。
構造体のメンバ等をいくつもいくつもチェックするときに、記述の手間を
減らせたら良いと思っただけなのです。ものぐさですみません。
このような手間は惜しんではいけないのでしょうか…
414デフォルトの名無しさん:2006/07/11(火) 17:57:36
VSのマクロ機能を使って自動で生成するようにするとか
415デフォルトの名無しさん:2006/07/11(火) 18:00:04
途中で書き込んでしまった

書くのが面倒なだけならコードスニペットを使うとか
416デフォルトの名無しさん:2006/07/11(火) 18:40:46
>>412
構造体にマーシャルしたら?
417デフォルトの名無しさん:2006/07/11(火) 19:12:43
>>412
便利な方法はない。BitCoverterを使うか、BinaryStreamを使うかのどっちか。

>>407
リフレクションで拾えるのはクラスなどの型の名称だけで、インスタンスの名前は無理だったと思う。
面倒でも、そのまま
>Debug.WriteLine("hogehoge:\t{0}", hogehoge); 
でよい。

C++だとプリプロセッサで出来てたんだけどね。
#define DEBPRT(x) printf(#x " = %d",x)
418407:2006/07/11(火) 20:02:22
いろいろと有難う御座います。
エディタ側で対処してみますです。
419デフォルトの名無しさん:2006/07/12(水) 11:57:00
WindowsMobileなC#の質問でもここでいいんでしょうかね。

CE系はメモリが足りなくなると、裏に回っているアプリを勝手に終了するわけですが
それを回避することは出来ますか?

本来の目的としては
「C#でWM上の常駐アプリを作りたい」
なのですが。
420デフォルトの名無しさん:2006/07/12(水) 21:18:22
VS2005にSystem.IO.Portsというのがあるのですが、
これでシリアルポートに接続されたデバイスをリスト化することは出来るのでしょうか?

最終的には、デバイスマネージャのポートに入っている部分をリスト化して呼び出したいのですが。
421デフォルトの名無しさん:2006/07/12(水) 21:41:18
C#でMIDIを扱うソフトを作るにはどうすれば良いでしょうか?
422デフォルトの名無しさん:2006/07/13(木) 01:01:43
XPのタスクマネージャから強制終了できない様にすることってできますか?
423デフォルトの名無しさん:2006/07/13(木) 01:56:47
424デフォルトの名無しさん:2006/07/13(木) 04:03:19
>>420
System.Management使えば

>>421
DirectMusic使えば

>>422
無理
425421:2006/07/13(木) 04:10:26
>>424
ありがとうございます調べてみます
426デフォルトの名無しさん:2006/07/13(木) 07:58:41
>>424
やっぱり無理ですかぁ、くだらない質問に返答ありがとうございました<_>
427デフォルトの名無しさん:2006/07/13(木) 08:09:04
>>426
ウィルスだかトロイに疑似的に実現してるのがあるよ
複数のプロセスを別々に起動して常に他を監視
自分以外が落ちたら即起動
これを1つのアプリケーションに見せかけるのはそれなりにトリッキーな技術が必要だろうけど、一応ってことで
自力で止めるには止めるための処理を仕込んでおくかバイナリの置かれているディレクトリから実行権限を外せばOK

最近のウィルス対策ソフトだと感知されて起動禁止になるかもだけどね
428デフォルトの名無しさん:2006/07/13(木) 08:09:43
rootkitみたいにプロセス一覧に表示されないようにするとか
429デフォルトの名無しさん:2006/07/13(木) 09:51:57
そもそも強制終了されて困る要件って何だ?
それが分かれば別の対策も出るかもしれんぞ >>422
430デフォルトの名無しさん:2006/07/13(木) 12:08:28
>>429
業務PCで、USBメモリの有効無効のレジストリを常に監視して
パスワードがないとUSBメモリを有効にできないようにするソフトなのですが、
バイト君の中に結構PCに詳しいやつがいてタスクマネージャで強制終了させる
可能性があるので何とかできないかなぁと・・・。

タスクマネージャを無効にするとたまーになんですが困ることもありまして。
431デフォルトの名無しさん:2006/07/13(木) 12:09:44
っ[誓約書]
432デフォルトの名無しさん:2006/07/13(木) 12:39:34
BIOSで無効にしろ
433デフォルトの名無しさん:2006/07/13(木) 13:31:50
BIOSで無効の上、BIOSにパスワードロックで完璧だと思うけど、
面倒だろうからポリシーでやるべきじゃ?
434デフォルトの名無しさん:2006/07/13(木) 14:44:09
>>430
そういうのはDeveloperじゃなくIT Proの領域だな
どうしてもコードってんなら >>427 のアイデアを借りば?
プロセス監視もUSB監視もWMI非同期イベントで見れるし
WSHスクリプトだけでできそうだな
435デフォルトの名無しさん:2006/07/13(木) 19:38:06
>>430
USBの口をアロンアルファでふさぐ。
USB用貞操帯なんて作ったら、売れるかもしれんな。
436デフォルトの名無しさん:2006/07/13(木) 19:44:44
終了時にシャットダウン
437デフォルトの名無しさん:2006/07/14(金) 00:14:55
USB 記憶装置を使用できないようにする方法
http://support.microsoft.com/default.aspx?scid=kb;ja;823732

これで十分。
そいつにローカル管理者権限を渡していたとしたらそれは管理が悪いという別の問題。
危険因子に対する業務管理はちゃんとしとけ。
438デフォルトの名無しさん:2006/07/14(金) 00:18:26
>>435
とっくにあるわけだが

ITmedia +D PCUPdate:USBポートを物理的にロック──USB専用セキュリティ製品「SL-46」シリーズ
http://plusd.itmedia.co.jp/pcupdate/articles/0509/20/news099.html

USBによるアクセスを完全防御!USBポート用の“鍵”が登場!
http://akiba.ascii24.com/akiba/news/2004/12/17/653185-000.html

海外で漁ればもっとある
439デフォルトの名無しさん:2006/07/14(金) 01:13:58
>>438
無理に外そうとしたら、恥ずかしげに身悶えるやつがあったら教えてくれ。
440デフォルトの名無しさん:2006/07/14(金) 03:47:51
初歩的なことで質問なのですが、
アセンブリの「アンセーフコードの許可」をチェックすることのデメリットってなんでしょうか。
441デフォルトの名無しさん:2006/07/14(金) 05:00:04
USBからOS起動されたらだめじゃん?
442デフォルトの名無しさん:2006/07/14(金) 11:21:51
>>441
 >>433
 >>438
443デフォルトの名無しさん:2006/07/14(金) 11:22:57
>>439
ミミズでも突っ込んどけ
444デフォルトの名無しさん:2006/07/14(金) 11:27:23
>>443
きぁあ変態
445デフォルトの名無しさん:2006/07/14(金) 13:34:08
みなさんいろいろとありがとうございます。
ただ、有効・無効を簡単に切り替えれる必要があるので参考程度にさせていただきます。

現状は他の管理者に無理言って、レジストリエディタやタスクマネージャを制限することにしました

>>437
それのレジストリの書き換えを行うソフトをつくってました。

>>438
最終的にはこういうの使うかもです

ありがとうございました
446420:2006/07/14(金) 16:11:02
>>424
一通り調べてみましたが、System.Management名前空間に関係するいい情報が見つかりませんでした……。
一応、ポートを試しに開いてIO.IOExceptionで処理するようにしたのですが、
やはりスマートじゃないですね。

ManagementObject mo = new ManagementObject("Win32_〜〜.〜〜〜")
この部分が分からなくて困ってるんですが、もし参考資料などありましたら宜しくお願いします。
447デフォルトの名無しさん:2006/07/14(金) 17:00:56
>>446
実際使ったことはないけど、ここあたりから調査を開始すれば何かつかめるんでないかい
一応書いとくと、System.ManagementはWMIの.NETとしての実装だから、移植は簡単

Win32_SerialPortSetting class [WMI]
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_serialportsetting.asp?frame=true

Win32_SerialPort class [WMI]
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_serialport.asp?frame=true

Win32_SerialPortConfiguration class [WMI]
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_serialportconfiguration.asp?frame=true
448デフォルトの名無しさん:2006/07/14(金) 17:04:06
>>446
System.Managementってのは、WMIというシステム情報が格納されているデータベースみたいなもんにアクセスするためのインタフェース。
SQL Serverに対するSystem.Data.SqlClientみたいな感じ。

なので、WMIの構造を知ることと、System.Managementで問い合わせをする方法は別々に学習する必要がある。
前者はCOMとしてのWMIのサイトを参照すれば色々見つかるし、スクリプトならTechNetのスクリプトセンターにサンプルがゴロゴロしてる
後者はMVPの人とかがサンプルを沢山挙げてるから、それで勉強
449デフォルトの名無しさん:2006/07/14(金) 23:19:34
>>447-448
ありがとうございます。ちょっと壁が高そうですが、何とか勉強します。
450440:2006/07/15(土) 21:25:22
レスがない、ということはデメリットは特にないということでよいのでしょうか・・・
451デフォルトの名無しさん:2006/07/15(土) 22:19:18
>>450

何をしたいかによる
452440:2006/07/15(土) 22:29:05
>>451
何をというと何のことでしょうか?
453デフォルトの名無しさん:2006/07/15(土) 22:31:32
それはおまえしか知らない
454デフォルトの名無しさん:2006/07/15(土) 22:36:01
検証できないコードになる。
455デフォルトの名無しさん:2006/07/15(土) 22:36:33
こんなこと言ってるようじゃ危ないな
456440:2006/07/15(土) 22:58:28
すみません、誤解があるようなのですが、アンセーフなコードの危険性は熟知しています。
アンセーフなコードのデメリットではなく、「アンセーフコードを許可する」をチェックすることのデメリットという意味です。
単にアンセーフコードをコンパイルできるかどうかという意味しかなく、実際のデメリットはないという理解でよいのでしょうか。
457デフォルトの名無しさん:2006/07/15(土) 23:03:36
いやだから、なんでそれをしたいのかって話だよ。
アンセーフなコードの危険性を『熟知』してたらそんな質問は出てこないはず。
458デフォルトの名無しさん:2006/07/15(土) 23:15:54
こんな風に気にする人たちがでてくる
ってことじゃないか?
459440:2006/07/15(土) 23:18:03
>>457
別にそこまで深い意味はないのですが、「許可する」をチェックすることで
もし実行環境やプログラム配布の関係で何らかのデメリットが生じるのなら、無理をしてでもすべてセーフコードで書くべきかな、と思ったしだいです。
アンセーフコード自体の危険性は気をつけて書けば避けられるのに対しこういうのがあった場合どうしようもないので。

あと比較的どうでもいいのですが、たとえば今までアンセーフコードで書いていたコードをセーフコードで書き直すことができるようになった時に、
もし「許可する」のデメリットがないのなら、いちいちチェックをはずす必要もないのかな、と思いまして。
460デフォルトの名無しさん:2006/07/15(土) 23:20:09
意味が分からんな。
チェックしなきゃコンパイルできないプログラム書いてんなら、
つけざるをえんだろ。
そしてそれは検証できないアセンブリになる。

「チェックをつけたことによって検証できなくなる」
のかどうかはよく知らないな
でも普通はチェックする必要がないプログラムではチェックしないだろから
そうだとしてもそれがデメリットというかは微妙
461デフォルトの名無しさん:2006/07/15(土) 23:21:23
ああ、>>460>>456の時点で書いたのな。
462デフォルトの名無しさん:2006/07/15(土) 23:28:06
ん、話はもっと単純に
「例えばセーフコードのみのブツをアンセーフ許可してコンパイルしたら違うIL吐くのん?」
てことを聞いてるように見えるんだが、違うのかな。
463440:2006/07/15(土) 23:42:55
>>462
そういうことになりますかね。
ただ、実行コードだけでなく、アセンブリの諸々の情報(あまり詳しくないのですが)も同一である必要があると思います。
ちょっと手元で両方の設定でコンパイルしてみたところ、ハッシュの異なるアセンブリファイルが生成されました。
(同じ設定でもハッシュが異なるファイルが生成されたので、これだけでは何もいえませんが。)
464デフォルトの名無しさん:2006/07/16(日) 00:01:25
コンパイルした日時が変わるだけでハッシュ変わる
465デフォルトの名無しさん:2006/07/16(日) 00:06:59
>もし「許可する」のデメリットがないのなら、いちいちチェックをはずす必要もないのかな、と思いまして。
はずしとけ
466デフォルトの名無しさん:2006/07/16(日) 00:10:51
デメリット: アンセーフコード自体の危険性は気をつけて書けば避けられるのに対しこういうのがあった場合どうしようもない
467デフォルトの名無しさん:2006/07/16(日) 00:13:12
こういうのって何だよ
468デフォルトの名無しさん:2006/07/16(日) 00:45:36
contextMenuStripにtoolStripMenuItemを追加したとします。
それをデザイナからLabelのContextMenuStripに設定したとします。
そしてtoolStripMenuItemをクリックしたときに、
クリックしたLabelのTextを取得したいのですがどうすれば出来るのでしょうか?
string s = ((Label)sender).Textではダメでした。
469デフォルトの名無しさん:2006/07/16(日) 01:16:51
検証できないアセンブリになる
て何回言っても虫ですか。
470デフォルトの名無しさん:2006/07/16(日) 01:19:37
もともと検証しないから、検証できないかどうかは関係ないってことでしょ
471デフォルトの名無しさん:2006/07/16(日) 01:23:20
>>468
(ContextMenuStrip)(((ToolStripMenuItem)sender).Owner).SourceControl.Text
472デフォルトの名無しさん:2006/07/16(日) 01:36:27
>>463
unsafe命令の有る無しに関係なく、/unsafeスイッチをつければ次の属性がONになってる。
assembly: System.Security.Permissions.SecurityPermissionAttribute(SecurityAction.RequestMinimum, SkipVerification=True)
473440:2006/07/16(日) 02:38:15
>>469 >>472
すみません。
検証についてちょっと調べてみたのですが、次のような理解であっていますか?
・「アンセーフコードを許可する」をチェックし、かつアンセーフコードが含まれているとと検証不可能なアセンブリしか生成できない。
・検証不可能なアセンブリは通常の方法では実行できず、実行環境でセキュリティポリシーの設定を変える必要がある。

>>472
アンセーフコードを含まず、「許可する」をチェックしてコンパイルしたアセンブリに対して peverify.exe を実行したところ
> All Classes and Methods in XXX.dll Verified.
と出ました。
これは検証可能なコードが生成されているということですよね。
474デフォルトの名無しさん:2006/07/16(日) 03:56:51
>>473
>アンセーフコードを含まず、「許可する」をチェックしてコンパイルしたアセンブリに対して peverify.exe を実行したところ 
ILは検証可能であるが、アセンブリがSkipVerificationを要求してる状態。
この状態のプログラムを \\server1\share1\prog.exe で実行するとSystem.IO.FileLoadExceptionで落ちる。
.NET的にはセキュリティ中立(つまりこの属性無しで)でUNSAFEなアセンブリは作れるのだが、
C#のコンパイラはそれを許していない。

>・検証不可能なアセンブリは通常の方法では実行できず、実行環境でセキュリティポリシーの設定を変える必要がある。 
ローカルドライブからコマンドプロンプトやエクスプローラで起動した場合、
FullTrust(何でもあり)権限で起動されるので特にポリシーをいじる必要はない。
475440:2006/07/16(日) 05:03:44
>>474
なるほど、非常にわかりやすいレスありがとうございます。
つまり、まとめるとこういうことですね。
・「アンセーフコードを許可する」をチェックすると、アンセーフコードの有無に関わらず SkipVerification の許可が必要になる。
・ネットワーク経由で実行する場合、実行するにはセキュリティポリシーの設定が必要。
・ローカルで実行する場合、デフォルトで FullTrust の許可が与えられるのでこのような問題は一切気にする必要はない。
476デフォルトの名無しさん:2006/07/16(日) 14:21:14
SslStream.AuthenticateAsServer が X509Certificate を要求するため、
適当にプログラム中で生成したいと考えています。
(暗号化のみでいいので認証処理は無視しています)

X509Certificate.CreateFromFile は外部に証明書ファイルが必要になるので
使えない。同Import は渡す byte[] の構造が分からず利用不能。

X509Certificate#GenerateSessionCertificate みたいな感じで
X509Certificateを作る方法はないでしょうか?
477デフォルトの名無しさん:2006/07/16(日) 18:58:32
あります
478デフォルトの名無しさん:2006/07/16(日) 19:54:48
>>471
ありがとうございます。
上手いこと出来ました。
479476:2006/07/17(月) 11:21:39
質問の語尾がまずかったですね。すいません。

X509Certificateをファイルを介さずオンメモリで生成する方法が知りたいです。
X509Certificate#Import が受け取ってくれるバイナリ配列の生成方法でもいい
のですが
480デフォルトの名無しさん:2006/07/17(月) 18:16:14
アッセンブリバージョンとファイルバージョンの違いって何?
どう使い分けたらいいの?
481デフォルトの名無しさん:2006/07/17(月) 23:35:02
>>480
ファイルバージョンは、EXE のプロパティに表示される値。
.NET の世界では重要な意味はないと思う。

アセンブリバージョンは、アセンブリの厳密名を構成する要素のひとつ。
アセンブリのバージョン管理に関わる。
(「厳密な名前」で署名する場合。)

ちょっと難しいけど、↓これが参考になると思う。

@IT:インサイド .NET Framework [改訂版]
ttp://www.atmarkit.co.jp/fdotnet/technology/idnfw11_index/
482480:2006/07/18(火) 19:25:45
>>481
自分のような趣味で単体ツールを作っているモノとしては、
アッセンブリバージョンはあまり気にしなくても良さそうですね。
リンク先は少しずつ見ながら勉強していきます。
ありがとうございました。
483デフォルトの名無しさん:2006/07/18(火) 20:12:37
> アッセンブリ
という語句を聞きなれていないのは俺が無知だからですか
484デフォルトの名無しさん:2006/07/18(火) 20:13:31
斡旋ぶり
485デフォルトの名無しさん:2006/07/18(火) 20:15:14
アッセンブリをググると機械系のサイトばっかり
アセンブリでググるとプログラミング系のサイトばっかり
486デフォルトの名無しさん:2006/07/18(火) 20:29:55
PDM/PLMの用語だからな。
487デフォルトの名無しさん:2006/07/18(火) 21:55:16
C#2005 EEでVS2003にあったクイックウォッチってないんかな?
488デフォルトの名無しさん:2006/07/19(水) 01:38:13
Proをお買い求めください
489デフォルトの名無しさん:2006/07/19(水) 11:41:28
アッセンブル・インサート ちゅうのは古いか
490デフォルトの名無しさん:2006/07/19(水) 13:39:39
>>488
Pro買わないとダメなのかぁー
Standardに付いていたら購入するのに
491デフォルトの名無しさん:2006/07/19(水) 21:15:28
C#だけつかうならEEもSTDも一緒?
492デフォルトの名無しさん:2006/07/19(水) 21:18:58
んなわけない
493デフォルトの名無しさん:2006/07/19(水) 21:50:34
どこが違うの?
494デフォルトの名無しさん:2006/07/19(水) 21:58:57
MSはもっとC#布教頑張って欲しいな、どう頑張ればいいのか分からんが
このままじゃ自然消滅だよ
495デフォルトの名無しさん:2006/07/19(水) 22:26:13
.NetといえばC#かVB.NETって感じにはなってるけど
言語の普及以前に.Netをなんとかしないとどうしようもないよな
496デフォルトの名無しさん:2006/07/19(水) 22:28:47
>>492
どこが違うの?
497デフォルトの名無しさん:2006/07/19(水) 23:02:10
>>494
MS、結構いろいろやってるはずだけど。
オフィシャル情報多いし、日本語ドキュメントも充実してるし、
標準ライブラリも結構そろってるし、VS 使いやすいし、
コミュニティ支援とかまでやってるし。

これ以上、具体的になにやればいいと思う?
個人的にだけど、一応、C# 普及サイト持っててさ、
個人でもやれることあったらやろうかと。
498デフォルトの名無しさん:2006/07/19(水) 23:19:49
>>493
Visual Studio 2005 Standard Edition / Express Edition 購入方法
http://www.microsoft.com/japan/msdn/howtobuy/vs2005/editions/stdexp/#stdexp_feature

>>494
なぜそう感じるの?
こういうデータは見た?

【ツール利用実態調査の結果報告】プログラミング以外の利用率は3分の1以下:ITpro
http://itpro.nikkeibp.co.jp/article/OPINION/20060419/235678/
※これの「.NET向けツールがJava向けツールに肉薄」

後発の.NETがJavaを追い上げてる
言語的には文中にもあるようにVBとC#で半々だと思う
WebなのかWindowsなのかOSSなのか条件を変えれば色々だと思うけど、先細りな成長ではないはずよ
499デフォルトの名無しさん:2006/07/19(水) 23:50:28
.NETじゃないVBは消滅したんですか?VBAに含まれてるのかな
500デフォルトの名無しさん:2006/07/19(水) 23:53:30
むしろVB.NETが消滅した。言葉だけは。
501デフォルトの名無しさん:2006/07/20(木) 01:31:26
.NETとJavaが肉薄かぁ、これからはJ#の時代ですね
502デフォルトの名無しさん:2006/07/20(木) 01:35:56
そりゃないだろ。
でももしもJavaの世界と.NETの世界を行き来できるのだったら、たしかにJ#はいけるだろうな。
ネイティブと.NETの世界を行き来できるC++/CLIのように。
503デフォルトの名無しさん:2006/07/20(木) 02:47:39
先生、J#スレがありません
504デフォルトの名無しさん:2006/07/20(木) 06:30:15
505デフォルトの名無しさん:2006/07/21(金) 00:18:39
HTMLでいうと<hr>のような
水平線のみのコントロールはどこにありますか?
ツールボックス内を探しても見つからないのですが…
506デフォルトの名無しさん:2006/07/21(金) 00:36:14
GroupBox のTextプロパティを空にして、Heightを8くらいにして代用してるけど
507デフォルトの名無しさん:2006/07/21(金) 00:43:20
>>506
おお、こんな方法があったとは…
ありがとうございます!

もしかして、みんなこの方法でやってるのかな?
508デフォルトの名無しさん:2006/07/21(金) 01:10:01
>>507
GroupBoxで代用してたけど、調べたらこんなのあった
http://www.atmarkit.co.jp/fdotnet/dotnettips/310linecontrol/linecontrol.html

labelのborderで表現するみたいだね
509デフォルトの名無しさん:2006/07/21(金) 01:43:02
自作して再利用してる
大した手間じゃないし
510デフォルトの名無しさん:2006/07/21(金) 08:46:59
VC++のときはPictureBoxで代用してたけどC#ってできなかったっけ?
今自宅で開発環境ないからわかんない
511デフォルトの名無しさん:2006/07/21(金) 08:51:50
>>509が自作したのを公開してくれればいいんじゃないかな
512デフォルトの名無しさん:2006/07/21(金) 09:23:19
ユーザコントロールに線2本引くだけだろ
513287:2006/07/21(金) 09:59:17
視覚スタイルへの対応はどうでしょう?
514デフォルトの名無しさん:2006/07/21(金) 11:42:36
システムカラーで線描けばいいじゃない
515デフォルトの名無しさん:2006/07/21(金) 13:54:36
テキストのログファイルを作成するに当たって、ファイルを回帰的に使用したいと
考えています。
指定行にテキストを書き込む方法(メソッド)を教えてください。
516デフォルトの名無しさん:2006/07/21(金) 14:34:45
ない
517デフォルトの名無しさん:2006/07/21(金) 14:43:23
無いな
518デフォルトの名無しさん:2006/07/21(金) 15:39:45
>>515
ファイルポインタを指定行の先頭まで移動し、そこ以降を一旦メモリにバッファ
指定行の先頭から新しいテキストを書き込み、続けてバッファした内容を書き出す
以上をクラス化して再利用する
519デフォルトの名無しさん:2006/07/21(金) 15:56:22
普通は固定長にする。
520デフォルトの名無しさん:2006/07/21(金) 16:22:53
固定長にすると割り込みができるのか?
521デフォルトの名無しさん:2006/07/21(金) 18:39:59
初心者にもほどがある。
522デフォルトの名無しさん:2006/07/21(金) 19:58:54
>>520いったい何を言ってんだ?
523515:2006/07/21(金) 21:14:07
回答ありがとう御座いました。
VB6にあるようなPutステートメントがあるのかと思っていました。
524デフォルトの名無しさん:2006/07/22(土) 10:10:00
>>519
お前の会社なり脳内の流儀はさておき、彼はログファイルをローテーションさせたいわけだ。
525デフォルトの名無しさん:2006/07/22(土) 10:13:30
いや、そのために子低調にするのかと。
526デフォルトの名無しさん:2006/07/22(土) 12:38:29
>>524
普通>>515読んだら「サイクリック」だと思うわな。
527デフォルトの名無しさん:2006/07/22(土) 12:45:33
>>526
そら「周期的」に書き込むんだろうけど
528デフォルトの名無しさん:2006/07/22(土) 14:35:50
今時固定長にする利益を教えてください
529デフォルトの名無しさん:2006/07/22(土) 14:37:46
>>528
だから、サイクリックにできる。
530デフォルトの名無しさん:2006/07/22(土) 14:40:07
>>527
なんか勘違いしてないか
531デフォルトの名無しさん:2006/07/22(土) 18:09:09
同じファイルでサイクリックにしたいっていうから
それなら普通固定長にする
て言っただけなんだがなんかおかしかったか?
532デフォルトの名無しさん:2006/07/22(土) 18:13:02
逆に固定長にできないなら、
それでもわざわざ同じファイルにして苦労する
価値があるかはあやしい。
固定長以外ではシンプルな方法は無理だからね。
533デフォルトの名無しさん:2006/07/22(土) 18:52:50
サイクリックをlog rotationと間違えてる奴発見
534デフォルトの名無しさん:2006/07/22(土) 23:37:48
ここはサイキックなスレですね
535デフォルトの名無しさん:2006/07/23(日) 01:50:58
Regex.Replace( @"\abc\\def\\\ghi", "\\+", "\\" )
これで"\abc\def\ghi"が返ることを期待しているんだが
同じ文字列しか取得できない。なぜ?

536デフォルトの名無しさん:2006/07/23(日) 01:56:31
第二引数、C# 文法におけるエスケープと正規表現におけるエスケープの両方必要。
537デフォルトの名無しさん:2006/07/23(日) 09:34:22
>>536
回答ありがとう。
"\\+"ではなく"\\\\+"と指定しなきゃいけないのか。
第3引数は"\\"でいいのに。
538デフォルトの名無しさん:2006/07/23(日) 09:37:05
>>537
第三引数は正規表現じゃないですから。

/\\+/,"\\"
539デフォルトの名無しさん:2006/07/23(日) 09:52:37
>>538
なるほど。そういうこと。了解っす。
540デフォルトの名無しさん:2006/07/23(日) 18:51:30
TreeViewをプログラム上からスクロールさせたいのですがどうすればいいのでしょうか。
AutoScrollOffsetがそれらしいかと思って変更してみましたが変化がありませんでした。
541デフォルトの名無しさん:2006/07/23(日) 19:05:53
node.EnsureVisible()
542540:2006/07/24(月) 05:38:07
>>541
ピクセル単位でスクロールする方法はないでしょうか?
543デフォルトの名無しさん:2006/07/24(月) 09:45:32
VS2005を使用しています。コントロールの絶対座標を取得する方法はありますか?
544デフォルトの名無しさん:2006/07/24(月) 10:13:35
あります
545デフォルトの名無しさん:2006/07/24(月) 11:24:29
>>543
絶対の基準点はどれですか
以下は全て仕事で関わった「絶対座標」です
・ウィンドウ(視覚スタイルも考慮)
・クライアント領域
・デスクトップ(プライマリモニタの左上が基準点)
・特定のモニタの左上(マルチモニタを考慮)
・表示領域で最も左の上(マルチモニタを考慮)
・表示領域で最も上の左(マルチモニタを考慮)
・全モニタを合わせて矩形化した領域の左上
・上記のいずれかをベースとした任意の点
まあ、どれでも取れますが
546デフォルトの名無しさん:2006/07/24(月) 12:13:28
クライアント領域
547デフォルトの名無しさん:2006/07/24(月) 13:00:31
クライアント領域やウィンドウ領域の座標を取得するには? − @IT
http://www.atmarkit.co.jp/fdotnet/dotnettips/379getclientrect/getclientrect.html
548デフォルトの名無しさん:2006/07/24(月) 14:40:53
>>545
調子載ってないで全部書け。
549543:2006/07/24(月) 14:50:37
>>547で解決したのでいりません。
550デフォルトの名無しさん:2006/07/24(月) 15:51:24
if (s != ""){}
if (s != string.Empty){}
どっちを使った方がいいのかなぁ。
はどっちでも同じ?
551デフォルトの名無しさん:2006/07/24(月) 15:55:46
初期化のやり方にあわせれば?
552デフォルトの名無しさん:2006/07/24(月) 16:12:41
静的コード解析だと string.IsNullOrEmpty を使えって怒られるよね
553デフォルトの名無しさん:2006/07/24(月) 16:13:37
>>552
静的コード解析なんてあんの?知らなかった。
554デフォルトの名無しさん:2006/07/24(月) 17:29:14
if(s.length() != 0){}

555デフォルトの名無しさん:2006/07/24(月) 17:29:52
>>552
それおかしい。

NULLじゃこまるがemptyで。ってとき対応できない。
556デフォルトの名無しさん:2006/07/24(月) 18:44:36
>>554
Equals もそうだが s が null の時が怖い
557デフォルトの名無しさん:2006/07/24(月) 19:52:28
フォーム上のWMPコントロールで
ボリューム等が変更された場合それを知る方法はないでしょうか?

AxWindowsMediaPlayer.setting が変更されるタイミングが知りたいのですが・・・
558デフォルトの名無しさん:2006/07/24(月) 23:27:30
>>545
ちょびっとだけエスパーになって考えたら
デスクトップの左上を基準にした座標を言ってるんだと思う。

>>545もいじわるだが、
>>549がいたずらでなく本人ならちょっと笑える。いりません、って。
559デフォルトの名無しさん:2006/07/24(月) 23:34:44
>>543の質問は>>544が答えて既に解決したことなんだろ
560デフォルトの名無しさん:2006/07/25(火) 07:22:35
さすが夏休み。質問者も回答者も腐ってますね。
561デフォルトの名無しさん:2006/07/25(火) 07:35:06
学校でC#やってるトコなんてあるのかね
562デフォルトの名無しさん:2006/07/25(火) 08:31:55
あるよ
563540:2006/07/25(火) 08:32:46
無理なんですかね?
AutoScrollOffsetっていうのはなんなんでしょう?
564デフォルトの名無しさん:2006/07/25(火) 10:48:41
ピクセル単位は無理っぽいな
行単位ならできそうだが
565デフォルトの名無しさん:2006/07/25(火) 10:55:44
566デフォルトの名無しさん:2006/07/25(火) 18:39:44
>>563
AutoScrollOffset は MSDN2 に書いてるとおり。
スクロールは LVM_SCROLL を投げればいい。
SendMessage か派生クラスで WndProc の呼び出しかはお好みで。
567デフォルトの名無しさん:2006/07/25(火) 19:35:48
パネルとかにGraphicsとかDirect3D.Spriteで描画した後、
描かれたものをBitmap型の変数に移す方法ってありますか?
568デフォルトの名無しさん:2006/07/25(火) 19:58:23
逆に考えるんだ
Bitmap に描画するようにすればいいんだ
// D3D でできるかどうかは知らない
569550:2006/07/25(火) 21:38:26
なれてないので、ぱっと見は読みにくいけど、>>555に注意しながら
if (!string.IsNullOrEmpty(s)){}
を使うことにします。
>>552さん、ありがとうございました。
570デフォルトの名無しさん:2006/07/25(火) 22:52:12
なんかstaticメソッドだとStringと書きたくなる
Int32も同様
571デフォルトの名無しさん:2006/07/25(火) 23:02:59
>>570
分かる分かる
572540:2006/07/25(火) 23:27:59
>>566
なるほど。やはりその辺りをしなければならないのですね。
どうもありがとうございました。
573デフォルトの名無しさん:2006/07/26(水) 07:26:31
ボタンコントロールを動的に配置したのですが、ボタンクリック等イベントを作成できません
Button btn = new Button();
btn.Location = new Point(250,220);
this.Controls.Add(btn);
どうすればクリックイベント等を作成できるのでしょうか?
助けてください・・・
574デフォルトの名無しさん:2006/07/26(水) 07:48:28
MSDN でイベントとか調べればいいよ
あと InitializeComponent メソッドの中調べるとか
575デフォルトの名無しさん:2006/07/26(水) 08:35:46
>>573
OnClickとかのdelegateに代入すれば良し。
576デフォルトの名無しさん:2006/07/26(水) 17:20:17
string二次配列使っているんですが、どうにも分かりづらいのでスッキリ代用できるクラスはありますか?
各要素数は不定です。
577デフォルトの名無しさん:2006/07/26(水) 17:40:44
List<List<string>>とかは?
可能かどうかは知らん
578デフォルトの名無しさん:2006/07/26(水) 18:24:35
>>577
可能だよ

>>576
要素数不定ってことはジャグ配列?
579デフォルトの名無しさん:2006/07/26(水) 18:31:08
>>576
良いんちゃう?
580576:2006/07/26(水) 20:31:34
ジャグ配列でぐぐって自分が間違った宣言していることに気付きました。
string[,]でいいんですね。string[][]使ってました。
実際やりたかったことはListViewにアイテム追加するための表だったので
どっちが行でどっちが列なのかハッキリ分かればいいのになぁと思ってました。
情報後だし申し訳ない。
581デフォルトの名無しさん:2006/07/26(水) 22:28:23
ListView に追加するって目的がはっきりしてるんなら、端から ListViewItem[] 使えばいいような気がする
582デフォルトの名無しさん:2006/07/26(水) 22:33:18
んな単純なことだったらここで質問しないだろ


と思ったけどここ初心者スレだったな
584デフォルトの名無しさん:2006/07/26(水) 22:43:43
585デフォルトの名無しさん:2006/07/26(水) 23:46:03
句読点、書けない、バカを、サマージャンボする俺。
586デフォルトの名無しさん:2006/07/27(木) 00:19:11
あぼーん推奨
587573:2006/07/27(木) 00:42:41
コントロールの配列を作成し、イベントを取得する方法がやっとわかりましたorz
delegateを散々試してみて、delegateやInitializeComponent メソッドの中調べる方法は
大変な上に時間がかかりすぎる気がしたのでネット上でサンプルを漁り、以下のコードを発見しました
http://jeanne.wankuma.com/tips/control/arraycontrol.html

これで10x10マスのマインスイーパーに配置していた100個のボタンコントロールから開放されます(^O^)Vイエィ
>>574さん、>>575さん、ありがとうございましたm(__)m
588デフォルトの名無しさん:2006/07/27(木) 01:15:36
なんかデジャヴュ
589デフォルトの名無しさん:2006/07/27(木) 01:23:22
なんか、何度も似たようなものを見ることをデジャヴュとか言う奴いるけど、
全くの間違いだから。
590デフォルトの名無しさん:2006/07/27(木) 01:47:00
どう考えてもワザとだろ
591デフォルトの名無しさん:2006/07/27(木) 09:11:17
2ちゃんで誤用を見つけたらどっかのスレで生まれた文化と思った方が良い
「ふいんき(←なこかへんかえできない)」とか「おながいします」とか
592デフォルトの名無しさん:2006/07/27(木) 13:18:35
ちんちんおっきおっき
593デフォルトの名無しさん:2006/07/27(木) 13:54:49
>>589
普通にそのままの意味じゃない?
既視感だろ
594デフォルトの名無しさん:2006/07/27(木) 14:18:46
>>593
多分>>588は過去の投稿と同じことが繰り返された事をデジャビュと言ってる
本来のデジャビュは無かったことがあった事のように感じていること
だから微妙に違う

でも2ちゃんだからどうでもいい
595デフォルトの名無しさん:2006/07/27(木) 14:46:13
くだらねぇ
596デフォルトの名無しさん:2006/07/27(木) 15:23:38
2ちゃんらしい流れだ
597デフォルトの名無しさん :2006/07/27(木) 15:34:22
.Net 2.0 の serialport クラスの
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
c = serialPort1.Read(r, 0, 32);
}
の終了はメインスレッドでどうやって待つ方法がいいでしょうか?
598デフォルトの名無しさん:2006/07/27(木) 16:09:48
本来のデジャビュはフランス語で「もう見た」という意味なので
「無かったことがあった事のように感じている」という訳ではない
599デフォルトの名無しさん:2006/07/27(木) 16:16:26
キスしてグッバイ☆
ありとあらゆるもの♪
600デフォルトの名無しさん:2006/07/27(木) 16:47:51
>>598
慣用句であるため直訳とは意味が違う

既視感 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%83%A3%E3%83%93%E3%83%A5
> 既視感(きしかん)は、一度も体験したことがないのに、すでにどこかで体験したように感じたり、過去に夢などで見たように記憶錯誤すること。
601デフォルトの名無しさん:2006/07/27(木) 17:03:24
で、お前らいつまでこの馬鹿話引きずるんだ?
602デフォルトの名無しさん:2006/07/27(木) 17:12:19
.netが死滅するまで
603デフォルトの名無しさん:2006/07/27(木) 17:13:35
次のネタふられるまで
604デフォルトの名無しさん:2006/07/27(木) 17:14:28
じゃあ次は確信犯の誤用な
605デフォルトの名無しさん:2006/07/27(木) 17:15:16
>>604 は確信犯的なレスをした
606デフォルトの名無しさん:2006/07/27(木) 18:19:34
>>605 は確信犯的なレスをした
607デフォルトの名無しさん:2006/07/27(木) 18:42:17
デリゲートで質問なのですが、
自己定義したイベントハンドラに += で2つ以上のメソッドを登録したあと
BeginInvoke() を実行すると System.ArgumentException が出るんです。
BeginInvoke() を利用したい理由は、登録したメソッドの戻り値を1つ1つ判定したい為です。
通常だと最後のメソッドの戻り値で上書きされるため、BeginとEndInvoke
を使ってみたのですが、まったくうまくいきません。

アドバイスや解説ページなどありましたら、どうかよろしくお願いします。
608デフォルトの名無しさん:2006/07/27(木) 18:47:36
>>607
今は確信犯の誤用について語り合うのに忙しいから帰ってくれ
609デフォルトの名無しさん:2006/07/27(木) 19:12:39
デリケートな質問かと思ったよ
610デフォルトの名無しさん:2006/07/27(木) 19:13:04
>>609
アホか
611デフォルトの名無しさん:2006/07/27(木) 19:16:08
流れ読めなくてすみませんでした。
とりあえず、GetInvocationList()を使い、目的である1つ1つの
戻り値判定はできました。
でもなんか、力業っぽいというか、、もっと勉強して調べたいと思います。
失礼しました。
612デフォルトの名無しさん:2006/07/27(木) 21:30:41
つかイベントで返値使うな、と言うのが MS のガイドライン。
呼び出し元に情報を伝えたい時は EventArgs を派生させたクラスで。
613デフォルトの名無しさん:2006/07/27(木) 22:52:51
イベントハンドラでないデリゲートならOK
614607:2006/07/27(木) 23:51:38
はじめはデイゲートインスタンス?を利用していたのですが、
メソッドの削除がちょっとうまく行かなかった為 event にしてみたんです。

delegate bool CheckDelegate( object value );
public class Sampel {
CheckDelegate checkDelegate;
public Remove( CheckDelegate check ) {
this.checkDelegate -= new CheckDelegate( check ); // ※1
}
※1で削除できなかったので event にしてみました。
インスタンス?が違うっぽいですから削除できないのは納得してました。
とくにメソッドの削除使う予定はないのですが。
単にデリゲートよいいいかな?と思って 簡単な event 使ってました。
もうちょっといろいろ読んで勉強していきます。
>>612-613さんご指導ありがとうございました。
615デフォルトの名無しさん:2006/07/28(金) 00:43:20
>>614
> public Remove( CheckDelegate check ) {
>  this.checkDelegate -= new CheckDelegate( check ); // ※1
> }

うむ、全く意味不明なコードに仕上がってるな。
右辺は += のときと同じになるぜ?
+= のときの右辺はどうしてるよ。
616デフォルトの名無しさん:2006/07/28(金) 00:56:19
>>615さんこんばんは。
あれ?Addの場合は、Removeと同じく、
public Add( CheckDelegate check ) {
this.chekDelegate += new CheckDelegate( check );
}
です。※Remove の"-"が"+"になっただけです。
これでテスト動いてたのでいいと思ってたのですが。
もしよかったらご指摘お願いします。
617デフォルトの名無しさん:2006/07/28(金) 02:45:13
delegateを勉強するよろし

delegate void UnkoDelegate( string str );

void UnkoTest()
{
 UnkoDelegate unko, unko2;

 unko = new UnkoDelegate( aho );
 unko2 = new UnkoDelegate( aho );
 unko -= unko2;
 unko += unko2;
 unko( "aho" );
}


void aho( string str )
{
 MessageBox.Show( str );
}





618デフォルトの名無しさん:2006/07/28(金) 12:09:43
イベントでずっと new してたので、意味もなく new が慣習になってました・・・
デリゲートというより、当たり前の事ですよね。インスタンス違うんだもん。
間抜けでした。 失礼しました。
619デフォルトの名無しさん:2006/07/29(土) 08:37:27
new でも問題ない
620デフォルトの名無しさん:2006/07/29(土) 14:00:59
質問です。
トラックバーを利用してシステムの音量を調整するのには
どうしたらいいですか?
また、音量の値も取得したいのですが…
621デフォルトの名無しさん:2006/07/29(土) 14:01:37
すいません、ageてしまいました orz
622デフォルトの名無しさん:2006/07/29(土) 14:09:15
別にsage必須スレじゃない
623デフォルトの名無しさん:2006/07/29(土) 14:16:19
Win32API を使う必要がある。
ttp://www.google.com/search?hl=ja&lr=lang_ja&oe=utf8&q=API+%E9%9F%B3%E9%87%8F
トラックバー自体は別にいいよな?
624デフォルトの名無しさん:2006/07/29(土) 20:24:12
デリゲートは対象のインスタンスとメソッドが同じなら同じ扱い。
625デフォルトの名無しさん:2006/07/29(土) 23:54:12
>>623
ありがとうございます。
Win32API使ったこと無いのでちょっと苦しそうですが
がんばってみます。
626デフォルトの名無しさん:2006/07/29(土) 23:55:46
専ブラ使ってるのに何で設定が保存されないのだろう orz
627デフォルトの名無しさん:2006/07/30(日) 16:55:00
初心者の俺が実況用のブラウザ作る!1!!11!
http://ex16.2ch.net/test/read.cgi/news4vip/1154167137/
まとめ
http://vanbl.blog.shinobi.jp/


現在新しい専ブラを開発中ですプログラミングに詳しい方
>>1にアドバイスをお願いします
628デフォルトの名無しさん:2006/07/30(日) 22:20:24
>>627
live2chってのがとっくの昔にあるぞ。
629デフォルトの名無しさん:2006/07/30(日) 22:49:54
live2ch は VB だったと思うが、最近変わったのか?
630デフォルトの名無しさん:2006/07/30(日) 22:50:32
>>629
言語なんぞ些細なことで重要なのは要求する仕事をしてくれるソフトウェアです。
631デフォルトの名無しさん:2006/07/31(月) 00:00:50
live2chはVBだよ、何が悪いの?
632デフォルトの名無しさん:2006/07/31(月) 00:12:34
ちょっとお聞きしたい。
親子のフォームを作って、子でパラメータをいじれるようにして
親で子のパラメータをリアルタイムに反映させるようにするには
どうするのが一番良いのでしょう?

親でstatic変数で管理?
子のイベントを親のクラスで作る?
その他?

C#が独学なんで、作ってて迷いが出てるんですよ
助言お願いします。
633デフォルトの名無しさん:2006/07/31(月) 00:17:39
んん、要するに子にスライドバー置いて親に表示してる画像の拡大率変更、とかそんなんか。

イベント。
だが子のイベントを親のクラスで作るってのは意味不明。
子のイベントに親がイベントハンドラを登録する、だな。
634デフォルトの名無しさん:2006/07/31(月) 00:43:44
プロパティでもイベントでもSendMessageでも。
やるとしたらイベントかな。
635デフォルトの名無しさん:2006/07/31(月) 00:51:18
この場合、親は子の存在を知るべきか?子は親の存在を知るべきか?で話は違ってくる。
自分の理想では、親に子ウィンドウをインジェクション注入、子にはパラメータ変更時に呼び出すべき親のメソッドをデリゲートとして登録しておく。
これで、両者ともお互いの存在を知ることがない。
636デフォルトの名無しさん:2006/07/31(月) 11:05:19
こんにちは。

stringの配列をプロパティにしたいのだけど、書き方がわかりません。
普通の変数であれば、わかります。
mohe.property[1] <= こんなふうにアクセスしたいです。

書き方を教えてくださいな。
637デフォルトの名無しさん:2006/07/31(月) 11:55:41
できるんだっけ?
638デフォルトの名無しさん:2006/07/31(月) 12:03:12
意味不明
639デフォルトの名無しさん:2006/07/31(月) 12:07:30
>>636
string[] _aho = new string[30];
string[] Aho { get { return _aho; } }
640デフォルトの名無しさん:2006/07/31(月) 12:49:17
>>639
ありがとう。むつかしく考えてたよ。
アホだ…。
641デフォルトの名無しさん:2006/07/31(月) 12:53:46
え、まじでそういう話だったのか
642デフォルトの名無しさん:2006/07/31(月) 14:53:59
質問です。

指定したアプリにVK_F1とかを送りたいです。
SetForegroundWindowしてからkeybd_eventで送れたことは送れたんですが、
タイミング?によってはうまく動きません。
(GetForegroundWindowで確認してからkeybd_eventをしてるのに)

代わりにPostKeybdMessageでアプリを直接指定して送りたいのですが、
FindWindowでとったハンドルを指定してもそこに送れてないし、
ハンドルを-1にしても、ASCII文字しか送れていないようです。

文字ではなくF1とかの仮想キーを、指定したアプリに送ることって出来ますか?
643デフォルトの名無しさん:2006/07/31(月) 14:58:59
普通にSendMessageでWM_KEYDOWNじゃだめなのか?
フォアグラウンドなんて関係ないっしょ
644デフォルトの名無しさん:2006/07/31(月) 15:01:14
>642
http://pc8.2ch.net/test/read.cgi/tech/1153537081/287-
この人犯罪者です><
645デフォルトの名無しさん:2006/07/31(月) 15:03:04
どこがC#の質問かと
百歩譲ってどこが.NETの質問かと

Win32APIスレで聞け
646642:2006/07/31(月) 15:16:41
>643
なるほど、やってみます
まだググって片っ端から試してみてる程度のレベルなので・・・

>644
うへ、これは別人ですけど
このタイミングじゃどう思われても仕方ないですね・・・orz

>645
コード自体はC#で書いてますけど、
改めてカキコ見直してみたら、確かにC#も何も関係ないですね
スレ違い申し訳ない
647デフォルトの名無しさん:2006/07/31(月) 15:23:20
キー送りたいという質問自体はよくあること
648デフォルトの名無しさん:2006/07/31(月) 15:48:24
俺もよくやること
649デフォルトの名無しさん:2006/07/31(月) 16:02:18
>>641
俺もそう思った。
>>637がハードルを上げて難しく考えてしまった。
650デフォルトの名無しさん:2006/07/31(月) 23:36:57
ダサいよなぁ。
651632:2006/08/01(火) 02:01:02
>>633-635
お答えありがとうございます。
なるほど、イベント登録がデフォなんですね。
子フォームにコントロールを追加していくと
勝手にイベントが追加されるのに、さらに
書かないと行けないのはめんどくさいなぁ・・・
652デフォルトの名無しさん:2006/08/01(火) 14:46:38
http://sewig.jp/diary/?date=20060624
↑のコードを元に以下のようなコードを書いたのですが、
unsafe public void Wave_generation(double f)
{
try
{
short* wave_data = stackalloc short[44100];
double dr = 2 * Math.PI / (44100.0 / f);
for (int t = 0; t < 11025; t++)
{
*(wave_data + t) = (short)(Math.Sin(dr * t) * 32767);
}

        (中略)

wt.dwFlags = 1;
wt.dwLoops = 1;
wt.dwBytesRecorded = 0;
wt.dwUser = 0;
wt.lpNext = null;
wt.reserved = 0;

windows.waveOutPrepareHeader(hWOut, &wt, (uint)sizeof(wavehdr_tag));
windows.waveOutWrite(hWOut, &wt, (uint)sizeof(wavehdr_tag));
Thread.Sleep(300);
windows.waveOutClose(hWOut);
}
catch { }
}
このコードを連続実行するとtry〜catchで括っているにもかかわらず、何も言わずに
プログラム本体が落ちてしまいます。
これを回避するにはどうしたらいいでしょうか?
653デフォルトの名無しさん:2006/08/01(火) 15:26:41
>>652
[ツッコミを入れる]
ツッコミ・コメントがあればどうぞ! E-mailアドレスは公開されません。

交流してやれよ
654デフォルトの名無しさん:2006/08/01(火) 19:54:17
自分のコントロールでマウスをキャプチャするにはControl.Capture = true; とすればいいんですが、
キャプチャしているコントロールを取得するにはどうしたらよいのでしょうか?
655デフォルトの名無しさん:2006/08/01(火) 20:08:49
MSDNライブラリの「Control.Capture プロパティ」の使用例のところにあるけど
656デフォルトの名無しさん:2006/08/01(火) 20:11:07
>自分のコントロールでマウスをキャプチャするにはControl.Capture = true; とすればいいんですが、

本当か?
657654:2006/08/01(火) 20:24:34
>>655
使用例は「特定のコントロールがキャプチャしたとき」を判断するサンプルですよね。

>>656
失礼しました。Control.Captureプロパティを true に設定する、と言いたかったのです。
658デフォルトの名無しさん:2006/08/02(水) 10:18:36
Control.Captureプロパティは読み込み専用ジャマイカ。
659654:2006/08/02(水) 18:56:42
>>658
いえ、そんなことはないはずです。

どうも無理なのですかね。
あきらめてP/Invokeでやることにします。
660デフォルトの名無しさん:2006/08/02(水) 20:13:06
Form から Controls を再帰的に探していけば見つかりそうだが。
661デフォルトの名無しさん:2006/08/02(水) 22:43:27
object obj = 1;

int i = (int)obj;

これは成功するのに

IntPtr p = (IntPtr)obj;

だと例外でるのはなんで?

IntPtr p = (IntPtr)(int)obj;

ってしなきゃいけないの?
662デフォルトの名無しさん:2006/08/02(水) 22:50:44
数値リテラルは明示しなかった場合 int
IntPtr じゃなくて long でも InvalidCastException だぜ
663デフォルトの名無しさん:2006/08/02(水) 23:00:59
664デフォルトの名無しさん:2006/08/02(水) 23:07:18
>>662
>>663
ありがとう

>互換性のない値型への参照をボックス化解除しようとすると、
>InvalidCastException が発生します。

ってことは、int と IntPtr は「互換性のない値型」ってこと?
(IntPtr)i
はできるのに?
665デフォルトの名無しさん:2006/08/02(水) 23:10:49
>>664
だってObjectの中身が具体的に何かなんて知ったこっちゃないし。
666デフォルトの名無しさん:2006/08/02(水) 23:14:15
IntPtr は Int32 からの型変換は定義してるけど Object からの型変換は定義していない
667デフォルトの名無しさん:2006/08/02(水) 23:17:09
>>665
>>666
なっとくしました。
初心者のアホな質問につきあってくれてありがとう。
668デフォルトの名無しさん:2006/08/04(金) 14:15:10
[Category("カテゴリ名")]のカテゴリ名一覧が知りたいんですが、どこかに載ってませんか?
669デフォルトの名無しさん:2006/08/04(金) 15:20:59
ヘルプに載ってね?
670デフォルトの名無しさん:2006/08/04(金) 15:26:36
671668:2006/08/04(金) 15:30:38
探したりなかったようで申し訳ない。>>670thx
672デフォルトの名無しさん:2006/08/08(火) 17:42:46
C#で日付の差分をとる方法を教えてください。
VBでいうdatediffのようなものです。

宜しくお願いします。
673デフォルトの名無しさん:2006/08/08(火) 17:53:33
TimeSpan span = date2 - date1;
674デフォルトの名無しさん:2006/08/08(火) 18:21:31
>>673
あ、ありがとうございまふ。
675デフォルトの名無しさん:2006/08/08(火) 18:52:49
>>672
C#にそういう機能はない
.NET Frameworkを使うしかない
676デフォルトの名無しさん:2006/08/08(火) 19:07:30

   ∧_∧    / ̄ ̄ ̄ ̄ ̄
    (ω・ )ゝ < なんだって?
  ノ/  /     \_____
  ノ ̄ゝ
677デフォルトの名無しさん:2006/08/08(火) 19:21:25
.NET FrameworkもC#で実装されてる
678デフォルトの名無しさん:2006/08/08(火) 19:43:43
 ,j;;;;;j,. ---一、 `  ―--‐、_ l;;;;;;  
 {;;;;;;ゝ T辷iフ i    f'辷jァ  !i;;;;; 
  ヾ;;;ハ    ノ       .::!lリ;;r゙
   `Z;i   〈.,_..,.      ノ;;;;;;;;>  そんなふうに考えていた時期が
   ,;ぇハ、 、_,.ー-、_',.    ,f゙: Y;;f.   俺にもありました
   ~''戈ヽ   `二´    r'´:::. `!
679デフォルトの名無しさん:2006/08/09(水) 11:24:26
>>675
VB6スレから出張ご苦労様です
680デフォルトの名無しさん:2006/08/10(木) 07:55:54
ボクはVBer♪
681デフォルトの名無しさん:2006/08/11(金) 02:48:31
axWindowsMediaPlayerを使ったプログラムを組んでいるのですが、
再生が終了したのを検出するにはどうしたらよいでしょうか?
EndOfStreamイベントで検出出来るかどうか試したのですが、
検出できませんでした。

よろしくお願いします。
682デフォルトの名無しさん:2006/08/11(金) 08:22:25
>>681
WMPPlayState.wmppsMediaEnded
683デフォルトの名無しさん:2006/08/11(金) 13:31:51
>>682
うまく検出できました。
ありがとうございました。
684デフォルトの名無しさん:2006/08/13(日) 12:18:25
ものっすごい見当違いな質問かもしれません。
Form1.csのイベントハンドラから、外部クラスのmethodに値を渡し、
そのmethod内で処理した結果をReturnで返すようにしているのですが、
それを受け取ってみてもフォームに反映されないのです。(正確には、反映はされる事があっても、その方法ではGUIがフリーズしてしまう)
外部クラスのmethodというのは、接続先とPortを渡されたら、TcpClientで接続し、ストリームから通信結果を受け取って、
stringとして格納していき、それをReturnするものです。

スレッドを使ってみたり、デリゲートを利用してみたり、backGroundWorkerを触ってみたりしたのですが、
どれも既にあるクラスをそのまま利用するというわけにはいかず、外部クラス内に手を入れなければいけないような感じですし…
おそらく根本的に考えかたというか、GUIプログラミングの定石のようなものが理解出来てないせいだと思うのですが、
なかなか取っ掛かりが見えてきません…。
呼ばれたら一連の動作を実行して結果を返し、その結果をForm1.cs側で受け取ってUIに反映させるという流れで間違ってますでしょうか?
685デフォルトの名無しさん:2006/08/13(日) 12:25:37
>>684
その方法で良いともうけど、なにが出来ていないのかよく分からない。
とりあえず、returnは止めて、Form1にstringを受け取れるフィールドとプロパティを作って、
そちらに送って、Form1で処理してみては?
686デフォルトの名無しさん:2006/08/13(日) 12:29:31
要するにそのメソッドは同期的にある程度長い時間を食うものであると。
同期的なら当然そのメソッドを処理しているあいだ他の事ができないわけで、
この他の事というのに画面の再描画とかも含まれるから応答無しになるわけだな。
で、それを回避するには当然何らかの手法で別スレッドで処理させる必要がある。
.NET 2.0 なら BackgroundWorker だな。

で、何が分からないんだ?
687デフォルトの名無しさん:2006/08/13(日) 12:30:12
>>686
普通にdelegateの非同期実行でええやん。
688デフォルトの名無しさん:2006/08/13(日) 12:32:08
>>687
初心者は絶対 GUI とのやりとりでハマる。
689デフォルトの名無しさん:2006/08/13(日) 12:32:22
逆にスレッドを使ってるせいでハングアップしてるんじゃないのかな?
GUIを管理しているスレッド以外からはGUIの更新は直接は出来ない。Control.Invoke メソッドを参照。
690デフォルトの名無しさん:2006/08/13(日) 12:33:28
>>688
はいはい、3組のパソコン博士君にはかなわないよ。
691デフォルトの名無しさん:2006/08/13(日) 12:34:30
>>689
だったら例外出ます。
692デフォルトの名無しさん:2006/08/13(日) 12:36:30
>>686,687
BackgroundWorker使ってみたと書いてあるやん。
693デフォルトの名無しさん:2006/08/13(日) 12:37:23
デバックなら例外でるけど、
リリースバージョンならでないんじなかったっけ?
694デフォルトの名無しさん:2006/08/13(日) 12:39:06
>>684
そのプログラムをどっかのアップローダに上げてみた方が解決は早いと思うよ。
695デフォルトの名無しさん:2006/08/13(日) 12:40:16
>>685-686
そこまでが正しい考え方であるということは…。
別スレッドで処理した結果の受け取り方が鬼門になっていると言う事になるのですかね…多分ですが。
backGroundWorkerが一番手軽そうでしたので、それを例にして。
例えば、
string log;
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
  Class1 cs1 = new Class1();
  log += cs1.connect();
}
のようにDoWorkで外部クラスのメソッドを呼んで、結果をForm1.cs(public partial class Form1 : Form)の、
string log;に入れるようにして、
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
  richTextBox1.Text += log;
}
という感じでスレッド側での処理が終わった時に通信結果を表示したいのですが、一向にフォームが書き換わる気配が無く…。
696デフォルトの名無しさん:2006/08/13(日) 12:41:59
フォーム云々以前に値は帰って来てるのかい?
697デフォルトの名無しさん:2006/08/13(日) 12:48:55
>>696
それがどうも、ブレークポイントを log += cs1.connect();の場所に仕掛けてみても、当然のようにlogはまだ何も入っていない状態で、
さらに、backgroundWorker1_RunWorkerCompletedのrichTextBox1.Text = log;にもブレークポイントを仕掛けてみたのですが
そちらは引っ掛かりもせずです。
698デフォルトの名無しさん:2006/08/13(日) 12:54:17
ブレークポイントいれるなら
log += cs1.connect();の次の行か閉じ括弧に。
それでブレークしないなら
connect()でそっちのスレッドから返ってきてないんじゃ
699デフォルトの名無しさん:2006/08/13(日) 12:56:55
まずシングルスレッドで Connect メソッドが成功するのかどうかから確認した方が良い気がする
700デフォルトの名無しさん:2006/08/14(月) 12:30:49
日付型から和暦の年を最低1桁で取り出そうと思っています
しかしこのコードだと1桁の和暦ではなく、例えば「平成 9年6月」という文字列が返ってきます
この中の 9 という値だけが欲しいのですが、どうすればいいのでしょうか

CultureInfo culture = new CultureInfo("ja-JP", true);
culture.DateTimeFormat.Calendar = new JapaneseCalendar();
Label2.Text = date.ToString("y", culture);

string.Format(culture, "{0:y}", date) でもだめでした

ご存知の方教えてください
701デフォルトの名無しさん:2006/08/14(月) 12:39:08
DION規制に引っ掛かってしまってレスが返せませんでした…orz

で、>>698氏の通りにブレークポイント位置を変えてみたら、
どうやら、DoWorkのlog += cs1.connect();で、logにはちゃんと結果が入ってる事が確認できました!
このブレークポイントの掛け方を知る事ができただけでも、かなり感謝です。

しかし、RunWorkerCompletedの方は、閉じ括弧のブレークポイントですら引っ掛からないので、
こちらは恐らく、使い方そのものがまずい悪寒。IRC等のチャットアプリケーション(通信を常に開いているようなもの)では、
TCPClientでの通信は避けて、Socketで非同期に通信するべきですかね…。
なにはともあれ、ありがとう御座いました。もすこし色々やってみます。
702デフォルトの名無しさん:2006/08/14(月) 13:05:18
>>700
JapaneseCalendar cal = new JapaneseCalendar();
Label2.Text = cal.GetYear(date).ToString();

ちなみに書式指定は"%y"
703デフォルトの名無しさん:2006/08/15(火) 13:50:55
IpcChannel を使ったアプリを WindowsMe で動かそうとすると
PlatformNotSupportedException が出ます。
Me では使えないんでしょうか。
704デフォルトの名無しさん:2006/08/16(水) 10:33:32
C#相談室から誘導されてきました

リストビューからIEのお気に入りのショートカット(.url)をクリックして
axWebBrowser1に表示させたいのですが、「ファイルのダウンロード-セキュリティの警告」
という画面が出て直接表示されません。
「開く」を押すと新しいIEが開いてそこに表示されてしまいます。
これをセキュリティ警告を出さず、直接表示させるにはどのようにすれば良いでしょうか。

お願いします。
705デフォルトの名無しさん:2006/08/16(水) 10:36:17
>>704
URLファイルからURLを取ってきてWebBrowserのNavigateに放り込めいいじゃない
706デフォルトの名無しさん:2006/08/16(水) 10:44:55
>>704
urlファイルからどうやってリンク先を取得してんの?
C#からやると結構面倒だけど。
ShellLinkObjectクラスとIShellLinkWインターフェイス実装してるの?
それともShell32を参照に追加?
707デフォルトの名無しさん:2006/08/16(水) 10:53:26
urlファイルの中身は単なるiniファイルですが何か
708デフォルトの名無しさん:2006/08/16(水) 10:57:27
知らんかった
709704:2006/08/16(水) 11:06:40
>>705-708
ありがとうございます。

>>705
URLの取り方はStreamReaderでurlファイルから読み込めばいいのでしょうか?
それとも日付とかサイズ取得するみたいになんか簡単に取得できるのかな

>>706
リンク先の取得をせずに直接ショートカット(URLファイル)にアクセスしています
710デフォルトの名無しさん:2006/08/16(水) 16:55:09
>>709
url ファイル (下のは2chへのリンク) の中身をダンプするとこんな感じ (>>707の通り単なる ini ファイル)

[InternetShortcut]
URL=http://2ch.net/
Modified=606955AF07C1C6015C

// だからかなり処理を省くとこんな感じのコードで読める。 (全角スペース → タブ / 未テスト)
StreamReader reader = new StreamReader("link.url");
string url = null;
string line;
while ((line = reader.ReadLine()) != null)
{
 if (line.StartsWith("URL="))
 {
  url = line.Substring(4);
  break;
 }
}

もちろんWin32API を使って ini を読むのもアリ。
# http://www.microsoft.com/japan/msdn/vbasic/migration/tips/INIfile.aspx
711デフォルトの名無しさん:2006/08/16(水) 17:47:16
Componentクラスの上にSqlConnectionとか置いておいたら
ComponentクラスがDisposeされるときにに一緒にDisposeされる
もんだと思ってたんだけど違うようだと気付いた
あれは一個一個if (this.sqlConnection1 != null)sqlConnection1.Dispose
みたいにやっていかないといけないの?
712デフォルトの名無しさん:2006/08/16(水) 18:26:43
>>711
君がComponentクラスと呼んでるものが、
> System.ComponentModel.IContainer components = new System.ComponentModel.Container();
これのContainerクラスのことなら、これにAddされたコンポーネントは
componentsをDisposeすれば連鎖的にDisposeされる。個別にDisposeする必要はない。
713デフォルトの名無しさん:2006/08/16(水) 21:08:22
>>710
横からですが、この
Modified=606955AF07C1C6015C
ってのはどういう値なんでしょうか?
714デフォルトの名無しさん:2006/08/16(水) 21:09:35
>>713
epocのミリ秒版とかそんなんでしょう。
715704:2006/08/17(木) 02:17:21
>>710さんのソースでやりたいことができました。ありがとうございます。
あとでWin32APIを使った方法も試してみたいと思います。
ありがとう。
716デフォルトの名無しさん:2006/08/17(木) 19:41:00
717デフォルトの名無しさん:2006/08/17(木) 21:13:02
C#相談室で回答を貰えなかったのでこちらでも質問させてください。

DataGridViewで列毎にCharacterCasingを設定することは可能なのでしょうか?
可能なら設定の仕方を教えてください
718デフォルトの名無しさん:2006/08/17(木) 21:16:47
>>716
ぅぉ-ありがとう。
なぜにMSのサイトに載ってないんだろ。
719デフォルトの名無しさん:2006/08/17(木) 21:21:47
>>717
向こうで質問取り消してから来いよカス
720デフォルトの名無しさん:2006/08/17(木) 21:27:48
>>719
うるせーバカ
わかんねんだろ?

もうどうでもいいよ!
721デフォルトの名無しさん:2006/08/17(木) 21:35:15
プログラム初心者です。
C#相談室でこちらに行けといわれました。。。
掲示板の質問も取り消せないほどの初心者です。

WinCEでプログラムを走らせているのですが、
その時の文字のエンコードをUnicodeに変更しなくてはいけません。
Shift_JISからの変更だったので下のようなプログラムを書いて見ました。


StringBuilder _DataArry;
string DataArry = _DataArry.Tostring();

byte[] test = Encoding.Unicode.GetBytes(DataArry);
DataArry = Encoding.Unicode.Getstring(test);

しかし、ビルドをすると
引数を'1'個指定できる、メソッド'GetString'のオーバーロードはありません。
とエラーが出てしまいます。

すみませんが、どなたか教えていただけませんか?
722デフォルトの名無しさん:2006/08/17(木) 21:44:22
723デフォルトの名無しさん:2006/08/17(木) 21:46:16
>>721
なぜコンパイルエラーが出るかといえば、
GetstringがVirtualだから。

やるとするなら
UnicodeEncoding unicode = new UnicodeEncoding();
unicode.GetString(buffer);

だけどそのコード意味ないよ。
724デフォルトの名無しさん:2006/08/17(木) 21:49:28
# >>721じゃないけど。
>>721 を補足すると、
Encoding.GetString(byte[]) はWinCEじゃサポートされてないから、
Encoding.GetString(byte[], int, int) を使えって話ね。

この場合は、
Encoding.Unicode.GetString(test, 0, test.Length);
かな。ただsjis からだと前の行も
byte[] test = (new Encoding(932)).GetBytes(DataArry);
って変更が必要。
725デフォルトの名無しさん:2006/08/17(木) 21:50:42
もっと単純な話じゃないの?
>.NET Compact Framework によってサポートされています。 
と書いてあるのはこの書式だけ。
>Encoding.GetString (Byte[], Int32, Int32) 
726724:2006/08/17(木) 21:51:05
間違えた。こっちか。
byte[] test = Encoding.GetEncoding(932).GetBytes(DataArry);
727デフォルトの名無しさん:2006/08/17(木) 23:16:44
>>712
いや、単にSystem.ComponentModel.Componentを継承しただけのクラスです
(メニューの「コンポーネントの作成」で作られるやつ)
なんかデザイナ上でSqlConnectionとか貼れるから、Disposeまで自動で
してくれるのかと思ったんだけど、実際Disposedイベントを監視してみると
自動ではDisposeされない、と最近知ったという、だめぽな俺。
よく見るとSqlConnectionのコンストラクタにIContainerを受け取るのが無いし。

728デフォルトの名無しさん:2006/08/18(金) 16:12:39
自分で全部IContainerにAddしとけば?
Disposing(bool)をオーバーライドしてまとめてDispose
729デフォルトの名無しさん:2006/08/18(金) 17:05:15
Form1のDataGridViewをダブルクリックした時に
Form2を開きDataGridの選択された行の内容をTextBoxに表示したいのですが

TextBoxに表示する方法がわかりません
どうすればいいのでしょうか?
730デフォルトの名無しさん:2006/08/18(金) 17:10:11
DataGridView dgView=new DataGridView();
TextBox tb=new TextBox();
tb.Text=dgView.ToString();
731デフォルトの名無しさん:2006/08/18(金) 17:34:33
DataGridViewをpublicにするなり
Form1にpublic staticなフィールドもってそこにいれておくなり
Form1にプロパティつくってForm2で読むなり
Form2のコンストラクタに行の内容渡すなり

お好きな方法でどうぞ
732デフォルトの名無しさん:2006/08/19(土) 11:43:02
>>731
それのやり方がわからないので聞いたのですが?

どの方法かわかりませんが自己解決しました
ここは役に立たないインターネットですねw
733デフォルトの名無しさん:2006/08/19(土) 11:45:15
  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < まーた始まった
|   ,;‐=‐ヽ   .:::::|    \_______
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\
734デフォルトの名無しさん:2006/08/19(土) 11:50:27
「何となくだけどできちゃった。俺SUGEEEEE!!!」 は解決したとはいわない。
っていうかぶっちゃけ危険分子。
735デフォルトの名無しさん:2006/08/19(土) 11:54:18
>>734
そういうことばっかり言って・・・
ちゃんと教えてくれないくせに・・・

本当に意地悪っ子だね・・・
736デフォルトの名無しさん:2006/08/19(土) 11:56:01
×役に立たない
○レベルが高すぎて理解できない
737デフォルトの名無しさん:2006/08/19(土) 12:02:17
用はソースコードを示さないと理解できないんだろうが、
情報が与えられていない以上あれ以上の教え方ができるやつはどこに行ってもいない
738デフォルトの名無しさん:2006/08/19(土) 12:03:17
publicとstaticの説明からはじめろってことだろw
739デフォルトの名無しさん:2006/08/19(土) 12:15:30
>>737
そうそう。コードないとわからないのよ。

で、あれ以上の教え方を得るためにはどのような情報を与えてやればいいんだ?

しっかし、質問しても人湧いてこないのに
少し煽るとわらわら湧いてくるんだなw
740デフォルトの名無しさん:2006/08/19(土) 12:18:00
>>739
環境からやりたいことからプロジェクト名か何から何まで
思いつくもの全部書け
それでたりなかったら無理。あきらめろ。どこいってもだめ
741デフォルトの名無しさん:2006/08/19(土) 12:18:59
ちなみに女子高生です
742デフォルトの名無しさん:2006/08/19(土) 12:29:58
>>741
悪いな女子中学生しか興味ない
743デフォルトの名無しさん:2006/08/19(土) 12:31:08
俺は年齢一桁が専門です
744デフォルトの名無しさん:2006/08/19(土) 12:33:44
うわっ、キモ
745デフォルトの名無しさん:2006/08/19(土) 12:39:44
ちなみにすぐ下の妹が女子中学生で、一番下の妹が年齢一桁です
746デフォルトの名無しさん:2006/08/19(土) 12:40:52
住民票うp
747デフォルトの名無しさん:2006/08/19(土) 12:43:13
>>739
必要な情報はあれだけで十分。あとは理解しなさい。

個人的には public string プロパティを Form2 に作るが。
それともプロパティの作り方から教えなきゃダメか?
748デフォルトの名無しさん:2006/08/19(土) 12:44:49
>>747
そういう方法じゃなくて答えをもらわないといけないんだと

プロぐれマートしてはさいくあのにんげん
749デフォルトの名無しさん:2006/08/19(土) 12:47:10
プロパティってなんですか?
750デフォルトの名無しさん:2006/08/19(土) 12:51:55
>>747
いや、その方法で自己解決したので結構です
751デフォルトの名無しさん:2006/08/19(土) 12:57:00
>>748
日本語でおk
752デフォルトの名無しさん:2006/08/19(土) 13:06:56
こういう流れのときはこの板にIDがあったらといつも思う
753デフォルトの名無しさん:2006/08/19(土) 13:24:29
おまんこ
754デフォルトの名無しさん:2006/08/19(土) 19:47:57
MSDataSetGeneratorを用いて
<DataSet>
<Table1>
 <name></name>

</DataSet>
755754:2006/08/19(土) 19:52:14
ごめん間違えた、MSDataSetGeneratorで、
入れ子になったDataTableを作りたいんですがどうすればいいのでしょう?

<dataSet>
<table1>
 <name></name>
 <tables>
  <table2>
   <data></data>
  </table2>
 </tables>
</table1>
</dataSet>
756デフォルトの名無しさん:2006/08/19(土) 22:23:52
まずは雛形的に簡単な DataSet 作ってそいつのスキーマ取得してみたらどうだ。
757デフォルトの名無しさん:2006/08/20(日) 15:07:23
Visual C# 2005 Express Edition で質問です
オプション → キーボード の「次の追加キーボード マップ スキーム を適用」に (既定) 以外がありません。
何か特別なことをしないと駄目なのでしょうか?
758デフォルトの名無しさん:2006/08/20(日) 15:10:20
Standardを買ってください
759デフォルトの名無しさん:2006/08/20(日) 15:17:24
>>758
Express Edition には付いてないですか。
ttp://www.okisoft.co.jp/esc/vs-exp/2emacs.html
ここを見ると付いているみたいだったので質問したのですが、お騒がせしました。
ありがとうございました。
760757:2006/08/20(日) 15:18:55
しまった orz
こんなこと書かれてた orz

(例えば Visual C# 単体をインストールしただけでは「既定」しか選択できません。 Visual C++ をインストールすると,Visual C# でも「既定」に加えてテキスト エディタ「Brief」と「Emacs」の操作方法を選択できるようになります)
761デフォルトの名無しさん:2006/08/20(日) 17:22:52
>>754
つxsd.exe
762デフォルトの名無しさん:2006/08/20(日) 18:44:22
using (A a = new A()) { ... }
このとき、Aのコンストラクタで発生した例外をcatchするには、
usingブロック全体をtryブロックでくくらないといけないのですか?
763デフォルトの名無しさん:2006/08/20(日) 18:57:37
>>762
using ブロックで例外を catch できるとでも思ってるの?
764デフォルトの名無しさん:2006/08/20(日) 19:02:06
正直そう言う構文は有りだったとも思う。
using ( ... ) {
    ...
}
catch (HogeException ex) {
}
みたいなの。
そのうち採用してくれんかな。
765デフォルトの名無しさん:2006/08/20(日) 19:02:54
あー、でも using ステートメントで宣言した変数のスコープの問題もあるか……。
766762:2006/08/20(日) 19:06:24
try using (StreamReader reader = new StreamReader(path)) { ... }
767762:2006/08/20(日) 19:10:43
すみません。
try { using (StreamReader reader = new StreamReader(path)) { ... } }
catch (FileNotFoundException) { ... }

みたいなことをするなら、はじめからusingを使わずにfinallyを使ったほうが
見た目がきれいなのではないかと思ったからです。
usingを使うようなクラスは、コンストラクタで例外を投げるものが多いように感じますし
768デフォルトの名無しさん:2006/08/20(日) 19:31:12
FileNotFoundException なら先にファイルの存在をチェックしろといいたい
769デフォルトの名無しさん:2006/08/20(日) 19:41:03
>>768
その理屈はおかしいよ。
存在チェックした後実際に触るまでのあいだに削除される可能性は常に考慮してないと行けない。
事前に存在チェックするのも大事だけど。
770デフォルトの名無しさん:2006/08/20(日) 23:56:48
タブブラウザを作るときってaxwebbrowserをいくつも作るんですか?
なんか違うと思うのですがどのように実装するのか分かりません。
ヒント頂ければ幸いです。
771デフォルトの名無しさん:2006/08/21(月) 00:02:09
そのコントロールを使うかどうかは自由だが
IEコンポーネントはタブの数だけ必要だろ
772770:2006/08/21(月) 00:06:37
>>771
分かりました。ありがとうございます。
773デフォルトの名無しさん:2006/08/21(月) 00:16:56
>>771
タブだけ別に用意して、タブが切り替わったら axWebBrowser の中身を入れ替えるというのも
アリといえばアリ。
774770:2006/08/21(月) 00:21:06
>>773
そっちで想像していました。普通にいくつも作ればいいみたいですね。
ありがとうございました。
775デフォルトの名無しさん:2006/08/21(月) 03:49:27
>>773
いや、なしだと思うぞ…
そんなブラウザ使えねーだろ…
776デフォルトの名無しさん:2006/08/21(月) 07:56:12
質問です。
try-catch文でcatch出来ない例外や、catchし損ねた例外が発生した際、エラーログを出力するメソッドなどはありますか?
また、そのメソッドがない場合、例外が発生した時に発生するイベントを自作することは出来ますか?
777デフォルトの名無しさん:2006/08/21(月) 07:56:58
セキュリティとかステートとか履歴とかスクリプト処理とかゾーンとかあらゆることが無茶苦茶になるわな
778デフォルトの名無しさん:2006/08/21(月) 08:07:42
ASP.NETならApplication_Error
WindowsフォームならThreadExceptionとかUnhandledExceptionEventHandlerとか

「未処理の例外」でぐぐれ
779デフォルトの名無しさん:2006/08/21(月) 22:09:56
>>773
糞遅いでしょ。それ。
780776:2006/08/22(火) 01:48:09
>>778
ヒントを元にググったら何とか目的が達成できました。
ありがとうございました。
781デフォルトの名無しさん:2006/08/22(火) 02:22:17
>>779
重さ以前の問題があるわな
782デフォルトの名無しさん:2006/08/22(火) 12:23:58
ToolStripComboBoxには普通のComboBoxのように
DataSource、DisplayMember、ValueMember等の設定は出来ないのでしょうか?
783デフォルトの名無しさん:2006/08/22(火) 12:44:18
ToolStripComboBox.ComboBox プロパティ
784デフォルトの名無しさん:2006/08/22(火) 12:57:33
>>783
ありがとうございます
785デフォルトの名無しさん:2006/08/24(木) 02:54:47
日付や結果などのログを表示するのに
ListViewの詳細表示とDataGridViewのどっちを使う方が良いと思いますか?
786デフォルトの名無しさん:2006/08/24(木) 03:19:43
ログがDBやDataTableに格納されているならバインドが楽なDataGridView
ログがリアルタイムに発生して単にコントロールに追記するだけならListViewで十分
軽さを求めるならListView
アイコンを手軽に使いたいならListView
その他判断基準は色々ある

自分で両方試して目的に合う方を使うのがおすすめ
比較することでそれぞれの特性も理解できるし
787785:2006/08/24(木) 03:33:17
>>786
目的的にはListViewで十分そうですが
せっかくですので今後の勉強のためにも
両方使ってみることにします

ありがとうございました
788デフォルトの名無しさん:2006/08/24(木) 04:14:33
メインフォームから別のフォームを呼び出すときに、
データを渡して内容を変更したいのですが、
どうしたら良いのでしょうか?
789デフォルトの名無しさん:2006/08/24(木) 04:53:19
別のフォームとやらにデータ渡し用のpublicなメソッドを実装して、そこ経由で渡す
渡すだけじゃなく参照もしたいならプロパティで実装すれば良い
790デフォルトの名無しさん:2006/08/24(木) 16:52:17
[System.Windows.Forms.Design.ToolStripItemDesignerAvailability
(System.Windows.Forms.Design.ToolStripItemDesignerAvailability.ToolStrip)]
public class ToolStripDateTimePicker : ToolStripControlHost
{
public ToolStripDateTimePicker() : base(new DateTimePicker())
{
}
}
のコードを記載してデザイナでDateTimePickerを追加したいのですが
追加をすると一瞬表示されるのですが消えてしまいます。
理由わかりますか?
同じコードでnumericUpDownとかMonthCalenderとかは表示できるのですが・・・
791790:2006/08/25(金) 11:49:41
どなたかお解かりになる方いらっしゃいませんか?orz
792デフォルトの名無しさん:2006/08/25(金) 12:11:34
>>791
public ToolStripDateTimePicker()
 : base( new DateTimePicker() )
{
 this.Control.CreateControl();
}

で表示されたけど
793デフォルトの名無しさん:2006/08/25(金) 12:18:51
>>792
表示されました!!
本当にありがとうございました!
794790:2006/08/25(金) 12:51:30
なんどもすみません・・・orz
DateTimePickerは表示できたのですが、そのFormatの設定の仕方が分かりません・・・
設定の仕方を教えて頂けないでしょうか?
795デフォルトの名無しさん:2006/08/25(金) 13:02:41
InitializeComponent()の後で

DateTimePicker dp = (DateTimePicker)this.toolStripDateTimePicker1.Control;
dp.Format = DateTimePickerFormat.Custom;
dp.CustomFormat = "yy/M/d/ddd";

など。
796デフォルトの名無しさん:2006/08/25(金) 13:10:50
あと、ToolStripDateTimePickerクラスの定義で

public DateTimePicker DateTimePicker
{
 get
 {
  return (DateTimePicker)base.Control;
 }
}

みたいにプロパティでDateTimePicker にアクセスできるようにしておくと吉
797デフォルトの名無しさん:2006/08/25(金) 13:51:47
>>795-796
出来ました!
特に>>796をやると楽チンです

本当に本当にありがとうございました!!
798デフォルトの名無しさん:2006/08/26(土) 01:43:46
HttpWebRequest を並列化するために、BeginGetResponse じゃなくて Thread + GetResponse で構成するのって邪道なんですか?
なんか別々の URL にアクセスしたはずなのに、全く同じレスポンスが返ってきたっぽいんですが (;´Д`)

並列系のバグは再現性がなくて困るよ orz
799デフォルトの名無しさん:2006/08/26(土) 08:08:06
べつに自前でスレッド使ってもいいと思うぜ。
でも俺はそんなバグに出会ったことはない。
なにか間違ってるんだと思うよ。
800デフォルトの名無しさん:2006/08/26(土) 10:31:29
じぶんならMSの実装なんか当てにしないで別スレッドにしますが。
801デフォルトの名無しさん:2006/08/26(土) 10:38:03
それもMSの実装だろ
802デフォルトの名無しさん:2006/08/26(土) 10:52:06
いうと思った。
803デフォルトの名無しさん:2006/08/26(土) 11:21:28
それなら.NET FrameworkやWindowsも(略
804デフォルトの名無しさん:2006/08/26(土) 20:40:59
質問です。
プログラムAからプログラムBを起動するメソッドを書いていたのですが、
プログラムAにドロップされたファイルをプログラムBに渡すにはどうしたらいいでしょうか?
試しに以下のようなコードを書いてみましたが、プログラムBには渡せていませんでした。

private void Form1_Load(object sender, EventArgs e)
{
      string file = "";
      bool first = false;
string[] args = Environment.GetCommandLineArgs();
foreach (string work in args)
{
if (first)
file = work;
else
first = true;
}
      Process p = Process.Start(testprogram.exe,file);
p.WaitForExit();
}

//テストプログラム側

private void Form1_Load(object sender, EventArgs e)
{
string[] args = Environment.GetCommandLineArgs();
foreach (string work in args)
        MessageBox.Show(work);
}
805デフォルトの名無しさん:2006/08/26(土) 21:03:23
突っ込みどころが多すぎて
806804:2006/08/26(土) 21:15:37
修正
起動するメソッドを→Form_Load時に起動するコード
ドロップされたファイル→ドロップされたファイルのパス
807デフォルトの名無しさん:2006/08/26(土) 21:32:15
>>799
いや、明らかな間違いはないと思う。
今までに何十回とテスト飛ばしているけど、1件しか発生してないし。

というより、別々のオブジェクトからリクエスト飛ばしているから、
共有オブジェクトは全部洗い出して、そういうのは自前のソース中に無いらしいことは確認しているからなぁ……。
むしろ、そういう簡単な間違いであって欲しかったんだけど orz
808デフォルトの名無しさん:2006/08/26(土) 22:05:28
>>804
引数fileに空白が入ってると
複数の引数と認識される
ようするにダブルクォーテーションで括れってこった

ついでにそれだと複数ファイルをドロップしたときはどうすんの?
809デフォルトの名無しさん:2006/08/26(土) 22:11:07
>>804
最初の foreach ループは何をしたいの?
810デフォルトの名無しさん:2006/08/26(土) 22:14:38
GetCommandLineArgsで返ってくる配列の最初は自身のパスだから
それを飛ばしてるみたいですよw
811デフォルトの名無しさん:2006/08/26(土) 22:52:35
>>808
file = work;
のところを
file += "\"" + work + "\" ";
とすると複数ファイルでもうまくいきました。
ありがとうございました。

>>809,810
例文の
file = work;
が+=じゃなくて=だけだったから変な風に見えたのかもしれません。
それでも最初のは十分おかしいのかもしれませんが…
812デフォルトの名無しさん:2006/08/26(土) 23:43:13
>>811
>>804 の書き方だと string file = args[args.length-1]; と同じことになるよ。
2番目以降の要素を結合したいんだったら
for (int i = 1; i < args.length; ++i) { file += "\"" + args[i] + "\" "; }
とすればいい。
得体の知れないフラグを導入する必要はない。
813デフォルトの名無しさん:2006/08/27(日) 14:02:44
すみません。Yahooに自動でログインさせるメソッドを作っているのですが、(1)のあと
表示するのを待ってから(2)以降を実行させたいのですがどのようにすればいいのですか?


public void Login()
{
webBrowser1.Navigate("http://login.yahoo.co.jp/config/login?.src=www&.done=http://www.yahoo.co.jp"); //(1)

HtmlDocument doc = webBrowser1.Document; //(2)
doc.GetElementById("login").InnerText = "ユーザーID";
doc.GetElementById("passwd").InnerText = "パスワード";
doc.GetElementById(".save").InvokeMember("Click");

}
814デフォルトの名無しさん:2006/08/27(日) 14:14:32
DocumentCompleted とかのイベント使えば
815デフォルトの名無しさん:2006/08/28(月) 06:17:33
WebBrowserであるwebサイトを表示

webページのリンクをクリック

IEが開いてリンク先のページが開く

このことを検出したいのですが
WebBrowser.Navigatingを使えばできるんでしょうか?
816デフォルトの名無しさん:2006/08/29(火) 10:45:25
Form1のDateTimePickerの日付をAccessのReportのTextBoxに表示して印刷したいのですが方法が分かりません
どのようにすればよろしいのでしょうか?
817デフォルトの名無しさん:2006/08/29(火) 10:48:17
そのまんま一つ一つやっていけば
818デフォルトの名無しさん:2006/08/29(火) 11:02:43
あぁ、すみません。
印刷は出来るのですが、ReportのTextBoxに値を設定する方法がわかりません。
Accessを開いた後に何かをすればよろしいのでしょうか?
819デフォルトの名無しさん:2006/08/29(火) 12:29:47
oleAccess.Reports!(ReportName)![テキスト1].ControlSource = "=111"をC#にするとどういう風になるんでしょうか?
820デフォルトの名無しさん:2006/08/29(火) 13:13:55
Access知らんけど
Accessを参照設定してるなら
インテリポイントでなんか出てくるっしょ

821デフォルトの名無しさん:2006/08/29(火) 13:20:11
>>819
((Microsoft.Office.Interop.Access.TextBox)oleAccess.Reports[ReportName].Controls["テキスト1"]).ControlSource = "=111";
822デフォルトの名無しさん:2006/08/29(火) 14:24:52
>>821
出来ました。ありがとうございました。
823デフォルトの名無しさん:2006/08/31(木) 08:03:05
埋め込みリソースから取り出したexeをファイルとして書き出さずに
MemoryStreamなどから起動する方法はないでしょうか?
824デフォルトの名無しさん:2006/08/31(木) 10:37:04
ない
825デフォルトの名無しさん:2006/08/31(木) 14:26:43
テキストボックスの書式って、どうやって設定すんの?
826デフォルトの名無しさん:2006/08/31(木) 14:33:04
つMaskedTextBox
827デフォルトの名無しさん:2006/08/31(木) 17:07:50
>>826
桁区切りを表示したいだけなんだよなー
データーを読み込むたびに書式設定してやれば出来るんだけど
もっと簡単にテキストボックス自体に書式設定できないのかなーと
簡単には出来ないんだね。ありがと
828デフォルトの名無しさん:2006/08/31(木) 21:05:27
ドラッグ&ドロップされたテキストファイル名をTextBoxに表示するって難しい?
極意の本にも載ってないしアロウドロップtrueにしてもうまく行かない
829デフォルトの名無しさん:2006/08/31(木) 21:08:23
>>828
AllowDrop = true の後、DragEnter と DragDrop に処理を記述
ttp://dobon.net/vb/dotnet/control/droppedfile.html
830デフォルトの名無しさん:2006/08/31(木) 21:11:28
>>829
はやい!!ありがとうございます!今から見てきますね
感謝
831828:2006/08/31(木) 21:38:45
エラー1名前 'ListBox1' は現在のコンテキスト内に存在しません。

なんて出ました。なんでだろ?

DragEnterの方は正常に動いたのに
ListBox1.Items.AddRange(fileName);のトコでエラーになります・・・
832デフォルトの名無しさん:2006/08/31(木) 21:40:38
ちなみに

namespace study1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void listBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Copy;
else
e.Effect = DragDropEffects.None;
}
private void listBox1_DragDrop(object sender, DragEventArgs e)
{
string[] fileName =
(string[]) e.Data.GetData(DataFormats.FileDrop, false);
ListBox1.Items.AddRange(fileName);
}
}
}

こんなです。
833デフォルトの名無しさん:2006/08/31(木) 21:53:56
*** サンプルコードは、自分の作っているプログラムに即するように変更すること ***

TextBox に表示するんなら、変数名が TextBox1 だとすると

    TextBox1.Text = fileName + "\n";

に変えなさいな
ListBox1 を作ったのならばこのとおりじゃないけど。
834デフォルトの名無しさん:2006/08/31(木) 21:54:48
まちげーた

    TextBox1.Text += filename + "\n";

これでおk
835デフォルトの名無しさん:2006/08/31(木) 22:12:17
ListBox1 じゃなくて listBox1 じゃねえのか?
836デフォルトの名無しさん:2006/08/31(木) 22:21:08
ありがとうございます。一応フォームにはリストボックスを貼り付けました。
どこか根本的な間違いを犯していると思います。
指摘お願いします。
837デフォルトの名無しさん:2006/08/31(木) 22:22:12
あ、すみません。2005EXPRESS EDITIONです
838デフォルトの名無しさん:2006/08/31(木) 22:22:15
>>836
D&Dの仕方を学ぶより、先ずはC#の基本を学びましょう。
ちなみに、煽りじゃなくて切実に言ってますんで (・ω・`)
839デフォルトの名無しさん:2006/08/31(木) 22:24:34
>>836
コンパイルエラーのでた箇所が表示されてるだろうが。
そこで波線を付けてくれた部分をよく見ろ
840デフォルトの名無しさん:2006/08/31(木) 22:26:07
>>838
そうですよね。判ります・・・
本も何冊か買ったんですけどクラスとか構造体とかよくわからなくて・・

んでサンプルをコピペ改変して遊ぶうちに見えてくるかなぁと
なんかお勧め本とかありませんか?お願いします

真剣に覚える気はあります
841デフォルトの名無しさん:2006/08/31(木) 22:28:23
>>839
はい。
>>831
こんな感じです
842デフォルトの名無しさん:2006/08/31(木) 22:28:40
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/index/index.html
これを読破したあと2.0の新機能を覚えれば完璧
843デフォルトの名無しさん:2006/08/31(木) 22:30:17
>>841
こんな感じですじゃなくて。

変数名は大文字小文字を区別します。

↑こんなことまで言わせるつもり?
844デフォルトの名無しさん:2006/08/31(木) 22:35:17
>>843
あああああああああああああああああああああああっ!!!!!!!!
すみません。むちゃくちゃ恥ずかしいです。。

ttp://homepage3.nifty.com/midori_no_bike/CS/
ここでの方法でも駄目だったんで基本的に勘違いしてるんだろうなぁ・・と決め付けてしまいました

本当におさわがせしました。いつか他の初心者さんに恩返し出来るように頑張ろうとおもいます
845デフォルトの名無しさん:2006/08/31(木) 22:39:49
´∀`)σ)´Д`;)
846デフォルトの名無しさん:2006/08/31(木) 22:41:06
>>844
ま、基本は大事ですよーと (・ω・`)



昔を思い出すなぁ。
java の話だけど、int と Integer の違いがさぱーり分からなかったとか ( ´ー`)y-~~
847844:2006/08/31(木) 22:45:00
>>845
>>846
なんかム板は怖いとこだと感じてましたがココは優しい人が多いですね
デバッグ出来ましたが動作は成功しませんでしたなんて言えません・・・orz

教えて頂いたサイトで勉強します
またなんか判らなかったら宜しくお願いします

でもみんな良くこんな難しいことできるよなぁ・・・・・
848デフォルトの名無しさん:2006/08/31(木) 22:48:09
>>847
ちゃんと貼り付けたlistBox1にDragEnterイベントとDragDropイベントを設定した?
>>832のコード貼り付けただけじゃ駄目だよ



849デフォルトの名無しさん:2006/08/31(木) 22:50:19
>>847
>ココは優しい人が多い
たまたまかもねー。
確かにム板は初心者にはきつい所もあるけど、尻込みせずに気楽にどうぞ。

プログラムは 【慣れ】 が重要だから、練習あるのみ、かな?
気づいたら何となく出来るようになってます。はい。
850デフォルトの名無しさん:2006/08/31(木) 22:54:21
>>848
はい。プロパティのイベント(雷マーク)ですよね?
だとしたらOKです。そしてそこをダブルクリックしてコードエディタで埋め込みました。
これって変ですか?

>>849
わたしもバッチ、WSHとサンプル弄くりたおして覚えたクチでして・・・
でも今回ばかりはそうはいかないみたいです(笑)
851デフォルトの名無しさん:2006/08/31(木) 22:56:07
ああああああああああ!判った!!
852デフォルトの名無しさん:2006/08/31(木) 23:04:24
分かったんかよw
853デフォルトの名無しさん:2006/08/31(木) 23:05:36
出来ました!!!
原因はフォームエディタでForm1のプロパティにイベント設定してました・・・・・orz
アフォですね。アフォすぎますね・・(´Д`;)

ポインタはプラスマークに勝手になるんじゃないんですね。設定の仕方は本に載ってました

あああああ!なんかすごい嬉しい。こんな程度の事ですけど
本当にありがとうございました。これからも宜しくお願いします
854デフォルトの名無しさん:2006/08/31(木) 23:14:34
あ、プラスマークになりますね。
もう、付き合ってられないですよね(笑)

では、おやすみなさい
855デフォルトの名無しさん:2006/09/01(金) 02:24:43
×ポインタ
〇カーソル

「ポインタ」はプログラムの話をするときは別の意味がある
856854:2006/09/01(金) 20:42:57
>>855
ひょっとして有名なぬるぽの「ぽ」ですか?
明日も会社にこっそり行ってC#勉強してきます!
857デフォルトの名無しさん:2006/09/01(金) 20:43:55
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| unsafeを感知しました |
|__________|
              / /
              /
      _         ビビビ
     /||__|∧    /
  。.|.(O´∀`) /
  |≡( ))  ))つ
  `ー| | |
    (__)_)
858デフォルトの名無しさん:2006/09/01(金) 20:47:29
/unsafe+
859デフォルトの名無しさん:2006/09/02(土) 06:03:19
ToolBar、アイコンの横にテキストを配置している状態で、ボタンごとにサイズを変えることは出来ないのですか?
なんか全部同じ大きさにそろってしまうのですが……。
860デフォルトの名無しさん:2006/09/04(月) 01:32:14
C#でテキストエディタを作ろうと思い、まずテキストビューワーを作っています。
タブや全角スペースに色をつけるため、DrawStringで一文字づつ表示をしているの
ですが、実行速度が非常に遅いです。
TextOutなども試してみましたが、あまり変わりませんでした。

なにか良い方法はないのでしょうか?
861デフォルトの名無しさん:2006/09/04(月) 01:39:06
改行ごとに分けた string をリストとかにぶち込むといった前処理はしているよな
862デフォルトの名無しさん:2006/09/04(月) 01:39:55
>>861
しています。
863デフォルトの名無しさん:2006/09/04(月) 01:57:39
まともなエディタ作りたいなら少なくとも今のところはネイティブな C++ で書くべきだがね。

ダブルバッファリングはしてるかい?
864デフォルトの名無しさん:2006/09/04(月) 02:07:54
>>860
unsafeでポインタを使うといいかもしれない。
865デフォルトの名無しさん:2006/09/04(月) 02:24:46
>>863
やはり、C++でやるべきですか…
描画をpictureBoxで行っているので、デフォルトでダブルバッファリングをしている
と思うのですが…

>>864
すでにやってみましたが、あまり大きな変化はありませんでした。
866デフォルトの名無しさん:2006/09/04(月) 02:32:45
[1] picturebox 使わない
[2] 画面外の文字はそもそも DrawString しない

どう?
867デフォルトの名無しさん:2006/09/04(月) 12:52:56
>>865
画像処理とか、計算とかのピーキーなチューニングが効果的な処理ならともかく、
GUI周りの処理で、C#をC++にしたところで、速度に実効的な差はでない。
「何で」書くかではなく「何を」書くかで決まる。
GDIリソースの取得タイミングとか、
>>866の言ってるような、クリッピング処理とか、バッファリング処理とか。
何が重い処理なのかを体感して、その重い処理の実行回数を減らすアルゴリズム
を考える。
868デフォルトの名無しさん:2006/09/04(月) 13:21:02
>何が重い処理なのかを体感して
「計測して」だろが。C#用のまともなプロファイラあるのかしらないが。
869デフォルトの名無しさん:2006/09/04(月) 14:41:27
C#というよりWin32/64アプリとしての計測になるかと
ユーザは言語やフレームワークなんて関係ないから
870デフォルトの名無しさん:2006/09/04(月) 16:43:54
RichTextBox
871デフォルトの名無しさん:2006/09/04(月) 20:27:44
>>867
いや、基本的に GDI+ を使う事になる .NET は GUI コンポーネント制作には向かんよ。
872デフォルトの名無しさん:2006/09/04(月) 20:52:46
ヒント:Swing
873デフォルトの名無しさん:2006/09/04(月) 21:11:49
VGAカードが正式にGDI+をサポートするようになったら考えてもいいな。
874デフォルトの名無しさん:2006/09/04(月) 21:28:08
空白のテキストボックスをemptyじゃなくてnullにしたいんですけど
どうすれば出来ますか?
875デフォルトの名無しさん:2006/09/04(月) 21:42:54
意味が分からん
876デフォルトの名無しさん:2006/09/04(月) 22:00:03
TextBox.Textはnullにはできません。
継承元のControl.Textが

set
{
 if (value == null)
 {
  value = "";
 }

 ...



みたいにしてた記憶がありんこ
877デフォルトの名無しさん:2006/09/04(月) 22:37:43
>>876
nullには出来ないのですね・・・残念です。
バインドしているデータなのでデータグリッドのセルやデーターテーブルをnullにして対処します。
ありがとうございました。
878デフォルトの名無しさん:2006/09/04(月) 22:41:50
テキストボックスをコンテナとして使おうとしてたの?
879デフォルトの名無しさん:2006/09/04(月) 23:17:51
>>878
コンテナというのが良くわかりませんが
データテーブルの内容をテキストボックスに表示してます。
空白のテキストボックスをデーターベースに戻すと空文字禁止のエラーが出るのでnullにしたかったのです。
880デフォルトの名無しさん:2006/09/04(月) 23:18:36
描画処理は余計なところは描画しないようにすでにしてありました。
また、pictureBox以外に描画をしましたが余り変わりませんでした。

また、DrawString時に、フォントを常にnewで作っていたのを描画前につくって
おくようにしたところ、若干向上が見られました。

C++で作り直すことも含め、まだ速くできないか検討してみます。
多くのご回答ありがとうございました。
881デフォルトの名無しさん:2006/09/04(月) 23:45:15
>>880
まず1文字ずつ描くよりも、まとめられるところはまとめてやったほうがよいと思う。

あと、Control.WndProcをオーバーライドし、
WM_PAINTを捕まえ、GDIで描くというのはどうだろう。
そこまでやるんだったら、C++(/CLI)にすべきだろうけど。
882デフォルトの名無しさん:2006/09/05(火) 00:11:37
C#固執で速度だけ求めるならManaged DirectXで描けばいいじゃない
883デフォルトの名無しさん:2006/09/05(火) 00:33:21
>>882
どの処理に時間を割いているのか、調べる必要があるだろうよ。
あと MDX でもフォントの描画は GDI だな。
884デフォルトの名無しさん:2006/09/05(火) 11:17:25
BindingNavigatorのボタンを押したときの処理ってのはどんなことをしているのですか?
どこかにコードで書いてありますか?
885デフォルトの名無しさん:2006/09/05(火) 11:24:09
>>884

> BindingNavigatorのボタンを押したときの処理ってのはどんなことをしているのですか?

MSDNにあります

BindingNavigator コントロールの概要 (Windows フォーム)
http://msdn2.microsoft.com/ja-jp/library/8zhc8d2f.aspx

> どこかにコードで書いてありますか?

処理を実装するコードは一般に公開されていません
処理を利用するサンプルコードはMSDNにあります

方法 : Windows フォーム BindingNavigator コントロールを使用してデータ間を移動する
http://msdn2.microsoft.com/ja-jp/library/2wcswths.aspx

方法 : Windows フォームの BindingNavigator コントロールを使用して DataSet を移動する
http://msdn2.microsoft.com/ja-jp/library/s4b01sz7.aspx
886デフォルトの名無しさん:2006/09/05(火) 11:31:40
>>885
>処理を実装するコードは一般に公開されていません
そうなんですか・・・。ありがとうございました
887デフォルトの名無しさん:2006/09/05(火) 12:04:40
昨夜、テキストボックスをnullに出来ないかと相談したものですが
データグリッドとかをnullにして出来たと思っていたのですが、いろいろな不具合が出ます
ADO.NETでデーターベースはAccessなのですが、Accessで空文字を禁止にしているので
空欄のテキストボックスをアップデートするとエラーが出てしまいます。
こういう場合はどのような処理をするのが一般的なのでしょうか?
Accessの空文字を許可するのが一番簡単なのでしょうか?
888デフォルトの名無しさん:2006/09/05(火) 12:59:30
データベースにテキストボックスから戻すときに
Length==0 なら nullを戻せばいいんじゃね?
889デフォルトの名無しさん:2006/09/05(火) 14:00:22
>>888
行を追加する場合や訂正ごとに更新をする場合はそれで大丈夫っぽいのですが
数行を訂正してから更新する場合にどうすれば良いのか困っています
昨夜悩んでデータグリッドのCellEnterとテキストボックスのkeyPresイベントに
if (String.IsNullOrEmpty(TextBox.Text) == true)
{
this.DataGridView[0, this.DataGridView.CurrentCell.RowIndex].Value = null;
}
を書いて成功した!と喜んだのですが、行の追加をするとエラーが出ることが判明しましたorz
それと、数行を訂正してから更新するとエラーが出たり出なかったりします

もう少し悩んでみます・・・


890デフォルトの名無しさん:2006/09/05(火) 15:02:04
if(hogehoge == true) って C ではやっちゃいけないし C# でもやるべきじゃねえだろ
891デフォルトの名無しさん:2006/09/05(火) 15:17:43
>>890
そうなんですか?では==trueは消しますね
後、空文字禁止のAccessの場合の一般的な処理を教えていただけると助かります
892デフォルトの名無しさん:2006/09/05(火) 17:35:05
なんかBindingSource.EndEdit()をするとnullに設定したものもstring.Emptyにされちゃうみたいですね・・・
考えられるありとあらゆるところにnullに設定するコード書いてみました・・・
とりあえず大丈夫そうですが本当にこれでいいのか心配です・・・
893デフォルトの名無しさん:2006/09/05(火) 17:47:32
>>890
よこレス失礼します。
なぜ駄目なのか後学のため、教えてください。
894デフォルトの名無しさん:2006/09/05(火) 17:54:21
かっこ悪いから。
そういうしきたりだから。
読むときにif (obj.IsHoge)みたいに自然な感じになるから。

==falseもやめとけ。if (!obj.IsHoge)にする。
895デフォルトの名無しさん:2006/09/05(火) 17:59:09
ぷっ
896デフォルトの名無しさん:2006/09/05(火) 18:01:25
C だと非0が true だから
897デフォルトの名無しさん:2006/09/05(火) 18:21:20
論理型と整数の暗黙変換があるC/C++の場合とそうでないC#の場合は別に考えないと。
論理型の変数や関数は単体で論理式として成り立つので、
簡潔であることをよしとする人は if (hogehoge) を好むが、
if (hogehoge==true) こっちの方が見やすいという人もいる。
どっちにしても最適化でロードモジュールには差は出ないだろう。ただし・・
if ((hoge > 0) == true) これはさすがにやめろといわれる。
if (((hoge > 0) == true) == true) なめとんのか・・・
898デフォルトの名無しさん:2006/09/05(火) 19:03:31
if( ( ( !( blFlag == true ) == false ) ? false : true ) != false )
{
 ...
}
899デフォルトの名無しさん:2006/09/05(火) 19:52:15
コンパイルすると == true は消えるよ。Debugでやっても消えた。
900デフォルトの名無しさん:2006/09/05(火) 20:32:43
まあ、一生 C# で書くつもりなら == true つけてもいいと思うが、
その癖を持ったまま他の言語を使うと失敗することもあるから気をつけな。
901デフォルトの名無しさん:2006/09/05(火) 22:36:49
>>900
例えば?
902デフォルトの名無しさん:2006/09/05(火) 22:41:40
903デフォルトの名無しさん:2006/09/06(水) 00:30:47
if (x)よりもif (x == true)と書くほうがよいと思うなら、
なぜそれよりif ((x == true) == true)と書くほうがよいと思わないのか?
なぜそれよりif (((x == true) == true) == true)と書くほうがよいと思わないのか?

というのをどこかで見た気がする。
904デフォルトの名無しさん:2006/09/06(水) 01:15:49
そもそもC#ではif文はboolしか受け付けないので(x == true)と明記する意味がない。
C++なら(x != FALSE)とか書くが。
905デフォルトの名無しさん:2006/09/06(水) 01:15:55
まあ、なんだ、思うわけねーだろぼけぇ
906デフォルトの名無しさん:2006/09/06(水) 01:17:32
if ステートメントは true であるか否かを判断するためのものだから == true というのは蛇足
907デフォルトの名無しさん:2006/09/06(水) 01:20:39
==trueもまたbool値を返してるわけだしな
908デフォルトの名無しさん:2006/09/06(水) 01:20:48
>>906
確かに蛇足なんだが、ブロックのインデントと同様に、
あくまでも個人のセンス(可読性)に任せるべきだと思う

おそらくコンパイラの吐き出すコードは一緒
909デフォルトの名無しさん:2006/09/06(水) 01:26:20
可読性は他人も読めるかを問うもの
個人だけならどうでもいいわけで

で、そのコードを共有する人々の多数が == true の方が良いというならそれで良いってだけ
エラーにも警告にもならない以上は正しいことであり、あとは使う人の問題
910デフォルトの名無しさん:2006/09/06(水) 02:02:14
C だと TRUE は non 0 だから、== TRUE だと 2 == 1 の比較みたいになりそうで怖い。
true は知らん。
911デフォルトの名無しさん:2006/09/06(水) 02:12:58
>>903
何か凄い納得。
==trueってのは、数値に無駄に0足してるようなもんなのかな
a = 1 + 2 + 0
はエラーにはならないが「正しい」書き方とは言い難い。
912デフォルトの名無しさん:2006/09/06(水) 06:41:23
まぁ、一見さんには意味が通りやすいってことだわな。

3a−2b=8

3×a−2×b=8
と書けば、確かに分かりやすいけど、慣れると上の方が見やすいことに気がつく。

条件文の中身はtrueを表す『式』を書かなくてはいけない、
って思ってたんで、自分も==を書いてたけど、面倒になって省略した。

誰に対する可読性かを考えて、どちらにするかを決めればいいんでない?
913デフォルトの名無しさん:2006/09/06(水) 07:07:57
3a-2b ってのは単なる簡略表記であって 3 x a - 2 x b と同じ式だけれども
== true ってのは式を評価すると結果として同じにはなれど式としては別の式だよ
914デフォルトの名無しさん:2006/09/06(水) 09:00:01
式ばかりに目を取られて if ステートメントという大枠を見失っていないか?
ifステートメントに限らず、制御構文の意義を理解すれば == true なんて書かなくても見やすいし意味が分かると思うんだが
915デフォルトの名無しさん:2006/09/06(水) 09:26:39
結論でないんだからどうでもいいじゃん
916デフォルトの名無しさん:2006/09/06(水) 13:55:45
どうでも良いならレスしたっていいじゃん
917デフォルトの名無しさん:2006/09/06(水) 17:07:12
WebRequestでWEBページを取得したいんですが、
なぜか自分以外のPCへ要求するとタイムアウトが発生してしまいます。
関係あるかわからないけど
[プロジェクト]-[プロパティ]-[セキュリティ]は完全に信頼する・・・にしてます。

try{
WebRequest webReq = HttpWebRequest.Create("http://yahoo.co.jp");
webReq.Method = "GET";
webReq.Timeout = 1000;
WebResponse webRes = webReq.GetResponse();
}catch (Exception ex) {
Console.WriteLine(ex.Message);
}
918デフォルトの名無しさん:2006/09/06(水) 18:32:59
URL間違ってるなw
919デフォルトの名無しさん:2006/09/06(水) 18:37:21
>>917

.NET Framework クラス ライブラリ
WebRequest クラス のサンプルコード とよく見比べてください。
920デフォルトの名無しさん:2006/09/06(水) 21:44:25
マルチかよ
教えてやるんじゃなかった。
921デフォルトの名無しさん:2006/09/06(水) 22:18:21
>>917
出て来い。
922デフォルトの名無しさん:2006/09/06(水) 22:33:31
構成ファイル(*.config)の内容をビルドの種類で変えることってできるのでしょうか?
C#のコードであれば #if〜#else〜#endif で制御できるのですが、.configの中は同じ方法でできませんでした
実現する方法をご存知の方、教えてください
923デフォルトの名無しさん:2006/09/06(水) 22:48:04
>>922
config ファイルをプロジェクトに登録せずに、直接 bin\Release とかに配置する
924デフォルトの名無しさん:2006/09/06(水) 22:55:57
axWebBrowserで作ったブラウザのリンクをクリックすると
InternetExplorerが新しく開いてしまうのですが、これを
自作のブラウザで開くようにするにはどうしたらいいでしょうか?
お願いします。
925デフォルトの名無しさん:2006/09/06(水) 23:26:10
>>922
前は構成ごとにビルドイベント作れてそれで別々のファイルをコピーとか出来たと思ったんだが
2005では構成で分けられないみたいだからdebugとreleaseそれぞれに別のファイルを別個でコピーしたら?
926924:2006/09/06(水) 23:53:52
質問訂正します。
ブラウザをタブブラウザに改造したいのですが、
新しい Window を開く場合にタブブラウザ内で開くにはどうすれば良いでしょうか?

下記に参考になるソースがあったのですが新しいウインドウを開いてタブブラウザで表示する動作に
関する記述がコードのどこにあるか分からなかったので・・
ttp://myanya.ifdef.jp/stb.html
927デフォルトの名無しさん:2006/09/07(木) 00:03:17
928デフォルトの名無しさん:2006/09/07(木) 00:06:43
shdocvwでやればNewWindow2ももれなくついてくるけどな
929デフォルトの名無しさん:2006/09/07(木) 00:14:27
>>926
コメントに「新しいウィンドウを生成しようとしたら」って書いてあるのに…
930デフォルトの名無しさん:2006/09/07(木) 00:14:42
.NETのありがたみが薄れる
931デフォルトの名無しさん:2006/09/07(木) 00:22:38
つーかWebBrowser.NewWindow があるような気がするが
932922:2006/09/07(木) 00:24:24
>>923 >>925
レスありがとうございます
Windowsアプリは教えていただいた方法で対応できました
プロジェクトでの設定と同期しないのが不便ですが、手順書で何とかできそうです

ですが、ASP.NETアプリやWebサービスは Web.config の場所が変えられないために対応できません
こればかりはどうしようもないのでしょうか
933デフォルトの名無しさん:2006/09/07(木) 06:24:22
>>931
それでは機能が足りないんだよ……。
934デフォルトの名無しさん:2006/09/07(木) 10:15:50
サイドバーやタスクバーのようにデスクトップにドッキングできるようなフォームは
どうすれば実現できるでしょうか。
935デフォルトの名無しさん:2006/09/07(木) 10:52:41
自力でスナップさせる
936デフォルトの名無しさん:2006/09/07(木) 11:33:55
>>934
もしかしてこういうイメージ?

Mantis Issues band - The Code Project - Shell Programming
http://www.codeproject.com/useritems/mantisband.asp

.NET FrameworkにこういうShell関係のってあったっけか
C++/SDKでしか作ったこと無いけど、C#でも移植すればできそう
937デフォルトの名無しさん:2006/09/07(木) 12:04:15
>>936
ttp://www.vipper.org/vip331504.jpg.html

こんな感じにしたいんですが.NETでは簡単にはできないっぽいんですかねぇ
938934:2006/09/07(木) 12:05:31
名前を忘れてしまったorz
939デフォルトの名無しさん:2006/09/07(木) 13:04:02
>>936
C#/VB.NET 用の BandObject はこれ
http://www.codeproject.com/csharp/dotnetbandobjects.asp

>>937
確か Win32API に、デスクトップのクライアントサイズを指定する関数があったような気がするけど、
名前忘れた。すまん。
940924:2006/09/07(木) 13:49:32
>>927->>931 , >>933
ありがとうございます。できました。

AxSHDocVw.AxWebBrowser axWebBrowser = new AxSHDocVw.AxWebBrowser();
e.ppDisp = axWebBrowser.Application;
941934:2006/09/07(木) 14:19:41
>>936, >>939
なるほど、Win32APIですか。調べてみます。
ありがとうございました。
942924:2006/09/08(金) 11:45:08
すみません。また質問なのですが、タブページにタイトルを設定したいのですが、
うまくいきません。

例えばヤフーだったらYahoo!JAPANとタブページに表示させたいのですが、
現在のコードではURLがひょうじされてしまいます。

System.Windows.Forms.TabPage tabPage = new System.Windows.Forms.TabPage();
省略
this.tabControl1.Controls.Add(tabPage);
省略
axWebBrowser.TitleChange += new AxSHDocVw.DWebBrowserEvents2_TitleChangeEventHandler( SetTitle );

public void SetTitle( Object sender, AxSHDocVw.DWebBrowserEvents2_TitleChangeEvent e )
{
this.Text = e.text;
}

924のココ↓を参考にしてるんですが自クラスが多くて分からなくて・・・
ttp://myanya.ifdef.jp/stb.html

お願いします。

943デフォルトの名無しさん:2006/09/08(金) 11:45:51
あげ
944デフォルトの名無しさん:2006/09/08(金) 11:55:22
perlでいうmapやgrepといったリスト処理を扱うクラスってありますか?
945デフォルトの名無しさん:2006/09/08(金) 12:10:38
>>889
もう遅いかもしれないけど、DBに書き戻すときに
DBNull.valueを挿入するようにするとうまくいくんじゃないかとおもう。
946デフォルトの名無しさん:2006/09/08(金) 12:17:53
>>942
よくわからんが

this.Text = e.text;



this.Text = this.browser.LocationName;

にしたらどうか。
947デフォルトの名無しさん:2006/09/08(金) 12:21:12
>>942
>自クラスが多くて分からなくて

って、2つしかclassがないわけだが
948デフォルトの名無しさん:2006/09/08(金) 13:18:41
>>944
つ System.Text.RegularExpressions.Regex
949デフォルトの名無しさん:2006/09/08(金) 14:26:01
>>944
.NET2.0ならArrayまたはListクラスのConvertAllメソッドとFindAllメソッドがそれに近いかな
950デフォルトの名無しさん:2006/09/08(金) 14:59:54
なるほど。逆にいえばそれに相当するものは、2.0じゃないとないということですか。
ご回答ありがとうございました。
951デフォルトの名無しさん:2006/09/08(金) 15:26:11
ConvertAll や FindAll なら自前で作るのも簡単でしょ
ジェネリクスなしだと使い勝手はよくはないけどさ
952デフォルトの名無しさん:2006/09/08(金) 19:40:33
C#やってる 鬱だ 鬱だ 鬱だー
953デフォルトの名無しさん:2006/09/08(金) 20:20:48
俺はCで他人が書いたもちふのコードをC++でWinに移植してる。

これは激しく欝だ。
954デフォルトの名無しさん:2006/09/08(金) 21:11:52
すみません。EXCELのあるセルの文字を置き換えて保存したいんですが
参考になる所をどなたかご存知ないですか?

いまから具具ってきます
955デフォルトの名無しさん:2006/09/08(金) 21:17:47
ExcelのVBAを使ったほうが早いだろ
956デフォルトの名無しさん:2006/09/08(金) 21:24:52
簡単ではないということですね。
ExcelVBAってわからないんですがC#からExcelシート立ち上げてマクロを動かすってことですか?
957デフォルトの名無しさん:2006/09/08(金) 21:35:33
順番が逆
ぐぐって見つからなけりゃここで質問してよ
958デフォルトの名無しさん:2006/09/08(金) 21:38:01
>>957
すみません。今必死でやってますw
959デフォルトの名無しさん:2006/09/08(金) 22:02:33
なんか厨ぽいですけど・・・

クリップボードとSENDKEYSでやってみます
960デフォルトの名無しさん:2006/09/09(土) 01:30:11
馬鹿か!

Visual C# で Excel を自動化して、配列による範囲内へのデータ入力
および範囲内からのデータ取得を行う方法
961デフォルトの名無しさん:2006/09/09(土) 01:31:41
c# excel で検索すればいいものを…
962924:2006/09/09(土) 02:46:57
できましたーーーーーーーーーーー!!ありがとう!
かなり難しかった。
でもこんな簡単なことだったのか・・・

>>946>>947

ありがとうございました
963デフォルトの名無しさん:2006/09/09(土) 18:43:02
notifyIconをクリックでtrackBarみたいなのを出したいのですが
どうすればいいのでしょうか?イメージはボリューム調整のnotifyIcon?みたいな
感じです。

マウスカーソルの座標取得してtrackBarのLocationを設定したら表示されなかった。
964デフォルトの名無しさん:2006/09/09(土) 18:44:11
C#でx^2とかってどういう風に書くんでしょう?
とりあえず整数乗したいんですが
965デフォルトの名無しさん:2006/09/09(土) 18:44:58
>>964
Math.Pos(x, 2)
966デフォルトの名無しさん:2006/09/09(土) 18:45:02
>>964
1. 素直に x * x
2. 整数乗という制限を無視して Math.Pow(x, 2.0)
967デフォルトの名無しさん:2006/09/09(土) 18:45:34
バカ Pow だ
968デフォルトの名無しさん:2006/09/09(土) 18:47:34
Powはしってますが、実装は知らんけれどなんか遅そうな感じが。
969デフォルトの名無しさん:2006/09/09(土) 18:52:01
>>963
その TrackBar を Form に載っけてないとか言わないだろうな?

>>968
何万回も呼び出すんで無い限り無意味な心配だがね。
まあ整数乗なら簡単にメソッド化できるだろ。
970デフォルトの名無しさん:2006/09/09(土) 18:52:30
自作してコード量無駄に増やして面倒なことになるよりもよほど早い
971デフォルトの名無しさん:2006/09/09(土) 18:54:33
大量データのNLogNアルゴなのでパフォ削れるところは削ろうとしてます。
表記ないならしょうがないですね。メソッド作りがてら試してみます。
972963:2006/09/09(土) 19:43:04
>>969

載っけてなかった・・・
だが、載せても表示されなかったです。
contextmenuをオーナードローするとか・・・?
973デフォルトの名無しさん:2006/09/09(土) 19:52:54
>>972
のっけてそのFormをShowしたんだろうな?
974963:2006/09/09(土) 19:59:01
>>973しました。。。

private void notifyIcon1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
int X = Cursor.Position.X ; // X 座標 の取得
int Y = Cursor.Position.Y ; // Y 座標 の取得

Point pos = new Point(X,Y ) ;

Form3 f3 =new Form3();
f3.Show();
f3.Location = pos;
}
}
975デフォルトの名無しさん:2006/09/09(土) 20:17:34
int Y = Cursor.Position.Y -100; // Y 座標 の取得
に変えたら動きました
とか言ったらぬっころすよ
976デフォルトの名無しさん:2006/09/09(土) 20:40:02
f3.Location = Cursor.Position;
でいいじゃんネー(o´・д・)(・д・`o)ネー

とりあえずそのイベントが発火してるかどうか確かめれ
977デフォルトの名無しさん:2006/09/09(土) 20:42:14
よく見たらCursorなんか使うからおかしい

f3.Location = Control.MousePosition;
に決まってるじゃんネー(o´・д・)(・д・`o)ネー
978デフォルトの名無しさん:2006/09/09(土) 20:45:57
Show()する前にLocationやSizeの設定済ませないと
979デフォルトの名無しさん:2006/09/09(土) 21:05:39
>>978
設定した位置に表示されませんと来る罠
そして Form のメンバを一通り調べろと答える私
980963:2006/09/09(土) 21:58:43
>>975->>979
ありがとう

>>975 int Y = Cursor.Position.Y -100; // Y 座標 の取得
に変えたら動きました

>>976>>977>>978
表示されない

でもなんか、表示されるけどタスクバーの後ろに隠れちゃってるんですけど・・・
981デフォルトの名無しさん:2006/09/10(日) 00:47:48
うめ
982963:2006/09/10(日) 00:58:17
もれもうめ
983デフォルトの名無しさん:2006/09/10(日) 01:02:11
埋めてもいいが、次スレは?
984デフォルトの名無しさん:2006/09/10(日) 03:05:46
985デフォルトの名無しさん:2006/09/10(日) 11:29:20
次スレ

ふらっとC♯, C#(初心者用) Part9
http://pc8.2ch.net/test/read.cgi/tech/1157855247/
986デフォルトの名無しさん:2006/09/10(日) 14:28:09
986
987デフォルトの名無しさん:2006/09/11(月) 10:06:50
988デフォルトの名無しさん:2006/09/14(木) 05:40:06
988
989デフォルトの名無しさん:2006/09/14(木) 12:11:48
989
990727:2006/09/14(木) 17:33:08
1ヶ月たってしまいましたが、>>728のとおりにしてみます。埋め。
991デフォルトの名無しさん:2006/09/14(木) 20:35:41
991
992デフォルトの名無しさん:2006/09/15(金) 03:22:31
992
993デフォルトの名無しさん:2006/09/15(金) 03:29:42
ふらっとC♯, C#(初心者用) Part9
http://pc8.2ch.net/test/read.cgi/tech/1157855247/
994デフォルトの名無しさん:2006/09/15(金) 13:50:52
995デフォルトの名無しさん:2006/09/15(金) 16:28:26
996デフォルトの名無しさん:2006/09/15(金) 16:40:11
997デフォルトの名無しさん:2006/09/15(金) 16:52:29
998デフォルトの名無しさん:2006/09/15(金) 16:54:43
999デフォルトの名無しさん:2006/09/15(金) 16:55:14
1000デフォルトの名無しさん:2006/09/15(金) 16:55:45
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。