C♯相談室 Part28
レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん♯
2005/12/14(水) 07:47:02(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
過去スレは>>2-5あたり。
関連リンク
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
0002名無しさん♯
2005/12/14(水) 07:47:35Part27 http://pc8.2ch.net/test/read.cgi/tech/1131544541/
Part26 http://pc8.2ch.net/test/read.cgi/tech/1127063469/
Part25 http://pc8.2ch.net/test/read.cgi/tech/1122352650/
Part24 http://pc8.2ch.net/test/read.cgi/tech/1117631000/
Part23 http://pc8.2ch.net/test/read.cgi/tech/1112968209/
Part22 http://pc8.2ch.net/test/read.cgi/tech/1109630502/
Part21 http://pc5.2ch.net/test/read.cgi/tech/1106490240/
Part20 http://pc5.2ch.net/test/read.cgi/tech/1103005153/
Part19 http://pc5.2ch.net/test/read.cgi/tech/1100240847/
Part18 http://pc5.2ch.net/test/read.cgi/tech/1096112588/
Part17 http://pc5.2ch.net/test/read.cgi/tech/1091284402/
Part16 http://pc5.2ch.net/test/read.cgi/tech/1087297504/
Part15 http://pc5.2ch.net/test/read.cgi/tech/1083066815/
Part14 http://pc5.2ch.net/test/read.cgi/tech/1076933504/
0003名無しさん♯
2005/12/14(水) 07:48:02Part13 http://pc2.2ch.net/test/read.cgi/tech/1071663456/ (ログ行方不明)
Part12 http://pc5.2ch.net/tech/kako/1066/10660/1066038651.html
Part11 http://pc5.2ch.net/tech/kako/1061/10612/1061262958.html
Part10 http://pc5.2ch.net/tech/kako/1051/10518/1051842450.html
Part9 http://pc2.2ch.net/tech/kako/1039/10396/1039646808.html
Part8 http://pc3.2ch.net/tech/kako/1032/10324/1032488831.html
Part7 http://pc3.2ch.net/tech/kako/1027/10275/1027531796.html
Part6 http://pc3.2ch.net/tech/kako/1022/10222/1022257078.html
Part5 http://pc3.2ch.net/tech/kako/1019/10195/1019533942.html
Part4 http://pc.2ch.net/tech/kako/1016/10165/1016597767.html
Part3 http://pc.2ch.net/tech/kako/1009/10094/1009473982.html
Part2 http://pc.2ch.net/tech/kako/1002/10024/1002468050.html
Part1 http://pc.2ch.net/tech/kako/977/977112364.html
0004デフォルトの名無しさん
2005/12/14(水) 08:40:310005デフォルトの名無しさん
2005/12/14(水) 12:10:050006デフォルトの名無しさん
2005/12/14(水) 22:18:57explicit, implicit ユーザー定義変換についての質問です。
あるサイトに
「変換メソッドは、引数を受け取り、それを元に変換後の型を返します
ただし、受け取る型と変換後の型に継承関係があってはいけません
例えば、ユーザー定義変換は System.Object を受け取ることはできないのです」
との説明があったのですが、つまりはどういう事なのでしょうか?
string は System.String で、int は System.Int32
System.Object だけなんで駄目なんでしょう (゚゚)?
ある種継承関係にあるとか考えているのですが…頭がこんがらがってしまいます
0007デフォルトの名無しさん
2005/12/14(水) 22:36:080008デフォルトの名無しさん
2005/12/14(水) 22:45:53すみません。プログラムで書くとどういう事なんでしょうか?
CS0556 のエラーが英語でよくわからなかったけど、
どうやらユーザー定義変換では自クラスを含めなきゃいけないと言う事だそうです。
class Test {
int num;
public static implicit operator int (string str) {
num = int.Parse(str);
return num;
}
public int Pub {
get { return num; }
set { num = value; }
}
static void Main() {
Test a = "10";
System.Console.WriteLine(a.Pub);
}
}
うぅ…これのコンパイルが通らないのはなぜなの…orz
0009デフォルトの名無しさん
2005/12/14(水) 22:47:26operator int→operator Testか?
0010デフォルトの名無しさん
2005/12/14(水) 22:51:18accesser.cs(4,3): error CS0120: 静的でないフィールド、メソッド、またはプロパティ
'Test.num' で、オブジェクト参照が必要です。
accesser.cs(5,10): error CS0029: 型 'int' を型 'Test' に暗黙的に変換できません。
と出ました。この CS0120 のエラーはググってもMSDNのやつがひっかからず
訳わかめ状態っす ;;
0011デフォルトの名無しさん
2005/12/14(水) 22:51:47> Test a = "10";
そりゃstringからTestへの型変換が定義されてないから……
0012デフォルトの名無しさん
2005/12/14(水) 22:53:10ちなみに>>10は3行目をこう変えた場合のコンパイルエラーです
0013デフォルトの名無しさん
2005/12/14(水) 22:53:56Testにint型の値を1つ引数にとるコンストラクタをつけろ。
0014デフォルトの名無しさん
2005/12/14(水) 22:54:270015デフォルトの名無しさん
2005/12/14(水) 22:59:35まずユーザ型変換は何かの型から自身の型に変換するか、自身の型から何かの型に変換するかしか定義できない。
つまりstringをintに変換するような型変換のオーバーロードは書けない。
なぜならstringもintもすでに定義済みで、「自身の型」にしようが無いから。
Test型の中での型変換はTestに変換するかTestから変換されるかしかない。
二番目に、演算子オーバーロードはstaticだ。
型変換は一般に新しいオブジェクトを作ってそれを返すって動作になる(或いはフィールドの値なんかをコピーする)。
オブジェクトが無いのに非staticメンバをいじるのは当然できない。
0016デフォルトの名無しさん
2005/12/14(水) 23:06:49static int num = 10;
public static implicit operator Test (string/*Test*/ str) {
num = int.Parse(str);
return new Test(num);
}
Test(int a) {
}
と変えたら、コンパイルが通り理想的な動作になりました。
>オブジェクトが無いのに非staticメンバをいじるのは当然できない。
は、特にすごくわかりやすかったです。
ついでの質問ですみません。面倒でしたらスルーしておいて下さい。
オブジェクト=インスタンス…で良いでしょうか?
なにはともあれ、ありがとうございました! 助かったです。
0017デフォルトの名無しさん
2005/12/14(水) 23:27:4415の文の中で出てくる「オブジェクト」はインスタンスの意味で使われている。
0018デフォルトの名無しさん
2005/12/15(木) 00:31:50Internet Explorerスクリプトエラー
ダイアログの表示を強制的にオフにする方法ってないでしょうか?
0019デフォルトの名無しさん
2005/12/15(木) 00:36:05ScriptErrorsSuppressed
0020デフォルトの名無しさん
2005/12/15(木) 04:27:31Managed WebBrowserなら>>19
0021デフォルトの名無しさん
2005/12/15(木) 17:51:480022デフォルトの名無しさん
2005/12/15(木) 19:03:28コンパイルが通り、期待した通りの結果が返ってくるのですが、
統合環境の(?) .NET 2003 ではコンパイルがとおりません。以下のプログラムです。
class Output {
public static Output operator << (Output cout , System.Object obj) {
System.Console.WriteLine(obj.ToString());
return cout;
}
}
class Test {
static void Main() {
Output cout = new Output();
cout <<= "ほげ";
}
}
<<エラーメッセージ>>
オーバーロードされた shift 演算子では、最初のオペランドは
それを含む型で、二番目のオペランドの型は int でなければなりません。
なぜに、このような制約が生まれたのでしょうか?
同じ動作のプログラムを .NET 2003 では実現するのは不可能なのですか?
0023デフォルトの名無しさん
2005/12/15(木) 19:14:39そもそも<<はそうやって使うものじゃないと思うけど。
0024デフォルトの名無しさん
2005/12/15(木) 19:22:300025デフォルトの名無しさん
2005/12/15(木) 20:12:21なるほど。言われてみれば確かに… そちらの方が理にかなってますね。
ではこのような動作を実現するのは不可能なのでしょうか?
# 初心者スレを見つけたので今度からはそちらに行く事にします。
# http://pc8.2ch.net/test/read.cgi/tech/1122001458/l50
0026デフォルトの名無しさん
2005/12/15(木) 21:48:26http://wisdom.sakura.ne.jp/programming/cs/cs44.html
0027デフォルトの名無しさん
2005/12/15(木) 22:43:400028デフォルトの名無しさん
2005/12/15(木) 23:47:10Settingsクラス内で定義して保存することはできますか?
//XmlSerializable
public class MySettingObj{
private string name;
public string Name {get{return name;}set{name=value;}
}
こんなクラスをプロジェクトのプロパティ、設定タブでのエディッタでSettings.csに保存することは無理でしょうか?
このようなオブジェクトは別ファイルに保存するのが常套手段ですか?
0029デフォルトの名無しさん
2005/12/16(金) 09:52:07Microsoft.CSharp
System.CodeDom.Compiler
とか。自分で解放したい時は System.AppDomain を使う。
違ったらスマソ
0030デフォルトの名無しさん
2005/12/17(土) 00:34:38ファイルパスとか考えるの面倒なのでデフォルトで用意されている機構である
アプリケーション設定(Settings)で保存できたらいいなぁ、と
あとResources.resxエディタで文字列を保存するときにセクション分けって無理なんですかね?
同一サテライトアセンブリ中で
文字列の保存をカテゴライズするにはKeyにPrefixをつけて、ずらーっと並べる位なのでしょうか?
0031デフォルトの名無しさん
2005/12/17(土) 01:42:18のSQLコマンドで呼び出されたemailのリストをArray, ArrayList,等の配列として得ることの出来るSystem.Data.SqlClient.SqlCommand関数(またはそれに代わる関数)は何かありますか?
0032デフォルトの名無しさん
2005/12/17(土) 02:08:550033デフォルトの名無しさん
2005/12/17(土) 02:43:350034デフォルトの名無しさん
2005/12/17(土) 09:51:15mdbに書き出したいのですが
DataSetからmdbファイルを作成することはできるのでしょうか?
(対象は素のWindows2000 Accessとかはインストールされていない)
mdbじゃなくてもお手軽DBならなんでもいいのですが、何かよいものってありますでしょうか?
0035デフォルトの名無しさん
2005/12/17(土) 10:22:590036デフォルトの名無しさん
2005/12/17(土) 13:21:38クラスに設定したい機能がいっぱいあるんですが、
一回設定したらもう二度と変更したくない機能ばっかりなんです
一回設定したらもう二度と変更したくない機能ってコンストラクタの引数で設定するべきだとは思うんですが
これやるとコンストラクタの引数が10個とか20個とかになってしまいます。
かといって、インスタンス生成後にプロパティで1つずつ設定するのも変・・・
これってそもそもクラスの設計が不味いんですかねえ
0037デフォルトの名無しさん
2005/12/17(土) 13:29:010038デフォルトの名無しさん
2005/12/17(土) 13:42:20XmlファイルをXPathやらXmlWriter/Readerで操作するのと
同じイメージで使えるってことなのかな。
0039デフォルトの名無しさん
2005/12/17(土) 13:46:13引数に独自クラスを当てればすっきりするんじゃないの?構造体でもなんでもいいんだけど。
0040デフォルトの名無しさん
2005/12/17(土) 13:53:11ProcessStartInfoクラスとか参考にしてみれば?
0041デフォルトの名無しさん
2005/12/17(土) 16:30:23何かで見ました。効率など気にせず実際に利用されていますか?
また、列挙型ではボクシングは発生するのでしょうか?
0042デフォルトの名無しさん
2005/12/17(土) 16:40:24列挙型は値型なのでボクシングは起きる
実行効率が必要かいなかも不明な状態で
実行効率を気にするのは馬鹿のすること
0043デフォルトの名無しさん
2005/12/17(土) 22:17:25Hoge hoge = new Hoge();
ってできないですよね?
ここで
Hogeを返すtool.hogeってメソッドがある場合、
Hoge hoge = tool.hoge();
は通りますよね?
なんとかして、Hogeを継承するクラスって作れないでしょうか?
toolはpublic classでどっからでも呼べます。
やりたいことはHogeにプロパティ、メソッドをいくつか増やしたいだけなのですが。
004443
2005/12/17(土) 22:27:11よろしくお願いします。
0045デフォルトの名無しさん
2005/12/17(土) 22:44:18ユーザ定義のキャストで Hoge にキャストできるようにする
0046デフォルトの名無しさん
2005/12/17(土) 22:46:220047デフォルトの名無しさん
2005/12/17(土) 22:47:57ユーザ定義のキャストを実施した時点でMyHogeはHogeそのものに変えてしまうしかなく、
もはや追加のプロパティなどは存在できない。
0048デフォルトの名無しさん
2005/12/17(土) 22:48:33だったらすまん。
0049デフォルトの名無しさん
2005/12/17(土) 22:57:47オーバーライドがないってことでいいんじゃね
005043
2005/12/17(土) 23:55:39で試してみます。
ありがとうございました。
0051デフォルトの名無しさん
2005/12/18(日) 05:02:510052デフォルトの名無しさん
2005/12/18(日) 07:53:34ttp://www.microsoft.com/japan/msdn/vstudio/productinfo/productline/
0053デフォルトの名無しさん
2005/12/18(日) 11:10:320054デフォルトの名無しさん
2005/12/18(日) 11:13:300055デフォルトの名無しさん
2005/12/18(日) 12:11:100056デフォルトの名無しさん
2005/12/18(日) 12:49:52Express Editionで十分って事ですか。
Standard Edition買おうかと思っていたけどタダのExpress Editionと比べると
お金払ってまで必要なのか?と思ってしまいます。
0057デフォルトの名無しさん
2005/12/18(日) 13:18:37詳しくはMSとかに。
//日本語のじゃ全製品の詳細比較が見つからないんだが……。
製品版はどうせ2月発売なんだから、それまではExpressEdition使って様子を見ればいい。
0058デフォルトの名無しさん
2005/12/18(日) 13:26:11文法はよく似てるんですが何か決定的な違いとかこれは気をつけろみたいなのありますか?
0059デフォルトの名無しさん
2005/12/18(日) 13:49:07確かに現状Express Editionしかないんだしね。
様子を見るしかありませんね。
0060デフォルトの名無しさん
2005/12/18(日) 14:14:240061デフォルトの名無しさん
2005/12/18(日) 14:24:37Main
0062デフォルトの名無しさん
2005/12/18(日) 14:25:190063デフォルトの名無しさん
2005/12/18(日) 14:50:25→P/Invoke とか、Marshal が使えない。
1.1でクラスライブラリ作れってことかな。
0064デフォルトの名無しさん
2005/12/18(日) 14:53:48TcpClientクラスとかWebClientクラスがありますが
どれが一番早く処理できますか?
0065デフォルトの名無しさん
2005/12/18(日) 14:54:05馬鹿なこと言うな。大体標準ライブラリの名前空間が無いってどういう意味だ。
0066デフォルトの名無しさん
2005/12/18(日) 14:54:57コーディングの手間ならWebClientが一番小さいな
0067デフォルトの名無しさん
2005/12/18(日) 14:57:32ヘルプ?のリファレンスには無いけど、普通に使えた。
インテリセンスにも表示されたし。
0068デフォルトの名無しさん
2005/12/18(日) 14:59:39ms-help://MS.VSExpressCC.v80/MS.NETFramework.v20.ja/cpref11/html/N_System_Runtime_InteropServices.htm
0069デフォルトの名無しさん
2005/12/18(日) 15:02:57フィールドのカプセル化の機能は期待してたんだが、メニューにないorz
007063
2005/12/18(日) 15:11:03ヘルプの
Visual Studio 2005 Express Edition 対応 MSDN ライブラリ
- NET Framewrok SDK ドキュメント
- クラスライブラリ
の中に見つからないから誤解してた。
0071デフォルトの名無しさん
2005/12/18(日) 15:35:44Microsoft.Win32.Registoryとかもない
0072デフォルトの名無しさん
2005/12/18(日) 15:45:08ms-help://MS.VSExpressCC.v80/MS.NETFramework.v20.ja/cpref1/html/T_Microsoft_Win32_Registry.htm
なんだ、私のドキュメントとほかの人のは別物なのか?
SDK入れた後でExpress入れたんだけど。
0074デフォルトの名無しさん
2005/12/18(日) 15:53:23第一cpref1.hxsがない
expressと同時にいれたやつだと少ないのかな?
とりあえず間違えて落としたSDK解凍して漁ってみる
0075デフォルトの名無しさん
2005/12/18(日) 17:43:13何でだろ。
0076デフォルトの名無しさん
2005/12/18(日) 18:09:09(Point[])arrayPoints.ToArray();
は通りませんでした。
0077デフォルトの名無しさん
2005/12/18(日) 18:13:040078デフォルトの名無しさん
2005/12/18(日) 18:14:47ってことですか?
無事いけたみたいです。
ありがとうございました。
#なんで気づかなかったんだろう…orz
0079デフォルトの名無しさん
2005/12/18(日) 18:19:300080デフォルトの名無しさん
2005/12/18(日) 18:20:01008178
2005/12/18(日) 18:28:34でいけました。
>>78でかいたのはコンパイル通ったもののエラーでした
×(Point[])arrayPoints.ToArray(Type.GetType("Point[]"))
×(Point[])arrayPoints.ToArray(Type.GetType("Point"))
○(Point[])arrayPoints.ToArray(typeof(Point));
レスありがとうございまいsた。
0082デフォルトの名無しさん
2005/12/18(日) 19:24:30ありがとうございます。
webページをゲットするスピードは
どれもあまり変わらないのでしょうか?
また他にアクセスできるクラスとかあったり
しますか?
008375
2005/12/18(日) 19:40:49見つけた。.NET Framework 2.0 SDKのドキュメントに含まれてた。
一旦MSDN Express Libraryをアンインストールして、
SDKを入れてからもう一回MSDNライブラリ入れたら見れるようになった。
普通にインストールするだけでもいけたのかもしれん。
0084デフォルトの名無しさん
2005/12/18(日) 21:24:24using (StreamReader reader = new StreamReader(fs, Encoding.Default))
{
do
{
line = reader.ReadLine();
Console.WriteLine(line);//なぜかlineが nullなんですけど なぜでしょう
} while (line != null);
}
0085デフォルトの名無しさん
2005/12/18(日) 21:30:12streamreaderでファイル開いちゃだめなの?
0086デフォルトの名無しさん
2005/12/18(日) 21:31:260087デフォルトの名無しさん
2005/12/18(日) 21:37:30それあれば大雑把に仕様把握するのが早くなるのに。
0088デフォルトの名無しさん
2005/12/18(日) 21:40:46あとからSDKのドキュメント部分だけインストールでもいけた。
//SDKインストールだけじゃドキュメントに出てくれなかったんだよな……。
0089デフォルトの名無しさん
2005/12/18(日) 21:49:04int key;
int value;
}
というクラスがあって、その配列
Vector v = new Vector[n];
を作った後に、要素keyだけを配列として取り出すことは
できますでしょうか?
例えば、SortedListの、Keysプロパティのように、
とりだした配列なりコレクションなりを
foreach構文にかけることがしたいのですが・・・
よろしくお願いいたします。
0090デフォルトの名無しさん
2005/12/18(日) 21:54:56ファイルを開いて>一行ずつ読み込んで・・
と日本語をそのままコードにしていったときにそうなってしまったのですが。
StreamReaderをそのまま使うと問題ないです。
でも、なぜFileStreamを開いて、StreamReaderに渡して実行できないのかわからないのです。
(Streamを渡して〜〜するという処理をやる予定があるので勉強のため)
↓でも同じようなコードがあるのですが 知ってる人いませんか?
「C#で作るWindowsアプリ −ファイルを読み込む− 」
http://www.divakk.co.jp/aoyagi/csharp_winexe_04.html
// ファイルを読み込む
Stream stm = opendlg.OpenFile();
if (stm != null) {
StreamReader reader = new StreamReader(stm);
mTextBox.Text = reader.ReadToEnd();
stm.Close();
}
0091デフォルトの名無しさん
2005/12/18(日) 21:55:360092デフォルトの名無しさん
2005/12/18(日) 21:58:48#elementの名前がVectorなのがちょっと引っかかるが。。
009389
2005/12/18(日) 21:59:03やっぱそれしかないのですかね・・・
今はそうしているのですが、
O(n)になっちゃうので、毎回参照されるとつらいですよね・・・
Vectorクラスか、外側のクラス(Vectorをコンポジションするクラス)
に細工をしてどうにかならないでしょうか?
0094デフォルトの名無しさん
2005/12/18(日) 22:02:08配列で何がしたいんだ?
たぶん、配列でまわすのもVectorのまままわすのも同じようにできると思うよ。
009589
2005/12/18(日) 22:05:26外側に
class Container{
Vector[] data;
public int[] Keys{
get{
:
:
}
}
}
SortedListみたいなコンテナクラスを作っていまして、
として、Vector[] dataのkey要素だけを返すような
プロパティが作りたいのです。
Keysプロパティを参照されるたびに「・・・・」の部分で
コピーして返す、ってのはイヤですよね・・・?
0096デフォルトの名無しさん
2005/12/18(日) 22:15:31あるなら、内部データとして喪ってもいいかもしれないけど、ソートなどにあわして更新しなおすオーバーヘッドかかる。
009789
2005/12/18(日) 22:20:30内部のアルゴリズムで使われていたりします。
積極的な理由としては、将来、複数のコンテナクラスを、
interfaceをimplementしたクラスとしてまとめたときに、
統一性がはかれるように、というのが目的なのですが。
なお、Vector[] dataの要素数は10000ぐらいです。
おっしゃるとおり、別にkeys[]という参照の配列を持とうとも
考えたのですが、他のメソッドも書き直す必要があって、やめました。
10000ぐらいならコピーのオーバーヘッドを黙殺するというのも
手ではあるのですが・・・
0098デフォルトの名無しさん
2005/12/18(日) 22:28:37両方ともどれぐらいのパフォかによるけど。
0099デフォルトの名無しさん
2005/12/18(日) 22:34:10IEnumeratorとインデクサを実装した KeyCollection とか定義してkeysで、
それを返せばいいんじゃない?
0100デフォルトの名無しさん
2005/12/18(日) 22:34:470101デフォルトの名無しさん
2005/12/18(日) 22:34:50class VectorKeyEnumerator : IEnumerator{
private Vector[] vectors;
・・・
}
class VectorKeys : IEnumerable{
private Vector[] vectors;
・・・
}
class Container{
Vector[] data;
public IEnumerable Keys{
get{return new VectorKeys(this.data);}
}
}
010289
2005/12/18(日) 22:36:22そうですね。
任意の位置の要素へのアクセスはO(1)でできるので、
GetKey(int index);
なども公開して、そちらの使用を推奨する形で逃げれば
いいですかね。
GetKey(0)〜GetKey(n)までが返す全ての要素を
集合としてもつクラスを定義できればいいのになぁ。
0103デフォルトの名無しさん
2005/12/18(日) 22:38:11010489
2005/12/18(日) 22:43:20本当はそうしたいのですが、Vectorそのものを返すメソッドや、
内部データとしてかなり使い回しているので、
全部直すのは大変そうです。
下手にいじるとバグも入れちゃいそうで・・・
>>99 >>101
なんかそれ凄くよさそうですね。
それなら、GetKey()を生かせますね。
IEnumerableって、次に返す位置を覚えておけましたっけ?
だったら、万事解決です。
0105デフォルトの名無しさん
2005/12/18(日) 22:52:48010689
2005/12/18(日) 23:01:502.0からそんな便利なのが追加されたのですか・・・
本当にありがとうございます。一発で解決しました。
参考までに
public IEnumerable Keys{
get{
for(int i=0; i<data.Count; i++)
yield return data[i].key;
}
}
010789
2005/12/18(日) 23:07:01落ちた気がしますね。(0.5%ぐらい実行時間増)
コピーする手間が省けたのに、何でだろ。
0.5%ぐらい時間がかかるぐらい、無視してもいいんだけど・・・
010889
2005/12/18(日) 23:09:22いままでコピーしてた部分は、時間測定外だったからかな。
内部ではyieldを使った場合、ちょっとした変なことを
やってるんだろうな・・・
0109デフォルトの名無しさん
2005/12/18(日) 23:34:16とりあえずMozzilaのActiveXコントロールを埋め込んでみましたが、Navigateは普通にできるものの、
Documentなどの肝心な値がobject型(GetType().Nameは__ComObject)で使い物になりません。
DotNETEmbedというものも見つけましたが、ビルドできる環境がありません。
DotNETEmbedのビルド済みDLLがある場所か、他に使用できるGeckoの.Netラッパーをご存知の方、教えて頂けないでしょうか?
0110デフォルトの名無しさん
2005/12/18(日) 23:50:40Microsoft HTML Object Libraryを参照設定
Documentが__ComObjectなのはIEコントロールでも同じだから妥当なインターフェイスにキャスト汁
0111デフォルトの名無しさん
2005/12/19(月) 00:11:12.Net Framework 2.0 SDK Beta2 日本語版を入れたのですが
>>72の
ms-help://MS.VSExpressCC.v80/MS.NETFramework.v20.ja/cpref1/html/T_Microsoft_Win32_Registry.htm
が出てきません。VC#のヘルプに出てくるURL欄に直打ち→Enterで良いんですよね?
0112デフォルトの名無しさん
2005/12/19(月) 00:36:12とりあえず
SDKβアンインストール
↓
VC#Expressと一緒に入ったMSDNアンインストール
↓
SDKリリースバージョンインストール
でいけるとおも
0113デフォルトの名無しさん
2005/12/19(月) 00:39:080114デフォルトの名無しさん
2005/12/19(月) 05:50:48ttp://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=fe6f2099-b7b4-4f47-a244-c96d69c35dec
0115デフォルトの名無しさん
2005/12/19(月) 12:03:13むかーしIRCだったかにそういうのあったな
0116115
2005/12/19(月) 12:04:05しかもどうでもいいような内容だ、吊ってくる
0117デフォルトの名無しさん
2005/12/19(月) 12:44:45かわいいやつめ
0118デフォルトの名無しさん
2005/12/19(月) 14:32:05/ ̄ ̄^ヽ /::.__ .::::::::::::: __ ヽ_
l l / / ヽ_ヽv /: / ヽ ヽ
_ /,--、l ノ /  ̄ ̄ √___丶 ̄ ̄ |
,--、_ノ:: `ー':: 、ミー---‐,,l | // tーーー|ヽ |
,/ ::: i ̄ ̄ | | ..: | |ヽ |
/ l::: l::: l | | |⊂ニヽ| | |
l . l !:: |::: l | | | |:::T::::| ! |
| l l |:: l: l \: ト--^^^^^┤ 丿
| l . } l:::::,r----- l \::  ̄ ̄^ヽ 丿
ヽ :l:::: ト:;;;;;;;/-/__........... / __o
| 二|二゛ ___
ノ | ヤ
0119デフォルトの名無しさん
2005/12/19(月) 14:46:23ふつうにウィンドウズアプリケーションで動かしたらフォームが開くのに、
ウィンドウズサービスで動かすとフォームが開かない。
エラーにもならない。
なんでや?
0120デフォルトの名無しさん
2005/12/19(月) 14:50:26UIを持たせたいならUI用の別アプリを作ってサービスとプロセス間通信させる。
0121デフォルトの名無しさん
2005/12/19(月) 15:55:03プロパティ開いて、対話を許可してもできたはず。
0122デフォルトの名無しさん
2005/12/19(月) 16:06:570123デフォルトの名無しさん
2005/12/19(月) 16:28:180124デフォルトの名無しさん
2005/12/19(月) 16:33:11サンクスコ
0126デフォルトの名無しさん
2005/12/19(月) 20:03:30う〜んヘルプを開こうとすると
[パッケージ 'Visual Studio Common IDE Package' を読み込めませんでした]
とダイアログが出るようになった
MS MSDN Express再インストール
VC# Express Editionの修復をしても変わらず・・・
とりあえず害は無さそうなんだけど、同じ人居る?
0127109
2005/12/19(月) 22:32:38ランタイムならMicrosoft Updateで入るし、SDKならVS Express Edition落とした方が便利だと思うが。
>>110
えっ マジですか>mshtml
最終的にはFirefoxの「選択した部分のソースを表示」機能と同等のものを作りたいんですが…
WebBrowserコントロールではできない(ElementからInnerHTMLとかを取るとmshtml解析後のHTMLになってしまう)ので
Geckoにしようと思ったのに、もしや同じ結末・・・?
0128デフォルトの名無しさん
2005/12/19(月) 23:13:070130デフォルトの名無しさん
2005/12/20(火) 04:57:47clを起動しようとしたら(SHELL32.DLLがリンクしてる)APPHELP.DLLがないと言われるし、
なんだか90年代の不安定でいい加減な作りのWindowsを思い出した。
0131デフォルトの名無しさん
2005/12/20(火) 05:42:320132130
2005/12/20(火) 05:57:56APPHELP.DLLはDelay-load Modulesだからなくてもとりあえず動いた・・・すまんこ
0133デフォルトの名無しさん
2005/12/20(火) 07:17:030134デフォルトの名無しさん
2005/12/20(火) 10:10:09あるDLLのエクスポートしてる関数にstructを渡すときに、
その関数の仕様でゼロクリアして渡さないといけないんですけど
C#だとどうやって記述すればいいんでしょう?
Cだと、memset (&obj, 0, sizeof(hoge)); の作業です。
とりあえず、今は
byte[] buf = new byte[Marshal.SizeOf(type(hoge))];
Array.Clear(buf);
hoge temp;
unsafe{
fixed(byte* p = &buf[0]){
temp = (hoge)Marshal.PtrToStructure((IntPtr)p, typeof(hoge));
}
}
dest = temp;
てなコードでお茶を濁してるのですけど、もっとスマートな書き方があるような気がするし、第一仕様を満たしているのか自信がありません。
0135134
2005/12/20(火) 10:10:47unsafe{
fixed(hoge* p = &dest){
for(int i = 0; i < Marshal.SizeOf(dest); i++){
Marshal.WriteByte((IntPtr)p, 0); //←うろおぼえ
}
}
}
こんなコードを書いてみましたけど、hoge* p = &destのところでコンパイラに
マネージド/アンマネージドがどうのこうのとエラーをはかれました。
0136デフォルトの名無しさん
2005/12/20(火) 10:18:35新しく構造体作るとか。デフォルトコンストラクタでnewされた直後の構造体は自動的に全て0。
byte[]にしたってArray.Clear呼ぶ必要もなく自動的に全ての要素が0。これの場合はMarshal.Copy。
Win32APIのZeroMemoryをP/Invokeするとか。
0137デフォルトの名無しさん
2005/12/20(火) 10:19:47> byte[]にしたってArray.Clear呼ぶ必要もなく自動的に全ての要素が0。これの場合はMarshal.Copy。
おっとこいつの場合はスマートにはいかないな。
0138デフォルトの名無しさん
2005/12/20(火) 10:20:150139134
2005/12/20(火) 10:38:20あ、ごめんなさい。引っ越したばっかりで自宅がまだネットにつなげてないんで
ネカフェで記憶に頼って書き込んでるのです。
ふむふむ。んじゃたとえば、
struct hoge{
private static hoge Zero = new hoge();
public int i;
public void ZeroClear() { this = Zero; }
}
みたいなことができそうですね。
0140デフォルトの名無しさん
2005/12/20(火) 10:43:56Zeroをpublic static readonlyなフィールドにした方がなんぼかましだ。
0141デフォルトの名無しさん
2005/12/20(火) 13:14:020142デフォルトの名無しさん
2005/12/20(火) 20:01:29>140
それ134の希望には全く沿わないだろ。
0143デフォルトの名無しさん
2005/12/20(火) 20:36:56このスレ(とその>>1)を参考にしたけれど、C#についてはほとんど触れらていないので。
0144デフォルトの名無しさん
2005/12/20(火) 20:37:27あ、このスレのことです。
推薦図書/必読書のためのスレッド PART28
http://pc8.2ch.net/test/read.cgi/tech/1133629787/
0145デフォルトの名無しさん
2005/12/20(火) 23:15:48DataGridViewでDataGridViewComboBoxColumnを使った列で
ComboBoxのItemsにRegexのインスタンスをいくつか入れて選択できるようにしたのですが
行を加えた後、ドロップダウンでその列を変更すると
エラー(そのデータ型はサポートされません。のような)が出てしまいます。
※データグリッドは非バインドで使用しています。
//コード例
btn1_Clicked(object o, EventArgs e){ dataGridView1.Rows.Add(new object[]{comboBox1.SelectedItem});}
comboBox1.ItemsとdataGridViewComboBoxColumn.Itemsには同じオブジェクトを使用しています。
dataGridViewのコンボボックスで選択された後、Cellの値はStringになってしまうのでしょうか?
Cellの値をDataGridViewComboBoxCellで選択された値にするためのプロパティとかどこかにありませんか?
0146デフォルトの名無しさん
2005/12/21(水) 01:14:53とりあえずなんかCellのメンバに入れるのに基本型以外のは撥ねられるっぽいな。
つかDataGridViewComboBoxCellにSelectedIndexすらないってのはどういうことだ。
後からCellのItemsに追加してもドロップダウンされたのの表示が変わらん。
あと>>145のコードじゃ新しい行としてcomboBox1.SelectedItemを入れてるが、
新しいDataGridViewComboBoxCellにこれ渡すのは拙くないか?
0147デフォルトの名無しさん
2005/12/21(水) 01:27:40どう突っ込めばいいんだ?
0148デフォルトの名無しさん
2005/12/21(水) 15:45:240149デフォルトの名無しさん
2005/12/21(水) 15:50:03VSでの配置ってジャンルになってるからVS Expressが必要かも
0150デフォルトの名無しさん
2005/12/21(水) 19:12:46一行読み込んでカンマで区切るのが基本と思いますが、
これだとデータ内にカンマがあったりすると正確に読み込めなんですよね。
0151デフォルトの名無しさん
2005/12/21(水) 19:16:07で、その定義に従って解釈
0152デフォルトの名無しさん
2005/12/21(水) 19:17:53つRFC4180
0153デフォルトの名無しさん
2005/12/21(水) 19:29:380154デフォルトの名無しさん
2005/12/21(水) 19:49:200155デフォルトの名無しさん
2005/12/21(水) 19:51:020156デフォルトの名無しさん
2005/12/21(水) 20:01:280157デフォルトの名無しさん
2005/12/21(水) 20:49:170158デフォルトの名無しさん
2005/12/21(水) 21:20:54まあ仕事ならやるけどさあ
0159デフォルトの名無しさん
2005/12/21(水) 22:18:420160145
2005/12/21(水) 23:14:20選択肢として用意するItems内のオブジェクトRegexの他、
ToString()をオーバライドして、Immutableなものとして使っているので大丈夫かと・・
表示用と実データを分けたかったので。
DataGridViewComboBoxColumnのItemsは一応何でもいけそうです
データグリッドのGUI上で変更したらCell内は一度Stringになってしまうようですが・・
ついでに蛇足ながら
DataGridViewCheckBoxColumnを使っていて
dataGridView1.Row.Add(new object[]{true, ...});とやると
一行目だけなぜかチェックボックスが反転しないという現象があったのですが
VS2005の製品版にしたら直ってました・・
DataGridViewComboBoxの方も試してみないと
0161デフォルトの名無しさん
2005/12/21(水) 23:38:56社員Mから、社員名と、最終更新日を取得し、データグリッドに表示させています
取得した、最終更新日の表示が2005/12/21なんですが、2005年12月21日と、データグリッドに表示させようと思っていますが、分かりません。
よろしくお願いします。
DataSet ds = new DataSet("社員M");
DataView dv;
da = new System.Data.OleDb.OleDbDataAdapter(
"SELECT 社員名,最終更新日 FROM 社員M", cn);
da.Fill(ds, "社員M");
dv = new DataView(ds.Tables["社員M"]
," ","", DataViewRowState.CurrentRows);
dataGrid1.DataSource = dv;
0162デフォルトの名無しさん
2005/12/21(水) 23:50:48だったら DateTime.ParseExact 使えばいいんじゃないの。
0163156
2005/12/22(木) 00:00:53すみませんがもっと詳しく教えてください。
ほんとに、これが精一杯です。
0164デフォルトの名無しさん
2005/12/22(木) 00:07:54実装例はMSDNのサンプルにある。
FormatプロパティのだけじゃなくてDataGridTextBoxColumnとかDataGridTableStyleとかの解説も読めよ。
0165デフォルトの名無しさん
2005/12/22(木) 00:13:10その最終更新日自体は取得できてるんでしょ?
それなら、大事なのはデータベースの話じゃなくて
日付の扱い方の話だね。
とりあえずこれとか。サンプルもあるよ。
http://www.atmarkit.co.jp/fdotnet/dotnettips/203dateparse/dateparse.html
0166156
2005/12/22(木) 00:14:04やってみます。ありがとう
0167デフォルトの名無しさん
2005/12/22(木) 00:29:500168デフォルトの名無しさん
2005/12/22(木) 00:47:19VBだと イベントを取れるようなのですが、C#ではそれと同等な方法はあるでしょうか?
アプリケーションプロジェクトのみをVBにする価値ってありますか?
なんかちょっと怖いんですけど
0169デフォルトの名無しさん
2005/12/22(木) 00:51:07コマンドラインを渡すのは、簡単にやるならSendMessageでWM_COPYDATAかな。
0170デフォルトの名無しさん
2005/12/22(木) 02:06:230171デフォルトの名無しさん
2005/12/22(木) 02:11:430172デフォルトの名無しさん
2005/12/22(木) 02:15:44MSOutlookは時々多重起動してるし、立ち上がらなくなることもあるwwww
0173デフォルトの名無しさん
2005/12/22(木) 07:23:16ページをまたがったとき下記のように
1ページ目の一番下の線が切れるんですが
__________
|hoge|foo|bar|
ページ終了
大見出し 二ページ目
______________________
|hogee|fooo|barrr|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
どう線を割り込ませればよいか教えてください
0174デフォルトの名無しさん
2005/12/22(木) 08:42:03書籍探すか、この辺を応用するかで頑張ってみれば。
ttp://www.hirano.cc/crystalreports/
0175デフォルトの名無しさん
2005/12/22(木) 08:47:19C#2.0対応のやつが欲しいのだけど。
0176デフォルトの名無しさん
2005/12/22(木) 11:41:00EnableVisualStyled()していても、StatusBarの視覚スタイルが無効になってしまいます。
これってバグ?
1.1です。
0177デフォルトの名無しさん
2005/12/22(木) 11:42:480178デフォルトの名無しさん
2005/12/22(木) 11:45:14もしやと思って、デザイン時はNoneでForm_LoadでContentsにしたら
視覚スタイル有効で表示されました。
全般に、Loadの前にウィンドウハンドルを作るようなことをすると
視覚スタイルが無効になるような気がします。AutoSizeをいじると
ハンドルが出来るんでしょうか?
0179デフォルトの名無しさん
2005/12/22(木) 12:01:180180デフォルトの名無しさん
2005/12/22(木) 12:03:23{
Console.WriteLine("こんそーる");
System.Diagnostics.Debug.WriteLine("でばっぐ");
}
て書いたら、出力ウインドウに
でばっぐ
こんそーる
と表示されます。
順番が逆なのはなぜなんですか?
よろしくお願いします。
0181デフォルトの名無しさん
2005/12/22(木) 12:52:360182デフォルトの名無しさん
2005/12/22(木) 13:39:34ConsoleをFlushしてみれば?
0183デフォルトの名無しさん
2005/12/22(木) 14:26:07マニフェストを置いたらちゃんと視覚スタイルで表示されました。なんなんだ。
0184デフォルトの名無しさん
2005/12/22(木) 15:32:20ありがとうございます。でもFlushのやり方がわからないです。。
0185デフォルトの名無しさん
2005/12/22(木) 16:13:24Console.Out.Flush() ;
System.Diagnostics.Debug.WriteLine("でばっぐ");
順番変わんない。
ConsoleとDebugは別々のストリームで
出力ウインドウはそれらを適当なタイミングかなにかで読み込んでくるだけで
ストリーム単位での順番は保障できないんじゃないか?
ちなみにボタンにフォーカスをあわせてリターンを押しっぱなしにすると
>でばっぐ
>でばっぐ
>でばっぐ
>こんそーる
>こんそーる
>こんそーる
>こんそーる
とか出る。
0186デフォルトの名無しさん
2005/12/22(木) 22:05:55なるほど。よくわかりました。
ありがとうございます。
0187デフォルトの名無しさん
2005/12/22(木) 22:26:16Debug.Listeners.Clear();
Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));
なんて微妙に変態ちっくなこともできるが。
0188デフォルトの名無しさん
2005/12/22(木) 23:20:56FolderItemsに対して処理をしています。
//FolderViewはShell32.IShellFolderViewDual
//FolderView.SelectedItems()はShell32.FolderItems、IEnumerable
object oItem;
foreach( FolderItem folitem in FolderView.SelectedItems() )
{
oItem = folitem;
if(なにか条件)
FileList.SelectItem( ref oItem, 25 );
else
FileList.SelectItem( ref oItem, 0 );
}
なにかの条件で選択するものを変えたいんです。
これだとFolderView.SelectedItems()の要素がループの度に変わると思うんですが
(実際Countプロパティをとると1ループごとに変化してます)
これで動いてしまうんです。
なんで動くか教えてくれません?(;´Д`)
怖いんで今は一旦FolderItemをArrayListなりに格納してからSelectItemしてるんですが
0189デフォルトの名無しさん
2005/12/22(木) 23:25:06FolderView.SelectedItems() は foreach の初めに1度だけ実行されるような気がするが。
0190デフォルトの名無しさん
2005/12/22(木) 23:34:24変態ちっくなコーディングしたら、期待通りに動きました。
ためになりました。(もっと勉強しなきゃなぁ。。)
ありがとうございます。
0192デフォルトの名無しさん
2005/12/23(金) 00:17:390193デフォルトの名無しさん
2005/12/23(金) 00:19:03IEnumerable e = FolderView.SelectedItems();
foreach(FolderItem folitem in e) {
....
と変わらないはず。多分。
0194デフォルトの名無しさん
2005/12/23(金) 00:19:450195デフォルトの名無しさん
2005/12/23(金) 00:27:01エナミュレータ・インタフェースの勉強するといいよ。
最も、結局MSがどういう実装してるかによるわけだが。
0196デフォルトの名無しさん
2005/12/23(金) 00:30:090197188
2005/12/23(金) 00:43:24レスありがとう
コード間違えた
foreach( FolderItem folitem in FolderView.SelectedItems() )
{
oItem = folitem;
if(なにか条件)
FolderView.SelectItem( ref oItem, 25 );
else
FolderView.SelectItem( ref oItem, 0 );
}
>>195
勉強します。とりあえず内部でIEnumeratorにMoveNextしたとき
ループの中で選択してるオブジェクトの数が減ったりしてるはずなのに
エラーも出さず動いてるんですが、仕組みが分からない以上使えないなと思いました。
動くってことはSelectedItems()で取得したFolderItemsは不変ってことなのかな?
でもプロパティとると変わってる。
結局>>196に行き着くんですかね?
こういうコードは止めた方がいいですか?
0198デフォルトの名無しさん
2005/12/23(金) 01:36:30MSDN見てみた。ディスパッチ・インタフェースか。
確かに .Net と言うよりVBの 'for each' 文化だな。
このインタフェース clsid 付いてるのか。
0199デフォルトの名無しさん
2005/12/23(金) 01:48:29灰皿があるんなら、吸ってもいいんでね?
0200デフォルトの名無しさん
2005/12/23(金) 02:04:35Kensington製品使う人は気をつけたほうがいいかもしれんな…
0201デフォルトの名無しさん
2005/12/23(金) 07:04:45新規作成に出てこないんだけど作れないってこと?
0202デフォルトの名無しさん
2005/12/23(金) 08:38:310203デフォルトの名無しさん
2005/12/23(金) 20:19:32例えば、下のプログラムを実行すると、
デバックなし(CTRL+F5)で実行 --> 2.8秒
デバッグ開始(F5)で実行すると --> 9.5秒
で、3倍以上も遅いです。
ちなみに、コマンドラインでコンパイルすると、
csc /optimize+ program.cs --> 2.8秒
csc /debug+ /checked+ program.cs --> 3.5秒
です。
2003 Proだとコマンドラインの結果と同等です。
2005 Expressのデバッグ実行はどうしてこんなに遅いのですか?
using System;
class Program
{
static void Main(string[] args)
{
int w = 1000; int h = 100000;
DateTime dt = DateTime.Now;
Random r = new Random();
double d = 0.0;
for (int y = 0; y < h; y++)
for (int x = 0; x < w; x++)
d += r.NextDouble();
TimeSpan ts = DateTime.Now - dt;
Console.WriteLine(ts.ToString());
}
}
0204デフォルトの名無しさん
2005/12/23(金) 20:22:59そりゃデバッグは実行速度ではなくあくまでデバッグが目的なんだから
そのためにより多くの情報を集めるようになった2005で遅くなるのは割りと自然だろう。
0205デフォルトの名無しさん
2005/12/23(金) 20:33:09今デバッグしている実際のプログラムだと、
デバッグなしだと3秒ぐらいなのに、デバッグありだと1分以上かかるんです。
ブレークポイントを使いたいだけなので・・・
多くの情報を集めなくて良いから、オプション設定とかで速くなる方法はないですかね?
0206デフォルトの名無しさん
2005/12/23(金) 22:36:17ようと、if文を作ったんですけどエラーがでて実行できませんでした。
if文の書き方は合っていますか?
if(dr["パスワード"]=="パスワード.text")
{
処理
}
0207デフォルトの名無しさん
2005/12/23(金) 22:42:37メッセージボックスなりDebugなりで二つを出力させてみたらいいんじゃね
0208デフォルトの名無しさん
2005/12/23(金) 22:51:180209デフォルトの名無しさん
2005/12/23(金) 23:18:44実行速度が数分の1にスローダウンするようだ。
エクスプローラで直接DebugフォルダにあるEXEを
実行すると普通のスピードで動作する。
スローダウンする仕掛けが入っているのだろうか。
誰かExpress版とPro版の両方で試せる人はいない
ですか?
0210デフォルトの名無しさん
2005/12/23(金) 23:24:07だからIDE側にデバッグ時情報を渡すからだろうと
0211デフォルトの名無しさん
2005/12/23(金) 23:34:16ウォッチ式とか付けてない?
数分の1は大きいなぁ。
0212デフォルトの名無しさん
2005/12/23(金) 23:51:22ウォッチ式はつけていない。
リリースビルドした実行形式をDebugフォルダにコピーしてもだめだった。
絶対にわざと遅くしていると思う。
0213デフォルトの名無しさん
2005/12/24(土) 00:20:35デバッグ情報がついたプログラムを通常実行するのと、
デバッグ情報がついたプログラムをデバッグ実行するのは違うぞ。
ちなみにブレークポイントの数は?
まあこれは2003での話しなので関係ないかもしれんが、
ブレークポイントの数が多くなるとデバッグ実行の速度が大きく落ちた。
※でも遅かったのは止めてステップ実行などしたときだけだったかもしれん。
0214デフォルトの名無しさん
2005/12/24(土) 00:33:053秒が1分てのは極端だな…
何の処理で時間がかかってるのか調べられないかい?
たとえば通常処理で例外を起こしてキャッチを大量に繰り返してたりとか。
0215デフォルトの名無しさん
2005/12/24(土) 00:50:38Visual Studio 2005スレ Part6 の
827に実験結果をおいてます
0216デフォルトの名無しさん
2005/12/24(土) 00:58:53つーか、マルチ氏ね
0217デフォルトの名無しさん
2005/12/24(土) 01:03:37すまねえ、VS2005すれPart6に逝きます。
0218デフォルトの名無しさん
2005/12/24(土) 02:51:53いまいち分からないのですが、教えてください。
0219デフォルトの名無しさん
2005/12/24(土) 02:56:44いらない。 と考えて良いよ。
0220デフォルトの名無しさん
2005/12/24(土) 03:01:07で答えられない程度なら、知ったかぶって回答すんなよw
0221デフォルトの名無しさん
2005/12/24(土) 03:10:080222デフォルトの名無しさん
2005/12/24(土) 03:12:04引数が同じで戻り値が違う時と答えておこう。
0223デフォルトの名無しさん
2005/12/24(土) 03:17:08{
public Base Optimize();
}
class Sub : Base
{
public new Sub Optimize();
}
元がvirtualでなかったり、戻り値の型変更する時にどうぞ
0224デフォルトの名無しさん
2005/12/24(土) 03:40:14「xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"」
みたいな奴を出さないようにできますか?
Xmlでの直列化を 各XmlSerializerに任せて書き込ませたらネームスペースなどが書き込まれて邪魔なので
こんな感じ
public class ComplexType: IXmlSerializable{
public SimpleObject OneData;
public SimpleObject AnotherData;
void IXmlSerializable.WriteXml(XmlWriter writer){
new XmlSerializer(typeof(SimpleObject)).Serialize(writer, OneData);//...ストリームに書き込み
}
//...
}
//XmlSerializerでシリアライズ可能
public class SimpleObject{...}
具体的には<OneData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
じゃなくて<OneData>....</OneData>と書き込んでほしいです。
0225デフォルトの名無しさん
2005/12/24(土) 03:46:53ArrayList,Hashtableを互いに変換することはできないのでしょうか?
0226デフォルトの名無しさん
2005/12/24(土) 03:47:320227デフォルトの名無しさん
2005/12/24(土) 04:08:13List<T>からArrayList、Dictionary<TKey, TValue>からHashtableにはコンストラクタに当てれば良い。
逆はちょっと面倒だな。素直にforeachで入れなおした方が良いかもしれない。
0228デフォルトの名無しさん
2005/12/24(土) 04:19:12おかげで ICloneable を implicit に実装したことねえぞ
0229デフォルトの名無しさん
2005/12/24(土) 04:29:530230デフォルトの名無しさん
2005/12/24(土) 04:33:46でもこっちは自分で作ったらいいんじゃね?
0231デフォルトの名無しさん
2005/12/24(土) 04:34:28呼び出し元でキャストするのが面倒
0232デフォルトの名無しさん
2005/12/24(土) 04:36:34各クラスが独自に実装してしまってもそう困るもんでないような気が
>>231
object ICloneable.Clone() {...}
public Hoge Clone() {...}
じゃ駄目?
0233デフォルトの名無しさん
2005/12/24(土) 04:53:31>282にそう書いてあるじゃん
0234デフォルトの名無しさん
2005/12/24(土) 05:06:53public interface ICloneable<T> : ICloneable
になりそうな予感。
0235デフォルトの名無しさん
2005/12/24(土) 11:36:08あんまり有効な使い方は思い付かん。
0236デフォルトの名無しさん
2005/12/24(土) 13:28:03using System.Web.UI.HtmlControls;
を使うと
エラー 型または名前空間名 'UI' は名前空間 'System.Web' に存在しません。アセンブリ参照が不足しています。
と出て、UIに青い波線が入ります。
オブジェクトブラウザをみるとちゃんと存在します。
どこがいけないのでしょうか?ヘルプをみても問題ない気がします。
昔VBの経験があり、OSはXP2、PCは自作です。お願いします。
0237デフォルトの名無しさん
2005/12/24(土) 13:30:310238デフォルトの名無しさん
2005/12/24(土) 13:32:48参照の追加
0239デフォルトの名無しさん
2005/12/24(土) 13:42:52おお、早速の返答ありがとうございます。
しかし悲しいかな、いまひとつ理解できず苦しんでおります。
もう少し詳しい説明をお願いできないでしょうか。
0240デフォルトの名無しさん
2005/12/24(土) 13:47:39ソリューションエクスプローラのプロジェクトのところに参照ってない?
右クリックしてみ
しまった、俺まだ2003だった
0241デフォルトの名無しさん
2005/12/24(土) 13:52:22おお、これか!
動いた!
ありがとうございました!!!
0242デフォルトの名無しさん
2005/12/24(土) 15:30:07呼び出し先の関数が null 返した時にもこの例外は出るんだっけ?
0243デフォルトの名無しさん
2005/12/24(土) 15:39:370244236
2005/12/24(土) 15:47:18C#でHPに自動ログインさせようとしてるのですが、うまくいきません。
HtmlDocumentを使うのは分かったのですが、Itemプロパティが何故か使えません。
仕方ないの調べたらSetAttributeが使えそうなのですがこれも何故かうまく使えません。
Helpファイルの使用例も変です。恐れ入りますがよろしくお願いします。
0245236
2005/12/24(土) 15:54:010246デフォルトの名無しさん
2005/12/24(土) 15:54:37Itemなんてプロパティは見当たらないが。HtmlElementにも。
うまく使えないってなにがどううまく使えないんだ。
……ってSystem.Web?
その名前空間は基本的にASP.NET用の名前空間であってWinFormアプリには使わないぞ?
0247242
2005/12/24(土) 16:00:53ん〜。NULL 以外の値が帰ってくる時には正常に動作するらしい。
NULL を返す時に限って例外出てくるんだけど……。それとも内部でこけてるだけかな……?
ちなみに宣言は
[DllImport("dxwrap.dll")] private extern static IntPtr DXMusic_New_FromFile(IntPtr hWnd, string filename);
0248236
2005/12/24(土) 16:11:22実は下記のサイトを参考に自分なりに作り直しています。
http://peace.poosan.net/investor/workshop/2512.htm
このページからダウンロードしたソリューションは動くんです。
C#のバージョンが違うのですが、新しいバージョンならもっと簡単に出来るのではないかと勉強がてらにやっていました。
ここではログインページを管理する変数とタイマーを使ってるのですが、DocumentCompletedを使ってやれないか模索していました。
ですがうまくデータを書き込めないんです。
0249デフォルトの名無しさん
2005/12/24(土) 16:26:09System.Windows.Forms名前空間のWebBrowser/HtmlDocument/HtmlElementの仕様の差がわからないと。
ヘルプ嫁としか言いようが無いな。
//しかしそのサンプルもずいぶん無造作にCOMオブジェクトを使ってるねー。
0251236
2005/12/24(土) 17:00:50要は自動ログインしたいだけなんです。
WebBrowser.Document プロパティのヘルプに
「HTML ドキュメント オブジェクト モデル (DOM: Document Object Model) によって、
WebBrowser コントロールに表示されている Web ページのコンテンツにアクセスするには、このプロパティを使用します。」
とあるのですが、うまくログインできないんです。
他に参考になるページは http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=18348 ですが、
ここもやり方が古い(?)ようです。
お付き合いくださってありがとうございました。頑張って試行錯誤を続けます。
0252デフォルトの名無しさん
2005/12/24(土) 17:06:18なにやら果てしない飛躍だな。
0253236
2005/12/24(土) 17:15:370254デフォルトの名無しさん
2005/12/24(土) 17:25:50列の入れ替えができるリストビュ−ってどうやれば実装できるのでしょうか?
コンポーネントの名前とかも分らないので教えてもらえないでしょうか〜。m(_ _)m
0255デフォルトの名無しさん
2005/12/24(土) 17:26:42質問するときは具体的に、なにをどうやってどうなったかをはっきりと。
0256デフォルトの名無しさん
2005/12/24(土) 17:27:53AllowColumnReorder?
アイテムの管理が大変だけど。
0257デフォルトの名無しさん
2005/12/24(土) 17:30:31サンクスです!
0258デフォルトの名無しさん
2005/12/24(土) 17:43:112005で付いたブラウザコンポーネントは、
フレーム超えられないみたいだから注意してね。
まぁ、ネイティブのインタフェースも実装してるから
そっち使えばいいだけだけどね。
そんじゃ、これからデートで体力限界までハッスルしてきまつ!
0259236
2005/12/24(土) 18:00:55private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Navigate("http://login.yahoo.co.jp/config/login?.src=www&.done=http://www.yahoo.co.jp");
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserNavigatedEventArgs e)
{
HtmlDocument doc = this.webBrowser1.Document;
doc.All.Item("login",0).value = "名前"; //axwebBrowserの例からこれでいけると思ったがダメ。itemの定義がないとエラー
}
この後SetAttributeを使ったり、書き方を変えてみたりしたが全滅でした。
現在もググってますが良い例が見つかっていません。
0260デフォルトの名無しさん
2005/12/24(土) 18:05:200261デフォルトの名無しさん
2005/12/24(土) 18:15:35つかVS2005使ってないの?
まずHtmlDocument.Allを調べる。するとHtmlElementCollection型のインスタンスが返ってくると言うことが分かる。
HtmlElementCollectionのItemプロパティを調べる。
で、ここでC#の一般常識:Itemって名前の"引数をとるプロパティ"は、普通C#ではインデクサで表現する。
インデクサの使い方を調べる。
改めてHtmlElementCollection.Itemプロパティを見てみる。
と言う風に順番に解決してけ。
0262236
2005/12/24(土) 18:51:09VS2005使ってますがhelpでクリックして辿ってる内に変なところにたどり着いていたようです。
半ばヤケになっていろいろ試していました。もう一度最初から調べてみます。
ありがとうございました。
0263デフォルトの名無しさん
2005/12/24(土) 21:05:13namespace Lib{
class ClassA{
}
}
というのがあるんだが、ほかのプロジェクトで使うときLib.ClassAじゃあかんのですか?
リファレンス参照追加しても見つけてくれない・・・orz
0264デフォルトの名無しさん
2005/12/24(土) 21:09:100265デフォルトの名無しさん
2005/12/24(土) 21:14:45public class にせいや
0266デフォルトの名無しさん
2005/12/24(土) 21:18:52ビルドはしてます。
現状:
ライブラリプロジェクトを同じソリューションに追加。
ライブラリのDLLは作成されている。
リフレクターで見ると対象のクラスなどは存在する。
ライブラリを参照したいプロジェクトにはDLLは存在しない←これがおかしい?
0267263
2005/12/24(土) 22:24:47でもライブラリいじっても古いDLLのままなので手動でコピーしないといけないですね。
0268デフォルトの名無しさん
2005/12/24(土) 23:44:49理由わかったら結果報告します。
0269デフォルトの名無しさん
2005/12/24(土) 23:53:440270デフォルトの名無しさん
2005/12/25(日) 01:12:30文字列の文字コードは UTF-8, UTF-16, ASCII, SHIFT-JIS, EUC-JP などさまざまです。
そこで、文字コードと string の関係がすごく気になります。
EUC-JP とか SHIFT-JIS の文字列を string に代入したら、内容は破壊されるんでしょうか。
もし破壊されないのなら、string で渡された文字列を byte[] に変換して、
それから正しい文字コードを指定して表示するなり変換するなりできますが、
場合によって破壊されてしまうのなら、そもそもそのコンポーネントの仕様に
問題があることになるので…。
0271デフォルトの名無しさん
2005/12/25(日) 01:18:48内容が破壊とか意味不明。
EUC-JPなりShift_jisなりで表現されるのは所詮バイト列。stringとは関係無い。
0272デフォルトの名無しさん
2005/12/25(日) 01:34:18・そのコンポーネントは文字列を string として返してくる。
・しかし、その内容は UTF-8, Shift_JIS, EUC-JP などさまざま。
という点が問題なのです。
おっしゃるとおり string の内部表現は UTC-16 です。
しかし、実際にコンポーネントが EUC-JP の文字列を string に
入れて返してきたものを、そのまま UTF-16 のつもりで表示すると、
化け化けでまったく表示できないんです。
ですので。
コンポーネントが string に入れてきた文字列は、 UTF-16 のように
みせているが byte[] としてとりだすと元のエンコーディングの
文字列のバイト列のままで、バイト列から正しいエンコーディングに
変換することができるのか。
それとも、そもそも string に入れて返されてきた(もともと UTF で
はない EUC-JP などだった)文字列は、UTF-16 と思って表示すると
化け化けなことから、既に破壊されていて、そこから変換して正しい
文字列を EUC-JP なり UTF-8 なりとして取り出すなんてことは、
不可能なのか。
そのどちらなのかが、わからないのです。
0273デフォルトの名無しさん
2005/12/25(日) 01:39:54コンポーネント内部の処理の時点で既におかしくなっている
気がしてきました。
string で値を渡してくるわけだから、string として表示
なりなんなりしたときに化ける時点で値をセットした側の
処理に問題がある気がします。
0274デフォルトの名無しさん
2005/12/25(日) 01:56:10普通にデコードためしてみりゃ良かろうに
0275デフォルトの名無しさん
2005/12/25(日) 02:00:13勿論stringはstringなのだから、stringで返してきた文字列が化けているのならそれはコンポーネントのデコードミスだ。
コンポーネントがバイト列からstringに変換するときに正しいエンコーディングを使わなかったんだろう
> 化け化けなことから、既に破壊されていて、そこから変換して正しい
> 文字列を EUC-JP なり UTF-8 なりとして取り出すなんてことは、
> 不可能なのか。
例えば「あいうえお」という文字列をUTF-8で表現すると
E3 81 82 E3 81 84 E3 81 86 E3 81 88 E3 81 8A
ってバイトの列になる。
これをShift_jisでデコードするとまあ当然化けるわけだが、
その化けた文字列を再びShift_jisとしてバイト列にしてみると、
E3 81 82 E3 81 84 E3 81 81 45 81 88 E3 81 81 45
って感じになる。
何故かと言うと、途中変換できない文字は?または・に強制的に変更してしまうから。
だから>>272が言う「既に破壊」はある意味では正しい。
0276デフォルトの名無しさん
2005/12/25(日) 02:01:38実際に byte[] に変換して元データのエンコーディングを使って
再度 string にして確かめてみろということですね。
やってみます。ありがとう。
0277デフォルトの名無しさん
2005/12/25(日) 02:06:56なんかかなりまんどくせそうなんだが。
0278デフォルトの名無しさん
2005/12/25(日) 02:13:36呼び出し関係を調べたいならコンパイルしてからILを読めばいいだけだし
0279デフォルトの名無しさん
2005/12/25(日) 02:17:590280デフォルトの名無しさん
2005/12/25(日) 02:30:25それはただのスレ違いレスとどう違うんだ?
0281デフォルトの名無しさん
2005/12/25(日) 02:32:25かなり。
とりあえずC#の言語仕様を精査するところから開始。
気が遠くなるだろ?
0282デフォルトの名無しさん
2005/12/25(日) 02:37:23どこで使われてるか調べるならObsolete付けてビルドするのが手っ取り早いと思う。
0283デフォルトの名無しさん
2005/12/25(日) 02:39:330284デフォルトの名無しさん
2005/12/25(日) 02:42:550285デフォルトの名無しさん
2005/12/25(日) 02:47:12よく調べてないんだけど、実質パーサー何もなくない?
0286デフォルトの名無しさん
2005/12/25(日) 02:56:240287デフォルトの名無しさん
2005/12/25(日) 02:59:13まぁ、System.CodeDom名前空間のクラス郡か、ANTLRでも持ってくるかって感じだな。
0288デフォルトの名無しさん
2005/12/25(日) 03:21:12System.Text.Encoding
0289デフォルトの名無しさん
2005/12/25(日) 09:38:26DLLの直接参照をやめて、プロジェクト参照にしたら動きました・・・
デモなんかそれができなかったりしたんだよな・・・
0290236
2005/12/25(日) 16:16:56丸三日掛かりましたがようやく出来ました。
ありがとうございました。
0291デフォルトの名無しさん
2005/12/25(日) 16:52:47させる時に、スペースやカンマだけは読み込まないように
したいのですがどうすればいいのでしょうか?
誰か助けて!
0292デフォルトの名無しさん
2005/12/25(日) 16:58:55とりあえずReplaceで取り除くという簡単な手段を提示。
0293デフォルトの名無しさん
2005/12/25(日) 17:11:15エクスプローラでファイルの操作とかしたいんですが、できますかね?
具体的にはどうやったらいいんでしょう
0294デフォルトの名無しさん
2005/12/25(日) 17:19:200295デフォルトの名無しさん
2005/12/25(日) 18:04:490296デフォルトの名無しさん
2005/12/25(日) 20:23:300297デフォルトの名無しさん
2005/12/25(日) 20:34:050298デフォルトの名無しさん
2005/12/25(日) 20:37:01生で出し入れするのか…。
ありがとう。RFC文書探してみるよ。
0299デフォルトの名無しさん
2005/12/25(日) 20:41:530300デフォルトの名無しさん
2005/12/25(日) 20:42:02Socket使って生からで作る事自体は大した手間ではなかったり
0301デフォルトの名無しさん
2005/12/25(日) 21:01:54ヘルプには「Connection HTTP ヘッダーの値を取得または設定します。 」って書いてあるけど、
ヘルプのサンプルを動かしたら、
HttpWebRequest myHttpWebRequest2 =
(HttpWebRequest)WebRequest.Create("http://www.contoso.com");
myHttpWebRequest2.Connection = "Close"; ←ここでエラーが起こる。
このプロパティを使用して、Keep-Alive および Close を設定することはできません。
パラメータ名: value
なんてエラーが出やがった。
0302デフォルトの名無しさん
2005/12/25(日) 21:09:240303デフォルトの名無しさん
2005/12/25(日) 21:11:57生で出し入れだと!
0304デフォルトの名無しさん
2005/12/25(日) 21:13:03ってすればいいだけなのか。サンクス。
0305デフォルトの名無しさん
2005/12/25(日) 23:54:1553番のネェちゃんがアナ開けて待ってるから
そこにナマで出し入れしてネタを聞き出すんだよ。
0306デフォルトの名無しさん
2005/12/26(月) 00:24:55今年は2日で計8戦して、摩擦しすぎで腫れちゃって
風呂入っても凍みるんだから。
くだらない妄想なんてやめて、
世界がどうやったら平和になるか考えようよ。
0307デフォルトの名無しさん
2005/12/26(月) 00:55:29人類が滅べば平和
0308デフォルトの名無しさん
2005/12/26(月) 01:33:520309デフォルトの名無しさん
2005/12/26(月) 01:34:08俺は真っ先に死にそうだがorz
0310デフォルトの名無しさん
2005/12/26(月) 03:28:26最後が頭だとダメだろ
0311デフォルトの名無しさん
2005/12/26(月) 18:36:44List<T>ならList<T>.Sortメソッドがあるし配列ならArray.Sortメソッドがあるんですが
そのどちらかわからない場合はどうすれば・・・
0312デフォルトの名無しさん
2005/12/26(月) 18:37:400313311
2005/12/26(月) 19:10:20インターフェースってIList<T>のことですか?
ドキュメントによるとIList<T>にソートをするメソッドはないみたいです。
0314デフォルトの名無しさん
2005/12/26(月) 19:14:140316デフォルトの名無しさん
2005/12/26(月) 20:28:21KeyEventArgsで
KeyCodeとKeyDataってどう違うんですか?
ただコンボボックスでEnterが押されたらコマンドを実行するようにしたいだけなんですが
0317デフォルトの名無しさん
2005/12/26(月) 20:53:140318デフォルトの名無しさん
2005/12/26(月) 23:18:03caretを直接扱えないってことでしょうか。
ドローソフトみたいに画面上の任意の位置に文字を入力できるようなのを
作りたいのですが……。
0319デフォルトの名無しさん
2005/12/26(月) 23:23:330320デフォルトの名無しさん
2005/12/26(月) 23:25:460321デフォルトの名無しさん
2005/12/27(火) 00:43:25/t Hogeって単体は指定できるのですが・・
0322デフォルトの名無しさん
2005/12/27(火) 00:44:58sgenの情報が少ないな
0323311
2005/12/27(火) 05:44:32ArrayList.AdapterメソッドがIListをArrayListに変換するのに使えるようです。
内容のコピーはしないらしいのでIListのコピーに使えそうです。
0324311
2005/12/27(火) 05:45:17○ IListのソート
0325デフォルトの名無しさん
2005/12/27(火) 10:05:280326311
2005/12/27(火) 12:19:29そうでした・・・
List<T> と配列が両方 IList を継承していたからうまくいっただけでした。
IList<T> をソートする方法は依然として不明のままです。
0327デフォルトの名無しさん
2005/12/27(火) 14:35:34一体何を悩んでいるのか読めない。
0328311
2005/12/27(火) 16:15:10>>323 の方法で問題ないです。すみません。
ただ IList<T> を実装したコレクションを共通の方法でソートする場合はどうするのかなあと思っただけです。
0329デフォルトの名無しさん
2005/12/28(水) 00:07:51MediaPlayerをウィンドウに配置してMDIとして再生するのと
DirectShowを使ってウィンドウに直接描画し、MDIアプリとして再生するのでは
どちらの方が処理が軽くなるでしょうか?
再生する動画の数は1〜4つを想定しています。
また、DirectShowを使う場合はマルチスレッドにする必要がありますか?
0330デフォルトの名無しさん
2005/12/28(水) 00:31:180331デフォルトの名無しさん
2005/12/28(水) 00:42:17わかりました。
0332327
2005/12/28(水) 03:46:08http://www.atmarkit.co.jp/fdotnet/dotnettips/218classsort/classsort.html
要するにこういう事かな。
IList<T>の実装でやるなら、ソート部分は自作するしかないキガス。
0333デフォルトの名無しさん
2005/12/28(水) 14:01:12どっかにない?
別にIComparerとかその他でもいいんだけど。…
0334デフォルトの名無しさん
2005/12/28(水) 14:06:01IEquatable<T>.EqualsをPredicate<T>にできるし。
0335デフォルトの名無しさん
2005/12/28(水) 16:05:20でも、ICollectionでできるのがないかなって
コレクションて書いたのが悪かった。
ところでIListにはFindなくない?
0336デフォルトの名無しさん
2005/12/28(水) 16:06:230337デフォルトの名無しさん
2005/12/28(水) 16:19:27自前でメソッドを実装すれ。
ICollectionならforeachと、型不定だから独自のデリゲートかIComparerかなにか使うことになるな。
0338デフォルトの名無しさん
2005/12/28(水) 16:51:02まあ作ることはたいしたことないんたけど
標準的なのがあるならそれにしたかったわけです。
0339デフォルトの名無しさん
2005/12/28(水) 17:01:02右クリックしたときだけ特定のContextMenuを表示したいのですが
マウスポインタがリンクの上にあるか判別するにはどうすればいいでしょうか?
WebBrowserのContextMenuStripにContextMenuを設定して
ContextMenuのOpeningイベントに実装しようと思っているので
リンク上ではなかったときにContextMenuを開かないようにすることも
教えていただければ幸いです。
0340デフォルトの名無しさん
2005/12/28(水) 17:39:19どれで右クリックされたかはHtmlDocument.ActiveElement辺りかね。
//HtmlElementEventArgsにSrcElementがないのは何でだ。
多分明示的にContextMenuStrip.Showを呼び出さなきゃなんないけど。
0341デフォルトの名無しさん
2005/12/28(水) 18:17:14いろいろいじってたところ WebBrowser.StatesText なるものを発見して
リンクの上にマウスポインタが載るとそこにアドレスが格納されるように
なってたのでContextMenuのOpeningイベントで想定したアドレス以外だと
e.Cancel = true; で開かないようにできました。
(WebBrowserコントロールがIEとほとんど同じ仕様だからできたようなものですが・・・)
MSDNのHtmlDocumetを見てましたがこれを使えば色々なことができそうですね・・・
(ActiveLinkColorとかは使うのか・・・?)
0342デフォルトの名無しさん
2005/12/29(木) 08:28:55現在OuterHtml使ってますがもっとスマートな方法があるとおもうのですが。
0343デフォルトの名無しさん
2005/12/29(木) 10:37:32どうしてクリックできないと結論付けたんだ。
0344342
2005/12/29(木) 11:16:41今こんなふうにしかやる方法が思いつかないのですが他にあります?
Doc.All["gender"].OuterHtml = @"<input type=""radio"" name=""gender"" value=""1"" checked>";
0345デフォルトの名無しさん
2005/12/29(木) 11:23:080346342
2005/12/29(木) 15:23:54あ、InvokeMemberってclick使うのか。checkだと思っていましたw
ありがとうございます。
0347デフォルトの名無しさん
2005/12/29(木) 15:41:220348デフォルトの名無しさん
2005/12/29(木) 21:13:29ウィンドウの大きさにタブコントロールの大きさを合わせるには
どうしたら良いですか?
AutoSizeみたいなプロパティはないようなので・・・
0349デフォルトの名無しさん
2005/12/29(木) 21:15:250350デフォルトの名無しさん
2005/12/29(木) 21:15:430351デフォルトの名無しさん
2005/12/30(金) 00:01:450352デフォルトの名無しさん
2005/12/30(金) 00:59:160353デフォルトの名無しさん
2005/12/30(金) 01:08:18どこかオススメありましたら教えてくだされ
できればC#^^;
0354デフォルトの名無しさん
2005/12/30(金) 01:31:24のですが
うまくいきません。
NotifyIconのダブルクリックイベントでform.BringToFrontをしても 上に行かないし
.Netは別のプロセスのFormをいじれないからダメかなと思い
Win32APIのShowWindow,SetForegroundWindowを使用すると上にはなるのですが
アプリ@.NETを最大化してから最小化し、タスクトレイをダブルクリックして復元しようとしても
通常状態のウィンドウで復元されてしまいます(最大化した状態で上にきてほしい)
[DllImport("USER32.DLL", CharSet = CharSet.Auto)]
private static extern int ShowWindow(IntPtr hWnd, int nCmdShow);
[DllImport("USER32.DLL", CharSet = CharSet.Auto)]
private static extern bool SetForegroundWindow( IntPtr hWnd);
//処理
ShowWindow(form.Handle, SW_RESTORE);//SW_RESTORE=9
SetForegroundWindow(form.Handle);
そもそもWin32APIを使わないで何とかしたいのですが・・
何か良い方法はありませんでしょうか?
0355デフォルトの名無しさん
2005/12/30(金) 01:41:46> アプリ@.NETを最大化してから最小化し、タスクトレイをダブルクリックして復元しようとしても
> 通常状態のウィンドウで復元されてしまいます(最大化した状態で上にきてほしい)
Minimizeした時点でMaximizeかどうかの情報が欠落するから。
Layoutイベント辺りでWindowStateを保存しとけば良いだろう。
> そもそもWin32APIを使わないで何とかしたいのですが・・
> 何か良い方法はありませんでしょうか?
無理。
0356デフォルトの名無しさん
2005/12/30(金) 05:30:030357デフォルトの名無しさん
2005/12/30(金) 07:42:420358デフォルトの名無しさん
2005/12/30(金) 17:57:29TextBox.TextChangedイベントでTextBox.AutoCompleteCustomSource.Clear() を呼んで
その後別の候補をセットすると候補が表示されないか、例外が発生して落ちる場合があります。
普通に候補が表示される場合もあります。
TextBox.AutoCompleteCustomSource.Clear() を除去するとちゃんと候補が表示されます。
TextBoxはダイアログボックスの子としてデザイナで作ってます。
以下は例外の詳細です。
System.AccessViolationException : 保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。
スタックトレース:
場所 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
場所 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
場所 System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
場所 System.Windows.Forms.Form.ShowDialog()
:
0359デフォルトの名無しさん
2005/12/30(金) 18:07:23.net1で書いた非ジェネリックなStackと
.net2で書いたジェネリックなStackだと
実行速度に差は出ますか?
0360デフォルトの名無しさん
2005/12/30(金) 18:09:37スタックの中身が構造体の場合は速度の向上が存分にあるらしい
0361デフォルトの名無しさん
2005/12/30(金) 19:24:52> .net1で書いた
この解釈はどうすれば
0362デフォルトの名無しさん
2005/12/30(金) 21:16:30フレームワークのバグっぽいねぇ。
Clearする代わりに、
新しくAutoCompleteStringCollectionを作成>
それに対してアイテム追加>
それをAutoCompleteCustomSourceに代入>
protectedであるRecreateHandleメソッドを呼び出し
でとりあえず回避できそう。
しかしまあTextChangedでAutoCompleteCustomSourceをいじるなんてトリッキーなことしないのが自然な気がする。
0363358
2005/12/31(土) 00:03:26レスどうもありがとうございます。
落ちる確率はぐっと減ったのですが、まだごく稀に落ちるようです。
階層的な構造をもつ文字列を入力させるのに便利かなと思ったんですが・・・
バグが直るまでとりあえずあきらめようと思います。
0364デフォルトの名無しさん
2005/12/31(土) 00:50:28試せばいいのに
0365デフォルトの名無しさん
2005/12/31(土) 00:59:21直ってほしいのなら、ただ待ってるだけじゃなくてMSに報告しろよー。
0367デフォルトの名無しさん
2005/12/31(土) 15:14:19日本国内の不正アクセスの95%が中国ハッカー団。
残りの5%が韓国。
これ常識。
0368デフォルトの名無しさん
2005/12/31(土) 15:15:280369デフォルトの名無しさん
2005/12/31(土) 15:18:36おまいは中国と戦争をしようというのか!!!
0370デフォルトの名無しさん
2005/12/31(土) 15:45:11中国には人民のインターネット通信を管理する公の組織があります。
そいつらは日本にスパイウェアやらウイルスやら攻撃を仕掛けてきているんですよ。
0371デフォルトの名無しさん
2005/12/31(土) 16:01:03ttp://live22x.2ch.net/test/read.cgi/livejupiter/1135999239/
こうしている今も攻撃を受けているわけか。
0372デフォルトの名無しさん
2005/12/31(土) 16:33:20日本語に慣れてないのか?省略して悪かったな。
おまいは中国とIT戦争をしようというのか!!!
0373デフォルトの名無しさん
2005/12/31(土) 16:47:12そうでしたか。こちらこそ誤解してすみません。
戦争しなくてもやつらは仕掛けてくるのです。
0374デフォルトの名無しさん
2005/12/31(土) 17:10:57--------------------- SSHD Begin ------------------------
Failed logins from these:
211.121.160.90 (211.121.160.90) : 128 Time(s)
0375デフォルトの名無しさん
2005/12/31(土) 17:11:58210.118.170.41 (210.118.170.41) : 863 Time(s)
0376デフォルトの名無しさん
2005/12/31(土) 17:17:45DataBinding.Add しても、双方向連結が出来ていないようで困っとります。
テキストボックスとオブジェクトのプロパティを連結しても、テキストボックスの値を変えて
フォーカスが外れた瞬間、値が元に戻ってしまいます。
前は問題なかったのにどうしてでしょう?
0377デフォルトの名無しさん
2005/12/31(土) 17:52:16すまそ。俺のミス。これで帰れる。
0378デフォルトの名無しさん
2005/12/31(土) 19:27:07これをC#と同期させれば、ほとんど何でも出来てしまいます。
なんていうか負ける気がしない?
なんか今年の千葉ロッテみたいな、そんな気分です。
そんなわけで、どうやら中国との決戦も近いようです。
みなさん、強力お願いします。OTL
0379デフォルトの名無しさん
2005/12/31(土) 19:32:250380デフォルトの名無しさん
2005/12/31(土) 19:50:29とくにマイナーな山口県とか、ここポイントだから。
0381デフォルトの名無しさん
2005/12/31(土) 20:10:07>ネイティブの吐ける自分専用のインタプリタを作りました。
おじさんには時代の進歩について行けない。
最近はこういうの普通なの?
0382デフォルトの名無しさん
2005/12/31(土) 20:57:34普通だよ。
ネタとしてはだが。
0383デフォルトの名無しさん
2005/12/31(土) 22:57:230384デフォルトの名無しさん
2005/12/31(土) 23:05:130385デフォルトの名無しさん
2006/01/01(日) 01:36:40すっげぇ簡単。
2.0からはライブラリにzlib対応ストリーム入ってるっぽいし。
0386デフォルトの名無しさん
2006/01/01(日) 01:39:47人大杉だと使えないけど
0387デフォルトの名無しさん
2006/01/01(日) 01:48:280388デフォルトの名無しさん
2006/01/01(日) 02:25:06だからなに
0389デフォルトの名無しさん
2006/01/01(日) 02:31:54規制されないようにあちこちから書き込むのはちょっと面倒。
人に書き込ませるゾンビ系はかなり面倒。
でも結局はプログラムの技術ではなくて、
ネットワークそのものの知識とかの方が重要。C#かどうかは関係ない。
0390デフォルトの名無しさん
2006/01/01(日) 02:35:42通信することは可能なのかな?
条件によって通信を行うNICを切り替えたいのだけど。
0391デフォルトの名無しさん
2006/01/01(日) 17:16:24発アドレスはbindするときに指定できるが、どのNICを使うかなんて
ルーティングが決めることであってプログラマが指定しても意味ないぞ。
0392デフォルトの名無しさん
2006/01/02(月) 00:31:09バルーンのなかにシステムアイコン以外のアイコンを表示したいんですが
0393デフォルトの名無しさん
2006/01/02(月) 03:34:160394デフォルトの名無しさん
2006/01/02(月) 03:40:50if (typeof(T).Equals(typeof(string))) {...}
とか。
0395デフォルトの名無しさん
2006/01/02(月) 11:20:42それからCをやる。
まずはそれから。
チャイナとの戦争は少数精鋭でいく!
0396デフォルトの名無しさん
2006/01/02(月) 11:30:57public struct Hoge {
public int Value;
public void Add(int value) { this.Value += value; }
public Hoge(int value) { this.Value = value; }
public override string ToString() { return this.Value.ToString(); }
public static void Main() {
//ボクシング。
object obj = new Hoge(3);
//(Hoge)objの時点で値のコピーになるので、
((Hoge)obj).Add(4);
//objには影響が無い。
Console.WriteLine(obj);
//リフレクションでobjのメソッドを直接呼ぶと、
typeof(Hoge).InvokeMember("Add", BindingFlags.InvokeMethod, null, obj, new object[] {4});
//値のコピーが発生しないのでobjに影響する。
Console.WriteLine(obj);
}
}
0397デフォルトの名無しさん
2006/01/02(月) 11:47:49読んだ記憶があるんだが、なんだったかなあ。
0398デフォルトの名無しさん
2006/01/02(月) 13:05:310399デフォルトの名無しさん
2006/01/02(月) 13:13:11私はこれを「AssenblerForC#」と命名しました。
それはC言語で書かれています。
また構文はまんまCASLです。
0400デフォルトの名無しさん
2006/01/02(月) 13:29:43オブジェクトのプロパティを変更すると、テキストボックスに値が更新されません。
DataBinding.Clear してから Add すれば更新されます。
テキストボックスの値を変更すれば、オブジェクトのプロパティの値は変わります。
どうすればプロパティの値を変更したときにフォームの値も変更できるのでしょうか?
よろしくお願いいたします。
0401デフォルトの名無しさん
2006/01/02(月) 14:02:030402デフォルトの名無しさん
2006/01/02(月) 18:22:12どもども。
でも DataBinding してるのが ILIST を実装していないオブジェクトのプロパティなので
CurrencyManager ではなく PropertyManager が返ってくる。
PropertyManager には Refresh が実装されていない。
どうすれば??
0403デフォルトの名無しさん
2006/01/02(月) 18:50:36C#って、"->"演算子使えるんだっけ?
0404デフォルトの名無しさん
2006/01/02(月) 18:55:460405デフォルトの名無しさん
2006/01/02(月) 21:52:01DataBindingsは単純データ連結だからそんなもんだ。
「あるオブジェクト」にHogeChangedイベントでも実装させて、
そのイベントでテキストボックスの値を直接書き換えるとか。
0406デフォルトの名無しさん
2006/01/02(月) 23:59:07なるほど。単純だとそうなのですね。
DataGrid だかをつかってデータベースと連携するときなどは便利そうですね。
ご指摘の方法で実装します。
ありがとうございました。
0407デフォルトの名無しさん
2006/01/03(火) 00:20:17漏れのやり方じゃ、証明書作成しないとダメっぽ。。。orz
0408デフォルトの名無しさん
2006/01/03(火) 00:40:55できるかどうかは分かりませんが現在次の方法を考えています。
1.HTMLDocumentからタグで辿って取得。
2.XMLに変換して構造的に取得。
3.Streamで取得して強引に検索する。
0409デフォルトの名無しさん
2006/01/03(火) 00:43:38どんなHTMLがくるか未知数なら1.
well-formedなXHTMLしか来ないことが分かってるときだけ2.
0410デフォルトの名無しさん
2006/01/03(火) 09:08:17値型のインスタンスってnew した時点ではどっちもHeapに取られるんだっけ?
で、値型のキャストはスタックにコピーを作る?
なんかこのへんの理解についてあやふやなんだよなあ、あってる?
Reflection 経由で呼ぶとHeap 上のフィールドを直接編集できるって理解で
OKでしょうか?
0411408
2006/01/03(火) 12:24:11レスありがとです。
参考になりました。
0412デフォルトの名無しさん
2006/01/03(火) 13:04:36メソッド内でnewしたらスタックに、メンバとしてnewしたらヒープにとられる(配列要素なんかもヒープ)。
//ちなみに参照型はメソッド内でnewしたら「参照が」スタックに、インスタンスがヒープにとられる。
ボクシングした場合、値がヒープにコピーされて、その参照(object型)がスタックにとられる(ローカルなら)。
アンボクシングでは、ヒープに入ってる値がスタックにコピーされる。
アンボクシングしない限り値のコピーは発生しないので同一インスタンスとして扱える。
ま、そんな複雑なことを値型に要求するのが間違ってるが。
0413プログラミング初心者
2006/01/03(火) 17:01:35あの機能をリッチテキストボックスで実現したいのですが、どのようにすれば良いですか?
(ドラッグオーバーイベントとかでやってみたのですがうまくいきませんでした)
なにか参考になるようなサイトがあれば教えてください。
0414デフォルトの名無しさん
2006/01/03(火) 17:44:38有難うございました。
0415デフォルトの名無しさん
2006/01/03(火) 17:54:26デフォルトでもドラッグ動作が動くように見えるんだが、どうにも微妙。
簡単には、
・MouseDownでマウス位置保存
・MouseMoveで、MouseDownからの移動量がSystemInformation.DragSize以上になったらDoDragDrop呼び出し。
データ形式に独自の形式を使うと便利。
・DragDropで、自分からのドロップの場合、元々選択していた文字列を削除して、新しく張り付け。
0416デフォルトの名無しさん
2006/01/03(火) 22:53:22同じ所に嵌った人がいてウレシイ
でもここじゃなくふらっとあたりで聞いたほうが
enable auto... を true でどう?
0417デフォルトの名無しさん
2006/01/04(水) 02:31:57あれば、教えてくださいm(_ _)m
0418デフォルトの名無しさん
2006/01/04(水) 02:35:290419デフォルトの名無しさん
2006/01/04(水) 02:50:45ないということですね。ありがとうございました。
0420デフォルトの名無しさん
2006/01/04(水) 03:18:26.NET 1.0/1.1の場合はSystem.Web.HttpUtilityも必要だけど。
0421デフォルトの名無しさん
2006/01/04(水) 03:35:35Wankuma.IO.Path.PathAbsoluteRelativeメソッド Version1
http://blogs.wankuma.com/naka//articles/2666.aspx
0422デフォルトの名無しさん
2006/01/04(水) 04:41:06ありがとうございます!
0423デフォルトの名無しさん
2006/01/04(水) 12:26:27公でやっててあの程度ならどうでも良い。
0424デフォルトの名無しさん
2006/01/04(水) 13:57:02本当に初心者の質問なんですけどよろしくお願いします。
0425デフォルトの名無しさん
2006/01/04(水) 13:59:040426デフォルトの名無しさん
2006/01/04(水) 14:11:16出来ました、ありがとうございます!
0427デフォルトの名無しさん
2006/01/05(木) 03:57:55しかないのでしょうか?それともそこまで面倒を見てくれるクラスがある
のでしょうか?探しましたが見つかりませんでした。ご存知でしたら教えて
ください。
0428427
2006/01/05(木) 04:11:52ないようです。失礼しました。
0429デフォルトの名無しさん
2006/01/05(木) 06:38:290430デフォルトの名無しさん
2006/01/05(木) 22:24:44拾ってきたサンプルだとDoDragDropの次にトレースメッセージかくとドラッグが終わるまで表示されない。
自分で作ったものだとDoDragDropがすぐ抜けてきているようでマウスで引っ張ってる途中のつもりのときにすでにメッセージが表示されてしまっています。
0431デフォルトの名無しさん
2006/01/05(木) 22:31:34コード見ないと何とも言えないな。
0432デフォルトの名無しさん
2006/01/05(木) 22:36:19DataFormats.FileDrop,
_nodeList[mindex].FullName());
Debug.WriteLine("begin DD");
DragDropEffects de=RootControl().DoDragDrop("Test", DragDropEffects.Copy);//RootControlはFormの派生オブオブジェクトを返す。
Debug.WriteLine(string.Format("end DD:{0}",de.ToString()));
こんなんです。
言われるとおりサンプルだとマウスを放すまでDoDragDropをぬけてこないんだけど、自分のコードだとすぐに抜けてきてしまいます。
0433デフォルトの名無しさん
2006/01/05(木) 22:53:15どうでもいいが DataObject o がさびしそうだな。
あとちなみに
root
━━ v. 根づく[かせる]; 定着する[させる]; 動けなくする, 立ちすくませる.
━━ v. (ブタが)鼻で掘る ((up)); 捜す.
0434432
2006/01/05(木) 22:57:29{
public RootForm()
{
MouseDown += new MouseEventHandler(RootForm_MouseDown);
}
void RootForm_MouseDown(object sender, MouseEventArgs e) {
DoDragDrop("Test", DragDropEffects.Copy);
Debug.WriteLine("end DD");
}
RootControl()はこのRootFormをかえすんですが、今試しに作ったMouseDownイベントでも一緒・・・orz
0435デフォルトの名無しさん
2006/01/06(金) 00:07:12RootForm rf = RootControl();
if( rf == null )
MessageBox.show("ダメじゃん");
DragDropEffects de = rf.DoDragDrop("Test", DragDropEffects.Copy);
まあRootControlがどこのインスタンス返してるか次第ではなにも起きない可能性もあるしな。
RootFormのコンストラクタでスタティックメンバにオブジェクトつっこんどいて一致するかも
チェックしてみたら。
0436デフォルトの名無しさん
2006/01/06(金) 06:25:41どういうときに何も起きない可能性あるんでしょ?
0437デフォルトの名無しさん
2006/01/06(金) 09:26:280438デフォルトの名無しさん
2006/01/06(金) 09:40:45結果わかったら報告します。
>>437
ダイアログとして起動することがなにか関係するんですか?
0439デフォルトの名無しさん
2006/01/06(金) 12:01:59MainメソッドにSTAThread属性つけてないんじゃないか?
0440デフォルトの名無しさん
2006/01/06(金) 12:50:55Mainにはつけてます。ただこれ暮らすライブラリの中のクラスなんだけど、暮らすライブラリのほうにはCOM関連の属性指定なんかないのかいまみてるとこです。
0441デフォルトの名無しさん
2006/01/06(金) 13:21:520442デフォルトの名無しさん
2006/01/06(金) 13:33:29Win32APIを使うしかないのでしょうか。
具体的には変換ウインドウの位置を変更するというのと、
背景色・フォントを変更したいと考えています。
0443デフォルトの名無しさん
2006/01/06(金) 13:40:58まあそもそもそんなもんいじるなと思うけど。
0444デフォルトの名無しさん
2006/01/06(金) 14:57:030445デフォルトの名無しさん
2006/01/06(金) 17:23:31ATOK
WXG
Japanist
とかも忘れずにね!
0446442
2006/01/06(金) 18:01:05どうも。
>>444
ですです。
>>445
TextEditとかはコントロール側で対応してるんでしょうか。
IMとアプリの関係がよくわかってません・・・
0447デフォルトの名無しさん
2006/01/06(金) 18:16:10具体的にはページ上に複数のコントロールを配置して、それをTabCotrolに登録して使う予定です。
複数のコントロールを並べるのはデザイナでやりたいのですが、
public class UserControl1 : System.Windows.Forms.TabPage;
とするとデザイナでコントロールを並べられなくなります。
どうすればいいでしょうか?
0448447
2006/01/06(金) 18:16:46public class UserControl1 : System.Windows.Forms.TabPage
の最後の;は誤植です。
0449デフォルトの名無しさん
2006/01/07(土) 00:14:33staticにするべき関数の定義について教えてください。
ちなみにWebアプリで考えるとしてです。
例えばメール送信クラスを作ったとして、これはstaticにすべきでしょうか?しないほうがいいでしょうか?
Webアプリなので、この関数自体は同時に呼び出される可能性はあります。
こういうのに限らず、一体どういったクラス内のメソッドをstaticにしていいかよくわかりません。
なにか基準があるんでしょうか?
どこかでユーティリティっぽいのはstaticでつくっとけ
みたいに書いていたんですが、その線引きもいまいちわからず。
何か明確な定義はあるでしょうか?
元々ASP(非.net)をしていて、最近.net(C#)にしたので
オブジェクト指向というのがまだあまりよくわかっていないもので。
ASpなら関数なのでstaticもなにもないんですが・・・
0450デフォルトの名無しさん
2006/01/07(土) 00:34:59メンバ変数をわないならstaticとか
0451デフォルトの名無しさん
2006/01/07(土) 00:35:21インスタンスの状態に関係なく処理でき副作用がないのなら、そのメソッドが静的かどうかは余り関係がない。
違うスレッドが同時に実行しようが何の問題もない。
「インスタンスの状態に関係なく処理できる」のが静的メソッドの必要条件。
「副作用がない」は必要条件ではないが、副作用があると極めて面倒なことになるだろう。特にWebアプリでは。
まあ要は静的フィールド(プロパティ)を作るなと言うことだが。
必要条件を満たしているとして、
そのオブジェクトインスタンスに意味的に関わるのなら非静的、そうでないのなら静的、とか。
インスタンスが必要でないのなら静的、とか。
自身の型のインスタンスを作る(WebRequest.Createみたいの)なら静的、とか。
ま、静的メソッドを作る機会は(オブジェクト指向に則ってれば)あんまりないけど。
> 例えばメール送信クラスを作ったとして、これはstaticにすべきでしょうか?しないほうがいいでしょうか?
> Webアプリなので、この関数自体は同時に呼び出される可能性はあります。
メールクラスの送信メソッド?
まさにインスタンスメンバにすべきものじゃね?
メールクラス作って、本文プロパティやら件名プロパティやら埋めて送信メソッド実行。
0452デフォルトの名無しさん
2006/01/07(土) 00:41:19右下からにょーんと通知ウィンドウが出ますよね。
数年前会社にMSの人が.NETの宣伝に来たときに
その通知ウィンドウに任意の文字列を表示するデモを見せてもらったんですが、
.NETで提供されているものなのでしょうか?
0453デフォルトの名無しさん
2006/01/07(土) 00:45:17NotificationWindowだったっけ?
0454デフォルトの名無しさん
2006/01/07(土) 00:57:430455デフォルトの名無しさん
2006/01/07(土) 01:00:13ありがとうございます!
「通知ウィンドウ」「NotifyWindow」「にょーん」「びろーん」「にょきっ」
とかで検索してたんですけどなかなか見つからなくて…
0456デフォルトの名無しさん
2006/01/07(土) 01:03:29Visual Basic Power Packですね。
ってVBか…スレ違いすみませんでした。
0457デフォルトの名無しさん
2006/01/07(土) 01:04:36> とかで検索してたんですけどなかなか見つからなくて…
まあそりゃ……w
0458デフォルトの名無しさん
2006/01/07(土) 01:32:19VBだけど、C#からも使えるからいいんじゃない?
0459デフォルトの名無しさん
2006/01/07(土) 15:26:24リアルタイムで処理するので、MCIを使うのは無理っぽい。waveIn〜系のwin32apiみたいに使えるやつがほしい。
0460デフォルトの名無しさん
2006/01/07(土) 15:36:250461デフォルトの名無しさん
2006/01/07(土) 17:01:40GIF 動画が、終了したか取得するにはどうすればいいの?
今の所、以下みたいにしたんだが、動画ダウンロード終了までしかとれん。
〜〜mDocument とるまでは、省略〜〜
HTMLImg mImg=null;
IEnumerator ee;
ee = mDocument.images.GetEnumerator();
while(ee.MoveNext())
{
mImg=(HTMLImg)ee.Current;
if( mImg.alt.IndexOf("テスト動画")>=0)
{
do{}while(! mImg.readyState.Equals("complete"))
break;
}
Marshal.ReleaseComObject (mImg);
}
Marshal.ReleaseComObject(mDocument);
0462デフォルトの名無しさん
2006/01/07(土) 17:51:27コードを出すと(一部簡略化しています)
----------------------------------------------
public class Mail
{
private static readonly string smtpserver = ConfigurationSettings.AppSettings["SMTPSERVER"];
public static bool SendMail(MailMessage mail)
{
try
{
System.Web.Mail.SmtpMail.SmtpServer = smtpserver;
SmtpMail.Send(mail);
}
catch (Exception e)
{
//ログ書き込み
return false;
}
return true;
}
}
----------------------------------------------
こんな感じなのですが。
もう一つオーバーライドで、引数増やして添付ファイルVerもあります。
0463デフォルトの名無しさん
2006/01/07(土) 17:52:03この場合、メッセージは引数としてわたってきますが
もしこのクラス内にメンバ変数でメッセージ自体を持ち
new時にそれを初期設定するような作り方の場合、staticでは不味く
メンバ変数がないこの状態であれば、特に問題はない。
という解釈であっているでしょうか?
0464デフォルトの名無しさん
2006/01/07(土) 17:59:08つまりその場合staticメソッドじゃ実現できない。
0465デフォルトの名無しさん
2006/01/07(土) 18:18:03ConfigurationSectionを継承して配列やArrayListをシリアライズするにはどうすればいいのでしょう。
this["TestArray"] = new ArrayList();
などとすると、Configuration.Save() のタイミングで例外が発生します。
ApplicationSettingsBaseを継承する方法では普通にシリアライズできているんですが、
こちらはアプリケーションスコープの設定の書き込みができないようなので・・・
0466デフォルトの名無しさん
2006/01/07(土) 20:45:16Remotingで 型RemotingObjectがサーバ側で登録されているかどうかを知るためにはどのようにしたら良いのでしょうか?
サーバ側で登録されていない場合、
RemotingObject remoteObject = (RemotingObject)Activator.GetObject(
typeof(RemotingObject),
"ipc://IpcSample/SampleApp");//この時点ではプロキシが作られるだけなのでエラーが出ない
string str = remotingObject.ToString();//←ここでエラーが出る
(実はやりたいことはアプリケーションの2重起動時にコマンドラインを受け渡すだけなんですが
0467デフォルトの名無しさん
2006/01/07(土) 20:51:22普通のUserControlの上にコントロール並べてDock=FillにしてTabPageにAddすればよくね?
0468デフォルトの名無しさん
2006/01/07(土) 22:01:580469デフォルトの名無しさん
2006/01/07(土) 22:12:07サイズが変わるのは仕様ですか?
(しかもWMPのDockをFillにしとくと落ちる)
0470デフォルトの名無しさん
2006/01/08(日) 04:38:34ではNTFSのフォルダ圧縮は設定できないようですが、
他に方法はありませんか?
0471デフォルトの名無しさん
2006/01/08(日) 05:34:31http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/ntfs2.asp
0472デフォルトの名無しさん
2006/01/08(日) 10:56:59ありがとう
0473デフォルトの名無しさん
2006/01/08(日) 15:32:52class A{
public A(int a, int b){
_a = a;
_b = b;
}
private _a;
private _b;
protected virtual bool SomeMethod(){
return false;
}
}
SomeMethodだけをoverrideしたクラスを作りたい場合でも、必ずコンストラクタを書かない方法ってないですか?
書かないとコンパイル時に「引数を '0' 個指定できる、メソッド 'A' のオーバーロードはありません。」となってしまいます。
自分が作ったクラスAに相当するものはコンストラクタのオーバーロードが8個あって、
派生クラスでもそのままそのコンストラクタを使いたいのですが、いちいち
B(int a, int b):base(a,b)
見たいな感じで渡すのは大変だし、記述ミスを考えるとあんまり良いやり方には思えないのですが。。。
0474デフォルトの名無しさん
2006/01/08(日) 15:35:44例えばその基底クラスコンストラクタで引数使ってOpenFileしてたらどうする?
0475デフォルトの名無しさん
2006/01/08(日) 15:56:280476デフォルトの名無しさん
2006/01/08(日) 17:07:20で、質問です。
あるサイトに行って、ある順番でページを進んで、複数のページのHTMLデータを取得するプログラムを作りたいのですが、
C#でもできますでしょうか。
C#というのは、初心者にも優しいと聞いて、是非C#でやりたいのですが、こういうのは作れますでしょうか?
0477デフォルトの名無しさん
2006/01/08(日) 17:09:470478476
2006/01/08(日) 17:17:04即レスありがとうございます。
えーと、中国語?煤i; ̄□ ̄
たぶん、可能ということですね。
ありがとうございました。
0479デフォルトの名無しさん
2006/01/08(日) 17:24:32よそで聞いたところによると、C#よりC/C++とかのほうが難しいけど、C/C++の方ができることは多いと聞きました。
では、C#だとこういうのが作れないというのは、どういうプログラムでしょうか?
0480デフォルトの名無しさん
2006/01/08(日) 17:27:27直接API(Windowsネイティブの命令)を扱うこともできるから
0481デフォルトの名無しさん
2006/01/08(日) 17:27:320482デフォルトの名無しさん
2006/01/08(日) 17:48:290483デフォルトの名無しさん
2006/01/08(日) 17:49:27おまいがやりたいと思うようなことではなかなか遭遇しないだろうから
気にしないでおいたほうがいいよ。
0484デフォルトの名無しさん
2006/01/08(日) 17:52:53ハードの制御なんてしませんし、サイト情報の取得加工ができるなら、問題なしです。
ではもう 心おきなくC#を勉強致します。
ありがとうございました。
0485デフォルトの名無しさん
2006/01/08(日) 19:28:07そもそもアンダーバーで始まる名前を作るな
0486デフォルトの名無しさん
2006/01/08(日) 19:29:060487485
2006/01/08(日) 19:31:370488342
2006/01/08(日) 19:51:35>あるサイトに行って、ある順番でページを進んで、複数のページのHTMLデータを取得するプログラムを作りたいのですが、
>C#でもできますでしょうか。
俺C#歴1ヶ月だけど楽勝。
0489デフォルトの名無しさん
2006/01/08(日) 20:07:34「文字コードの自動判別で詰まる」に一票。
0490デフォルトの名無しさん
2006/01/08(日) 20:14:24文字コードの判別なんて気にせず使えていい
0491デフォルトの名無しさん
2006/01/08(日) 20:26:050492デフォルトの名無しさん
2006/01/08(日) 20:28:360493デフォルトの名無しさん
2006/01/08(日) 21:25:400494デフォルトの名無しさん
2006/01/08(日) 21:36:230496デフォルトの名無しさん
2006/01/08(日) 22:38:28フィールドが全部値型とか読み取り専用の参照型(String、Uriなど)の場合ってMemberwiseCloneを返すだけでいい?
0497デフォルトの名無しさん
2006/01/08(日) 22:41:310498デフォルトの名無しさん
2006/01/08(日) 22:44:290499デフォルトの名無しさん
2006/01/08(日) 23:13:52c#とc++って何が違うんでしょうか?
0500デフォルトの名無しさん
2006/01/08(日) 23:18:120501デフォルトの名無しさん
2006/01/08(日) 23:25:19絶対マゾだよね
0502500
2006/01/08(日) 23:33:11そういう意味で書いたわけではないんだけどな。ただVBからだったら
.netからではないにせよC#の方がとっつきやすいという意味で書いた
だけで。
>>499,501
個人的には、今からC++をやる人がマゾだとは思わないよ。スキルを
上げようと少しでも思っているのなら、多言語、特にC/C++あたりは
触っておいて損はないと思う。C#をメインで使うにしても、その経験は
色々と生きてくる。
0503デフォルトの名無しさん
2006/01/08(日) 23:37:460505デフォルトの名無しさん
2006/01/09(月) 00:10:53レーサーになるのでなければカローラで十分。
コンビニ行くのにフォーミュラマシンを乗りこなす必要はないw
0506デフォルトの名無しさん
2006/01/09(月) 00:17:32>>499さんではありませんが、問題が解決しました。
有難うございました。
0507デフォルトの名無しさん
2006/01/09(月) 00:19:490508デフォルトの名無しさん
2006/01/09(月) 00:20:08研究室でシミュレータいじるようになったらCやC++は必須だけどな。
わざわざGUI周りの苦労をC++で味わう必要はなし。
0509デフォルトの名無しさん
2006/01/09(月) 00:22:17VS2001でVB6からC#に乗り換えた俺は、C#を強く推奨。
ポインタに触る気がなければVB9(VB2005)を推奨。
なんでVB9を無視してC#とC++の二択なのか理解に苦しむけど。
それと、C#とC++の比較論とは関係無いけど、C#(もしくはVB.NET)は、変数の寿命がVB6とは違う事に注意。
VB6では参照されなくなった途端に変数が削除されて、それがクラスインスタンスならば、即座にTerminateイベントが呼び出される。
でも、C#・VB.NETの場合は、変数が消滅するのはガベージコレクタの気分次第。
参照が無くなっても、いつ消えるか分からない。
ファイナライザやらデストラクタやらにいくら終了処理を記述しても、その実行を期待してはいけない。
最悪の場合、ファイナライザやらデストラクタが全く実行される事無くアプリが終了まで到る事もある。
>>505
良い例えだな。
でも、フォーミュラマシンでコンビニに行かされるならまだマシ。
業務の場合、軽でサーキットやら荒地を走れと言われるんだからたまったもんじゃないw
0510デフォルトの名無しさん
2006/01/09(月) 00:41:16VB.Netなら nothing のセットで消えるはず。
>最悪の場合、ファイナライザやらデストラクタが全く実行される事無く
>アプリが終了まで到る事もある。
ありえへん。
0511デフォルトの名無しさん
2006/01/09(月) 00:42:08カムリくらいじゃ?(たいしてかわらないか)
それほどメジャーじゃないし
かといってそれほど低性能でもない
0512デフォルトの名無しさん
2006/01/09(月) 00:42:35>VB.Netなら nothing のセットで消えるはず。
セットしても実際に GC 動かないと消えないよ
0513デフォルトの名無しさん
2006/01/09(月) 00:58:040514デフォルトの名無しさん
2006/01/09(月) 01:00:34■Usingステートメント(VB 2005のみ)
http://www.atmarkit.co.jp/fdotnet/special/vs2005_02/vs2005_02_02.html
0515デフォルトの名無しさん
2006/01/09(月) 01:07:10インスタンスの消滅とは何の関係もないぞ。
0516509
2006/01/09(月) 01:18:22~Form1()
{
System.IO.FileStream fs = System.IO.File.Create( @"c:\hoge.txt" );
fs.Dispose();
}
新規プロジェクト作って、このコンストラクタを追加して実行。んで、フォーム閉じて終了させてみ。
ブレーク貼っても止まらんし、ファイルもできない。
>>514
こういう事じゃね?
ttp://www.divakk.co.jp/aoyagi/csharp_tips_using.html
0517509
2006/01/09(月) 01:19:400518デフォルトの名無しさん
2006/01/09(月) 01:55:44VB.NETはVB6と大きく変わってしまって、
address ofがデリケード型使えとかなんとかで訳わからず。
それならCにしようと。
順番としてCを覚えてからC++からc#になるのかと思ったのですが、
C++とばしてC#でも大丈夫でしょうか?
0519デフォルトの名無しさん
2006/01/09(月) 02:01:55なにが大丈夫か不安なのかよくわからん。
0520500
2006/01/09(月) 02:02:24C→C++なら分かるが、C#は全く別系列。手軽に使いたいんなら
最初からC#にした方が吉。
ただし、そのdelegateとかはC#でもやはり理解しないと無理。
0521デフォルトの名無しさん
2006/01/09(月) 02:02:300522デフォルトの名無しさん
2006/01/09(月) 10:53:36前のスレにも出てたけど、ガベレージコレクタを意のままに操るのは実は結構難しい。
終了処理を書くにもタイミングがあるんだ。
ここって結構C#の穴なんじゃないかと思う。
0523デフォルトの名無しさん
2006/01/09(月) 10:57:430524デフォルトの名無しさん
2006/01/09(月) 12:38:380525デフォルトの名無しさん
2006/01/09(月) 13:05:28もしくはC++と混ぜて使うとか。
0526デフォルトの名無しさん
2006/01/09(月) 14:01:291年たってもC/C++は出来るようにならねーよ
0527デフォルトの名無しさん
2006/01/09(月) 14:03:51お前の方がありえん
でたらめ教えんな、信じる馬鹿がでるだろ
0528デフォルトの名無しさん
2006/01/09(月) 14:14:35それをどっちに含めるかだな。(笑)
絶対呼ばれるという理解を前提に話するのは危険だと思うが。相談スレだし。
0529デフォルトの名無しさん
2006/01/09(月) 14:27:13いやまあ普通は必ず実行されるという理解でいいが
実際は必ず実行されるとは限らない。
そういう話に対して、ありえないって反応だったから
書いたんだよ
念のため、普通にドキュメントに書かれてることだ
0530デフォルトの名無しさん
2006/01/09(月) 14:37:04> VB.Netなら nothing のセットで消えるはず。
本当かよそれ。VBはrefcountGCでも使ってんのか?
GCの動作を理解してないと非マネージリソースの扱いでハマる。
後始末が必要なオブジェクトは明示的に後始末しとけってだけの話だが。
0531デフォルトの名無しさん
2006/01/09(月) 14:56:26ワロタ
0532デフォルトの名無しさん
2006/01/09(月) 15:05:40nothing セットしても消えないよ。
それはC#と同じ。
ちなみに旧VBでも Nothing セットするのと
インスタンスの消滅は別問題。
参照がある限り消えない
0533デフォルトの名無しさん
2006/01/09(月) 16:00:090534デフォルトの名無しさん
2006/01/09(月) 16:21:340535デフォルトの名無しさん
2006/01/09(月) 22:03:17時間制限の技術文書ってどこかにあったっけ?
Remotingに関して質問させてください。
Remotingでの異常処理(サーバがダウンしたなど)ってどうやってトラップすべきなんでしょう?
透過的プロキシオブジェクトのメソッドを呼び出してる部分を片っ端からTryCatchするしか方法ないのかな
OneWayAttributeっていまいち信用性に欠けるし
たとえば、あるサーバがRomotingObjectをシングルトンでサーバアクティベーションしているとして
//クライアント側
RemotingObject ro = new RemotingObject();
try{
ro.ExitApplication();//中身はこんなの--> public void ExitApplication(){Application.Exit();}
}catch(RemotingException){}//サーバが終了するのでExceptionが起こる
みたいに全部TryCatch書かないとダメなのかな。
こんなんだったら、透過的じゃないほうがわかりやすい気がするんだけど・・
0536デフォルトの名無しさん
2006/01/09(月) 23:34:22Any CPU?
0537デフォルトの名無しさん
2006/01/09(月) 23:51:10かんがえてみりゃ当たり前なんだけど、気づかなかったw
0538デフォルトの名無しさん
2006/01/09(月) 23:53:050539デフォルトの名無しさん
2006/01/09(月) 23:58:07やっぱ単純にはThreadExceptionとかでまとめてやる、とかかな?
誰か、自作のRealProxyからリモーティングの透過プロキシへの
メッセージの受け渡しの正しい方法を教えてくれ。
0540デフォルトの名無しさん
2006/01/10(火) 00:18:30ルールが載ってたように思うな。
MSDNとかの記述では、具体的な数字なんかは出てこない。
ほかに、finallyブロックでThreadAbortExceptionが発生した場合、
finallyの残りが実行されないとか、通常レベルで想定外な事象ってのは発生し得る。
0541デフォルトの名無しさん
2006/01/10(火) 14:54:24オプション探しても、共通のウィンドウの色の変更しか見当たらない。
0542デフォルトの名無しさん
2006/01/10(火) 15:01:40テキストエディタにうんざりするほどたくさん項目があるが。
0543デフォルトの名無しさん
2006/01/10(火) 15:12:45再起動する前はセッティング対象に3種類しか出てこなかったんだよ・・・
0544デフォルトの名無しさん
2006/01/10(火) 16:22:17Form 上に表示したいのですがどのようにすればいいのでしょうか?
0545デフォルトの名無しさん
2006/01/10(火) 16:25:45Console.SetOutでその派生クラスのインスタンスを設定する
0546デフォルトの名無しさん
2006/01/10(火) 17:44:06根本的に何か間違ってるんじゃね?
0547デフォルトの名無しさん
2006/01/10(火) 19:27:54web上のテーブルデータを取得して
データグリッドを使って表示させることって可能ですか?
0548デフォルトの名無しさん
2006/01/10(火) 19:31:430549デフォルトの名無しさん
2006/01/10(火) 19:31:460550547
2006/01/10(火) 19:56:08ソース取得まではわかるんですが・・・その後がわかりません。
0551デフォルトの名無しさん
2006/01/10(火) 20:17:360552デフォルトの名無しさん
2006/01/10(火) 20:18:59ラジオボタンのクリックでwebBrouserを使って (axWebBrouserではなく)
Doc.All["gender"].InvokeMember("click", "1")
は出来るのですが値を2にして
Doc.All["gender"].InvokeMember("click", "2")
にしても1をクリックしてしまいます。
何か間違ってますでしょうか?
0553デフォルトの名無しさん
2006/01/10(火) 20:31:59・clickメソッドは引数を取らない
Doc.All.GetElementsByNameで同じname属性持ってる要素のコレクション取り出してそれにItem(int)でアクセスする、とかしな
0554デフォルトの名無しさん
2006/01/10(火) 20:32:50とりあえずスペルが間違ってる
0555547
2006/01/10(火) 20:35:31わかりません・・・。
説明不足とは思いますが、わかるかた教えていただけないでしょうか。
0556デフォルトの名無しさん
2006/01/10(火) 20:43:45・HTMLを、正規表現System.Text.RegularExpressions.Regexクラスなどを用いて解析し、必要なデータを取得する
・データをSystem.Data.DataTableクラスなどに格納
・System.Windows.Forms.DataGridのDataSourceに設定する
これでいいか?
0557デフォルトの名無しさん
2006/01/10(火) 20:59:08単体なら読めるのに
ウィンドウズサービスに乗せると読めなくなる。
0558デフォルトの名無しさん
2006/01/10(火) 21:09:02作業フォルダが違うだけで、読めねーわけではないと思うが。
0559547
2006/01/10(火) 21:28:02ありがとうございます。うまく書けるかわかりませんがやってみます。
0560デフォルトの名無しさん
2006/01/10(火) 21:30:220561557
2006/01/10(火) 21:48:14RPC (Remote Procedure Call) のサーバープログラムを作って、
そのときサーバーの構成を構成ファイルに定義するのだが、
単体のときはうまく読めてサーバープログラムとして機能するのだが、
それをそのままウィンドウズサービスに乗せると、
サービス開始時に、構成ファイルを読み込むところで
ファイルが存在しないという例外になってしまう。
構成ファイルに記述せず、
直接ソースプログラムに書き込めば問題ないのだが。
0562デフォルトの名無しさん
2006/01/10(火) 21:50:110563557
2006/01/10(火) 22:03:48¥プロジェクト¥app.conf
¥プロジェクト¥bin¥Release¥実行ファイル
というかたち。
これを installutil というプログラムでサービスにインストールする。
ありゃ? どこへ?
このとき、構成ファイルは無視されるのかな?
0565デフォルトの名無しさん
2006/01/10(火) 22:06:370566デフォルトの名無しさん
2006/01/10(火) 22:23:21そこで通常は実行ファイルと同じディレクトリに、実行ファイル.conf(だったっけ?)
が自動的に作成されるはず。
そいつを、 installutilで実行ファイルをインストールした先にもコピーすれば良いような気がする。
0567557
2006/01/10(火) 22:23:28新しいプロジェクトの開始でウィンドウズサービスを選択して
そこへ元のプログラムを若干の改造をしたうえで組み込む。
構成ファイルを使わずソースプログラムに直接書き込んだ場合は
ちゃんと動いてくれるのだが。
0568557
2006/01/10(火) 22:24:40ありがと。試してみる。
0569デフォルトの名無しさん
2006/01/10(火) 23:43:50私の家のパソコンにはC#のVisual Studio Net 2003がインストールされています。
ここで、プログラムを作って完成させたんですが・・・よく考えてみると大学では、
C#2005だったと思うんです。できたら、家だ作ったプログラムをコピーして大学
の授業でも使いたいと思っているんですが・・・この2つには互換性はあるのでしょうか?
どなたか知っている方おられませんか??
0570デフォルトの名無しさん
2006/01/10(火) 23:48:25一応上位互換性/下位互換性はある
.NET 1.1が無くて.NET 2.0が入ってる環境では.NET 1.1のアセンブリも.NET 2.0で動く
ただしそれは完全な互換性を保証するものではない
ソースを使いまわす方向じゃ駄目なのか?
0571デフォルトの名無しさん
2006/01/10(火) 23:54:582003 → 2005は OK。
逆は無理。
>>570
いまどき、MSDNAA 入れば割と VS 入れたい放題だからねぇ。
0572デフォルトの名無しさん
2006/01/11(水) 00:00:10マルチ氏ね
0573デフォルトの名無しさん
2006/01/11(水) 00:01:35情報ありがとうございます!!
ソースを使い回す方向というのは・・・どういうことを意味するのですか?
私がやりたいと思っていることは、SDカードに完成したプログラミングを
保存して、大学のパソコンへ入れる。そして、そのソースプログラムをコピーし、
そのまま、c#2005のプロジェクトに貼り付けをして実行してみたいと思っているんです。
説明の仕方がわかりにくくてすいません。
0574デフォルトの名無しさん
2006/01/11(水) 00:02:280575デフォルトの名無しさん
2006/01/11(水) 00:03:292ちゃんねる用ブラウザ「twintail」その9
http://pc7.2ch.net/test/read.cgi/software/1133970302/
0576デフォルトの名無しさん
2006/01/11(水) 00:26:48俺それ.NET 2.0でコンパイルして使えたぞ?
何の問題?
0577デフォルトの名無しさん
2006/01/11(水) 00:31:421.0をインストールしてない人は、2.0をインストールすると2.0で動こうとするわけだが、
1.0でコンパイルされたtwintailは2.0では挙動がおかしいらしい。
0578デフォルトの名無しさん
2006/01/11(水) 00:33:170579デフォルトの名無しさん
2006/01/11(水) 00:33:190580デフォルトの名無しさん
2006/01/11(水) 00:34:29グラフィックなどのプログラムを作成するときすべて削除したいときには、
g.Clearという言語を用いますが・・・一つ前の作業だけを削除したいときなどは
どんなプログラミング言語を使えば良いのでしょうか??
0581デフォルトの名無しさん
2006/01/11(水) 00:34:472005ベータ2で試したときはたいした変更いらなかったぞ?
まぁたいした機能も使ってなかったが。
0582デフォルトの名無しさん
2006/01/11(水) 00:36:130583デフォルトの名無しさん
2006/01/11(水) 00:37:240584デフォルトの名無しさん
2006/01/11(水) 00:43:03やっぱり、明日大学の教授に質問します。
ここでは上手く説明できないので・・・。
0585デフォルトの名無しさん
2006/01/11(水) 00:50:50つまり『元に戻す』だろ? 今何描いているか、最後に何を追加したか憶えておけばいいよ。
0586デフォルトの名無しさん
2006/01/11(水) 00:51:48自分がやると#か#になるんだけど・・・
0587デフォルトの名無しさん
2006/01/11(水) 00:54:020588デフォルトの名無しさん
2006/01/11(水) 00:58:45じゃあ
これは何? →#ぁ
3 あ
0589デフォルトの名無しさん
2006/01/11(水) 01:12:250590デフォルトの名無しさん
2006/01/11(水) 01:15:210591デフォルトの名無しさん
2006/01/11(水) 01:19:03http://pc8.2ch.net/test/read.cgi/tech/1122001458/
こちらと使い分けましょう。
つまりプログラミングを完成してしまった人や
どんなプログラミング言語を使ったらよいかについては
こちらに書き込めってこと。
0592デフォルトの名無しさん
2006/01/11(水) 01:39:03>>589
フヒヒすみません
0593デフォルトの名無しさん
2006/01/11(水) 01:54:05ナンバーと表記するがシャープと読むことになっている
2chの仕様でスレタイには#が使えないから全角シャープで代用しているんだろうけど
全角の場合でもナンバーで書いておいたほうが正しいような気がする
全半角一致検索では全角ナンバーは#で引っ掛からない不便さもあるし
0594デフォルトの名無しさん
2006/01/11(水) 02:00:13半角の♯が無いからshift+3で打てる#で代用してるだけで
0595デフォルトの名無しさん
2006/01/11(水) 02:15:06これすごいいいハァハァ。
0596デフォルトの名無しさん
2006/01/11(水) 02:20:08どういいのよ
0597デフォルトの名無しさん
2006/01/11(水) 02:26:20どのコントロールから呼び出されているかを調べるにはどうすればいいのでしょうか?
0598デフォルトの名無しさん
2006/01/11(水) 02:29:110599デフォルトの名無しさん
2006/01/11(水) 02:43:39んースピードとかはかってないけど、プロセス間通信でオブジェクトの呼び出しや受け渡しがほぼ自分のイメージに近いまま、ライブラリ作るのと同じような感覚でできる。
0600デフォルトの名無しさん
2006/01/11(水) 02:43:510601デフォルトの名無しさん
2006/01/11(水) 02:56:57重ね重ねすいません、
ContextMenuStripの親を取得できる様なプロパティ・メソッドを教えて欲しいのです
0602デフォルトの名無しさん
2006/01/11(水) 03:02:33>>600の方法で何とかなりそうです、ご迷惑おかけしました
0603デフォルトの名無しさん
2006/01/11(水) 16:43:332ch検索で幾ら検索しても見付からなくて、
C# 初めて数ヶ月間、C# 系のスレに辿り付けずに VS のスレだけ見てた俺ガイル orz
0604デフォルトの名無しさん
2006/01/11(水) 16:50:25#♯
この違いもあるしな。
0605デフォルトの名無しさん
2006/01/11(水) 17:40:55Googleへの嫌がらせじゃねぇかというぐらい検索しづらいよな。
0606デフォルトの名無しさん
2006/01/11(水) 17:50:570607デフォルトの名無しさん
2006/01/11(水) 18:07:28おまいら、愛してるぜ!!!!
0608デフォルトの名無しさん
2006/01/11(水) 18:16:280609デフォルトの名無しさん
2006/01/11(水) 18:16:430610デフォルトの名無しさん
2006/01/11(水) 18:57:15C++0xが最凶だとおもった
0611デフォルトの名無しさん
2006/01/11(水) 19:38:27反応なしとか多発。とりあえず視覚効果ほとんどきってみた。解消願う。
0612デフォルトの名無しさん
2006/01/12(木) 00:08:11ところで
Remotingで自分自身が一つのリモーティングオブジェクトを使ったリモーティングサーバかつ
クライアントな一つの構成ファイルって作れますか?
↓のように記述したんですがダメでした。
<configuration><system.runtime.remoting><application>
<service>
<wellknown mode="Singleton" type="RemotingObject,RemotingTest" objectUri="ServerObject"/>
</service>
<client>
<wellknown type="RemotingObject,RemotingTest" url="ipc://IpcServerXX/ServerObject" />
</client>
<channels>
<channel ref="ipc" portName="IpcServerXX"/>
</channels>
</application></system.runtime.remoting></configuration>
0613デフォルトの名無しさん
2006/01/12(木) 02:02:47つまりリモートで別のマシン上でソフトを起動するプログラムを作成したいのですが、
なにかいい方法はないでしょうか?
可能で有れば情報をご教示下さい。
0614デフォルトの名無しさん
2006/01/12(木) 02:20:330615デフォルトの名無しさん
2006/01/12(木) 11:11:11今私はまさに、そういうプログラムを動かしました。
bbs.cgiという名のプログラムを。
0616デフォルトの名無しさん
2006/01/12(木) 11:30:270617デフォルトの名無しさん
2006/01/12(木) 11:43:430618デフォルトの名無しさん
2006/01/13(金) 00:21:15中級者向け(?)のノウハウ本みたいな書籍ってありますか?
文法とか機能中心ではなく、C#ならではのテクニック集みたいな書籍が欲しいのですが・・・。
0619デフォルトの名無しさん
2006/01/13(金) 00:37:390620デフォルトの名無しさん
2006/01/13(金) 01:10:28意味がわからん
0621デフォルトの名無しさん
2006/01/13(金) 04:34:420622465
2006/01/13(金) 09:31:15現在 XmlSerializer でXMLファイルに保存しているんですが、
new XmlSerializer(typeof(Hoge)) がやたら時間がかかってしまいます。
というわけで ConfigurationSectionでシリアライズをしたいのですが・・・
こちらは >>465 のようにコレクションをシリアライズする方法がわからなくて
困っています。
0623デフォルトの名無しさん
2006/01/13(金) 23:34:25ArrayListをそのまま保存なんてXmlSerialierでもそのままではできないので無理があるのでは・・
>ApplicationSettingsBaseを継承する方法では普通にシリアライズできているんですが、
普通にユーザスコープにArrayListなんて保存できたの?
自分は無理だったわけですが・・
new XmlSerializer(typeof(Hoge))は遅いけど、初回だけなのでとりあえず、我慢して使ってます。将来的にSgen使う予定
VSで自動的にsgenでシリアライズ用のアセンブリはいてくれればいいのに・・・
System.Configure.*空間の作法に従って実装したほうがいいのかなぁ
0624618
2006/01/13(金) 23:44:39情報ありがとうございます。
でも洋書なんすね・・・・・。
ヘタレ専門卒PGの俺には敷居が高いっす・・・。
和書でなんかいい本、知りません??
そもそも出てないのかなぁ。
0625デフォルトの名無しさん
2006/01/14(土) 02:12:13COM例外ではまった……
なんでだろ?
0626465
2006/01/14(土) 02:20:00レスありがとうございます。
>ArrayListをそのまま保存なんてXmlSerialierでもそのままではできないので無理があるのでは・・
>>ApplicationSettingsBaseを継承する方法では普通にシリアライズできているんですが、
>普通にユーザスコープにArrayListなんて保存できたの?
>自分は無理だったわけですが・・
あれ、そうですか?
こっちではいずれの方法も特別なことをせずに保存できています。
>ConfigurationElementCollectionクラスの例に従って、サブクラスを定義してやればいいんじゃないかな。
情報どうもありがとうございます。
ちょっと勉強してみます。
0627デフォルトの名無しさん
2006/01/14(土) 03:32:43入門書でありながら、1ランク上を目指してる本
ttp://www.amazon.co.jp/exec/obidos/ASIN/4434029460/503-3713559-2631133
0628初心者
2006/01/14(土) 09:30:41文字列からパスワード文字列を作成する手順としては、
テキストボックスにテキスト入力
↓
そのテキストを System.Text.Encoding.Unicode.GetBytes でバイト列に変換
↓
そのバイト列を MD5 の ComputeHash の引数にしてハッシュ
↓
ハッシュコードを int 型に収まるように加工する
↓
それをシードにして Random 型のインスタンスを生成
↓
その擬似乱数を基に、指定された条件(大文字、小文字、数字、記号、文字数)に従って文字列作成
↓
ウマー
ってな感じです。
ここで問題となるのは、ハッシュコードを int 型に収まるように加工する部分です。
せっかく MD5 で 128bit もの一意な値を取得しているのに、
Random のシードにするために 32bit にサイズを落とさなければならない訳です。
32bit ってことは、最大でも約 43 億通りのシードしか用意できないことになります。
すると、文字数などの条件によってもある程度は変わってくると思いますが、
何百兆回とか何千兆回とか総当りすれば、あっさりと破られてしまうことになります。
そこで質問なんですが、Random と同じ効果の得られて、
long 型の値をシードにできるクラスとかメソッドとかってないですかね?
シードが long 型になれば、最大通り数も天文学的な数値にまで跳ね上がります。
そうなれば、よほどのことがなければ破られない強固なパスワード文字列が生成できます。
すばらしいと思いませんか?
0629デフォルトの名無しさん
2006/01/14(土) 09:48:200630デフォルトの名無しさん
2006/01/14(土) 10:09:53思わない
>>629
常識的なURLならURIクラスをnewするとか。
0631デフォルトの名無しさん
2006/01/14(土) 10:11:13確かにそれじゃ、MD5やらなにやらでシードにするまでが意味ないぽ
あんまりInput関係ないし
じゃ、32Bit*4で
ランダム4個作って何とかする
r1.Next() ^ r2.Next() ^ r3.Next() ^ r4.Next()みたいな
どういった目的で入力を基にしてるのかと
入力キーさえわかれば 総当りで可能なオーダでパスワードを作成してくれるとか?
>>629
つ正規表現 もしくは Uriクラス
0632デフォルトの名無しさん
2006/01/14(土) 10:17:170633デフォルトの名無しさん
2006/01/14(土) 10:20:26入力を基にすることにどういう意味があるわけ?
0635デフォルトの名無しさん
2006/01/14(土) 11:59:400636デフォルトの名無しさん
2006/01/14(土) 12:04:490637デフォルトの名無しさん
2006/01/14(土) 12:12:33この場合の用途なら余り関係はないだろうけど。
代替品はSHAの256ビット以上とかそんなの。
0638デフォルトの名無しさん
2006/01/14(土) 12:32:41サーバアプリなら、キーつきのハッシュをそのまま乱数代わりに使えばよくない?
0639デフォルトの名無しさん
2006/01/14(土) 12:39:460640デフォルトの名無しさん
2006/01/14(土) 12:58:02システムのSIDを取得する方法はどうすればよいでしょうか?
0641デフォルトの名無しさん
2006/01/14(土) 13:16:510642デフォルトの名無しさん
2006/01/14(土) 13:19:13あれってシードでかく指定できなかったかな?
0643デフォルトの名無しさん
2006/01/14(土) 13:28:48ちなみに移植は超簡単にできた
Random から派生させてオーバーライドするのがおしゃれかな
0644デフォルトの名無しさん
2006/01/14(土) 14:08:52Essential.NETとかどうなの?
0645デフォルトの名無しさん
2006/01/14(土) 14:43:380646デフォルトの名無しさん
2006/01/14(土) 14:53:25またちょっと系統が違うか…
0647デフォルトの名無しさん
2006/01/14(土) 22:22:46それともプログラム開始時に作っておく方が効率いいんでしょうか。
ちなみにペン/ブラシの数は20個くらいです。
0648デフォルトの名無しさん
2006/01/14(土) 23:02:220649デフォルトの名無しさん
2006/01/14(土) 23:12:36効率だけ考えたらプログラム開始時に作った方がいいと思います。
でもソースの見た目的には生成/破棄繰り返した方がメンバ変数が減っていいんですね。
それとGDIオブジェクトを一つのプログラムがたくさん保持ってるのって行儀悪いのかなとか。
その変のトレードオフ考えてどっちがいいんでしょうかってことです。
0650640
2006/01/14(土) 23:31:20ローカルでしか通用しなくていいんです。
インストールしたフォルダから特定のデータファイルを異なるマシンに移動したときに
そのまま簡単には使えないようにする。という目的なので
0651デフォルトの名無しさん
2006/01/14(土) 23:32:190652デフォルトの名無しさん
2006/01/15(日) 01:05:1520個くらいならどっちでもいいんでね?
桁が1つ大きくなったら考えるけど
0653デフォルトの名無しさん
2006/01/15(日) 02:02:04俺だったら楽なほうにする。その程度の高速化は誰の役にも立たない。
0654デフォルトの名無しさん
2006/01/15(日) 02:03:43WScript.CreateObject("InternetExplorer.Application");
みたいな事がしたいです。
具体的には、JavaScriptであるURLにアクセスして、ボタン等を自動的に
押すという内容なのですが、CPU使用率が100%行ってしまい、重くて他の
事をするのが困難で(Athlon X2使えって話は無しの方向で)困っています。
IE.Document.forms を C#で書くとどのようになるのでしょうか。具体的な
例を示してある書籍やサイトがありましたら、ご紹介いただければ幸いです。
0655デフォルトの名無しさん
2006/01/15(日) 02:07:070656デフォルトの名無しさん
2006/01/15(日) 02:10:00まあ言葉は悪いが855の言う通りなんだろう。
0657デフォルトの名無しさん
2006/01/15(日) 02:11:19VB用のクラスにある希ガス
0658デフォルトの名無しさん
2006/01/15(日) 02:12:37回線状態が悪い所で使う事もあり、ウェイトルーチンを入れてあるの
ですが、それがCPUを食っているのです。
JavaScriptにはSleepがないので (new Date()).getTime() を使って、
ループさせています。Win32のSleep()が呼び出せれば軽く出来るんですが・・・・
0659デフォルトの名無しさん
2006/01/15(日) 02:16:390660デフォルトの名無しさん
2006/01/15(日) 02:22:46C#にAxWebBrowserというクラスがあるのを発見しましたので、
これをちょっといじくり回してみたいと思います。
WSHも調べてみます。ありがとうございました。
0661デフォルトの名無しさん
2006/01/15(日) 03:59:14menuitemのVisibleをfalseにしたりしてアイテムの数が減ると
キーボードで操作したときにスクロールしてしまう現象に悩まされています。
具体的には一番上や、一番下まで行くと表示してないメニューを
表示しようとしてるみたいにスクロールしてしまい、
表示してるメニューが流れていってしまいます。
何か解決法はないでしょうか?
0662デフォルトの名無しさん
2006/01/15(日) 12:04:59C#2005ならWebBrowser
0663デフォルトの名無しさん
2006/01/15(日) 13:03:20C#で入力した年月のカレンダーを表示させたいと思います。
どのように作成したらよいのか、さっぱり検討がつきません。
アドバイスお願いします。
0664デフォルトの名無しさん
2006/01/15(日) 13:07:220665デフォルトの名無しさん
2006/01/15(日) 13:11:49Calendarコントロールを使わずに表示させたいのです。
いい方法があれば、宜しくお願いします。
0666デフォルトの名無しさん
2006/01/15(日) 13:17:30折れんとこじゃ学部の演習でやったぞ
0667デフォルトの名無しさん
2006/01/15(日) 13:21:451234567
891011121314
15161718192021
22232425262728
293031
これでええやん
0668デフォルトの名無しさん
2006/01/15(日) 13:25:19よく分からんいきりっぷりだなw
0669660
2006/01/15(日) 13:59:01ありがとうございます。実はそれも見つけて、あの後格闘していました。
お陰で目覚めるとこんな時間に('A`)
で、INPUTにTEXTを代入する方法はわかりました(InnerText)が、
SELECT〜OPTIONタグに値を代入する方法がわからなくて四苦八苦
しています。
JavaScriptなら、INPUTと同じようにvalueを代入するだけで良かった
のですが、C#だとなぜか空白になってしまいます。
HtmlDocumentとFORM上の部品との関係を詳しく説明してある
サイトか書籍があればぜひ紹介してください。書籍は、まだまだC#2.0が
新しい事もあり、あまり出ていないようです・・・・・
0670デフォルトの名無しさん
2006/01/15(日) 16:31:000671デフォルトの名無しさん
2006/01/15(日) 16:33:32どういった方法がありますか?
継承したクラスの静的コンストラクタで型を登録しようにも
そのクラスをnewするなどしないと、コンストラクタ自身が呼ばれません。
リフレクションなどでうまく処理できますか?
0672デフォルトの名無しさん
2006/01/15(日) 16:41:21AppDomain.GetAssembliesでGetTypesして一つずつチェックしていくにしても、
そのときまでにアセンブリが読み込まれていないものについては対処できないし。
0673デフォルトの名無しさん
2006/01/15(日) 16:57:55ども〜。基本的には無理なのですかorz
無理矢理な解決方法を探すことにします。
参考資料が見つけられ無いのですが、
クラス情報がアセンブリに読み込まれるタイミングや条件は分かりますか?
0674デフォルトの名無しさん
2006/01/15(日) 17:05:10> クラス情報がアセンブリに読み込まれるタイミングや条件は分かりますか?
これは意味不明だな。
AppDomain.GetAssembliesを呼び出せば、既に読み込まれているアセンブリを返す。
Assembly.GetTypesはそのアセンブリに含まれる型情報を全て返す。
つまりいつアセンブリが読み込まれるかが問題。
実際にいつ読み込まれるかと言うと、普通は
現在読み込まれて無いアセンブリに存在するものを操作するメソッドをJITコンパイルするとき。
0675デフォルトの名無しさん
2006/01/15(日) 17:16:21ども〜。なるほど。
対象クラス群が同一アセンブリにある場合は動くけど、
たとえばDLL化なんかで外部に出すと動かなくなる可能性があると。
ということは、対象クラス群とそれらの型リストを操作するクラスを同一アセンブリに置けば、
問題は無いのですか?
0676デフォルトの名無しさん
2006/01/15(日) 17:49:53特定のサブディレクトリにあるDLLは強制的にロードして調査対象にするとか、
とにかく、何らかのルールを決めてやるしかないと思う。
0677デフォルトの名無しさん
2006/01/15(日) 17:51:39それが楽だろうね。
0678デフォルトの名無しさん
2006/01/15(日) 19:53:11実はAssembly.GetTypesの存在を知らなかったので、それだけでも大きな収穫でした。
操作リストと対象クラス群は確実に同一アセンブリ上にあるのでどうにかなりそうです。
ありがとうございました。
0679デフォルトの名無しさん
2006/01/15(日) 22:53:12AppDomain.AssemblyLoadイベント
0681デフォルトの名無しさん
2006/01/16(月) 00:44:56axWebBrowserを使ってるけどこのページが参考なると思う。
http://peace.poosan.net/investor/workshop/
WebBrowserに関しては参考になるのはHELPくらい。
0682デフォルトの名無しさん
2006/01/16(月) 08:42:580683デフォルトの名無しさん
2006/01/16(月) 09:02:480684660
2006/01/16(月) 12:22:55ありがとうございます。
早速見てみましたが、肝心のSELECT〜OPTIONへの値の代入方法が
書かれていませんでした。
INPUTは既にうまく行っているので、リストボックスの選択を自動にやらせる
方法が知りたいのですが・・・・
あちこちのサイトも必死に見ています。
0685デフォルトの名無しさん
2006/01/16(月) 18:41:02Columnまで消えてしまい、その原因が分からず2時間も無駄にしました。
明らかにListView.Clear()は地雷です。本当にありがとうございました。
0686デフォルトの名無しさん
2006/01/16(月) 18:42:320687デフォルトの名無しさん
2006/01/17(火) 01:00:18開発環境(WinXP Pro SP2 office2003)では問題なく実行できたのですが、
別の環境(WinXP Pro SP2 officeなし)では
System.IO.FileNotFoundException: File or assembly name Microsoft.mshtml, or one of its dependencies, was not found.
File name: "Microsoft.mshtml"
のエラーでとまってしまいます。
mshtmlってどこで追加すればいいんでしょうか?
0688デフォルトの名無しさん
2006/01/17(火) 01:08:530689デフォルトの名無しさん
2006/01/17(火) 01:13:09それって開発時の話ですよね?
それは追加してあるから、開発マシンではrelease buildの実行ファイル直接指定してもエラーは出ません。
他のマシンで"Microsoft.mshtml" が見つからなくて困ってるのですが。
0690デフォルトの名無しさん
2006/01/17(火) 01:23:400691デフォルトの名無しさん
2006/01/17(火) 01:35:00Interop.SHDocVw.dll
ってReleaseフォルダにあったのでフォルダごとコピーしたのですが、
>>687のエラーメッセージで困ってます。
.net framework2入れてみたけど当然のようにエラーは変わらずでした。
0692デフォルトの名無しさん
2006/01/17(火) 01:41:230693デフォルトの名無しさん
2006/01/17(火) 02:01:03あたりに転がってないか?
確かこれは「SDKが」GACに突っ込むから、SDK入れてない人は参照できないんだよね……いやそもそも無いんだったっけか
.NET 2.0でもSDKオンリーなのかな
0694デフォルトの名無しさん
2006/01/17(火) 12:07:40twintailをみてみろ。一緒に配布してる。
.NET 2.0ならManaged WebBrowserがあるからそっちを使え。
0695デフォルトの名無しさん
2006/01/17(火) 12:43:512005の製品版にしたら吐き出されなくなったな
同じプロジェクトファイルなのに意味不明
0696デフォルトの名無しさん
2006/01/17(火) 20:42:37特定のポートを開けてないと開けないようなページがあって
WebRequest.GetResponse().GetResponseStream()で取得しても
403エラーを返されるんですがどうすればいいでしょうか?
WebBrowserで開くとちゃんと返してくれるので、別の取得の仕方をすればいけるとおもうのですが・・・
0697デフォルトの名無しさん
2006/01/17(火) 20:52:120698デフォルトの名無しさん
2006/01/17(火) 20:52:43素直にTcpClientとかSocketとか使ってきっちりブラウザでのやり取りをシミュレートすれば?
ネットワーク絡みのはまずパケットキャプチャ使えば便利。
0699デフォルトの名無しさん
2006/01/17(火) 20:57:33よく分かりませんが色々調べてみます。
それで分からなければまたよろしくお願いします。
0700デフォルトの名無しさん
2006/01/17(火) 21:48:23FileAttributes fa = fi.Attributes | FileAttributes.Compressed;
fi.Attributes = fa;
こんな感じのコードなんですが、ファイルが圧縮されません。
CompressedではなくReadOnlyだときちんと読み取り専用になります。
また、Explorer上でファイルのプロパティをいじれば圧縮されます。
なぜでしょうか? .NET Framework 2.0です。
0701700
2006/01/17(火) 22:20:04Reflector.NETを使ってちょっとのぞいてみたところ、File.SetAttributesは、
kernel32.dllの SetFileAttributesをほとんどそのまま呼び出しているようです。
んで、SetFileAttributesを検索してみたところ、MSDNのリファレンスが引っかかりました。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpfileio/html/_win32_setfileattributes.asp
にこのような記述がありました。ちょっとこの方法をやってみようと思います。
いくつかの属性は、SetFileAttributes 関数を呼び出しても設定できません。次の表は、それらの属性を設定する方法を示します。
FILE_ATTRIBUTE_COMPRESSED ファイルの圧縮状態を設定するには、FSCTL_SET_COMPRESSION の動作を指定して DeviceIoControl 関数を使ってください。
0702デフォルトの名無しさん
2006/01/17(火) 22:48:09こんなおっかねーものいじくりたくねえだ
0703700
2006/01/17(火) 23:56:47自分だってやりたくないですよ・・・
でも圧縮できないとなると計画が全てパーなんで;;;
んでなんとか出来ました。.NETのクラスライブラリのリファレンスに、
「Compressedは読み取り専用です」なんてどこにも書いてないよなあ。
これはひどい。
0704696
2006/01/17(火) 23:59:18UserAgentにMozilla/4.0 () を設定してみたら返してくれるようになりました。
つかれた(;´Д`)
0705デフォルトの名無しさん
2006/01/18(水) 00:01:29SetAttributesでCompress指定したら、圧縮属性は付くよ。圧縮されないだけで。
0706デフォルトの名無しさん
2006/01/18(水) 01:43:06ふつうに32bitOSで使うときAny CPU とx86ってどっち使ってます?
なんか字面からするとx86のほうが最適化できるような気がするんですが
0707デフォルトの名無しさん
2006/01/18(水) 01:57:57最適化には無関係なのでAnyCPUを使え。
CPU固定は、参照してるライブラリの制限とかその他の理由でCPUを限定したいときにだけ使う。
0708700
2006/01/18(水) 09:07:31string path = @"c:\適当なファイル.txt";
FileAttributes fa = File.GetAttributes(path);
Console.WriteLine(fa);
fa |= FileAttributes.Compressed;
File.SetAttributes(path, fa);
Console.WriteLine(fa);
Console.WriteLine(File.GetAttributes(path));
出力された文字列
Archive, NotContentIndexed
Archive, Compressed, NotContentIndexed
Archive, NotContentIndexed
付いてないようです。
0709デフォルトの名無しさん
2006/01/18(水) 09:21:310710デフォルトの名無しさん
2006/01/18(水) 09:25:27俺に言わせりゃゴミ機能
0711デフォルトの名無しさん
2006/01/18(水) 10:05:36thx
0712デフォルトの名無しさん
2006/01/18(水) 11:18:00色々な面をひっくるめて考えて。
まあ、単純に機能としては便利かも知れんが。
0713デフォルトの名無しさん
2006/01/18(水) 11:23:420714デフォルトの名無しさん
2006/01/18(水) 11:52:440715デフォルトの名無しさん
2006/01/18(水) 12:12:39ライブラリ作るのめんどくせー とか
0716デフォルトの名無しさん
2006/01/18(水) 12:23:310717デフォルトの名無しさん
2006/01/18(水) 12:59:51無効にしないと出せませんが、(FlatStyleをSystemにすると絵が出ない)
2005だとどうなってますか?
ちょっと手元に2005がないもので。
0718デフォルトの名無しさん
2006/01/18(水) 13:55:29スタイルと貼り付けた絵が共存してるよ
0719デフォルトの名無しさん
2006/01/18(水) 14:39:390720デフォルトの名無しさん
2006/01/18(水) 17:08:22if ((this.txtTEST.TEXT == null) || (this.txtTEST.TEXT == "")){・・・}
と書いたんですが、たとえばVB(VBA)ではnz関数というのがあるので
if nz(Me.txtTEST,"") = "" Then
と、nullの時も空文字列の時も判別出来たのですが、
このnz関数のようなものはありますか?
また、上のように書くのはC#的には正しいのでしょうか?
0721デフォルトの名無しさん
2006/01/18(水) 17:10:35↓
0722デフォルトの名無しさん
2006/01/18(水) 17:15:370723デフォルトの名無しさん
2006/01/18(水) 18:00:46ユーザーが半角数字で生年月日を入力したものをDateTimeに入れるにはどうすれば良いんでしょうか?
現状ではテキストボックスを年(y)、月(m)、日(d)の3つを用意して
int year=Convert.ToInt32(y);
int month=Convert.ToInt32(m);
int day=Convert.ToInt32(d);
DateTime dt = new DateTime(year,month,day)
int year = dt.Year;
と言うような形で取得しているのですが、国が変わった時にもこのやり方でランタイムエラーを
出すことなく値を取得する事が出来るのでしょうか?
リファレンスを読むんだのですがグローバリゼーションの所がイマイチ理解出来ずにいます。
0724デフォルトの名無しさん
2006/01/18(水) 18:54:36大丈夫。
国(カルチャ)が関係するのって、 "2006年2月29日"みたいな文字列を
DateTime.Parseメソッドとかに渡す場合。
0725デフォルトの名無しさん
2006/01/18(水) 19:42:40回答、ありがとうございます。
これで気兼ねなく次のコーディングに進めます。
0726デフォルトの名無しさん
2006/01/18(水) 23:19:20もしかして今まで○○EventHandlerってデリゲートが大量に存在するのはもう不必要?
0727デフォルトの名無しさん
2006/01/18(水) 23:38:520728720
2006/01/18(水) 23:50:30ありがとうございました。
ちゃんとバージョンも書かないといけなかったですね。
まあ、それほど手間が掛かるってわけではないのですが、スマートな書き方
があればそっちの方がいいかなと思って質問しました。
0729デフォルトの名無しさん
NGNG親画面から子画面を呼び出して、検索を行い値(2つ)を親画面に
戻すんですが、親に値をどのようにして渡せばいいのか分からず困ってます。
んで条件もあって親画面は開いたままで、リロード処理を行わない方法で子より値を渡さないといけないんです。
それでいろいろ調べた結果javascriptの、window.opener.document.Form1.〜〜〜を
使えばいいのかと考え、無理やりopenerを2つ並べて試したりしたんですけど、
上手くできません。
どなたか解決策を教えてください。よろしくです。
0730デフォルトの名無しさん
2006/01/19(木) 00:49:57ユーザーコントロールで、フォームにコントロールを配置する時だけ
実行したい処理があるときはどうしたらいいのでしょうか?
UserControlのForm_Load時に設定すると、実行時にも呼び出されてしまうので
困っています。
やりたいことは、スイッチのON・OFFを表現するプログラムで、
Flg = true ; //スイッチをオンにする
をコントロール貼り付け時に呼び出し、
プロパティSwitchFlg = trueにするように作りたいのです。
環境は VS2003です。
どうか、よろしくお願いします。
0731デフォルトの名無しさん
2006/01/19(木) 00:58:29プロパティ定義の頭に
[DefaultValueAttribute(true)]
0732デフォルトの名無しさん
2006/01/19(木) 10:37:38その間にこのスレだけはROMっとくので
今度の案件でC#+ASP.NETを使うらしいんだ
んで、なにを覚えておけばいいやらわからないんで
アドバイスや気をつけておくべきことは無いものだろうか
まわりに環境無いんで触って見ようにも触れないんだわ
挫折しそうなポイントとかあれば先につぶしておきたい
とりあえず本買って読むぐらいしかないかねぇ
前提:
C#はこれまで触ったことがない、ASPも同様
VBは高校からWEBとヘルプだけでやってきた
趣味でVB使ってゲーム作ったりしてたときはCのような組み方だといわれた
(多分VBなのにコントロールほとんど使わずモジュール内だけでWinAPI使って組んでたからだろうとおもう)
専門学校でCを1週間習った、Javaを半年習った(基礎+アプレット程度)
4月で社会人2年生になる。これまでの業務経験はVB・AccessVBAばっかり
ロジック組むのは割りと自身があるがオリジナリティあふれるというか世間一般でどうやってるのか知らない
0733デフォルトの名無しさん
2006/01/19(木) 11:05:08コントロールがのっているコンテナ(親フォーム)の、
コントロールがのっている部分の画像を取得するには
どのようにしたらよいでしょうか?
いびつな形のコントロールで、親フォームの背景画像を透過させて
あげる必要があり四苦八苦しています。
コントロールがのっている画像を取得し、コントロール側の透過部分と
合成して描画してあげればいいかな、と思っています。
アドバイスよろしくお願いします。
0734デフォルトの名無しさん
2006/01/19(木) 11:16:32海外仕様のサーバーに.aspxのページをあげたんですが、アクセスすると403.1エラーが出ます。
cgiやisapiなんて使わず、Javaを二行(データベースのデータ削除の確認用)使っているだけで
ほかは全てC#で組んでいます。
ですがそのページにアクセスするとcgiやisapiのエラーと言った旨のエラーメッセージが
表示されます。
同じような経験をされた方はいらっしゃいませんか?
0735デフォルトの名無しさん
2006/01/19(木) 12:53:12asp.net 自体がisapiで実装されてるからね。実行が許可されていないだけでは。
そのサーバーというのはそもそもasp.netはサポートしてるの?
0736734
2006/01/19(木) 14:06:58.NET自体がisapiだっだんですか。知らなかったorz
サーバー自体はASPに対応してるはずです。
順を追って説明すると
暫定版WEBアプリをサーバーの仮想ディレクトリに載せる
↓
この時点での動作はIEで確認出来た
↓
細かい改良と追加プログラムを入れて修正版を載せる
↓
同じようにIEから確認する
↓
403.1エラーが発生
という感じです。
0737デフォルトの名無しさん
2006/01/19(木) 14:47:540738734
2006/01/19(木) 15:13:56LOCALHOST上でVS2003でデバッグすると動作したんですが、サーバーにあげると
出るバグってあるんですかorz
捜してるんですが見つからない。。
MSDNにもそういった記述が無いようなのですがサーバー上で起こるバグを発見する
デバッグのテクニックと言うのはないんでしょうか?
0739デフォルトの名無しさん
2006/01/19(木) 15:21:020740デフォルトの名無しさん
2006/01/19(木) 15:39:560741デフォルトの名無しさん
2006/01/19(木) 15:40:500742デフォルトの名無しさん
2006/01/19(木) 15:43:560743デフォルトの名無しさん
2006/01/19(木) 16:10:27そういう現象のときはたいてい権限周り。
0744734
2006/01/19(木) 19:04:20結果から言うと、仮想ディレクトリの権限の設定でした。
自分で修正したのではない為、理解できていませんがorz
貴重な時間をさいて知恵を貸してくださった方々ありがとうございます。
0745734
2006/01/19(木) 19:17:03仮想ディレクトリを最初に作成した時は実行アクセス許可をしていたのですが
Webアプリを作成していく間に、いつの間にか実行アクセス許可が[なし]に切り替わっていた
事が原因でした。
仮想ディレクトリは全く触っていないのに設定が変わったのは謎ですが。。
403.1エラーが出たときは一番に実行アクセス許可を疑うと。
覚え書きもかねて書き込んでおきます。
0746デフォルトの名無しさん
2006/01/19(木) 21:00:30これに別インスタンスからアクセスすると例外を出すかフリーズしてしまいます。
そういうものなのでしょうか?
0747デフォルトの名無しさん
2006/01/19(木) 23:01:24とりあえずオブジェクト指向について猛勉強しろよっと
0748デフォルトの名無しさん
2006/01/20(金) 01:57:09> これに別インスタンスからアクセスすると例外を出すかフリーズしてしまいます。
普通は別インスタンスからアクセスするものだと思うんだがよ?
0749デフォルトの名無しさん
2006/01/20(金) 08:00:110750デフォルトの名無しさん
2006/01/20(金) 09:33:00thx
そうだなぁ、確かにJavaでちょろっと習ったくらいで
概念は理解してても実装段階で何をしたらそこから外れてしまうだとか
どういう方法が推奨されてるだとかはまったく知らないからな・・・
OK、そっちから攻めてみることにするよ
0751デフォルトの名無しさん
2006/01/20(金) 11:36:20別にハングも例外も出てないけどどんなケースで出てるんだ?
「別インスタンス」の言葉の使い方を間違ってる可能性が高いがエスパー伊藤で予想すると。
1.IDEのデザイナではなく実行時に設定している。
2.さらにTextBoxをpublicにしてフォームの外から設定している。
3.他のスレッドから設定している。
4.他のプロセスからPostMessegeで文字を送っている。
1と2は問題ない。3だったらハングする。4はしらん。
0752デフォルトの名無しさん
2006/01/20(金) 13:18:39どうも。言葉の使い方間違っててすみません。
他スレッドからアクセスしてました。
それとは別に、アプリから別exeを起動した後のProcess.Exitedイベント
ハンドラでアクセスするとハングor例外。
これもやっぱり
>3.他のスレッドから設定している。
に該当するんですか?
0753デフォルトの名無しさん
2006/01/20(金) 13:20:470754デフォルトの名無しさん
2006/01/20(金) 15:23:120755デフォルトの名無しさん
2006/01/20(金) 16:40:33webBrowserで画像は読み込まないようにする方法ありませんか?
ヘルプ読んでもググっても情報見当たらないのですが。
0756デフォルトの名無しさん
2006/01/20(金) 16:44:410757デフォルトの名無しさん
2006/01/20(金) 17:47:570758デフォルトの名無しさん
2006/01/20(金) 20:04:02レスありがとうございます。
やっぱり駄目ですか。
webBrowserだとログインとか楽なんでこれでいけないかと思ったんですが。
0759デフォルトの名無しさん
2006/01/20(金) 20:23:44自分でいっといてなんだけど IInternetSecurityManager 使えばできるかもしれん
0760デフォルトの名無しさん
2006/01/20(金) 22:04:32リスニングするアドレスを127.0.0.1に限定することはできますか?
現在の設定は下記のとおりです。
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown
type="testpgm1.func1Service, testpgm1"
objectUri="func1Service.rem"
mode="SingleCall"
/>
</service>
<channels>
<channel ref="tcp" port="14481"/>
</channels>
</application>
</system.runtime.remoting>
</configuration>
0761デフォルトの名無しさん
2006/01/21(土) 01:12:18(DataSet→DataTable→DataRowみたいな感じ)
またそれぞれの階層で変更があった場合にイベントで通知するつもりです。
この場合C# 2としてはどのように実装するのが美しいのでしょうか?
例)CollectionBase継承、IList実装+List<T>フィールド内蔵
0762デフォルトの名無しさん
2006/01/21(土) 17:08:040763デフォルトの名無しさん
2006/01/21(土) 17:11:020764デフォルトの名無しさん
2006/01/21(土) 17:11:50実験だとOKのように見えたけどいまいち自信を持てなかったんだ
0765デフォルトの名無しさん
2006/01/21(土) 20:24:05.NETに対していろいろ言う人はいるけど、C#は素晴らしいと思う。
C#でネイティブアプリを作れたりするようにならないのかな。
0766デフォルトの名無しさん
2006/01/21(土) 20:37:56ネイティブコンパイルすることなんてあんまりないのに
0767デフォルトの名無しさん
2006/01/21(土) 21:05:21.NETのライブラリがバックグラウンドに存在するからこそだと思う
0768デフォルトの名無しさん
2006/01/21(土) 21:52:51FontのSerializeで困って行ってみたらみごとにやり方があったし。
0769デフォルトの名無しさん
2006/01/21(土) 21:54:270770デフォルトの名無しさん
2006/01/21(土) 22:11:450771デフォルトの名無しさん
2006/01/21(土) 22:16:510772デフォルトの名無しさん
2006/01/21(土) 22:20:23要約して
0773デフォルトの名無しさん
2006/01/21(土) 22:24:53プログラムの再起動以外に方法はありますか?
0774デフォルトの名無しさん
2006/01/21(土) 22:28:13public struct XmlFont{
public string FontFamily;
public GraphicsUnit GraphicsUnit;
public float Size;
public FontStyle Style;
public XmlFont(Font f){ ... }
public Font ToFont(){ ... }
}
0775デフォルトの名無しさん
2006/01/21(土) 22:31:53結局は>>770と同じじゃん
0776デフォルトの名無しさん
2006/01/21(土) 22:50:48明示するために書いておくと適当と思われる例外はなんでしょうか。
if (a < b)
return -1;
else if (b < a)
return 1;
else if (a == b)
return 0;
という風に書くとエラーになるんで最後に例外投げることにしようと思うんですが。
# 最後のelse if節は敢えてelseにはしてません。
0777デフォルトの名無しさん
2006/01/21(土) 22:59:31a や b が引数ならば ArgumentException
フィールドならば InvalidOperationException
0778デフォルトの名無しさん
2006/01/21(土) 23:00:440779デフォルトの名無しさん
2006/01/21(土) 23:13:200780776
2006/01/21(土) 23:19:51>>777
ここを通ったら環境云々以前にまず例外発生場所のロジックを疑えというようなニュアンスが欲しいんですよ。
>>778
コードの主張としてはそういうことなんですが、
コンパイルエラー「値を返さないコードパスがあります。」
を通すという意図がありまして、単なる関数呼び出しではなく例外スローにしたいのです。
0781デフォルトの名無しさん
2006/01/21(土) 23:31:250782デフォルトの名無しさん
2006/01/21(土) 23:31:340783デフォルトの名無しさん
2006/01/21(土) 23:41:49デザイナでコントロールをダブルクリックして作成されるイベントハンドラは
throw new Exception("This method is not implimented");
とかじゃなかったっけ
0784デフォルトの名無しさん
2006/01/21(土) 23:49:400785デフォルトの名無しさん
2006/01/21(土) 23:56:25何かで、ユーザー独自の例外はApplicationExceptionを使えって習ったんだけど。。。
System.ApplicationException をスローしたり、System.ApplicationException から派生したりしないでください。
http://msdn2.microsoft.com/ja-jp/ms229007.aspx
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.ja/dv_fxdesignguide/html/ab22ce03-78f9-4dca-8824-c7ed3bdccc27.htm
ApplicationException からカスタム例外を派生させることは推奨されていない
http://msdn2.microsoft.com/ja-jp/ms229064(ja-jp,VS.80).aspx
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.ja/dv_fxdesignguide/html/eede32ea-1fe9-4a9b-a70a-749840b92e26.htm
0786デフォルトの名無しさん
2006/01/22(日) 00:00:05それまで例外に対する議論が結構あったから、それを反映したんだろね。
0787デフォルトの名無しさん
2006/01/22(日) 00:05:34this.Invoke(delegate() {
MessageBox.Show("test");
});
コンパイルすると、
エラー 2 'System.Windows.Forms.Control.Invoke(System.Delegate)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
エラー 3 引数 '1': '匿名メソッド' から 'System.Delegate' に変換できません。
となってしまいます。
System.Delegateはdelegate型ではないのでダメってことですかね?
これが出来ないとかなり面倒くさいなあ。
0788デフォルトの名無しさん
2006/01/22(日) 00:06:03ダイアログのクラスをDisposeする前にメンバにアクセス
0789776
2006/01/22(日) 00:08:53アプリレベルでないものはできるだけ共通言語を使いたいんですけどね。
>>783 >>785
>System.Exception や System.SystemException はスローしないでください。
VSが非推奨コードを吐くのってどうなんでしょうね・・・
0790デフォルトの名無しさん
2006/01/22(日) 00:12:58Delegateは抽象型だから、具体的にどんなデリゲートを作ればいいのかコンパイラが判断できない。
this.Invoke(new ThreadStart(delegate {
MessageBox.Show("test");
}));
とかいう風に明示すればよし。確かにちょっとコーディングは長くなるが。
0791デフォルトの名無しさん
2006/01/22(日) 00:13:11throw new Exception("This method is not implimented");
じゃなくて NotSupportedExceptionにしときゃいいのにねえ。
0792デフォルトの名無しさん
2006/01/22(日) 00:13:23ThreadStartでもnewしてその引数にいれとけ
0793デフォルトの名無しさん
2006/01/22(日) 00:14:36> NotSupportedException
NotImplemenetedExceptionの方が妥当だな
0795デフォルトの名無しさん
2006/01/22(日) 00:26:05俺なんて
try{
ほげほげ
}catch{
}
なんてコードが山ほどあるぜ
0796デフォルトの名無しさん
2006/01/22(日) 00:56:40VSが吐くコードはカスタマイズできるよ。
ttp://www.divakk.co.jp/blog/aoyagi/archive/2005/12/09/7094.aspx
0797デフォルトの名無しさん
2006/01/22(日) 01:09:05カスタマイズできればいいとかいう次元の問題ではなくて
0798デフォルトの名無しさん
2006/01/22(日) 01:14:570799デフォルトの名無しさん
2006/01/22(日) 01:20:39まあ言いたいことはわからんでもない。
そういうのはMSにフィードバックしたほうがこの先いいと思う。
0800デフォルトの名無しさん
2006/01/22(日) 03:20:19再生する方法は?
0801デフォルトの名無しさん
2006/01/22(日) 05:07:400802デフォルトの名無しさん
2006/01/22(日) 06:31:300803デフォルトの名無しさん
2006/01/22(日) 10:29:09例外の扱いが違うんだ。
勝手にラップしてんじゃねぇ。
せめて情報を減らさずに元に戻せる方法を…
0804デフォルトの名無しさん
2006/01/22(日) 13:06:36俺も良く使うわそれ・・・
もしくはエラーログだけ投げておくとかで
0805760
2006/01/22(日) 13:14:27.NET2.0でIpcChannelというのが追加になっていてこれがローカル専用のようです。
<channel ref="ipc" portName="xxxxx"/>
0806デフォルトの名無しさん
2006/01/22(日) 15:21:55うげー、まじか
ApplicationExceptionを使えとCodeZineかどこかで見た覚えが・・
ショックだ
0807デフォルトの名無しさん
2006/01/22(日) 16:00:35ttp://d.hatena.ne.jp/akiramei/20051225/p1
0808デフォルトの名無しさん
2006/01/22(日) 16:25:37シーク不能なストリーム(標準入力とかNetworkStreamとか)から、
複数のデータが順番に流れてきて、大体10バイト程度の区切りがそれぞれのデータの間についている。
流れてくるデータの合計サイズは巨大で予測不能で、全てをいっぺんにメモリに読み込むことは不可能。
そして、例えば3つめのデータの塊だけをファイルに保存したい。
こういう状況の場合、1バイトずつ読み取って区切りかどうかを判断しなければならないですかね?
0809デフォルトの名無しさん
2006/01/22(日) 16:35:10判断はそりゃ1バイトずつ調べにゃならんだろう。
0810デフォルトの名無しさん
2006/01/22(日) 16:40:07TextReaderのReadLineメソッドを逆コンパイルみそ。
TextReaderは1文字読み取ってCRか、そしたら次の文字はLFか、を調べてる。
内部にバッファがあるからStringReaderやStreamReaderはoverrideしてるけど
0811デフォルトの名無しさん
2006/01/22(日) 18:34:28適当なExceptionから派生しろってこと?
0812デフォルトの名無しさん
2006/01/22(日) 18:51:53> 「標準の例外の種類のキャッチとスロー」のガイドラインに示されているように、
> ApplicationException からカスタム例外を派生させることは推奨されていない点に注意します。
0813デフォルトの名無しさん
2006/01/22(日) 19:25:05あれって標準で何かありますか?
それともみんな画像用意してやってるんでしょうか。
0814デフォルトの名無しさん
2006/01/22(日) 19:34:330815デフォルトの名無しさん
2006/01/22(日) 20:02:13とりあえずWingdings等の絵文字フォントでやればいいかな。
0816デフォルトの名無しさん
2006/01/23(月) 11:47:07ここに、論理ドライブ一覧を取得して、それが利用可能かどうかチェックする
サンプルがあるのですが、これを、自分の指定したドライブのみをチェックする
にはどうすればいいのでしょうか?
まだ挿していない USB メモリの情報のチェックに使いたいの
DriveInfo.GetDrives() で取得できるドライブ以外もallDrivesに追加したいのです。
0817816
2006/01/23(月) 11:53:06USBメモリが挿して利用可能になったかを一覧で情報が取得したいのです。
0818861
2006/01/23(月) 13:09:14DriveInfo[] allDrives = DriveInfo.GetDrives();
Console.WriteLine(allDrives[0]);
とすると、C:\ と表示される。
そこで
DriveInfo[] allDrives = DriveInfo.GetDrives();
allDrives[0] = "F:\\";
Console.WriteLine(allDrives[0]);
なんてしてみると、「型 'string' を型 'System.IO.DriveInfo' に暗黙的に変換できません。」
と出てしまう・・。string を System.IO.DriveInfo に型変換すればいいのだろうか。。。
これを解決するヒントをください。
0819デフォルトの名無しさん
2006/01/23(月) 13:28:48DriveInfo di = new DriveInfo( driveName );
>Console.WriteLine(allDrives[0]);
これは暗黙的にToStringしてるの。
0821デフォルトの名無しさん
2006/01/23(月) 17:10:37foreach (ListViewItem item in listView.Items)
{
string[] str = 【itemのSubItemsをstring配列にしたもの】;
streamWriter.WriteLine(String.Join(",", str));
}
としようと思っているのですが、itemをstring[]に変換する方法がわかりません。
うまい方法や、ListView⇔CSVの常套手段があったらご教授願います (ペコリ
0822デフォルトの名無しさん
2006/01/23(月) 17:21:500824720
2006/01/23(月) 17:46:10それをプログラムから確定させることはできませんか?
DataGridColumnStyle dgc = dataGrid.TableStyles[0].GridColumnStyles[0];
grdMain.EndEdit(dgc, this.dataGrid.CurrentCell.RowNumber, false);
などとやってみたのですがうまくいきませんでした。
何をしたいかというと、KeyDownイベントを取得して、
入力された文字一文字ごとに検索をしたいと思います。
"a"が入力されたら "〜 like 'a%'"で抽出
"ab"が入力されたら "〜 like 'ab%'"で抽出
として少しずつ条件を絞っていきたいと思います。
0825デフォルトの名無しさん
2006/01/23(月) 21:19:24たしか、ProcessCmdKeyメソッドをオーバーライドしてやらなければ、
DataGrid上でのKeyDownイベントは拾えなかったはず。
#甘利ちゃんと調べずに書いたので、詳細は自分で確認してくれ
0826デフォルトの名無しさん
2006/01/24(火) 06:29:33http://msdn.microsoft.com/library/ja/cpref/html/frlrfSystemNetSocketsSocketClassSendToTopic.asp にある
C#サンプルで受信エラーになるんです。サンプルをそのまま貼っただけなのに...orz
UDP パケットを送信して 受信するだけなのですが、受信メソッドで以下のエラーが発生します。
既存の接続はリモートホストに強制的に切断されました。
どうかよろしくお願いします。
0827デフォルトの名無しさん
2006/01/24(火) 06:36:49IPHostEntry lipa = Dns.Resolve("localhost");
IPEndPoint lep = new IPEndPoint(lipa.AddressList[0], 11000);
Socket s = new Socket(lep.Address.AddressFamily,
SocketType.Dgram,
ProtocolType.Udp);
byte[] msg = Encoding.ASCII.GetBytes("This is a test");
try
{
s.SendTo(msg, 0, msg.Length, SocketFlags.None, lep);
IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
EndPoint tempRemoteEP = (EndPoint)sender;
byte[] buffer = new byte[1024];
s.ReceiveFrom(buffer, 0, 100, SocketFlags.None, ref tempRemoteEP);
Console.WriteLine(" I received the following message : " +
Encoding.ASCII.GetString(buffer));
}
catch(Exception e)
{
Console.WriteLine("Exception : " + e.ToString());
}
0828デフォルトの名無しさん
2006/01/24(火) 07:20:42これは自分に送って自分で受けるサンプルではなかったのですね...orz お騒がせしました。
0829デフォルトの名無しさん
2006/01/24(火) 11:04:14∧∧
ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
 ̄
0830デフォルトの名無しさん
2006/01/24(火) 12:26:22ありがとうございます。
なんとかキーボードイベントを取得できました。
KeyUpイベントでデータを拾えました。
0831デフォルトの名無しさん
2006/01/24(火) 18:47:08VB.netで作ったクラスをC#で継承したりすることって可能?
例えば、C#で Hoge というクラスを作ってコンパイルする
で、出来上がった Hoge.dll をVB.netで参照して利用する
これができるとかなり便利なんだが・・・
0832デフォルトの名無しさん
2006/01/24(火) 18:49:01そうでなきゃFormの派生クラスとか作れないじゃないか。
0833デフォルトの名無しさん
2006/01/24(火) 19:06:180834デフォルトの名無しさん
2006/01/24(火) 19:28:01トンクス!
0835デフォルトの名無しさん
2006/01/25(水) 00:15:10渡されたオブジェクトに対し何らかの処理をする必要があり、その処理が幾通りもあるとします。
そして、それぞれの処理は、処理を施せるオブジェクトとできないオブジェクトがあるとします。
コードにすると、感覚的には下のような感じです。(もちろんコンパイルは通りません。)
ここで問題になるのは、
・static関数をinterfaceのメンバにできない
・「型の配列」(下のコードでのtypes)を作れない
の2点です。
解決方法としては、
・staticをはずし、「型の配列」を「インスタンスの配列」にする
・staticをはずし、「型の配列」を「Type型の配列」にし、リフレクションで呼び出す
の二つを思いつきましたが、それぞれ
・「各クラスごとに、意味のないインスタンスを余分に用意する必要がある」
・「リフレクションのオーバーヘッド」+「煩雑」
という短所があります。
このようなケースをスマートに記述する方法はないでしょうか?
0836デフォルトの名無しさん
2006/01/25(水) 00:16:29interface IProcessor {
static bool CanProcess(object target);
void PrepareForProcess(object target);
void DoProcess();
}
class ProcessorA : IProcessor { ... }
class ProcessorB : IProcessor { ... }
class ProcessorC : IProcessor { ... }
class ProcessorManager {
IProcessor[] types = { ProcessorA, ProcessorB, ProcessorC };
IProcessor GetProcessor(object target) {
foreach (T in types) {
if (T.CanProcess(target)) { return new T(); }
}
return null;
}
}
// 以上
0837デフォルトの名無しさん
2006/01/25(水) 00:25:44new IProcesser[]{new ProcessorA(), ....}
0838デフォルトの名無しさん
2006/01/25(水) 00:33:510839デフォルトの名無しさん
2006/01/25(水) 00:43:58ちなみにTargetとProcessはどんなものを想定してるの?場合によっちゃその設計からしなおしたほうがいいかも。
0840デフォルトの名無しさん
2006/01/25(水) 01:02:16型配列の代わりにシングルトンフィールドをわたす、とかかな。
シングルトンフィールドに関するコントラクトが定義できないのがいやだが、
まあ、型配列作るときにお約束にしとくしかないかな。
0841デフォルトの名無しさん
2006/01/25(水) 01:04:19これでも無駄なインスタンスを用意することにはなるが。
0842デフォルトの名無しさん
2006/01/25(水) 01:08:170843835
2006/01/25(水) 01:15:05早速のレスどうもです。
>>837,840
説明が不足していましたが、
PrepareForProcess で情報をメンバに格納して、DoProcess でその情報に対して処理をするといった感じなので、シングルトンでは
できない気がします。また、複数のスレッドから呼び出されないとも限らないです。
>>839
上の例とはだいぶ違いますが、実際は DoProcessとして「複数の項目をリストアップする」処理をしようと思っています。
target は、場所を表す一意の文字列(ファイルシステムのパス、書庫内の相対パスを含むパスなど)です。
PrepareForProcess で項目の配列(やリストやツリー)を用意して、DoProcess(実際はGetItemのような名前になります)で項目を取得します。
ProcessorA : ファイルシステムのファイルをリストするクラス
ProcessorB : 書庫内のファイルをリストするクラス
ProcessorC : FTPファイルをリストするクラス
:
のような感じになるかと思います。(名前は違いますが)
たしかに、これが膨大な数になることはない(せいぜい増えて10以下?)ので、インスタンスを作っておくのも
手かも知れません。
0844デフォルトの名無しさん
2006/01/25(水) 08:19:27シングルトンのフィールドにはインスタンスを入れとくんだから
インスタンスメソッドにして普通に判断できるっしょ。
ただ、>>843で出てきた内容で使えるかは別だが。
0845デフォルトの名無しさん
2006/01/25(水) 09:37:18その各Processorが状態を持たない処理だけを行うのなら、
シングルトンで十分だろ。
0846デフォルトの名無しさん
2006/01/25(水) 09:56:41と決め付けるのもどうかと思うんだ。
後で状態を持った処理を行うProcesserを作りたくなるかもよ?
0847デフォルトの名無しさん
2006/01/25(水) 10:16:57決めつけたわけじゃないんだ、書き方が悪かった。
もし状態がいらないなら、ってだけで。
処理内容から、なんとなくいらなさそう、と思った。
0848デフォルトの名無しさん
2006/01/25(水) 10:22:37判定用クラスのインスタンスダだけシングルトンにすればいい。
Processor実装は、判定用と処理用をペアで実装する。
内部クラスにでもしとけばいい。
0849デフォルトの名無しさん
2006/01/25(水) 16:34:100850デフォルトの名無しさん
2006/01/26(木) 09:03:30VBで使用していたLSETみたいな関数を自作したいんですが。
0851デフォルトの名無しさん
2006/01/26(木) 10:21:060852835
2006/01/26(木) 12:58:44レスどうもです。
判定メソッドとインスタンス作成メソッドを別の判定用クラスに分け、そのクラスの配列をManagerクラスで持つことで
うまく実装できました。
どうもありがとうございました。
0853デフォルトの名無しさん
2006/01/26(木) 13:07:43getfieldsメソッドで、メンバの情報を取得して
ループで回すと宣言順には出てくるようなんですが、
この順番は保証されているのかなあと。
StructLayout属性を読取るクラスに指定していれば
大丈夫なんでしょうか。
0854デフォルトの名無しさん
2006/01/26(木) 14:49:19.NET2.0までではとりあえず宣言順どおりに出てくるけど。
StructLayoutはこの場合には関係ないな。
0855850
2006/01/26(木) 15:04:47>>854
書き忘れていましたが、レス有難うございます。
では、宣言順に確実に取り出す方法は今のところないと
いうことでしょうか?
0856デフォルトの名無しさん
2006/01/26(木) 15:07:23ソースAとソースBでそれぞれ宣言したフィールド、この場合どっちが宣言順的に先になるの?
って話。
0857デフォルトの名無しさん
2006/01/26(木) 19:08:18質問です。
form.csというのをちくちくいじって、いじったら動かなくなった上に、元に戻せなくなったので
やり直そうと、セーブせずにC#のアプリを終了させて、もう一度、起動しました。
しかし、なぜか、前の状態のままです。
セーブしてないのに、勝手にセーブされてるんでしょうか?
0858デフォルトの名無しさん
2006/01/26(木) 19:13:400859デフォルトの名無しさん
2006/01/26(木) 20:06:570860デフォルトの名無しさん
2006/01/26(木) 21:03:460861850
2006/01/26(木) 22:33:18遅レスですがありがとうございました。
VB6のソースで、LSETをあちこちで使用して、
違う型の構造体に代入しているものを
C♯に移植しているのですが、
LSETのようなものをC♯でつくれないかなと
考えてるのですが。
いい方法はないようですね。
0862デフォルトの名無しさん
2006/01/26(木) 22:50:510863デフォルトの名無しさん
2006/01/27(金) 01:01:46Formとかイベントがかなり多くてパフォーマンス悪いのではないか?と考えてる漏れは考えすぎですか?
0864デフォルトの名無しさん
2006/01/27(金) 01:08:12逆に少ないと今度はハッシュテーブルのほうが効率が悪かったりする品
0865デフォルトの名無しさん
2006/01/27(金) 01:13:46イベントの種類が多くても実行効率にはなんら影響ないと思うが。
リスナーが多くても、削除時に効率悪いだけでイベント挙げるときに葉関係ないと思うが。
0866デフォルトの名無しさん
2006/01/27(金) 01:25:23いや、考えたらなさすぎだろ。
言葉づらじゃなくて正しく意味を読み取らんと。
0867863
2006/01/27(金) 08:23:54そうですね、普通リスナを10種類も登録しないし、問題なかったですね。
任意のクラスのpublicなeventに自動的にそれ用のdelegate生成してaddするお勉強アプリ作ったら
微妙にもっさりしてたので、気になったんです。
0868デフォルトの名無しさん
2006/01/27(金) 18:01:27C#でリアルタイム株価情報を取得しようと思い、DDE接続でRequest形式で作りました。
動作が不安定なのでCallback形式に変更しようとしていますが実装がうまく出来ずはまっています。
どなたか具体的に実装の仕方を教えて頂けないでしょうか。
C#2005Expressを使用して作ってあります。
http://nurupo.net/cabinet/hippo/RSS.cs?ak=c6fb27a58fd815673bae167e7fb8f89c
0869デフォルトの名無しさん
2006/01/27(金) 18:03:210870デフォルトの名無しさん
2006/01/27(金) 18:11:09DDEMLでも調べてみたらどうだ。
0871デフォルトの名無しさん
2006/01/27(金) 18:12:24DDE(Dynamic Data Exchange)
Windows上でアプリケーションソフト同士がデータやコマンドを行なうための手順の一つ。
Windows 2.0から実装されているが、OLEなどに取って代わられ、現在ではあまり使われていない。
http://e-words.jp/w/DDE.html
だそうです。
0872デフォルトの名無しさん
2006/01/27(金) 18:15:18そうっすか。すいません。DDEMLググってみます。どうも。
0873デフォルトの名無しさん
2006/01/27(金) 18:37:400874デフォルトの名無しさん
2006/01/27(金) 19:20:09label1.location.X = 10;
どうやったらいいのでしょうか?
label1.Height = 10;
ならうまくいくのに何故でしょう・・。
0875デフォルトの名無しさん
2006/01/27(金) 19:25:460876デフォルトの名無しさん
2006/01/27(金) 20:11:11ありがとうございます<(_ _)>
あとの3方向は類推します。
0877デフォルトの名無しさん
2006/01/27(金) 20:23:39Left Migi
Shita
0878デフォルトの名無しさん
2006/01/27(金) 20:31:160879デフォルトの名無しさん
2006/01/27(金) 20:35:08Left Right
Sea
0880デフォルトの名無しさん
2006/01/28(土) 00:06:36Left Right
Hell
0881デフォルトの名無しさん
2006/01/28(土) 11:46:49Left Right
Tail
0882デフォルトの名無しさん
2006/01/28(土) 12:22:06SaitamaHidari SaitamaMigi
0883デフォルトの名無しさん
2006/01/28(土) 12:45:30その取得されるファイル名は昇順になっていますか?
0884デフォルトの名無しさん
2006/01/28(土) 12:52:17Directory.GetFiles()あたりを使って取得してるなら、返ってくる内容のならびについてはなんら保証されていないので
仮に今、昇順で返ってくるようになっていても将来変更される可能性がある。
0885デフォルトの名無しさん
2006/01/28(土) 12:53:26レスありがとうございます。
では自力でソートした方が無難ですね。
0886デフォルトの名無しさん
2006/01/28(土) 14:45:49がインストールされているんですけど、
Visual C# 2005 Express Editionを試しに
MSからダウンロードしてインストールしてみようと思いました。
ですが、心配事が一つ。
.NET Framework が2.0にアップデートされちゃうんですか?
もしそうなら、その状態でVS2003(.NET Framework 1.1)を
起動したらどうなるんですか?
以上よろしくおながいします。
0887デフォルトの名無しさん
2006/01/28(土) 14:50:09別のところにインストールされて別々に動く。
0888デフォルトの名無しさん
2006/01/28(土) 14:57:29早速クリックワンスを試してみます。
0889デフォルトの名無しさん
2006/01/28(土) 21:51:47例えば、label1.t ってやった時にでてくる Text というコードのヘルプをその場で見たいのですが、無理でしょうか?
0890デフォルトの名無しさん
2006/01/28(土) 22:02:590891デフォルトの名無しさん
2006/01/28(土) 22:27:43そうですか・・・。
そういう機能はないのですね。
ありがとうございました。
0892デフォルトの名無しさん
2006/01/28(土) 22:32:41それっぽいイベントが見つかりません。
enter は違うみたいだし・・・。
なんて言うイベントでしょうか?教えてやって下さい<(_ _)>
0893デフォルトの名無しさん
2006/01/28(土) 22:44:150894892
2006/01/28(土) 22:49:20さっそくレスありがとうございます。
ああ〜 キーダウンイベントつかって、エンターが押されたらってif文を作ればいいのですね。
わかりました。
ところで、AllowEnterというのはなんでしょうか?
ググったのですが、ヒットしません(´・ω・`)
0895デフォルトの名無しさん
2006/01/28(土) 23:47:41わけわからん状態になった
メインマシンの WinXP Pro + .NET Framework 1.1 + SharpDevelop 1.1 でコンパイルすると
サブマシンの Win2K + .NET Framework 1.1 で
System.Reflection.TargetInvocationException、ImageList の詠み込みに失敗
イメージリストの部分を サブマシン Win2K で作り直したら動く
メインマシンに .NET Framework 2.0 を入れて消したことが関係しているのだろうか?
ぐぐってると、DEVENV.exe.manifest がほげほげとあるけれど
そんなファイルは手元の環境には無いぞ・・・
誰か助けてくれぃ・・・駄目ですか? orz
0896デフォルトの名無しさん
2006/01/29(日) 00:06:42AllowEnterなんて存在しないし
AcceptsReturnは関係ないし
こんな感じ?
private void textBox1_KeyDown( object sender, KeyEventArgs e )
{
if( e.KeyCode == Keys.Enter )
{
System.Media.SystemSounds.Asterisk.Play();
}
}
private void textBox1_KeyPress( object sender, KeyPressEventArgs e )
{
if( e.KeyChar == (char)Keys.Enter )
{
e.Handled = true;
}
}
0897894
2006/01/29(日) 00:31:39わざわざありがとうございます。
どちらも試してみました。
上の方は 以下のエラーがでました。
.Forms.KeyPressEventArgs' に 'KeyCode' の定義がありません。
下の方が以下のエラーがでました。
\Form1.cs(327): 型 'System.Windows.Forms.Keys' を型 'char' に変換できません。
ちょっと調べてみます<(_ _)>
0898897
2006/01/29(日) 00:39:26key down の場合は KeyCode で
key press の場合は KeyChar を使わなければならなかったのですね。
それに気づけばエラーは出なくなりました。
downとpressの違いでなぜ、変数の形が変わるのか、私には全く分かりませんが(´・ω・`) とりあえず
動いたので、ありがとうございました<(_ _)>
0899デフォルトの名無しさん
2006/01/29(日) 14:15:29知らない単語の意味を調べられる、便利な辞書のような本か、サイトがあると助かるのですが、
そういうのはないでしょうか?
try catch とかそういう単語がでてきて、これなんだ??と詰まっています・・・。
0900デフォルトの名無しさん
2006/01/29(日) 14:26:500901895
2006/01/29(日) 14:31:46SharpDevelop\1.1\bin\SharpDevelop.exe.manifest
を削除したらうまく動いた・・・
なんでこんな事になってたんだろう・・・
0902デフォルトの名無しさん
2006/01/29(日) 14:35:56MSDNみろ
0903デフォルトの名無しさん
2006/01/29(日) 16:13:17せめてヘルプ開きながらやろうよ (^^;
0904デフォルトの名無しさん
2006/01/29(日) 16:25:46F1押す
0905デフォルトの名無しさん
2006/01/29(日) 17:40:00ソフトないですかね?
UIの操作ミスって作り直す羽目に2度もなったんで・・・orz
0906デフォルトの名無しさん
2006/01/29(日) 17:48:200907デフォルトの名無しさん
2006/01/29(日) 17:56:350908デフォルトの名無しさん
2006/01/29(日) 17:59:44アプリケーションを正しく初期化出来ませんでした。oxc0000135
というようなエラーが出たそうです。
なぜなんでしょうか?
自分のマシンではもちろん正常に動いていました。
自分も友達も同じWINXPですが、向こうは フレームワークというのを入れてないです。
そのせいでしょうか?
0909デフォルトの名無しさん
2006/01/29(日) 18:00:10作ればいいじゃん
ただしUIの操作ミスんないように
0910デフォルトの名無しさん
2006/01/29(日) 18:04:36.NET Framework入れなきゃ動くわけがない
0911デフォルトの名無しさん
2006/01/29(日) 19:36:14そうなんですか煤i; ̄□ ̄
全く知りませんでした。
では、フリーとかで配布してる人はどうやってるんでしょうか?
0912デフォルトの名無しさん
2006/01/29(日) 19:42:160913デフォルトの名無しさん
2006/01/29(日) 19:54:01そうだったのですか・・・・・
ではC#でプログラム作って配布しても、一般人には遊んでもらえないんですね。
知りませんでした_| ̄|○ かなりショックです。
0914デフォルトの名無しさん
2006/01/29(日) 19:56:020915デフォルトの名無しさん
2006/01/29(日) 20:04:06テキストボックスのプロパティのどれをいじればいいでしょうか?
0916デフォルトの名無しさん
2006/01/29(日) 20:17:01textBox1.Focus();
文字がある状態だとその後に
textBox1.Select(0, 0);
など適宜に
0917デフォルトの名無しさん
2006/01/29(日) 20:34:12早速レスありがとうございます。
ただ、そのnyuuryoku.Focus(); をどこで実行したらいいのか分かりません。
下みたいに form1のloadイベントで実行したら、最初に実行してくれるかなと思ったのですが、これだとなぜかうまくいきません。
private void Form1_Load(object sender, System.EventArgs e)
{
nyuuryoku.Focus();
nyuuryoku.Select(0, 0);
}
下みたいにボタンクリックのイベントで実行したら、確かにそっちにカーソルがいったのですが、これではダメだし・・・。
private void button1_Click_1(object sender, System.EventArgs e)
{
nyuuryoku.Focus();
nyuuryoku.Select(0, 0);
}
重ね重ねすみません。
0918デフォルトの名無しさん
2006/01/29(日) 20:42:01http://www.atmarkit.co.jp/fdotnet/dotnettips/226winloadfocus/winloadfocus.html
0919デフォルトの名無しさん
2006/01/29(日) 20:48:11じゃあ
this.ActiveControl = textBox1;
の方で
0920デフォルトの名無しさん
2006/01/29(日) 20:57:28http://www.iqtest.dk/main.swf
0921デフォルトの名無しさん
2006/01/29(日) 21:25:06>>919
それで解決しました。
ありがとうございました。
しかし、皆さん、なぜそういう回答がすぐ分かるんであろうか…
0922デフォルトの名無しさん
2006/01/29(日) 21:52:02ArgumentExceptionをキャッチするしかないのってどうよ
0923デフォルトの名無しさん
2006/01/29(日) 22:00:33http://www.uchukamen.com/Programming/Strings/Strings.htm#SEC29
文字列の指定した場所にある文字列を挿入したいばあい、以下のようにしろという話ですが、全くその通りになりません。
↓↓
string str1 = "Hello!";
str1.Insert( 5, "World");
何か間違ってますでしょうか
0924デフォルトの名無しさん
2006/01/29(日) 22:06:37不親切だが、Stringがインスタンスの変更が不可のクラスであることを考えれば、
あるいはヘルプでInsertの定義をみれば正解は分かる。
>>922
動的に正規表現を作ることってあまりない気がするから別に構わないな。
0925デフォルトの名無しさん
2006/01/29(日) 22:06:50基本的にStringは変更不可能だと覚えておいたほうがいい。
string str1 = "Hello!";
stri1 = str1.Insert( 5, "World");
0926デフォルトの名無しさん
2006/01/29(日) 22:49:15よく分かりました。ありがとうございました。
0927デフォルトの名無しさん
2006/01/30(月) 00:05:54Vectorと窓の杜で調べたらあると思うよ。
0928名無しさん♯
2006/01/30(月) 00:07:090929デフォルトの名無しさん
2006/01/30(月) 00:09:560930デフォルトの名無しさん
2006/01/30(月) 00:39:420931デフォルトの名無しさん
2006/01/30(月) 02:11:25Form form = new Form();
form.Size = new Size(600, 600);
//form.SuspendLayout();
SplitContainer sp = new SplitContainer();
ListView lv;
lv = new ListView();
lv.Dock = DockStyle.Fill;
sp.Panel1.Controls.Add(lv);
lv = new ListView();
lv.Dock = DockStyle.Fill;
sp.Panel2.Controls.Add(lv);
sp.Dock = DockStyle.Fill;
form.Controls.Add(sp);
sp.SplitterDistance = 300;
//form.ResumeLayout();
form.Visible = true;
このコードを実行したところ、SuspendLayout、ResumeLayoutをコメントアウトしてあればちゃんと
スプリッタが中央あたりに表示されるんですが、そうでなければ右よりに表示されてしまいます。
どうもResumeLayoutのタイミングでSplitterDistanceが変更されているようなんですが、
これは何故でしょうか。
また、SuspendLayout、ResumeLayoutをコメントアウトする以外に(あるいはその外側でSplitterDistanceを変更する以外に)解決する方法はないでしょうか。
0932デフォルトの名無しさん
2006/01/30(月) 06:25:56SuspendLayout しているのでDock=Fillが効かずに
Widthがデフォルト(150)のままになっている。
そこでSplitterDistance=300にしてもWidthを超えているため
SplitterDistance=121になってしまう。
(これはSplitterContainerの仕様らしい)
その後ResumeLayoutしたときにDock=Fillが効いて
Widthが変更されるのでSplitterDistanceも変更される。
(これもSplitterContainerの仕様らしい)
解決策はsp.SplitterDistance=300の前に
sp.Width=form.ClientSize.Widthとでも入れればいいんじゃない?
(フォームデザイナが生成するコードではSizeを固定値で設定してるけど)
0933931
2006/01/30(月) 14:15:56なるほど・・・そういう訳だったんですか。
spのサイズを直接変更する方法でうまくいきました。
なんとなく格好悪くはありますが、そうするしかないみたいですね。
どうもありがとうございました。
0934デフォルトの名無しさん
2006/01/30(月) 18:26:30>ソースコードのバックアップを一定時間ごとに取るようなソフトないですかね?
MSDNならVisual SourceSafeがあるけど・・・うーん
0935デフォルトの名無しさん
2006/01/30(月) 20:18:24出来上がるプログラムのサイズが違うのは何故ですか?
ある全く同じのソースコードをVS2002とVS2003でコンパイルしてみたところ、
VS2003の方が100kBくらいもサイズが大きくなりました
環境やソースの中身によっても違うかもしれませんが、
もしこれが多くのプログラムに当てはまるようであれば、
VS2002を使った方が得策ですよね?
0936デフォルトの名無しさん
2006/01/30(月) 20:24:070937デフォルトの名無しさん
2006/01/30(月) 20:26:540938デフォルトの名無しさん
2006/01/30(月) 20:30:540939デフォルトの名無しさん
2006/01/30(月) 20:53:150940デフォルトの名無しさん
2006/01/31(火) 00:44:120941デフォルトの名無しさん
2006/01/31(火) 01:07:18○C#はこの先生きのこることができるのだろうか?
0942デフォルトの名無しさん
2006/01/31(火) 01:10:58そんなだめだめ状態がつづくでしょう
0943デフォルトの名無しさん
2006/01/31(火) 08:58:050944デフォルトの名無しさん
2006/01/31(火) 18:24:19Application.ThreadException
Thread.GetDomain().UnhandledException
で拾おうとしているのですが、JITデバッグダイアログが出てきてしまいます。
リンクにあるようにDrwtsn32 -iも実行しレジストリ書き換えたのですが依然出てきます。
ご存知の方いらっしゃいますか?
http://www.atmarkit.co.jp/fdotnet/dotnettips/262apperror/apperror.html
0945デフォルトの名無しさん
2006/01/31(火) 21:42:23/⌒ヽ
/ ● ヽ
(●/⌒ヽ●)
ヽ| ´∀`|ノ きのこってんじゃねーよ
.ゝ___ノ
0946デフォルトの名無しさん
2006/01/31(火) 22:18:29参考になるサイト等があれば教えてください。
0947デフォルトの名無しさん
2006/01/31(火) 22:21:42http://www.atmarkit.co.jp/fdotnet/easyxml/index/index.html
0948デフォルトの名無しさん
2006/01/31(火) 22:34:21http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfSystemXml.asp
0949デフォルトの名無しさん
2006/02/01(水) 04:00:44ありがとうございます
>>948を見るたびにVS.NETのインストーラーが勝手に立ち上がるのはなんとかならないですか…
# >>1の (#゚ー゚)つ は正しくは (*゚ー゚)つ な希ガス
0950デフォルトの名無しさん
2006/02/01(水) 04:03:46> >>948を見るたびにVS.NETのインストーラーが勝手に立ち上がるのはなんとかならないですか…
なにそれ?
> # >>1の (#゚ー゚)つ は正しくは (*゚ー゚)つ な希ガス
ここがどこのスレだと思ってる
0951デフォルトの名無しさん
2006/02/01(水) 06:52:28ちなみに俺の勤務先ではOfficeのインストーラが出てくる。
0952デフォルトの名無しさん
2006/02/01(水) 08:00:430953デフォルトの名無しさん
2006/02/01(水) 10:43:510954デフォルトの名無しさん
2006/02/01(水) 11:05:290955デフォルトの名無しさん
2006/02/01(水) 14:17:42uzeeeeeeeeeeeeeeeeeeeeeeeeeee!
0956デフォルトの名無しさん
2006/02/01(水) 18:05:11new System.Drawing.Printing.PrinterSettings().PrinterName;
0957デフォルトの名無しさん
2006/02/01(水) 19:17:40良いサイトを御存知でしたら誰か教えて頂けませんか?
命令や使い方があればOKです。
0958デフォルトの名無しさん
2006/02/01(水) 19:19:080959デフォルトの名無しさん
2006/02/01(水) 19:23:11あるクラスで
try
{
FormA f = new FormA
f.show()
}
catch (Exception ex)
{
// ここで f の Exception を拾いたい
}
のように、FormA での Exception を呼び出した元クラスで拾いたいのですが
今だと FormA のエラー発生箇所で、エラーメッセージが表示されてしまいます。
上記の事を実現する方法はありますか?
0960デフォルトの名無しさん
2006/02/01(水) 19:28:13ttp://www.atmarkit.co.jp/fdotnet/special/win20review02/win20review02_01.html
0961デフォルトの名無しさん
2006/02/01(水) 19:34:55ありがとうございます。でもこのサイトの説明はSQL使うんですよ。
大げさなしかけはいらないのですが・・・
ヘルプの説明も分かりづらいしググってもいいサイトないんです。
とにかくありがとうございました。
0962デフォルトの名無しさん
2006/02/01(水) 20:34:42普通にcatchできるはずだけど
0963デフォルトの名無しさん
2006/02/01(水) 20:38:09ShowをShowDialogの違い
0964959
2006/02/01(水) 21:00:45それが catch できないんですよ。。。
>>963
Show でも ShowDialog でも catch できませんでした。
もしかして、別 DLL だと catch できませんか?
0965デフォルトの名無しさん
2006/02/01(水) 21:03:290966デフォルトの名無しさん
2006/02/01(水) 21:11:06//Showはそれ以前に次に移ってしまうがな。
Application.ThreadExceptionイベントで処理。
0967959
2006/02/01(水) 21:19:56ありがとうございます。
Application.ThreadExceptionイベントですね、勉強します。
メニューの Exe があって、そこから各機能の DLL(form) を Show しています。
想定できる Exception は、各機能の DLL で処理するんですが、
万が一想定外の例外が発生した場合は、このメニューの EXE でキャッチ
して、.NETFx が出力するメッセージをユーザーには見せたくないん
ですよね。なんで、show した後で、その show を行なった部分で
キャッチしようとしたんですが、たしかに show したら次に進みますね…。
こういった場合、他に定石みたいな組み立て方があれば
アドバイス頂けるとうれしく思います。よろしくお願いします。
0968デフォルトの名無しさん
2006/02/01(水) 21:28:14プログラムから切り替える方法がわかりません。
2.0のPageSetupDialog.EnableMetricは確認しましたが妙な風に丸められるのは相変わらずでした。
コントロールパネルの地域オプションで単位をヤードポンド法に変えれば換わるのは確かめました。
Thread.CurrentCultureやGlobalizationSection.UICultureをいじってるのですが変わってくれません。
今のところ2.0で試してみてますが、1.1でできる方法があればお願いします。
0969デフォルトの名無しさん
2006/02/01(水) 21:55:33>FormA f = new FormA
>f.show()
行末にセミコロンがないのが気になるんだが…
0970デフォルトの名無しさん
2006/02/01(水) 22:03:25Thread.GetDomain().UnhandledException += new UnhandledExceptionEventHandler(Form1_UnhandledException);
で例外出したスレッドをそのままハンドルできるのでそれでやるべし。
0971デフォルトの名無しさん
2006/02/01(水) 22:13:550972970
2006/02/01(水) 22:47:470973デフォルトの名無しさん
2006/02/01(水) 23:41:11イベントについて教えてください。
以下のようなControlクラスのOnClickをオーバーライドするメソッドがありますです。
public class Form1 : System.Windows.Forms.Form
{
protected override void OnClick(EventArgs e)
{
base.OnClick (e);//�@
}
}
デリゲートとイベントの仕組みを一通り読み終えたところなんですが、
今の知識で上のメソッドを読むと、
「このFormの基本クラスであるControlクラスのOnClickメソッドをオーバーライドして、
Controlクラスの�@OnClickイベントデリゲートに、EventArgs型の引数を渡す事で、
Controlクラスにきっと記述してあるであろう、Control.OnClick += new EventHandler(。。。
んもう。わけわかりません。
0974デフォルトの名無しさん
2006/02/01(水) 23:42:09メモ プロテクトされた OnEventName メソッドを使用すると、
デリゲートをアタッチせずに、派生クラスでイベントをオーバーライドすることもできます。
派生クラスでは、登録されたデリゲートがイベントを必ず受信できるように、
常に基本クラスの OnEventName メソッドを呼び出す必要があります。
んもう。さっき読んだ仕組みも説明がつかなくなってしまったので、以下のように書いてみました。
protected override void OnClick(EventArgs e)
{
base.OnClick (e);//�@
}
private void Form1_Click(object sender, System.EventArgs e)
{
MessageBox.Show("Form1_Click");//�A
}
private void Form2_Click(object sender, System.EventArgs e)
{
MessageBox.Show("Form2_Click");//�B
}
実際にフォームをクリックしてみると、�@・�A・�Bという順番で呼ばれました。
俺。逝ってよし。
0975デフォルトの名無しさん
2006/02/01(水) 23:58:44とりあえずOnClickはイベントハンドラではない。
0976デフォルトの名無しさん
2006/02/02(木) 00:05:01↑の二つ無かった事にしてください。
protected override void OnClick(EventArgs e)
{
MessageBox.Show("test");
}
private void Form1_Click(object sender, System.EventArgs e)
{
MessageBox.Show("test");
}
このように書くと、Form1_Clickイベントが発生しないのは何故ですか?
0977デフォルトの名無しさん
2006/02/02(木) 00:06:440978デフォルトの名無しさん
2006/02/02(木) 00:08:52で、基底クラスではユーザがクリックしたときにOnClickを呼び出す。
基底クラスのOnClickでClickイベントに関連付けられたイベントハンドラを呼び出す。
が、派生クラスでOnClickが上書きされているので、
Clickイベントに関連付けられたイベントハンドラを呼び出す部分が実行されなくなる。
0979デフォルトの名無しさん
2006/02/02(木) 00:18:25こんな時間に優しく教えてくれて感謝します。
ttp://www.atmarkit.co.jp/fdotnet/basics/oop04/oop04_03.html
読みながら、>977・>978読んだら理解できました。
もやもやして寝れないとこだった。
ありがとうございました。
そして俺DQN。
半年、いや一年ROMってきます。
0980デフォルトの名無しさん
2006/02/02(木) 05:12:11C#2003のaxWebBrouserのイベントで
CommandStateChange というのがありますが
C#2005のWebBrouserのイベントでは 何を指定してやれば同じイベントを指定できますか
変な日本語ですみません(´Д`;
0981デフォルトの名無しさん
2006/02/02(木) 05:20:46何したいのか知らんが、進む/戻るならCanGoForward/BackChangedでいいんじゃね
0982デフォルトの名無しさん
2006/02/02(木) 05:28:05ご親切にどうもです
進んだり戻ったりできますた。
あとスペルミスごめんなさい
0983デフォルトの名無しさん
2006/02/02(木) 07:47:210984デフォルトの名無しさん
2006/02/03(金) 01:06:10別スレッドで作ったコントロールを追加するのにも必要?
A,Bスレッドがあって
Bのスレッドコントロールを作成(インスタンス生成)
AのコントロールのControl.Controls.Add(Bスレッドで作成したコントロール)
をInvoke経由で呼び出し、Aスレッド上にBスレッド作成コントロールを追加したとして
Bスレッドで作成したコントロールをこの後もずっと
AスレッドではInvoke経由で操作しないんとまずいのか?
0985デフォルトの名無しさん
2006/02/03(金) 01:10:35ハンドルできる前なら問題ないのかもしれんが。
0986デフォルトの名無しさん
2006/02/03(金) 01:14:470987デフォルトの名無しさん
2006/02/03(金) 01:29:180988デフォルトの名無しさん
2006/02/03(金) 03:08:01知人が言うには、
Basic と Visual Basic が違うように、
また、C++ と Visual C++ が違うように、
C# と Visual C# も違うのだとか
そうなんですか?
0989デフォルトの名無しさん
2006/02/03(金) 03:09:48そりゃ言語と開発環境は別物だろ。
0990デフォルトの名無しさん
2006/02/03(金) 03:12:11レスありがとうございます
では言語的には C# でおkってことですね
分かりました
0991デフォルトの名無しさん
2006/02/03(金) 03:31:06ちなみに、VB の BASIC は例えば日本の高校数学の教科書に載ってる(載ってた?)
奴とは確かに全然違うんで、言語の方も VB と呼ばれる。
BASIC はいろいろ方言があるんで、高校の教科書に載ってる奴も
N88 BASIC と言わないと正確には通じない。
それに、VB 6 以前と VB7 以降でかなり言語仕様が変わったんで、
7 以降のは VB.NET って言って別言語扱いした方がいいかと。
C++ はかなり標準化がしっかりされてて、
どの開発環境使おうと C++ は C++。
VC++ は 6.0 までは標準対応が遅れ気味だったけど、
VC++ .NET (VC++ 7.0)以降は他のどのコンパイラよりも標準対応度合いがしっかりしてる。
C# もちゃんと標準化されてるんで、
VC# 使おうと、mono 使おうと、dot GNU 使おうと、SSCLI 使おうと C# は C#。
0992デフォルトの名無しさん
2006/02/03(金) 03:34:30// 私は無理だった
0993デフォルトの名無しさん
2006/02/03(金) 03:37:330994993
2006/02/03(金) 03:42:59http://pc8.2ch.net/test/read.cgi/tech/1138905522/
0995デフォルトの名無しさん
2006/02/03(金) 03:46:510996デフォルトの名無しさん
2006/02/03(金) 09:10:42ttp://pc8.2ch.net/test/read.cgi/tech/1138925245/
0997デフォルトの名無しさん
2006/02/03(金) 09:18:25乙
あっちは削除依頼だしとくべさ
0998デフォルトの名無しさん
2006/02/03(金) 09:57:470999デフォルトの名無しさん
2006/02/03(金) 10:48:07クビ
1000デフォルトの名無しさん
2006/02/03(金) 11:02:1510011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。