C♯, C#相談室 Part35
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/11/03(金) 03:07:45前スレ
C♯, C#相談室 Part34
http://pc8.2ch.net/test/read.cgi/tech/1157549657/
過去スレは>>2-5あたり。
※スレタイに「#」を入れても消えちゃうので新スレ立てる人は要注意だ。
0002デフォルトの名無しさん
2006/11/03(金) 03:08:16Part32 http://pc8.2ch.net/test/read.cgi/tech/1149934230/
Part31 http://pc8.2ch.net/test/read.cgi/tech/1145075577/
Part30 http://pc8.2ch.net/test/read.cgi/tech/1141448072/
Part29 http://pc8.2ch.net/test/read.cgi/tech/1138925245/
Part28 http://pc8.2ch.net/test/read.cgi/tech/1134514022/
Part27 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/
0003デフォルトの名無しさん
2006/11/03(金) 03:08:50Part17 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/
Part13 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 ttp://pc.2ch.net/tech/kako/1009/10094/1009473982.html
Part2 ttp://pc.2ch.net/tech/kako/1002/10024/1002468050.html
Part1 ttp://pc.2ch.net/tech/kako/977/977112364.html
0004デフォルトの名無しさん
2006/11/03(金) 03:09:19http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/
MSDNライブラリ
http://msdn.microsoft.com/library/ja/
MSDN2
http://msdn2.microsoft.com/ja-jp/library/default.aspx
相互運用マーシャラによるメモリ管理
http://msdn2.microsoft.com/ja-jp/library/f1cf4kkz.aspx
Buffers のサンプル
http://msdn2.microsoft.com/ja-JP/library/x3txb6xc.aspx
文字列のマーシャリング
http://msdn2.microsoft.com/ja-JP/library/e8w969hb.aspx
pinvoke.net: the interop wiki!
http://pinvoke.net/
テンプレ終了
0005デフォルトの名無しさん
2006/11/03(金) 18:22:260006デフォルトの名無しさん
2006/11/03(金) 18:51:34次にタグIDを読んだら一時領域内に参照し、すでに呼んだタグIDか
初めて読むIDかを識別するプログラムをC#で作ろうとしています。
一時領域はIDを異なるIDを読むたびに大きくなっていくイメージです。
いままではC++で構造体をmallocとreallocで一時領域を確保していたのですが
C#ではどうすればいいのでしょうか?
0007デフォルトの名無しさん
2006/11/03(金) 18:54:280008デフォルトの名無しさん
2006/11/03(金) 18:55:03System.Collections.Hashtable
0009デフォルトの名無しさん
2006/11/03(金) 18:58:04Excel
0010デフォルトの名無しさん
2006/11/03(金) 19:06:08MSDNで調べました!ありがとうございました!
0011デフォルトの名無しさん
2006/11/03(金) 19:24:080012デフォルトの名無しさん
2006/11/03(金) 23:27:460013デフォルトの名無しさん
2006/11/03(金) 23:46:58これとかどうよ?
まさに入門だけど、必要なことは一通り書いてあるし、
詳しいことはヘルプで事足りると思う。
WEBサイトはgoogleで十分かと。
0015デフォルトの名無しさん
2006/11/03(金) 23:59:34去年の春ごろだっととおも。
0016デフォルトの名無しさん
2006/11/04(土) 00:06:020017デフォルトの名無しさん
2006/11/04(土) 01:47:32Reflectorで簡単にソースを得ることが可能ですよね。
お客さんにソースが漏れるのは大問題です。
余談ですが、よくC#は生産性が高いなんて言われてますけど疑問です。
確かにちょっとしたものすぐ作れますが、商用となるとUIも重要な要素の一つなんで
ほとんどのコントロールは使えないため、自前で用意する必要がある。
そうすると、VC6MFCとほとんど同じの感じがします。
どうですか?
0018デフォルトの名無しさん
2006/11/04(土) 03:02:37普通に
http://www.amazon.co.jp/gp/product/4891005173/sr=1-3/qid=1162576921/ref=sr_1_3/503-2271679-4213559?ie=UTF8&s=books
これでいいいんでまいか
0019デフォルトの名無しさん
2006/11/04(土) 04:08:03MSも.NETはC++/CLIで行くといってるのに・・・
0020デフォルトの名無しさん
2006/11/04(土) 08:04:15今ならこっちがおすすめ
http://www.amazon.co.jp/gp/product/479801382X/ref=pd_ecc_rvi_1/503-1810130-2500706
0021デフォルトの名無しさん
2006/11/04(土) 09:26:51自分に投資すると思って。
0022デフォルトの名無しさん
2006/11/04(土) 09:30:18VC6と変わらないというならVC6で作ればいいんじゃないだろうか?
別に世間一般でC#>>>>>>>>>VC6という評価になっているわけではなく、
開発言語の1つとしてC#というものが有るわけだから
無理にC#を使う必要はないのでは?
0023デフォルトの名無しさん
2006/11/04(土) 09:41:24ソースコードを保護する必要があるなら、Dotfuscator導入
0024デフォルトの名無しさん
2006/11/04(土) 13:58:27動作保証しないとは言ってるけど、実際に使うことも出来なくなるのか?
0025デフォルトの名無しさん
2006/11/04(土) 13:59:500026デフォルトの名無しさん
2006/11/04(土) 17:13:30インターフェイスIAを継承したインターフェイスIBを実装するコクラスを
COMに公開したいと思い、【ソース】をビルド/regasmすると、
【タイプライブラリA】にようになってしまいます(OLE/COM Object Viewer)。
これではスクリプト環境からデフォルトインターフェイスでないIAのメンバに
アクセスできないため、【タイプライブラリB】のようにしたいのですが、
どうすればいいでしょうか。お知恵を拝借したく。
【ソース】
public interface IA { }
public interface IB : IA { }
[ClassInterface(ClassInterfaceType.None)]
public class C : IB { }
【タイプライブラリA】
interface IA : IDispatch { };
interface IB : IDispatch { };
coclass C {
interface _Object;
[default] interface IB;
interface IA;
};
【タイプライブラリB】
interface IA : IDispatch { };
interface IB : IA { };
coclass C {
interface _Object;
[default] interface IB;
};
0027デフォルトの名無しさん
2006/11/04(土) 20:06:13結構出てるよ。
まあ大半が2003以前の本だけど。
0028デフォルトの名無しさん
2006/11/04(土) 20:59:20思ってるんだが、まだ出てませんよね?
0029デフォルトの名無しさん
2006/11/04(土) 21:16:17もう出てるよ。今日本屋に行ったけど並んでた。
0030デフォルトの名無しさん
2006/11/04(土) 22:29:47全てのインターフェイスが IDispatch/IUnknown から直接派生して公開されるのは仕様なので、
面倒だけど IA / IB 全てのメンバを宣言している新しいインターフェイス IC を定義して、
そいつをデフォルトインターフェイスにすればなんとかなるんじゃね?
0031デフォルトの名無しさん
2006/11/04(土) 22:43:580032デフォルトの名無しさん
2006/11/04(土) 22:47:42そもそも2chでまともなレスもらえるだけで素晴らしい事
0033デフォルトの名無しさん
2006/11/04(土) 22:49:21俺なんかこんなレス返すぞ
Console.Write("or2=====3プッ");
003426
2006/11/04(土) 22:50:01どうもありがとうございます。
これ仕様なんですか……厄介ですね
しかし、継承関係崩すと、マネージコードから利用しづらくなりますし、
インターフェイスを継承できないとなると今後の拡張で
アーリーバインディングでの互換性を確保できなくなりますよね。
インターフェイスの設計からもう一度悩みなおしてみます。
0035デフォルトの名無しさん
2006/11/04(土) 23:02:18継承関係は別に崩れないだろう。増えはするけど。
が、バージョン管理ができなくなるのは確かだな。
となると ClassInterfaceType.None にする意味もなくなるなぁ……。
// 自動生成の _C インターフェイスは IDispatch だけだが IA/IB どっちも呼べる。
あとは IB で IA のメンバ全部隠蔽して再宣言するとか。
0036デフォルトの名無しさん
2006/11/04(土) 23:52:34開発していく上でその本はかなり有意義だけど、勉強に適した本とはいえないんじゃない。
ほとんどC#の知識がなかったときにそいつ一冊で本格的なアプリケーション作ったことはあるけど。
でもなにをやっているのかさっぱりわからなかった。
僕は断然、独習C# AND C#Windowsプログラミング上下
独習C#で基本を勉強して本格的なことはC#プログラミングでやればいい。
0037デフォルトの名無しさん
2006/11/05(日) 02:43:35安全に動かそうとすると極端に難しいなw
0038デフォルトの名無しさん
2006/11/05(日) 03:03:330039デフォルトの名無しさん
2006/11/05(日) 11:31:500040デフォルトの名無しさん
2006/11/05(日) 11:38:100041デフォルトの名無しさん
2006/11/05(日) 12:48:56おお、スプラッシュうウィンドウの表示時間制御が、
ビジーループで時間稼ぎから、
Timerでのイベントに変わった。
激酷からちょっと酷い程度にレベルアップしたな。
0042デフォルトの名無しさん
2006/11/05(日) 17:46:06ビジ-ループって本末転倒。
0043デフォルトの名無しさん
2006/11/05(日) 22:59:33ハーバート・シルトの本はちょっと時代遅れじゃないかな?
以前javaの本(タイトル忘れちゃった…)と独習C++買ったけど、
自分としてはいまいちだった。
特にjavaの本はOOPの本じゃないみたいだった。
翻訳も駄目だったし…
「所与の」ってなんだよw
別の著者の独習javaって本も誤植があってひどかった。
0044デフォルトの名無しさん
2006/11/06(月) 02:27:15/(hoge)(foo)/;
$a=$1;$b=$2;
#hoge,foo部には適当な正規表現をです。
上記をC/C++/JAVAで書ける人、書いてもらえませんか?
(C/C++はとりあえず使えますが、boostを使ったことがありません)
0045デフォルトの名無しさん
2006/11/06(月) 02:35:36ngen使うか、初回の処理を計測から外すような措置はした?
0046デフォルトの名無しさん
2006/11/06(月) 07:00:05Cが出来るですよねw?
PERLはオープンソースだから、NETのライブラリなんて使わずに、
PERLのソースを参考に自前でunsafeを使って実装すればいいのでは?
0047デフォルトの名無しさん
2006/11/06(月) 07:55:57まずC#のソースを晒すべきじゃないか?
0048デフォルトの名無しさん
2006/11/06(月) 08:09:32そんなことができるひとがする質問ではないだろ?
つか、そんなことやれる人なんて多くはいないのでは?
0049デフォルトの名無しさん
2006/11/06(月) 08:19:270050デフォルトの名無しさん
2006/11/06(月) 16:08:200051デフォルトの名無しさん
2006/11/06(月) 16:17:43Double の静的メンバに IsNaN
0052デフォルトの名無しさん
2006/11/06(月) 16:31:00isnan は、Cで使えるというのは調べたのですが、math.h のincludeが必要ですよね?
c#では、特別に using〜 とういうようなことは必要ないのでしょうか?
書き方は
if(isnan(a) == 1)
Console.WriteLine("NaNです。");
といった感じですか?初心者ですみません。
0053デフォルトの名無しさん
2006/11/06(月) 16:57:34初心者なんて免罪符にならないから、ヘルプ読めよ。
0054デフォルトの名無しさん
2006/11/06(月) 17:09:37Double.IsNaN メソッド
ttp://msdn2.microsoft.com/ja-jp/library/system.double.isnan.aspx
0055デフォルトの名無しさん
2006/11/06(月) 17:41:19ざっくりした計測で、
Perl=C#=Java(server VM)、C++が0.9、Javaのclient VMは1.8倍ぐらいの処理時間。
ngenとかの細かなチューニングは無し。ループ内で、キャプチャ文字列の長さを積算
するとかして、最適化で飛ばされないように努力はしてみた。
C++: VS2005, boost 1.33.1
C#: VS2005
Java: 1.5.0_09
Perl: Active Perl 5.8.8
うちのC#は、>>44の家のC#より高性能だ。
0056デフォルトの名無しさん
2006/11/06(月) 18:30:370057デフォルトの名無しさん
2006/11/06(月) 18:39:16C#を勉強しています。
とりあえず、シューティングゲームでも作ろうと思って、「C#でゲームを作ろう」みたいな本を買いに本屋に行ったのですが
全くそんな本がありませんでした。
ゲーム関連となると、VBか、Cの本しかありません・・・。
ゲームとかは、C#で作るものではないのでしょうか?
0058デフォルトの名無しさん
2006/11/06(月) 18:44:41XBox360でも動くようになるからこれから少しは流行るはず
「C#でゲームを作ろう」みたいなのがどうしても無いとだめなら
Javaで勉強すれば
0059デフォルトの名無しさん
2006/11/06(月) 18:45:460060デフォルトの名無しさん
2006/11/06(月) 18:52:54006157
2006/11/06(月) 18:52:57えーと、とんまなことを言うようなのですが、C#がイイ、と言われて、ちょくちょく勉強しちゃったのでいまさらjavaというのにいくのはちょっと大変そうなんです。
なんとかC#で頑張ってみたいんです。
しかし、本ってないのですね。
XBOXでれば流行るんですかね。そうなるといいなぁ。
本がないところを見ると、現状、C#はゲーム作りには不向きってことなんですね。
ちょっとへこんじゃいました。
0062デフォルトの名無しさん
2006/11/06(月) 19:13:05?
ただ入門しにくいって事じゃないかな。
昔はアセンブラじゃないとシューテングは作りづらいといわれていたが…
Wiiプログラマって世界にどのくらいいるんかな。
0063デフォルトの名無しさん
2006/11/06(月) 19:13:33別に不向きってわけじゃないだろう。
.NETのCLR使えば、初心者がよりとっつきやすい形でプログラミングできるし、
Cでゴリゴリ書いてた比べれば、DirectXの使用も断然やさしくなってると思う。
アマで簡単に探した限りではこのあたりかな。
そんなに高くないし、手当たり次第に買って読んでみればいいと思う。
Visual C# .NETゲーム制作教科書―ゲーム・プログラミングの基本から応用まで
http://www.amazon.co.jp/gp/product/4777510220
C#ゲームプログラミング
http://www.amazon.co.jp/gp/product/4797334800
ちょっと慣れてきたら、VB.NETとかVC++.NET用に書かれた類似本を買ってみると、新たな発見があるかもしれない。
言語の文法が少し違うだけで、.NETのライブラリを使ってる以上、やってる中身はかわらないからね。
まあそうやって、他の言語にも目を慣らしていけば、ネットで盗めるテクニックなんかも二倍三倍になるよ。
0065デフォルトの名無しさん
2006/11/06(月) 21:29:14http://www.woodensoldier.info/computer/CSharp.htm#148
上の方(ネームスペース宣言のところ)に
using System.Net.WebRequest;
と記述し、
あとはそのまま ↓のようにしました。
private void button1_Click(object sender, System.EventArgs e)
{
WebRequest request = WebRequest.Create("http://www.yahoo.co.jp");
WebResponse response = request.GetResponse();
Stream ReceiveStream = response.GetResponseStream();
StreamReader readStream = new StreamReader(ReceiveStream, Encoding.UTF8);
Byte[] buffer = new Byte[response.ContentLength];
readStream.Read(buffer, 0, response.ContentLength);
response.Close();
}
しかし、↓のエラーが出てしまいます。
\Form1.cs(7): using namespace ディレクティブは名前空間に対してのみ使用できます。'System.Net.WebRequest' は名前空間ではなくクラスです。
何が間違っているのでしょうか?
0066デフォルトの名無しさん
2006/11/06(月) 21:31:590067デフォルトの名無しさん
2006/11/06(月) 21:39:41using System.Net;の間違いだろ
0068デフォルトの名無しさん
2006/11/06(月) 21:43:36>Form1.cs(7):
ってんだからForm1.csの7行目読むんだよ
006965
2006/11/06(月) 22:14:44すいません、エラーメッセージ読んでも全くわかりません。
基本を全く分かってなくて、説明ページに書いてあるのをただそのままコピペしたような感じですので・・。
なにがどうおかしいのかすら全く分からない状況です・・・。
>>67
using System.Net; とやると、その行ではエラーが出ませんが、後半でエラーが出ます・・・。
0070デフォルトの名無しさん
2006/11/06(月) 22:15:39そりゃ後半が間違ってるんだろ。
0071デフォルトの名無しさん
2006/11/06(月) 22:20:19君が見てる所のサンプルはあんまり質が良くないから
初心者スレのテンプレにあるサイトを探ってみなさい。
0072デフォルトの名無しさん
2006/11/06(月) 22:20:21そのまま動くサンプルが載ってるページを探すか入門書買う方がいいんじゃない
0073デフォルトの名無しさん
2006/11/06(月) 22:23:580074デフォルトの名無しさん
2006/11/06(月) 22:31:17それはショックです。
他のページ見てみます。
ありがとうございました。
0075デフォルトの名無しさん
2006/11/06(月) 22:34:300076デフォルトの名無しさん
2006/11/06(月) 22:35:08Perl=C#
って必至ですね
0077デフォルトの名無しさん
2006/11/06(月) 22:49:24だってStreamReader.Read()にbyte[]が引数のオーバーロードなんて無いもんw
0078デフォルトの名無しさん
2006/11/07(火) 00:21:160079デフォルトの名無しさん
2006/11/07(火) 00:36:460080デフォルトの名無しさん
2006/11/07(火) 05:47:22不向きっつーか現状開拓中。つまり歴史がない
アーリーアダプタががんばってる最中。
しかしXNA Frameworkはびっくりするほど.NETわかってる
やつが書いているようなので(一部のBCLよりよくわかってるw)
すごくわかりやすいのになりそう。そうなったら流行るかも。
遅レスです。
0081デフォルトの名無しさん
2006/11/07(火) 09:42:24チェックボックスの値が上手く取得できないので困ってます
チェックボックスがtrueのとき削除しようと思ってるんですが
何かいい方法はありますか?
0082デフォルトの名無しさん
2006/11/07(火) 12:09:05日本語でおk
0083デフォルトの名無しさん
2006/11/07(火) 13:11:15ttp://support.microsoft.com/kb/316934/ja
を参考に、C#.NETとADO.NETを使用してExcelへの出力をしたいと
考えています。
Book1.xlsのsheet1のA1にC#のソースから"ABC"という文字列を
SQL Updateコマンドで実行したいのですが、なかなか上手くいきません。
どなたか参考になるサイトや例を教えて下さい。
0084デフォルトの名無しさん
2006/11/07(火) 14:55:03クリックしてチェックボックスがオンになって周りが破線で囲まれたときに
チェックボックスの値がtrueって取得できない
他の所をクリックして破線がとれたらtureって取得できる
なんとか前の段階でtrueかどうか確認したいのよ
0085デフォルトの名無しさん
2006/11/07(火) 17:02:06>Book1.xlsのsheet1のA1にC#のソースから"ABC"という文字列を
>SQL Updateコマンドで実行したい
言ってることが分かりません。
0086デフォルトの名無しさん
2006/11/07(火) 17:52:41.NET2.0+Excel2003でこれだけで出来たが。
using (OleDbConnection con = new OleDbConnection(
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Book1.xls;Extended Properties=""Excel 8.0;HDR=NO;"""))
{
OleDbCommand cmd = new OleDbCommand(@"UPDATE [Sheet1$A1:A1] SET F1='ABC'", con);
con.Open();
cmd.ExecuteNonQuery();
}
0087デフォルトの名無しさん
2006/11/07(火) 18:41:57ありがとうございました。
まじ分からなくて、もうだめかと思ってました。
初歩的な疑問だったかと思います、ですいません。
本当にありがとうございました。
0088デフォルトの名無しさん
2006/11/07(火) 19:02:46DataGridView.CurrentCellDirtyStateChanged ??
0089デフォルトの名無しさん
2006/11/07(火) 19:28:55g.DrawRectangle(ほにゃらら・・・
g.FillRectangle(ほにゃらら・・・
ってあったときにたとえば
g.Transparency=155;
g.DrawRectangle(ほにゃらら・・・
g.FillRectangle(ほにゃらら・・・
ってすると描画全体が薄くなるようなことがしたいんですが・・・
0090デフォルトの名無しさん
2006/11/07(火) 19:43:220091デフォルトの名無しさん
2006/11/07(火) 19:45:31それともグラフィックスのアルファ値見たいのがある?
0092デフォルトの名無しさん
2006/11/07(火) 19:49:480093デフォルトの名無しさん
2006/11/07(火) 19:56:03ttp://pc8.2ch.net/test/read.cgi/tech/1162193452/
0094デフォルトの名無しさん
2006/11/07(火) 21:26:48まさにCurrentCellDirtyStateChangedでした
解決しました
ありがとうございます
0095デフォルトの名無しさん
2006/11/07(火) 21:41:48おまえ>>89の言ってる意味わかってるの?
0096デフォルトの名無しさん
2006/11/07(火) 21:59:59DrawImageとなるとまた別だけど
どうしても全体を透明にしたいなら、まとめて別のImageに描画しといて
ColorMatrix付きでDrawImageとか
0097デフォルトの名無しさん
2006/11/07(火) 23:25:55できるかできないかじゃなくて、本来の意図としては描画コードをいじることなく外部の属性変化で動作を変化させたいって事でしょ?
本気で言ってるとしたらなんかエンジニアとしての素養が欠けてると思う。
0098デフォルトの名無しさん
2006/11/07(火) 23:36:250099デフォルトの名無しさん
2006/11/07(火) 23:48:44お勧めの方法を教えてください。
ぼろぼろクリキター
010099
2006/11/07(火) 23:55:550101デフォルトの名無しさん
2006/11/08(水) 00:07:550102デフォルトの名無しさん
2006/11/08(水) 00:21:39オレオレ言語を.NETアセンブリにできるみたいね、面白そう
誰かいじってるやついる?
ぼろぼろクリキター
0103デフォルトの名無しさん
2006/11/08(水) 00:46:28なんでそんな剣幕なのか分からないけど
>>92でいいんじゃね?
>>92でパラメータでもなんでもアルファ渡して
そいつからColorつくってブラシでもペンでも描画コードで作ればいいんじゃ?
0104デフォルトの名無しさん
2006/11/08(水) 05:04:41http://www.atmarkit.co.jp/fdotnet/insiderseye/20060215cscommunity/cscommunity_02.html
>Q. C#でWin32ネイティブ・アプリケーションも作成できるようにしてほしい。
>A. もちろんC#のコードからWin32ネイティブのコードを生成することは実現可能である。
C#でのネイティブコードの出力も検討されてるみたいね。
ぜひとも実現してほしいもんだ。
0105デフォルトの名無しさん
2006/11/08(水) 08:33:030106デフォルトの名無しさん
2006/11/08(水) 09:24:54描画する矩形等が重なる場合、まずいんでない?
例えばアルファ値128で黒い矩形の上に白い矩形を重ねたらグレーの矩形になるが、
アルファ値なしで黒い矩形の上に白い矩形を重ねて、最後にイメージ全体をアルファ128で描画すると半透明な白が描画される。
ってことで >96にあるとおりColorMatrix付きDrawImageでいいと思う
0107デフォルトの名無しさん
2006/11/08(水) 13:25:24ネイティブコード出力よかまずそのへんを改善して欲しいのだが…
0108デフォルトの名無しさん
2006/11/08(水) 14:56:170109デフォルトの名無しさん
2006/11/08(水) 16:27:41画像の一部分だけBitmapメンバに格納したいってときに
Graphics.DrawImageで部分を切り出ししても全体がコピーされるんでクマー状態。
メソッドの使い方をまちがっているのか、それとも別の方法がいいのか。
どなたか参考になるアイディアをください
0110デフォルトの名無しさん
2006/11/08(水) 16:31:26あ・・・これじゃわかりにくいですね。
いま事情で手元にソースがないので完璧には説明できません。スマソ。
0111デフォルトの名無しさん
2006/11/08(水) 17:08:250112デフォルトの名無しさん
2006/11/08(水) 17:28:23> プロパティとかイテレータとか匿名メソッドとかすごい多用しちゃってますが・・・・
iteratorもdelegateも無茶苦茶遅い。
しょーもないアプリなら実用になることはなるのだけど、速度が要求されるところだと
その遅さが致命的。
もっと最適化がんばって欲しい気はするが、いまのC#の言語デザインだとiteratorやdelegateを
inliningするのは難しいだろうなぁ。
ほんと、デザインセンスを疑うよ。素人じゃないんだから・・。
0113デフォルトの名無しさん
2006/11/08(水) 17:35:370114118
2006/11/08(水) 17:50:20もちろんC++でやればもっと早くなるとは思うけど。
生産性との兼ね合いですが今の開発ではC#で十分。
0115デフォルトの名無しさん
2006/11/08(水) 17:54:17インライン展開とかありえん
0116デフォルトの名無しさん
2006/11/08(水) 17:59:46ToolStripMenuItemで実現は可能でしょうか?
それとも全部自前で作るしかないんですかね?
0117デフォルトの名無しさん
2006/11/08(水) 18:03:56それやってもだめなので。。。
0118デフォルトの名無しさん
2006/11/08(水) 18:07:42確かにMFC使わないならそう思うが
VC+++MFCならC#とほとんど変わらないだろ?
0119デフォルトの名無しさん
2006/11/08(水) 18:32:450120デフォルトの名無しさん
2006/11/08(水) 18:47:07なんか悩んだ記憶があったので前に書いたコード漁ったらこうやってた。
srcBitmapの部分(x, y, width, height)をresultに切り出すとすると、
Bitmap result = new Bitmap(width, height);
using (Graphics g = Graphics.FromImage(result)) {
g.DrawImage(srcBitmap, -x, -y, width, height);
}
0121デフォルトの名無しさん
2006/11/08(水) 18:53:44商用ではないですよね?
商用なら大問題だぞ
0122デフォルトの名無しさん
2006/11/08(水) 18:54:40.NETが商用には耐えかねる
0123デフォルトの名無しさん
2006/11/08(水) 18:55:37C#そんなに使いまくってるわけじゃないので・・・
0124デフォルトの名無しさん
2006/11/08(水) 19:03:48クリッピングが適当だけど、そんなことでパフォーマンスに影響が出るほどアホじゃないだろ
0125デフォルトの名無しさん
2006/11/08(水) 19:09:15MFCはちょっと…癌だね。
MFCで読み込む画像をダイアログで指定してフォームに表示するだけでも
覚えることは山ほどある。
TextBoxの入力内容をタイトルにするにも直感的じゃない手法を取らなくてはならない。
後、文字の取り扱いが良くない。
0126デフォルトの名無しさん
2006/11/08(水) 19:14:38じゃあさ、読み込む画像をダイアログで指定する際にプレビュー機能が欲しいなんて
要求があったらどうする。
これを実装しようとするとC#でも面倒(容易だが)
また、無駄に動作がもっさりしてるし・・・
VC+++MFCの方がコンパクトで高速なものが書ける。
0127デフォルトの名無しさん
2006/11/08(水) 19:19:330128デフォルトの名無しさん
2006/11/08(水) 19:26:220129デフォルトの名無しさん
2006/11/08(水) 19:28:04皆がオリジナルダイアログを作りたいわけではない。
多分、生産性の意味わかってないな。
実際の業務でもコンポネント作るのは技術レベル高い人にさせてるし。
他の大多数はそれを使うだけ。
俺としては直感的に使いやすい方がベター。
0130デフォルトの名無しさん
2006/11/08(水) 19:33:15人に見せて恥ずかしくないUIを作ろうとするとほとんどのコントロールは
自前で用意することになるぞ。
VC++も同じだが、サンプルアプリでないかぎり標準コントロールを
しようする機会ははない
0131デフォルトの名無しさん
2006/11/08(水) 19:33:24そしたら全部アセンブラでクロック数かぞえながら書いとけw
そうせずにC++/MFCを使う理由と、C++/MFCを使わずにC#を使う理由は大体同じだと思うよ。
0132デフォルトの名無しさん
2006/11/08(水) 19:40:41おさまったの?
安置c#論争やらないのw
とりあえず巣に帰れ。
0133デフォルトの名無しさん
2006/11/08(水) 20:02:07ついでに押して欲しいんだけど
L"これは日本語テキストです"
の Lってなに?
0134デフォルトの名無しさん
2006/11/08(水) 20:09:03スレ違いじゃない?
0135デフォルトの名無しさん
2006/11/08(水) 20:14:040136デフォルトの名無しさん
2006/11/08(水) 20:15:55プログラミングできない人がこの板で何やってんだか・・・
0137デフォルトの名無しさん
2006/11/08(水) 20:22:58すれ違いスマソ
0138デフォルトの名無しさん
2006/11/08(水) 20:29:22右クリック検出だけなら簡単だけど、メニュー出そうとすると結構面倒
昔の記憶だと、ToolStripMenuItemじゃなくて親のDropDownの方を
継承したほうが楽だったような
OnMouseDownでMouseButton覚えといてOnItemClickedでボタンで分岐、
右だったらContextMenu(ContextMenuStripじゃなくて)を表示するのが簡単だったりする。
ContextMenuStripだとフォーカス奪うので閉じなくする処理とかが面倒。
0139デフォルトの名無しさん
2006/11/08(水) 21:49:38sortedList.Add("PC", "パソコン");
sortedList.Add("MOBILE", "携帯電話");
sortedList.Add("CALC", "電卓");
上記のようなコードで「SortedList」を用いてインデックス、キー、値の各々で検索出来る
配列を作成しています。このクラスではAddするとキーに従って自動的に並び替えが発
生するのですが、並び替えをさせない方法がわかりません。
IComparer or SortedListのコンストラクタで何かを設定(指定)すると出来そうな
感じがするのですが・・・Addの順序で配列を作成するにはどのようにすれば良いか
ご存じの方、ご教授願います。
0140デフォルトの名無しさん
2006/11/08(水) 22:00:340141デフォルトの名無しさん
2006/11/08(水) 22:04:52えーとSortedList ってのは、中身が何らかの順序関係によって整列されたリストのこと。
(Sort ってのは英語で並べ替えというような意味)
ソートしなくていいなら、List<string> や ArrayList を使うべき。
0142デフォルトの名無しさん
2006/11/08(水) 22:06:42・インデックスで検索するためのList<Pair<string,string>>
・キーで検索するためのDictionary<string, string>
・値で検索するためのDictionary<string ,string>
を各々用意したらいかがか。
0143デフォルトの名無しさん
2006/11/08(水) 22:10:45同等の機能でいいなら、そこまで複雑なことしなくてもいいんじゃないかなあ。
0144デフォルトの名無しさん
2006/11/08(水) 22:25:49複雑なことしなくてよいのは私もなんですけど…客先の要件なので…
要は状態遷移を行いたいのです。
1.Prev、Nextであればカレントインデックス値を加減算して処理する。
2.指定した状態へJumpであればキーで検索して処理する。
3.前の状態へJumpであれば値で検索して処理する。
と言う具合です。これを満たすためにはArrayList、HashTableの両方を
兼ね備えたSortedListが最適と判断したのです。
自動的に並び替えが無ければOKなんでけどねぇ〜orz
0145デフォルトの名無しさん
2006/11/08(水) 22:28:22List<Pair<string,string>> でOK。
0146デフォルトの名無しさん
2006/11/08(水) 22:37:18それだとキーでの検索と値での検索に線形オーダーかかるのでは。
どれも定数オーダーでやるには>>142の三つが必須じゃない?
0147デフォルトの名無しさん
2006/11/08(水) 22:41:420148デフォルトの名無しさん
2006/11/08(水) 22:42:170149デフォルトの名無しさん
2006/11/08(水) 22:46:56ほとんどのコントロールを自前で用意って、ほんとにそう?
ほとんどのアプリでは標準コントロールを使用している。
.Netでできていて、標準コントロールを使用する機会がないような
人に見せて恥ずかしくないUIを持ったアプリを教えてくれるとありがたいんですが。
0150デフォルトの名無しさん
2006/11/08(水) 22:49:34Dictinary だと線形オーダーのままだよ
0151デフォルトの名無しさん
2006/11/08(水) 22:52:23テキストエディタを作る場合を考えてください。
TextBoxコントロールを使って作れますか?
0152デフォルトの名無しさん
2006/11/08(水) 22:52:30推測だがデリゲートが遅いせいじゃない?
0153デフォルトの名無しさん
2006/11/08(水) 22:52:59いやいや、Dictionaryはハッシュテーブルだよ
だから定数オーダー。
0154デフォルトの名無しさん
2006/11/08(水) 23:01:58v1ならしゃあないけど。
0155デフォルトの名無しさん
2006/11/08(水) 23:05:02Writing Faster Managed Code: Know What Things Cost
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/fastmanagedcode.asp
たとえHashtableがそうでも、その3つの中にリスト含んでるから LogN(配列のオーダ)でしょ
OrderedDictionaryなんてあったのか、ふざけー
なんでGenerics空間に作らなかったんだ・・
0156デフォルトの名無しさん
2006/11/08(水) 23:05:04違うから。
0157デフォルトの名無しさん
2006/11/08(水) 23:06:00エディタなら検索ダイアログや置換ダイアログ、各種の設定用ダイアログ等での
文字列入力で盛大に使うんじゃない?
ポトペタで作れて生産性向上というのと、「ポトペタだけで」作れるというのは違う
ことだってのはわかるよね。
簡単に作れる部分を簡単に作れば、そこで浮いた工数を他の処理、
例えばテキストエディタならばエディット部分の作成に回すことができる。
あるいは工数の減った分を単純に利益としてもよいし、販売価格を下げてもよいし、
バージョンアップサイクルを短縮してもよい。
.Net にしたからといって何でも簡単にできるわけではなくって、
簡単にできることが多少増える→生産性が上がる、ということが重要。
漏れはUI以外は C++ or C++/CLI 使ってるけど。
C# ってtemplate無いし多重継承無いし using たくさん書かせられるから効率悪いんだもん。
0158デフォルトの名無しさん
2006/11/08(水) 23:08:180159デフォルトの名無しさん
2006/11/08(水) 23:11:55OrderedDictionaryを用いる方向で実装していました。
ところが、値の存在チェックは出来るのですが、インデックス値を取得することが
出来なかった(取得する方法がわからない)からです。
1.インデックス値の操作でキー、値を取得する。
2.キーで検索して、インデックス値を取得する。
3.値で検索して、インデックス値を取得する。
この3つの要件を満たすのがSortedListだったのです。
0160デフォルトの名無しさん
2006/11/08(水) 23:16:57ありがとうございます。早速試したところ…自宅のPCはXP-HOMEだった。orz
明日、出社して早速試してみます。
0161デフォルトの名無しさん
2006/11/08(水) 23:22:270162デフォルトの名無しさん
2006/11/08(水) 23:40:46ああそうか…
OrderdDictionaryにあってもよさそうなのにな。
0163デフォルトの名無しさん
2006/11/08(水) 23:47:36class Record { string key, value; int index; }
でも作って
・List<Record>
・Dictionary<string key, Record>
・Dictionary<string value, Record>
の3つを作れば?
・List<Pair<string key, string value>>
・Dictionary<string key, int index>
・Dictionary<string value, int index>
でもいいけど。
0165デフォルトの名無しさん
2006/11/09(木) 00:39:14> デリゲートはそんなに遅くないのでは?
全然言ってることが的外れ。
例えばdelegateでカリー化したり関数合成したりしてもinliningされないことが問題。
アンダースに次会ったときに突っ込んでみるよ。
0166デフォルトの名無しさん
2006/11/09(木) 00:48:460167デフォルトの名無しさん
2006/11/09(木) 01:16:04Scheme最高w
0168デフォルトの名無しさん
2006/11/09(木) 01:40:20アンダース、年に数回、日本に来るよ。おまいさんも聞きたいことがあればサミットなり何なり参加しれ。
でもtypedefとネイティブコード生成の質問はタブーな。
毎回聞く馬鹿があとを絶えないのでアンダースはうんざりぎみ。
0169デフォルトの名無しさん
2006/11/09(木) 08:39:52次世代windowsはマネージコードが標準で、
ネイティブコード実行が保護下のエミュレーションに。
0170デフォルトの名無しさん
2006/11/09(木) 08:48:100171デフォルトの名無しさん
2006/11/09(木) 09:27:53昔はゲームはDOSじゃないと遅くて動かなかった。
windowsでゲームというと馬鹿にされたもんだよ。
もしかしてマネージアプリのほうが高速になる時代が来るかもな
0172デフォルトの名無しさん
2006/11/09(木) 10:35:15List<Pair<>> list = null;
上記のように定義してどのように追加すればよいのでしょうか?
Addメソッドを用いるのは理解出来てます。書き方がわかりません。
ご存知の方、教えてください。
0173デフォルトの名無しさん
2006/11/09(木) 14:17:48list.Add(new KeyValuePair<string, string>("key", "value"));
こういうこと?
0174デフォルトの名無しさん
2006/11/09(木) 15:10:00を参考にして書き直してみたやつ。現状うまくいってない。
Image srcimgが吸出し元
int w= srcimg.Width/10;
int h = srcimg.Height/10;
Bitmap[,] result =new Bitmap[10,10];
for(int j=0;j<10;j++){
for(int i=0;i<10;i++){
result[i,j]= new Bitmap(w,h);
Graphics g = Graphics.FromImage(result[i,j]);
g.DrawImage(srcimg, -i*w, -j*h, w, h);
g.Dispose();
}
}
foreachのほうがいいのかな。。。
0175デフォルトの名無しさん
2006/11/09(木) 15:44:32じゃあ、こうすれ。
g.DrawImage(srcimg,
new Rectangle(0, 0, w, h),
new Rectangle(i*w, j*h, w, h),
GraphicsUnit.Pixel);
0176デフォルトの名無しさん
2006/11/09(木) 15:46:53int h = srcimg.Height / 10;
Bitmap[,] result = new Bitmap[10, 10];
for( int j = 0; j < 10; j++ )
{
for( int i = 0; i < 10; i++ )
{
result[i, j] = srcimg.Clone( new Rectangle( i * w, j * h, w, h ), System.Drawing.Imaging.PixelFormat.DontCare );
}
}
じゃ駄目なのか
0177176
2006/11/09(木) 15:49:090178デフォルトの名無しさん
2006/11/09(木) 17:00:55うまい方法ないすかね。
先ずはonSubmitをフックしようとしたのだけど、
単純に マネージドコードのHtmlElement.AttachEventHandler("onsubmit", new EventHandler....)ではただイベントが飛んでくるだけで
formの内容がわからん。
さらに、ttp://www.thescripts.com/forum/thread232640.html によるとHTMLFormElementの onsubmitのフックにはバグがあるようで使えない。
0179デフォルトの名無しさん
2006/11/09(木) 17:07:210180デフォルトの名無しさん
2006/11/09(木) 17:10:180181デフォルトの名無しさん
2006/11/09(木) 17:40:53イベントメソッドをアンバインドしてもクリアはされませんでした。
0182デフォルトの名無しさん
2006/11/09(木) 17:42:27>>175を反映させたところ成功しますた。
アイディアを出してくれた人たちに百万の感謝を。
0183デフォルトの名無しさん
2006/11/09(木) 17:48:24C#語でおk
0184デフォルトの名無しさん
2006/11/09(木) 18:32:490185デフォルトの名無しさん
2006/11/09(木) 19:33:59BeforeNavigate2 イベントに POST されるデータも入ってる。
Interop.SHDocVw.dll 参照して ActiveXInstance を SHDocVW.WebBrowser にキャストしてイベント使用するか
CreateSink でイベントシンク作るかしないと使えないが。
0186デフォルトの名無しさん
2006/11/09(木) 20:21:53面倒だから素直にAxBrowser使ったら?
素直にBeforeNavigate2使えるし。
0187デフォルトの名無しさん
2006/11/09(木) 21:33:49なるほど〜、SHDocVW.WebBrowserにキャストすればいいんですね。
ふつうに
SHDocVw.WebBrowser browser = (SHDocVw.WebBrowser)this.ActiveXInstance;
browser.BeforeNavigate2 += new SHDocVw.DWebBrowserEvents2_BeforeNavigate2EventHandler(browser_BeforeNavigate2);
とかやってでBeforeNavigate2イベントのフックおよびPOSTデータ取れました。
0188デフォルトの名無しさん
2006/11/09(木) 23:54:470189デフォルトの名無しさん
2006/11/10(金) 00:01:040190デフォルトの名無しさん
2006/11/10(金) 06:52:57コメントそのもののフォーマットを求めているならヘルプのそれを参考にすれば?
たとえばプロパティなら「〜を取得または設定します」みたいな。
0191デフォルトの名無しさん
2006/11/10(金) 11:46:540192デフォルトの名無しさん
2006/11/10(金) 11:58:40多重継承を許容すると退化することになる。
新しいスキームが必要。
0193デフォルトの名無しさん
2006/11/10(金) 12:10:03CLOS系のやつ
シバリがなくなるだけで退化にはならんと思う。
漏れは色んなパラダイムを許容する言語の方が好きだ。
0194デフォルトの名無しさん
2006/11/10(金) 12:13:47多重継承で同じインターフェイス含んだクラス2つ継承したら、
動作はどうなるの?
0195デフォルトの名無しさん
2006/11/10(金) 12:16:49C++なら部分オブジェクトを共有するか別々にするか制御できるよね。
スレ違いスマソ
0196デフォルトの名無しさん
2006/11/10(金) 12:38:160197デフォルトの名無しさん
2006/11/10(金) 16:19:21ひとつしか実装なかったらそれが呼ばれて明示的実装あればそっちが呼ばれる。
副作用よりも記述性のメリットが勝ると思うんだけど。
複数クラスに委譲コードこぴぺするほうがバグでるっちゅーねん。
0198デフォルトの名無しさん
2006/11/10(金) 16:25:510199デフォルトの名無しさん
2006/11/10(金) 17:45:42float Width{set{_width=value;}}
っていうプロパティがあるんですが、
floatを引数にもつデリゲートが他の変数に代入しようとしても
_deleg=Width;はだめだし
_deleg=set_Widthもだめ。
0200デフォルトの名無しさん
2006/11/10(金) 18:42:080201デフォルトの名無しさん
2006/11/10(金) 19:14:56言ってることおかしくないかな?
0202デフォルトの名無しさん
2006/11/10(金) 19:28:01言うやつが増えるだけじゃないのかな?
0203デフォルトの名無しさん
2006/11/10(金) 19:46:140204デフォルトの名無しさん
2006/11/10(金) 22:37:010205デフォルトの名無しさん
2006/11/10(金) 23:21:00デジタルアドバンテージ 一色 政彦
2006/11/11
PS3並みのフライング?
0206デフォルトの名無しさん
2006/11/11(土) 01:08:56何が?<フライング
.NET Framework 3.0、もう正式版出てるし、
β版とか CTP 版はずいぶん前からあるし。
0207デフォルトの名無しさん
2006/11/11(土) 01:16:34記事の日付と書き込み日時
0208デフォルトの名無しさん
2006/11/11(土) 01:32:590209デフォルトの名無しさん
2006/11/11(土) 01:48:570210デフォルトの名無しさん
2006/11/11(土) 02:25:490211デフォルトの名無しさん
2006/11/11(土) 12:08:58private void Form1_KeyDown( object sender, KeyEventArgs e )
{
switch ( e.KeyCode ) {
case Keys.Left:
rects[0].X -= 25;
rects[1].X -= 25;
rects[2].X -= 25;
rects[3].X -= 25;
break;
case Keys.Right:
rects[0].X += 25;
rects[1].X += 25;
rects[2].X += 25;
rects[3].X += 25;
break;
}
}
}
すいっちのとこにブレーク張ってるのにキーボードのキー入力しても
イベントハンドラに�dで来ないお
これだから馬具だらけのC#はきらいだ!!!
0212デフォルトの名無しさん
2006/11/11(土) 12:10:28やっぱフリーのだから馬具ありなのかな、外地?
0213デフォルトの名無しさん
2006/11/11(土) 12:12:250214デフォルトの名無しさん
2006/11/11(土) 12:18:51初心者スレ池
0215デフォルトの名無しさん
2006/11/11(土) 12:27:49違いますよ^^;
ちゃんとフォームにフォーカス当ててる
0216デフォルトの名無しさん
2006/11/11(土) 12:30:52みつからないんだが紹介してくれ、そっちで質問するから
0217デフォルトの名無しさん
2006/11/11(土) 12:53:12Form.KeyPreview
0218デフォルトの名無しさん
2006/11/11(土) 12:59:18できればurlをお願いいたします(ぺこりー
0219デフォルトの名無しさん
2006/11/11(土) 13:09:19ふらっとC♯, C#(初心者用) Part10
http://pc8.2ch.net/test/read.cgi/tech/1162193452/
だが>>217が答えだ
0220デフォルトの名無しさん
2006/11/11(土) 13:16:08どーも。
ボタンを押したときのイベントで>>217の
Form.KeyPreview = true;
というのを追加したけどコンパイルエラーになる。
変数はForm1という名前だから
Form1.KeyPreview = true;
とやっても怒られる。
this.KeyPreview = true;
でコンパイルが通った!
でもやっぱりだめなんだな、これが。
やっぱり>>211のイベントに�dで来ないお
試しにみんなもやってみてくれ、
もしバグだったら誰か舞糞に連絡ヨロ
0221デフォルトの名無しさん
2006/11/11(土) 13:17:32プログラム言語の勉強を一からやることをお勧めする
0222デフォルトの名無しさん
2006/11/11(土) 13:24:02\∩─ー、 ====
/\● 、_ `ヽ ======
/ (0o) ● |つ ちょっ! ちょっと待つクマ!
| (_入__ノ ミ
、 (_/ ノ /⌒l 釣り方間違ってるクマ!!
/\___ノ゛_/ / =====
〈 __ノ この吊り方は、やばすぎるクマー!!
\ \_ \ ===
\___) \ ====== (´⌒
\ ___ \__ (´⌒;;(´⌒;;
\___)___)(´;;⌒ (´⌒;; ズザザザ
0223デフォルトの名無しさん
2006/11/11(土) 13:28:01>>219氏の教えてくれたスレに移動するからここでの質問は取り下げるお
お世話様ですた
0224デフォルトの名無しさん
2006/11/11(土) 13:30:22>>222
釣りならそういえよw
0225デフォルトの名無しさん
2006/11/11(土) 13:49:53いやあんなの一生プログラミングに触って欲しくないな
0226デフォルトの名無しさん
2006/11/11(土) 13:56:22C#+asp.net2.0でプログラムかいてます。で、あるページでGridViewを使ってるんですが動作がおかしいです。
画面にはGridViewと更新ボタンがあります。Gridviewにはデータバインドしてるのとテンプレートフィールドがあります。
テンプレートフィールドはチェックボックスになってて、チェックボックスをオンにした状態で更新ボタンを押すとその状態がDBに記憶され、
次同じページを開いたときはチェックボックスがオンになった状態でページが開かれます。
更新ボタンのイベントではまずDBにある全てのデータを消してからGridView全てのRowを見て
Checkbox.checked=trueのものだけDBに保存する仕様になってます。
しかしここで問題が…。チェックボックスがオフの状態からオンの状態にして更新ボタンを押すとうまく反映されるのですが、ページを開いた状態のときにすでにオンになってるチェックボックスをオフにして更新を押すとDBに反映されません。
原因を調べたところチェックボックスをオフにしたはずなのに条件判定のところではチェックボックスがオンの状態になっているようでした。これはなぜでしょうか?
わかる人いらっしゃったら教えてください。お願いします。
0227デフォルトの名無しさん
2006/11/11(土) 14:04:23とエスパーなりきって考えてみた。
0228226
2006/11/11(土) 14:17:59書き忘れてましたが更新ボタンを押した後は「更新されました」というページに遷移するようになってます。なのでpostbackは関係ないかもしれません…。
ページがロードされたときにDBに項目があるものに関してはチェックボックスをオンにするということをしてますが、
それでオンになった項目をオフにして更新ボタンを押しても、そのイベントハンドラ内ではチェックボックスがオンだと認識されているところに問題があるんだと思いますが、なぜかがわかりません…。
0229211
2006/11/11(土) 14:25:56の(口は悪いが)親切な回答者のおかげで解決したよ、
このスレは本当に役立たずな回答者しかいないな、
二度と来る門下
0230デフォルトの名無しさん
2006/11/11(土) 14:27:33役立たず。
0231デフォルトの名無しさん
2006/11/11(土) 14:37:20>というのを追加したけどコンパイルエラーになる。
>変数はForm1という名前だから
>Form1.KeyPreview = true;
>とやっても怒られる。
>this.KeyPreview = true;
>でコンパイルが通った!
>Form.KeyPreview = true;
>というのを追加したけどコンパイルエラーになる。
>変数はForm1という名前だから
>Form1.KeyPreview = true;
>とやっても怒られる。
>this.KeyPreview = true;
>でコンパイルが通った!
>Form.KeyPreview = true;
>というのを追加したけどコンパイルエラーになる。
>変数はForm1という名前だから
>Form1.KeyPreview = true;
>とやっても怒られる。
>this.KeyPreview = true;
>でコンパイルが通った!
こんなレベルなのに文句を言う方がどうかしてるな。
0232デフォルトの名無しさん
2006/11/11(土) 15:10:46↑
これくらいいい加減読めるようになろうぜwww
0233デフォルトの名無しさん
2006/11/11(土) 15:13:17プロテインだね
0234デフォルトの名無しさん
2006/11/11(土) 15:19:46コードのロジックミスじゃないの?
0235デフォルトの名無しさん
2006/11/11(土) 15:24:20この投稿の段階で怪しい。
あげ足取りごめんね!!
0236226
2006/11/11(土) 15:46:08一応更新ボタンのイベントハンドラにはまずDBの全ての内容をdeleteして、その後foreachで全てのrowを見てチェックボックスがオンならDBにタプルを追加するという方法を取ってます。これがいけないんでしょうか?
>>235
実際はrowからcheckboxオブジェクトを取ってそれのcheckedをチェックしてます。
0237デフォルトの名無しさん
2006/11/11(土) 16:30:37って思うんだが。
0238デフォルトの名無しさん
2006/11/11(土) 17:15:070239226
2006/11/11(土) 17:24:49うお!本当だ!
初心者で申し訳ありませんでした。更新ボタンを押したときそのボタンのイベントハンドラのみが呼び出されると思っていたのですが、
その前にpage_loadが呼び出されてるんですね…。
僕の仕様だとpage_loadのところでGridViewの全てのRowをチェックしてそれがDBにあった場合チェックボックスをtrueにするので一度消したやつも再度チェックがオンになってしまっているようです。
isPostBackを使うことで解決しました。こんな初心者に助言していただいて本当にありがとうございました!
0240デフォルトの名無しさん
2006/11/11(土) 17:35:42TreeNodeCollection.Item プロパティ (String) だね
いつの間にこんなものができたのやら。
keyはコレクションから取得する TreeNode のNameとなってるから
TreeNode作るときnameを設定しておけば良いだけじゃないのか?
0241デフォルトの名無しさん
2006/11/11(土) 17:48:57コントロールのプロパティを読み取るか、初期化します。
Page_Load
コントロールのプロパティを読み取って更新します。
0242デフォルトの名無しさん
2006/11/11(土) 18:50:06例えば、IEでグーグルに行って、検索文字に「ねこかわいいよねこ」と入れて、検索ボタンを押して、
表示された検索結果の一番上のリンクにジャンプする・・・といったような、web操作を実行できるよう
にしたいのです。
しかし、いったいどうやればいいのか見当もつきません。
まだC#を始めたばかりで、本屋で入門書を探しているのですが、そんなことのやり方を書いている
本も見あたりません・・・。
どうやればいいでしょうか?
0243デフォルトの名無しさん
2006/11/11(土) 18:57:42いきなりジャンプすんの?
それとも自分の画面に
「ねこかわいいよねこ」と入れて
自分の画面のボタン押せばその検索結果を出す
ってだけなら今はやりのweb2.0、グーぐるのウェブサービスを使えばできそうだけどな。
同じくamazonの検索機能もウェブサービスで公開されてるような気がするんだが。
0244デフォルトの名無しさん
2006/11/11(土) 19:03:06* Googleの検索結果のURLをながめる。
* Googleの検索結果のソースをながめる。
0245デフォルトの名無しさん
2006/11/11(土) 19:03:43すいません、えと、グーグルは例に出しただけで、実際は株取引の画面で、色々入力して、
自動注文みたいなことをしようと考えています。
やりかたが全くわかりません・・。
0246デフォルトの名無しさん
2006/11/11(土) 19:05:130247デフォルトの名無しさん
2006/11/11(土) 19:09:140248デフォルトの名無しさん
2006/11/11(土) 19:20:02うーん パケットモニタとか、プロトコルアナライザなるものがサッパリ分かりません(´・ω・`)
ちょっと、調べてみます<(_ _)>ありがとうございました。
0249デフォルトの名無しさん
2006/11/11(土) 19:20:05htppsの操作なんて出来るの?
0250デフォルトの名無しさん
2006/11/11(土) 19:23:220251デフォルトの名無しさん
2006/11/11(土) 19:33:100252デフォルトの名無しさん
2006/11/11(土) 19:34:50★★★自動売買ソフトを作ろうぜ★★★ Part12
http://live19.2ch.net/test/read.cgi/stock/1159246240/
0253デフォルトの名無しさん
2006/11/11(土) 19:37:41>すいません、えと、グーグルは例に出しただけで、実際は株取引の画面で、色々入力して、
>自動注文みたいなことをしようと考えています。
これとグーぐるの画面出すのと何が共通してるっての?
どういう意味で例だしたのかさっぱりわからん
0254デフォルトの名無しさん
2006/11/11(土) 19:44:29俺もオートログインとか自動発注とかしてたからわかる。
ラジオボタンとかチェックするのなかなか分からなかったけどな。
0255デフォルトの名無しさん
2006/11/11(土) 19:45:57文字入力して特定の場所をクリックしてみたいな。
0256デフォルトの名無しさん
2006/11/11(土) 19:57:02IEでのweb操作はあまり需要が無いので書籍等は出ていないと思います。
webbrowserはVS2005から追加されました。
その前まではAxWebBrowserかなんかで英文ドキュメント見ながらやるしかありませんでした。
いまは日本語ヘルプがあるのでそこから地道にやってみてください。
参考になるかどうかわかりませんがおすすめ。
ttp://peace.poosan.net/investor/workshop/order/
0257デフォルトの名無しさん
2006/11/11(土) 19:59:100258デフォルトの名無しさん
2006/11/11(土) 20:10:45ちょっと文法が違うだけで
使うクラスライブラリはほぼ同じ(ただしVBにはMyがあるけど)
好みの問題じゃね。
0259デフォルトの名無しさん
2006/11/11(土) 20:22:44一応c#のexpressedhitionでアドレス帳でも作ってもらおうかと思ってるんですが、
その際のDBも簡易的なものでできたらなと思っています。
,mdfファイルを作るまでをできたのですが
こいつにアクセスしてデータを読み書きしてみたいのですが
どのようにすればいいでしょうか?
感じ的にはログイン認証みたいなことをしたいなぁと思っているのですが。
0260デフォルトの名無しさん
2006/11/11(土) 20:38:38本を買えの一言です。
0262デフォルトの名無しさん
2006/11/11(土) 20:48:42こういう一言書くぐらいなら単純にフル無視したらいいのにとたまに思う。
0263デフォルトの名無しさん
2006/11/11(土) 20:48:550264デフォルトの名無しさん
2006/11/11(土) 20:57:00ADO.NET、接続文字列、SqlConnection、DataSetあたりでぐぐれ。
0265デフォルトの名無しさん
2006/11/11(土) 20:59:05友達w?
正直に言えよw
0266デフォルトの名無しさん
2006/11/11(土) 22:02:48あ、そっち?
大丈夫ごめんごめん。
会社ではOraleDBだったり今はSQLServerだったり
DBサーバにつないで、dataadapter使ってデータのやり取りやってるんだが、
単純にそういう環境なしのローカル環境だけの簡単なもの、っていうと
実務では殆ど使わないので実はあまりなじみなくってね。
初心者用の本でもありゃわかるんだろうが、そういう本はないw
結局普通にDataTAbleAdapter使ってデータのやりとりやることにしたよ。
DataSetに入れてしまえばあとはすぐだし。
その辺は「おまじない」とか言って適当にごまかしとくわw
最初から色々教えてやると頭パンクするかもしれんから。
0267デフォルトの名無しさん
2006/11/11(土) 22:09:32ローカルにsqlserverたてれたらそら簡単だが。。
ExpressEditionでできることって限られてるじゃん?
SqlServerもクライアントの機能しかないし。
てなると、完全にローカルだけで動かす環境。
Accessも手元にないし、どうしたもんかなぁ、と思ってたんだが。
ローカルデータ用の空のデータベースっつーのが項目として追加できたんで、
それ使ってなんとかやってみたよ。
ローカルデータ用の空のデータベースもSqlConnectionクラス使って
普通にコネクション設定したら使えるのかな?
コネクションはローカル用空DB(.mdfファイル)も
普通に別のDBサーバのDBも書き方同じなんだろうか。
ローカルのDB使ってプログラムなんか普通作らないからなぁ。
0268デフォルトの名無しさん
2006/11/11(土) 22:16:13C#でCheckboxの値を変えられなくする(灰色表示にする)方法ってenable=falseにする以外はありませんか?
0269デフォルトの名無しさん
2006/11/11(土) 22:23:230270デフォルトの名無しさん
2006/11/11(土) 22:27:35ほんと、なんで?って感じ
なぜEnabled = falseが嫌いなの?
方法ってたら、SendMessageでメッセージ送るとか?
0271268
2006/11/11(土) 22:28:59postbackしたときにfalseにしたものはrequest.formに含まれなくなったようなのです。それはこれが原因ではないのでしょうか?
0272デフォルトの名無しさん
2006/11/11(土) 23:27:24ロックってなかったっけ?
灰色にしたくない、て言うのだと良くある質問かなと思ったけど(文字が見えにくくなるとか)
0273デフォルトの名無しさん
2006/11/11(土) 23:34:36最近こんなやつばっか。
0274268
2006/11/12(日) 00:31:56ふむぅ、なんかできないみたいなので他の手段をとってみます。ありがとうございました。
0275デフォルトの名無しさん
2006/11/12(日) 00:48:23どうやったら保存されるの?
0276デフォルトの名無しさん
2006/11/12(日) 01:10:53トランザクション実行してるの?
0277デフォルトの名無しさん
2006/11/12(日) 01:12:41DatabaseDataSet ds = new DatabaseDataSet();
DatabaseDataSet.ADRESSDataTable dt = new DatabaseDataSet.ADRESSDataTable();
//データ追加
DatabaseDataSet.ADRESSRow row = ds.ADRESS.NewADRESSRow();
row.NAME = this.txtName.Text;
row.ARESS1 = this.txtAdress1.Text;
row.ADRESS2 = this.txtAdress2.Text;
row.BIKO = this.txtBiko.Text;
row.TEL = this.txtTell.Text;
ds.ADRESS.AddADRESSRow(row);
uadpter.Update(ds.ADRESS);
としてみたんですが、データが反映されません。
なんか最後のところがへんちくりんなんでしょうかね?
0278デフォルトの名無しさん
2006/11/12(日) 01:35:590279デフォルトの名無しさん
2006/11/12(日) 01:36:570280デフォルトの名無しさん
2006/11/12(日) 04:53:03なんかbinのdebugの下にデータベースのコピーできてるやんけ!
一生懸命ちゃうとこみとったわい。
デバッグモードのときはこっちのDBに書き込まれるとかそゆこと?どうなってんだ。
0281211
2006/11/12(日) 09:45:17実は違うみたいれつよ(藁
後学のためにきみたちのもおいらが調べた結果をまとめたので教えてあげよう
「Windowsアプリケーションで方向キーなどの特殊キーを処理するには?」 by 149
1.Buttonコントロールで方向キーが処理できない理由
Buttonコントロールでの方向キーの入力が、通常のKeyDownなどのキー・イベントで処理できないということは、
「方向キーが通常の入力キー(以降、普通入力キー)とは異なる」ことを意味する。Buttonコントロールの方向キーは
「プリプロセス(=前処理)を必要とする特殊な入力キー」(以降、特殊入力キー)である。
これは、すでにプリプロセスで何らかの処理を実行済みなので、さらにその後でキー処理を行う必要がないからだ。
例えば、Buttonコントロールで[↓]キーを押すと、Windowsアプリケーションはプリプロセス工程で自動的にフォーカス移動の
処理を実行する。よって、その後でKeyDownイベントを処理する必要はなくなる。
しかし、実際のアプリケーションでは、そのような通常のアプリケーション動作をカスタマイズしたい場合がある。例えば、
通常のアプリケーション動作では[↓]キーでフォーカス移動すると、そのフォーカス移動先がGroupBoxコントロールなどにより
設定されたグループ内でループするようになっているが、それをカスタマイズして、グループを越えてフォーカス移動するように
したい場合などが挙げられる。
a) プリプロセス工程における処理をカスタマイズする
b) 特殊入力キーを普通入力キーに変更する
ここではa)について解説する。
2.プリプロセス工程における処理をカスタマイズする
プリプロセスをカスタマイズするには、フォームのProcessDialogKeyメソッドをオーバーライドして、そのメソッド内でキー処理を
行えばよい。もちろんフォームではなく、コントロールのProcessDialogKeyメソッドをオーバーライドしても同様の結果が得られる。
次のコードは、実際に、フォームのProcessDialogKeyメソッドをオーバーライドした例である。この例では、方向キーでグループを
越えたフォーカス移動を行うように、処理をカスタマイズしている。
続く
0282211
2006/11/12(日) 09:46:29switch (keyData) {
case Keys.Down:
case Keys.Right:
this.SelectNextControl(
this.ActiveControl, true, true, true, true);
break;
case Keys.Up:
case Keys.Left:
this.SelectNextControl(
this.ActiveControl, false, true, true, true);
break;
default:
return base.ProcessDialogKey(keyData);
break;
}
return true;
}
ProcessDialogKeyメソッドをオーバーライドしたサンプル・プログラム(C#)
なお、ProcessDialogKeyメソッドはコントロール→フォームの順で呼ばれる。ProcessDialogKeyメソッドでは、
独自にキーを処理した場合には、それを示すために戻り値でTrueを返すようにする。
また、コントロールのProcessDialogKeyメソッドは、コントロールのPreProcessMessageメソッドから暗黙的に
呼び出される。そのため、プリプロセス工程の最初のメソッドであるコントロールのPreProcessMessageメソッドを
オーバーライドしても、同様にプリプロセス工程でのキー処理をカスタマイズできる。しかし、コントロールの
ProcessDialogKeyメソッドやPreProcessMessageメソッドをオーバーライドする方法を採用する場合、当然、
コントロールの継承が必要になる。
-------------------------------------------------------------
以上だ。いかにもC#のことなら何でも知ってる見たいなツラして回答者ぶるなら
少しは勉強しろよな(禿藁
0283デフォルトの名無しさん
2006/11/12(日) 09:58:150284デフォルトの名無しさん
2006/11/12(日) 09:59:240285デフォルトの名無しさん
2006/11/12(日) 10:09:320286デフォルトの名無しさん
2006/11/12(日) 10:15:19もっと簡潔に
0287デフォルトの名無しさん
2006/11/12(日) 10:21:39「コントロール上でのkeydownイベントが発生しない」にすりかわってるんだろう。
あ、釣られたのか。
0288デフォルトの名無しさん
2006/11/12(日) 10:47:27実は違うみたいれつよ(藁
後学のためにきみたちのもおいらが調べた結果をまとめたので教えてあげよう
http://www.atmarkit.co.jp/fdotnet/dotnettips/241windlgkey/windlgkey.html
以上だ。いかにもC#のことなら何でも知ってる見たいなツラして回答者ぶるなら
少しは勉強しろよな(禿藁
-------------------------------------------------------------
簡潔にしてみました
0289デフォルトの名無しさん
2006/11/12(日) 11:17:26特殊Keyもしらないのでちゅか・・・?
0290デフォルトの名無しさん
2006/11/12(日) 11:20:00君みたいにエスパーじゃないからね
0291デフォルトの名無しさん
2006/11/12(日) 12:19:21>>211
0292デフォルトの名無しさん
2006/11/12(日) 13:51:160293デフォルトの名無しさん
2006/11/12(日) 13:55:520294デフォルトの名無しさん
2006/11/12(日) 14:09:57先を見ることができない>>292は脱落者
vista(=見晴らし、見通し)とヒントまで与えてくれてるのに気づかないとはね・・・
┐(´ー`)┌
0295デフォルトの名無しさん
2006/11/12(日) 14:21:34┐(´ー`)┌ ← このAAが禿しくムカツクんだが。
0296デフォルトの名無しさん
2006/11/12(日) 14:22:170297デフォルトの名無しさん
2006/11/12(日) 14:27:30がんばって磨きますw
0298デフォルトの名無しさん
2006/11/12(日) 14:46:090299デフォルトの名無しさん
2006/11/12(日) 15:26:07EXCELのマクロより遅いなんて話は聞いたことが無いよ。
0300デフォルトの名無しさん
2006/11/12(日) 15:28:300301デフォルトの名無しさん
2006/11/12(日) 15:59:00>>296がいい事言ってる
0302デフォルトの名無しさん
2006/11/12(日) 16:10:31'hogehoge.Index' を ref または out として渡すことはできません。
コンパイルエラーでこういうのが出てしまいます。
元のコードは、こんな感じです。
↓
class hogebase
{
public int Index = 0
}
class hogeInherit : hogebase
{
private void Close()
{
base.Index = 100;
}
}
void main()
{
hogebase hb = new HogeInherit();
Console.WriteLine('{0}',
}
0303デフォルトの名無しさん
2006/11/12(日) 16:11:160304デフォルトの名無しさん
2006/11/12(日) 16:13:560305デフォルトの名無しさん
2006/11/12(日) 16:15:18void main()
{
hogebase hb = new HogeInherit();
Console.WriteLine('{0}', hogeInherit.Index.ToString());
}
これの間違いです。
0306デフォルトの名無しさん
2006/11/12(日) 16:31:29おまいにはこっちのほうがお似合い
ふらっとC♯, C#(初心者用) Part10
http://pc8.2ch.net/test/read.cgi/tech/1162193452/
0307デフォルトの名無しさん
2006/11/12(日) 16:35:05向こうに行きます。
0308デフォルトの名無しさん
2006/11/12(日) 20:35:50デバッグモードだとEXCELにも負けるのか・・・
┐(´ー`)┌
0309デフォルトの名無しさん
2006/11/12(日) 20:38:360310デフォルトの名無しさん
2006/11/12(日) 20:45:03失せろっていってんだよ。
何度も同じことを言わせんなよ。
カスが。
0311デフォルトの名無しさん
2006/11/12(日) 20:49:230312デフォルトの名無しさん
2006/11/12(日) 21:01:21┐(´ー`)┌
┐(´ー`)┌
┐(´ー`)┌
┐(´ー`)┌
┐(´ー`)┌
0313デフォルトの名無しさん
2006/11/12(日) 21:13:400314デフォルトの名無しさん
2006/11/12(日) 21:16:030315デフォルトの名無しさん
2006/11/12(日) 21:30:160316デフォルトの名無しさん
2006/11/12(日) 21:34:300317デフォルトの名無しさん
2006/11/12(日) 22:12:490318デフォルトの名無しさん
2006/11/12(日) 22:20:38┐(´ー`)┌
0319デフォルトの名無しさん
2006/11/12(日) 22:26:01ほらw
うじゃうじゃと湧いてくるよw
0320デフォルトの名無しさん
2006/11/12(日) 22:35:430321デフォルトの名無しさん
2006/11/12(日) 22:37:17┐(´ー`)┌
┐(´ー`)┌
┐(´ー`)┌
┐(´ー`)┌
┐(´ー`)┌
┐(´ー`)┌
┐(´ー`)┌
0322デフォルトの名無しさん
2006/11/12(日) 22:41:440323ぼるじょあ ◆yBEncckFOU
2006/11/12(日) 23:26:500324デフォルトの名無しさん
2006/11/13(月) 00:17:08いいのでしょうか?
Cでいうmemcpyみたいなことをしたいのです。
0325デフォルトの名無しさん
2006/11/13(月) 00:31:24クラス名な
0326デフォルトの名無しさん
2006/11/13(月) 00:44:59ありがとうございました
0327デフォルトの名無しさん
2006/11/13(月) 13:25:55普通にif文を書いた方が見やすいようなきもするんですけど、どうなんでしょう。
0328デフォルトの名無しさん
2006/11/13(月) 13:40:16見やすく書いたほうが、読む方は読みやすい。自分が書いたコードでも時間が経つと
意外と悩んだりするもの。C言語でもできれば使わないほうがよいとされている。
C#でもそれは同じだろうと、俺は思っている。三項演算子の方が分かりやすいと判断
したところには使ってもいいんじゃないか?そういう意味ではgotoみたいなもの。
0329デフォルトの名無しさん
2006/11/13(月) 13:46:45事をしたいのですが、その方法で煮詰まっています。
public static bool IECallBack(IntPtr hwnd, IntPtr lParam)
{
StringBuilder sbClassName = new StringBuilder(256);
GetClassName(hwnd, sbClassName, sbClassName.Capacity);
if( sbClassName.ToString().StartsWith("IEFrame"))
{
Form1.al.Add(hwnd);
}
return true;
}
// EnumWindows でIECallBack へさせる。
EnumWindows(new EnumWindowCallBack(Form1.IECallBack), IntPtr.Zero);
こんな感じでWindowのハンドルは取得できるのですが、Window内のオブジェクトを取得する
方法が分からなくて困っています。
どなたかご教授していただけませんでしょうか?よろしくお願い致します。
0330デフォルトの名無しさん
2006/11/13(月) 13:50:52ようするに読みにくいのは3項演算子のせいじゃない。
0331327
2006/11/13(月) 15:53:16if文で何行も使うのはどうかなと思ってました。
if (〜) { 〜 } else { 〜 }
かっこの中が1行で済むときはこんな感じで書いていたのですが、
一般的に3項演算子のほうを使うのかなと思って質問しました。
あまり参考書などで使ってるのを見かけないので
一般的に使われていないのかなと思って質問しました。
少し使ってみようと思います。
0332デフォルトの名無しさん
2006/11/13(月) 17:22:36COMのMicrosoft Internet ControlsとMicrosoft HTML Object Libraryを参照
using SHDocVw;
using mshtml;
ShellWindows sw = new ShellWindows();
foreach (InternetExplorer ie in sw)
{
if (System.IO.Path.GetFileName(ie.FullName) == "IEXPLORE.EXE")
{
IHTMLDocument2 htmlDoc = (IHTMLDocument2)ie.Document;
Console.WriteLine(htmlDoc.url);
}
}
0333デフォルトの名無しさん
2006/11/13(月) 18:03:11正にこれです。COMオブジェクト関連の操作に関してはVBの資料は多いのですが
C#に関する資料があまりなくて苦労していました。
本当に有難う御座います。
追加で質問なのですが、IEのウィンドウでさらにアクティブになっているウィンドウを取得したいのですが、
Shellwindowからhwndを抜き出すことは簡単に出来るものなのでしょうか?
0335デフォルトの名無しさん
2006/11/13(月) 21:07:200336335
2006/11/13(月) 21:11:54↓みたいなページもあったのですが、ページが古くて、重要なウプデータがなかったりで・・・(´・ω・`)
ttp://thespoke.net/forums/950208/ShowPost.aspx
0337デフォルトの名無しさん
2006/11/13(月) 21:14:50こんなんじゃだめなん?
ttp://support.microsoft.com/kb/139098/ja
0338デフォルトの名無しさん
2006/11/13(月) 21:47:17おおお、ありがとうございます!!
0339デフォルトの名無しさん
2006/11/14(火) 14:44:050340デフォルトの名無しさん
2006/11/14(火) 18:21:51C#ではどうすりゃいいの?
他のアプリケーションのウィンドウに送られるWM_ACTIVATEメッセージを
キャッチしたいんだけど…。これをやりたい場合はグローバルフックする
必要があるからC#じゃ無理…だよね?
やはりTimerイベントを1秒間隔くらいで発生させて、その中で
GetForegroundWindowなどを呼び出してチェックする方法しかないのかな。
0341デフォルトの名無しさん
2006/11/14(火) 18:35:30ttp://msdn2.microsoft.com/ja-jp/library/843s5s5x(VS.80).aspx
0342340
2006/11/14(火) 22:19:36.NETアプリにコマンドライン引数などで通知するなんてこともできるかな。
スマートじゃないけど。
うーん。いい方法が思いつかない。素直に全部C言語で作ったほうが早いかな…。
0343デフォルトの名無しさん
2006/11/14(火) 22:23:09GUI を C# で作りたいのならその部分だけ別プロセスで。
0344デフォルトの名無しさん
2006/11/14(火) 22:49:460345デフォルトの名無しさん
2006/11/14(火) 23:02:560346デフォルトの名無しさん
2006/11/15(水) 00:26:36オブジェクトそのものが占めるメモリを解放するなら参照を切ってからSystem.GC.Collect()する。
特定のオブジェクトのメモリ領域を解放するのは不可能だしそもそも意味がない。
0347デフォルトの名無しさん
2006/11/15(水) 00:41:39IntPtr ptr = ...;
ptr = (IntPtr)(ptr.ToIntXX() + 3);
などと書くとアーキテクチャに依存して効率が落ちたりしそうな気がするのですが
どうなんでしょう。
0348デフォルトの名無しさん
2006/11/15(水) 00:44:300349デフォルトの名無しさん
2006/11/15(水) 00:52:40そんなことするくらいなら全部ネイティブで書いたほうが早い
Cだと面倒なんでC++/MFCならC#を使うより工数は少ないはず
0350デフォルトの名無しさん
2006/11/15(水) 00:57:27その質問に答えられるのは MS の中の人だけだろう。
MSDN フォーラムででも聞いてくれ。
0352デフォルトの名無しさん
2006/11/15(水) 01:36:58Listメンバを編集させないようにできないですか?
ReadOnly をつけても編集できてしまいます
class MyClass{
private List<string> myList;
[ReadOnly(true)]
public List<string> MyList{
get{return myList;}
set{list = myList;}
}
}
0353デフォルトの名無しさん
2006/11/15(水) 10:02:58プロパティとしては、setterを用意したいけど、
デザイナー上からは、編集できないようにしたいってこと?
0354デフォルトの名無しさん
2006/11/15(水) 10:22:50「関連付けたい拡張子のファイルを右クリック」
→「プログラムから開く」
→「プログラムの選択」
で作成したアプリケーションを選択したら、アプリケーション名が空になってしまいました。
これって何が悪いのでしょうか?
0355デフォルトの名無しさん
2006/11/15(水) 11:58:280356デフォルトの名無しさん
2006/11/15(水) 13:42:04Argじゃなくてプロパティにあった気がする
0357デフォルトの名無しさん
2006/11/15(水) 19:04:48文字型の1が0x31のはずなのになんかばかでかい変な値だった
どうやればいいか教えてくれ
0358デフォルトの名無しさん
2006/11/15(水) 19:05:400359デフォルトの名無しさん
2006/11/15(水) 19:21:170360デフォルトの名無しさん
2006/11/15(水) 19:21:270361デフォルトの名無しさん
2006/11/15(水) 19:44:08それじゃ
0362デフォルトの名無しさん
2006/11/15(水) 20:15:220363デフォルトの名無しさん
2006/11/15(水) 21:39:370364デフォルトの名無しさん
2006/11/15(水) 21:41:410365デフォルトの名無しさん
2006/11/15(水) 21:54:49すまん。
もう、君が何を言ってるのかわからないよ。
0366デフォルトの名無しさん
2006/11/15(水) 22:11:15多分 AssemblyTitle 属性の値が使われると想う。
AssemblyInfo.cs 見てみ。
あとキャッシュされてる可能性がある。
前にそう言うやり取り見たな。あれは XP のタスクバーのグループ化の話だったか。
0367デフォルトの名無しさん
2006/11/15(水) 22:25:32何となく理解はできた。
それすらもわからないなら君も早く引退した方がいいよ^^
0368デフォルトの名無しさん
2006/11/15(水) 22:37:27intみたいな数字型に変換するのは無理…というかしちゃダメじゃないの?
Encoder使って、byteに変換すれば可能だけど
0369デフォルトの名無しさん
2006/11/15(水) 22:42:36(゚д゚)ハァ?(゚д゚)ハァ?(゚д゚)ハァ?(゚д゚)ハァ?
0370デフォルトの名無しさん
2006/11/15(水) 22:58:19CharもInt32もただの構造体だがその辺は適当にConvertibleになってる。
つーか、君はちょっとくらい調べてから発言しようとは思わんのかね。
0371デフォルトの名無しさん
2006/11/15(水) 22:59:220372デフォルトの名無しさん
2006/11/15(水) 23:13:23char->intなら暗黙的にキャストできるだろ。
0373デフォルトの名無しさん
2006/11/15(水) 23:21:470374デフォルトの名無しさん
2006/11/15(水) 23:25:340375デフォルトの名無しさん
2006/11/15(水) 23:26:060376デフォルトの名無しさん
2006/11/17(金) 17:55:33左に移動する処理を行いたいのですが、下記のイベント
にブレークポイントをおいても、イベントがコールされません。
EnableはTrueになっています。
何か設定に不備があるのでしょうか?
dataGrid1_KeyPress
dataGrid1_KeyUp
dataGrid1_KeyDown
環境 VS2003 Win2003
0377デフォルトの名無しさん
2006/11/17(金) 18:59:14仕様です。
0378デフォルトの名無しさん
2006/11/17(金) 19:19:55一度終了したThreadに対して普通に再びStart()メソッドを呼ぶとThreadStateExceptionが飛んできます…。
0379デフォルトの名無しさん
2006/11/17(金) 19:31:480380デフォルトの名無しさん
2006/11/17(金) 19:44:500381デフォルトの名無しさん
2006/11/17(金) 19:46:370382デフォルトの名無しさん
2006/11/17(金) 19:49:53用途にもよるがBackgroundWorkerやその他のThreadPoolを使いなされ。
0383デフォルトの名無しさん
2006/11/17(金) 19:50:07while ( ! 死に時?) {
合図があるまで待つ;
お仕事;
}
0385デフォルトの名無しさん
2006/11/17(金) 19:54:130386デフォルトの名無しさん
2006/11/17(金) 20:00:050387デフォルトの名無しさん
2006/11/17(金) 20:01:38CGを描写するプログラムを書いていて、
その画面を動画ファイルとして出力する機能をつけたいと考えています。
動画を作るライブラリはVideo For Windowsなど色々あるようですが、
何を使うのが一番最適でしょうか?
0388デフォルトの名無しさん
2006/11/17(金) 20:43:23おい、死に時らしいぜ
0389デフォルトの名無しさん
2006/11/17(金) 23:48:07GCが後ろで待ってるおw
0390デフォルトの名無しさん
2006/11/17(金) 23:57:22System.GC.Collect();
こうですか!!わかりません><
0391デフォルトの名無しさん
2006/11/18(土) 00:30:24持たせた場合にも参照地にnullをセットすれば勝手にGCが効くんですか?
0392デフォルトの名無しさん
2006/11/18(土) 00:34:52他から参照されてなければ刈ってくれるでしょ。
尤も実際に目で確かめる術はないけど。
0393デフォルトの名無しさん
2006/11/18(土) 00:43:04> 尤も実際に目で確かめる術はないけど。
つ WeakReference
0394デフォルトの名無しさん
2006/11/18(土) 03:48:05意味無いから、やめとけw
消えるべき時に、勝手に消える。
0395デフォルトの名無しさん
2006/11/18(土) 22:40:53BitmapのLockbitsメソッドでゲットしたイメージメモリに対して
Cで記述したネイティブコードからイメージ操作することは可能でしょうか?
0396デフォルトの名無しさん
2006/11/18(土) 22:49:180397デフォルトの名無しさん
2006/11/18(土) 23:36:100398395
2006/11/18(土) 23:36:59今試したらできました!
0399デフォルトの名無しさん
2006/11/19(日) 10:12:40しているのですができません。
public List<string>でできると思ったのですが。
どうすればいいのでしょうか。どなたかご教示ください。
0400デフォルトの名無しさん
2006/11/19(日) 10:37:53フォームクラスForm1のインスタンスをform1とすると
form1.list
staticなら
Form1.list
0401395
2006/11/19(日) 12:54:48私のやりたかったことは、画像のエフェクト処理をCで書いたDLLに任せることだったんだけど、
試しに、Cで作ったエフェクトルーチンをC#に移植しても、スピードが変わらなかった。
C#って遅いと思ってたけど、ほぼネイティブ並のスピード出るのね・・・。
JITコンパイラはきちんとSSE/SSE2命令使ってくれるし。
すみません、チラ裏でした。
0402デフォルトの名無しさん
2006/11/19(日) 13:04:230403395
2006/11/19(日) 13:12:49MSX時代から思考が止まってます。
0404デフォルトの名無しさん
2006/11/19(日) 13:50:150405デフォルトの名無しさん
2006/11/19(日) 14:23:19まあ、遅いのは初回起動のみだし。
そういや、今、自宅で新しく買った PC に Vista RC2 入れてるんだけど、
.NET アプリの起動がむちゃくちゃ早い(ほんとに一瞬)んだけど。
これは、PC のスペックいいからなのか、
Vista では CLR の最適化かかってるからなのか、どっちなんだろう?
0406デフォルトの名無しさん
2006/11/19(日) 14:26:000407デフォルトの名無しさん
2006/11/19(日) 14:36:180408デフォルトの名無しさん
2006/11/19(日) 14:58:53うちでは大差ないよ。
たぶんスペックのせいかと
0409デフォルトの名無しさん
2006/11/19(日) 15:24:10XPはログオンに時間がかかるがVistaは確かにかなり速い。
0410デフォルトの名無しさん
2006/11/19(日) 15:38:06そういえば、Vista対応のために、XPからの変更点のまとめってありませんか?
システムフォルダがお引っ越しor内部で勝手にリンクするというのは聞いたんですが。
0411デフォルトの名無しさん
2006/11/19(日) 15:38:583年後位には主流になるのかねぇ・・・
0412デフォルトの名無しさん
2006/11/19(日) 16:26:050413デフォルトの名無しさん
2006/11/19(日) 21:04:14SuperFetchが効いてるんじゃね?重量級のアプリにはかなり
効くようだ。VSとか。
メモリたくさんつまないと駄目だけど。
0414405
2006/11/19(日) 21:23:29メモリ2GB積んでる。
無駄にオーバースペックなもの買ってみた。
要するに、JIT が早いのは単にプロセッサ性能、
動作が速いのは .NET Framework のコンポーネントが
SuperFetch であらかじめメモリ上にロードされてるから
ってことでいいのかな?
0415デフォルトの名無しさん
2006/11/19(日) 21:48:04なんだかね
0416デフォルトの名無しさん
2006/11/19(日) 23:28:29パソコンを使っている人の大半はあなたみたいなヲタクではありません。
大半の人に使っていただくためには屁理屈こねて遅くないんだよなんていってて・・・
0417デフォルトの名無しさん
2006/11/19(日) 23:33:11415じゃないけど、開発者する人間なら…
0418417
2006/11/19(日) 23:33:49○ 開発する人間
0419デフォルトの名無しさん
2006/11/19(日) 23:36:370420デフォルトの名無しさん
2006/11/19(日) 23:57:280421デフォルトの名無しさん
2006/11/20(月) 00:13:350422395
2006/11/20(月) 08:42:22pentium4 1.7GHz
C#(JIT):16593.75ms
C(SSE2):19250ms
C(SSE):15031.25ms
C(FPU):20125ms
athlon64 2.4GHz
C#(JIT):4296.875ms
C(SSE2):3640.625ms
C(SSE):3796.875ms
C(FPU):6859.375ms
0423デフォルトの名無しさん
2006/11/20(月) 10:33:07もう遅いかもしれないけど、そのセルを編集中かどうかで変わってくる。
編集中はセルのEditingControlがイベントを受け取るので、
そっちで処理しないといけない。
0424デフォルトの名無しさん
2006/11/20(月) 10:43:03普通のプログラマなら、遅いのが、
・不適切なアルゴリズム選択による遅さなのか (ex. クイックソートとバブルソート、ハッシュ探索と線形探索)
・設計のまずさに起因する遅さなのか
・他のサブシステムに起因する遅さなのか (ネットワーク、ウィンドウシステム、ディスクI/O、など)
・本当に、言語による遅さなのか
などを、経験なり、思考なり、プロファイラ使うなりして判断できるが、
ヘボプログラマ程、遅さの原因を考えることなく、言語のせいにする。
ましてや、自分のアルゴリズム選択ミスだなんて考えもしない。
最終的には、CPUが遅い、とかぬかしだす。
0425デフォルトの名無しさん
2006/11/20(月) 11:04:14Form上のLabelなどの表示を切り替える際に、一度Labelをクリアしてから値代入してるのですが
0426425
2006/11/20(月) 11:04:56途中で送信してしまいました・・・
0427デフォルトの名無しさん
2006/11/20(月) 11:08:420428デフォルトの名無しさん
2006/11/20(月) 11:12:000430デフォルトの名無しさん
2006/11/20(月) 13:42:37MsiGetFileHash のような関数を探しているのですが、見つけられなくて…(´д`;
0431デフォルトの名無しさん
2006/11/20(月) 15:03:37using System.Security.Cryptography;
かな?
0432デフォルトの名無しさん
2006/11/20(月) 15:04:57MD5CryptoServiceProviderにFileStreamくわせるか、かな?
0434デフォルトの名無しさん
2006/11/20(月) 21:39:41現在既に起動しているIE6.0のWindowハンドルを取得し、その上に線の描画を行おうとしています。
IEのWindowハンドルは取得できたのですが、そこから線を描画する方法が分かりません。
どの様な解決方法があるでしょうか?
どなたかご教授下さい。
0435デフォルトの名無しさん
2006/11/20(月) 21:52:13GetDC / CreatePen / SelectObject / LineTo 辺りか?
ただし 434 が望んでる結果になるとは限らない。
0436デフォルトの名無しさん
2006/11/20(月) 22:00:290437デフォルトの名無しさん
2006/11/20(月) 22:04:10>>436の言う通り、再描画が発生したら消えるね
0438デフォルトの名無しさん
2006/11/20(月) 22:36:26透明なFormWindowを作成してそこに線を描画し、IEのWindowの上に被せるという
方法も考えたんですけども。。。
>>435 さんと >>437 さんの方法は同じ方法なんでしょうか?
0439デフォルトの名無しさん
2006/11/20(月) 22:41:03private static extern IntPtr GetWindowDC( IntPtr handle );
[DllImport( "user32.dll" )]
private static extern IntPtr ReleaseDC( IntPtr hWnd, IntPtr hDC );
private void button1_Click( object sender, EventArgs e )
{
IntPtr hWnd = IEのウインドウハンドル
IntPtr hDC = GetWindowDC( hWnd );// またはGetDC
Graphics g = Graphics.FromHdc( hDC );
//好きに描画
g.FillRectangle( SystemBrushes.ControlText, new Rectangle( 0, 0, 100, 100 ) );
g.Dispose();
ReleaseDC( hWnd, hDC );
}
0440デフォルトの名無しさん
2006/11/20(月) 23:34:21>>439さん。有難う御座います。
この方法でIEのWindowに描画することが出来ました。
ここから線の再描画をする方法を採ってみようと思います。
0441デフォルトの名無しさん
2006/11/21(火) 00:00:330442デフォルトの名無しさん
2006/11/21(火) 00:13:410443デフォルトの名無しさん
2006/11/21(火) 00:35:50動画ファイルをDivXで圧縮するツールを
作りたいと思うのですが、.NET1.1 + C#では
どのようにしたらいいのか、どなたかヒントを
いただけませんか。
やりたいことは
複数のデジカメ動画を検索し
DivXで圧縮し
あるルールでファイル名を付け
タイムスタンプを変換元ファイルに合わせる
という感じです。
「DivXで圧縮し」以外の部分はできています。
よろしくお願いします。
0444デフォルトの名無しさん
2006/11/21(火) 00:51:420445デフォルトの名無しさん
2006/11/21(火) 01:07:45DirectShow叩けばいいんじゃないか?
0446デフォルトの名無しさん
2006/11/21(火) 08:09:55どっちがやりやすいか調べて試してみます。
ありがとうございました。
0447デフォルトの名無しさん
2006/11/21(火) 15:59:46更に、全てのリスト内の文字列の編集処理後、メインの関数を抜けたいと考えています。
リストにしているのは文字列の順番を記憶したいからです。
以下のThreadMethodように引数を持つスレッドを作成したい場合、
ThreadPoolを使うと良いそうなのですが、joinのような待ちの実現方法が分かりませんでした。
ThreadPoolでの待ちの実現について、また、ThreadPoolを使わなくてもできるよ。そもそもリストじゃなくてこうすれば効率が良い!など、アドバイスいただければと思います。
public bool MainMethod( .... )
{
ArrayList arrayList = new ArrayList(); // (仮)
// arrayListの個々の要素に文字列を生成する処理
WaitCallback waitCallback = new WaitCallback(ThreadMethod);// コールバック作成
// arrayList要素数分ループ
for(int i = 0;i < arrayList.Count; i++)
{
// スレッドでarrayListの文字を更に改変する処理
ThreadPool.QueueUserWorkItem(waitCallback, arrayList[i]);
}
// 待ち
return true;
}
public void ThreadMethod(object aStr)
{
// aStrの編集
}
0448デフォルトの名無しさん
2006/11/21(火) 16:35:54joinするんだったらメインスレッドがブロックされるから別スレッドにする意味がないのでは?
0449デフォルトの名無しさん
2006/11/21(火) 16:37:11だって終わるまで待ちたいんでしょ?
どうしてもスレッド使いたいなら、
Thread.Startで引数にArrayListそのものを渡してそっちでループしたら?
あと、.net2.0ならList<string>使った方がいいんじゃ?
0450デフォルトの名無しさん
2006/11/21(火) 17:04:55Jobについては下位Jobを持つことができ親Jobは下位Jobがすべて終わった場合にそのJobが終わったことになる。
0451デフォルトの名無しさん
2006/11/21(火) 17:27:510452450
2006/11/21(火) 21:48:540453デフォルトの名無しさん
2006/11/21(火) 21:54:07オナニーは別な所でやってください
0454450
2006/11/21(火) 22:02:40/⌒ヽ)
i三 ∪
○三 |
(/~∪
三三
三三
三三三
0455デフォルトの名無しさん
2006/11/21(火) 23:37:30通常右の部分は必要ないので左の部分がFormいっぱいに表示されていて
なんらかのトリガでFormの半分づつに左右が表示されるようにするには
どうしたらいいですか?
C#
0456デフォルトの名無しさん
2006/11/21(火) 23:41:060457デフォルトの名無しさん
2006/11/21(火) 23:41:170458デフォルトの名無しさん
2006/11/21(火) 23:42:500459デフォルトの名無しさん
2006/11/21(火) 23:45:30できるとききました
0460デフォルトの名無しさん
2006/11/21(火) 23:48:030461デフォルトの名無しさん
2006/11/21(火) 23:50:17やめとけ。えくりぷすなんて、java以外で役にややない。
0462デフォルトの名無しさん
2006/11/22(水) 00:06:33http://www.improve-technologies.com/alpha/esharp/
「eclipse csharp」で見つかったけど。
0463デフォルトの名無しさん
2006/11/22(水) 00:10:22まりが�d♪
>>461
使いやすいよp使えば使うほどはまるしするめみたいなもんだおp
0464デフォルトの名無しさん
2006/11/22(水) 02:38:47動けばイイ程度のものなら俺でも作れるが、数十万、数百万出して購入するユーザを
納得させるのは難しそう
0465デフォルトの名無しさん
2006/11/22(水) 07:32:22でも速度以外の面では遜色ないもの作れると思うよ。
0466デフォルトの名無しさん
2006/11/22(水) 07:57:360468デフォルトの名無しさん
2006/11/22(水) 08:20:0920年前のプログラマに
「C言語つか、コンパイラで吐き出したコードでファミコンのアクションゲームって作れるの?」
と質問するのと変わらん。
0469デフォルトの名無しさん
2006/11/22(水) 09:30:500470デフォルトの名無しさん
2006/11/22(水) 10:03:42BVEはvb.netで作られている
0471デフォルトの名無しさん
2006/11/22(水) 10:32:42いや、本当に速度が必要なところだけC++で書いて、P/Invokeすれば良いだけの
話だろ。
確かに、グラフィックス関係だと、テクスチャのような大量のデータをハンドリングしないといけないので、
それを、マネージドとアンマネージドの間で橋渡しするあたりで、工夫がいると思うけど。
0472447
2006/11/22(水) 12:15:13ありがとうございます。
リストの先頭から順番に処理するとかなり時間かかったので、
同時にスタートさせれば多少なり早く処理がおわるかなぁ。とか思ってました。
とりあえずスレッドは意味がないそうなのでやめて、Listでやってみます。
0473デフォルトの名無しさん
2006/11/22(水) 12:21:09とりあえずコンピュータの仕組みをもうちょっと理解したほうがいいと思う
0474デフォルトの名無しさん
2006/11/22(水) 15:20:08http://support.microsoft.com/kb/316384/
wordオートメーションを作ろうと思って、
これを実行しました。
そしたら、このようなエラーがでました。
http://kasarfa.com/modules/php/bbs/ubbs/image/1164176285.gif
このエラーを解決するのにいろいろぐぐりましたが、
まったくわからずに、途方にくれております。
よろしくお願い申し上げます。
0475474
2006/11/22(水) 15:36:25今日の朝は、ちゃんとオートメーションできてました。
今日の午後から上のバグがでるようになりました。
お昼には、パソコンにインストールされていた
ノートンアンチウィルスをアンインストールしました。
出来事といったら、このくらいです。
word2003を再インストールしてもなおりませんでした。
WindowsXPsp2
Word2003
0476デフォルトの名無しさん
2006/11/22(水) 15:51:140477デフォルトの名無しさん
2006/11/22(水) 16:34:130478デフォルトの名無しさん
2006/11/22(水) 16:36:480479デフォルトの名無しさん
2006/11/22(水) 16:40:000480デフォルトの名無しさん
2006/11/22(水) 16:42:230481474
2006/11/22(水) 16:44:02レスありがとう。
確かにwordへの参照をやり直せばうまくいくような気がしたので、
上で投稿する前に、ご指摘のことは既に試しておりました。
そして、結果は芳しくありませんでした。
0482デフォルトの名無しさん
2006/11/22(水) 16:44:42>>479
0483デフォルトの名無しさん
2006/11/22(水) 19:54:190484デフォルトの名無しさん
2006/11/22(水) 20:00:100485デフォルトの名無しさん
2006/11/22(水) 21:00:510486デフォルトの名無しさん
2006/11/22(水) 21:29:330487デフォルトの名無しさん
2006/11/22(水) 21:39:42GetDCしてデバコンに自前で描画すればイイだけのことでは?
0488デフォルトの名無しさん
2006/11/22(水) 21:55:17ListViewGroup ってコントロールじゃないし
ListViewのオーナー泥でアイテムのグループみて自前でやる。
0489デフォルトの名無しさん
2006/11/22(水) 22:04:150490デフォルトの名無しさん
2006/11/23(木) 10:39:26DesignMode プロパティが true にならない現象がおきます
[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.All)]
public class ToolStripMenuItemDerived : ToolStripMenuItem{
public ToolStripMenuItemDerived() : base(){
base.Text = "aaa";
if (base.DesignMode) return;
base.Text = "bbb";
}
}
上記の ToolStripMenuItemDerived をデザイナで貼り付けたときには
aaa と表示されずに bbb と表示されてしまいます
仕方がないので
base.Text = "aaa";
#if ! DEBUG
base.Text = "bbb";
#endif
としデザイナを使うときはコンフィギュレーションを Debug にしています
もっとスマートな方法はないものでしょうか
0491デフォルトの名無しさん
2006/11/23(木) 10:40:36ワロタw
0492デフォルトの名無しさん
2006/11/23(木) 10:49:01そんなコーディングがまず必要なのかが(ry
ttp://support.microsoft.com/kb/839202/ja
0493デフォルトの名無しさん
2006/11/23(木) 13:14:10LicenseManager.CurrentContext.UsageMode == LicenseUsageMode.Designtimeとかでうまくいかない?
0494デフォルトの名無しさん
2006/11/24(金) 12:11:230495デフォルトの名無しさん
2006/11/24(金) 12:38:220496デフォルトの名無しさん
2006/11/24(金) 12:58:310497デフォルトの名無しさん
2006/11/24(金) 14:32:01// TCPリスナーを生成する
_tcpListener = new TcpListener(ip, portnb);
// TCPリスナーを開く
_tcpListener.Start();
// 保留中の接続要求があるかどうかを確認する
if (_tcpListener.Pending() == true)
{
// クライアントからの接続要求を受け入れる
_tcpClient = _tcpListener.AcceptTcpClient();
// KeepAliveの設定
_tcpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, 30000);
}
上記のようにサーバー側でクライアントの接続を受け入れて
TCPにて伝文の送受信を行っています。
中継装置(HUB)を経由して接続している時、クライアントのLANケーブル
が抜けた(切断)されたことを検出する為、KeepAliveの機能を用いる
方向で実装していますが・・・検出できませんでした。
おそらくKeepAliveの使い方が悪いと思うのですが・・・どなたかご存知ないでしょうか?
0498デフォルトの名無しさん
2006/11/24(金) 15:19:150499デフォルトの名無しさん
2006/11/24(金) 18:24:14byte[] inBuffer = new byte[12];
BitConverter.GetBytes(1).CopyTo(inBuffer, 0); // スイッチ
BitConverter.GetBytes(30000).CopyTo(inBuffer, 4); // Interval
_tcpClient.Client.IOControl(IOControlCode.KeepAliveValues, inBuffer, null);
上記の方法で30秒後に切断を検出できました。
DOS窓のnetstatでもidolになりました。
0500デフォルトの名無しさん
2006/11/24(金) 18:43:360501デフォルトの名無しさん
2006/11/24(金) 18:48:33typeof(List<>).FullName: System.Collections.Generic.List`1
typeof(Dictionary<,>).FullName: System.Collections.Generic.Dictionary`2
0502デフォルトの名無しさん
2006/11/24(金) 19:20:54DataRowのインスタンスが2つあって、これらが等しいか(各列の値がすべて等しいか)
を調べるにはどうすればよいのでしょう?
DataTableに、DataRowインスタンスを追加するときに、同じ内容のものがあった場合は、
追加しない、という処理を行おうと思ってます。
0503デフォルトの名無しさん
2006/11/24(金) 20:34:430504502
2006/11/24(金) 22:02:49とりあえず、Rows[n].ItemArrayを一個一個しらべて
すべて同じだったら等しい
という方法ではできましたけど、
ItemArrayを配列として比較するとダメなんですよね。
RowとRowのオブジェクト同士を比較できる便利な関数とかってないものか。
0505デフォルトの名無しさん
2006/11/24(金) 22:13:120506デフォルトの名無しさん
2006/11/24(金) 22:15:300507デフォルトの名無しさん
2006/11/24(金) 22:25:35その、「RowとRowのオブジェクト同士を比較できる便利な関数」というのも
結局同じことをするんじゃね?
それとも、Cellの内容が変わるたびに中身を構造体にでも突っ込んで
隠しCellにGetHashCodeでハッシュもっておくとかしたら?
面倒くさそうだけど。
0508デフォルトの名無しさん
2006/11/24(金) 23:02:11Rows.AddしたときにConstraintExceptionをcatchするとか
0509デフォルトの名無しさん
2006/11/24(金) 23:11:49質問なのですが、VSで言うプロパティウインドウのようなものを作ることが出来る
コントロールなどは既にあるのでしょうか?
今やりたい事は、2列のテーブルで各プロパティを入力するんですが、
行によってコンボボックスに設定出来るようにしたいんです。
やはり自作するしかないのでしょうか?
0510デフォルトの名無しさん
2006/11/24(金) 23:13:42System.Windows.Forms.PropertyGrid
FAQ中のFAQ。適当にググって
0511デフォルトの名無しさん
2006/11/24(金) 23:17:39PGが起動してるときだけスクリーンセーバが動かないPGを作ってるんだけど
リンク先のやり方だとパスワード保護されてるとうまく動かないんです
パスワード保護の時って発行されてるメッセージって違うみたいですが
どうすればフック出来るか知りたいんですが
0512デフォルトの名無しさん
2006/11/24(金) 23:29:590513デフォルトの名無しさん
2006/11/24(金) 23:35:15レジストリの値書き換えてシェルに更新メッセージ送って、
終了時にレジストリ戻す……という荒技をどこかで見た希ガス
0514デフォルトの名無しさん
2006/11/24(金) 23:37:030515デフォルトの名無しさん
2006/11/24(金) 23:39:010516デフォルトの名無しさん
2006/11/24(金) 23:45:440517デフォルトの名無しさん
2006/11/24(金) 23:49:100518デフォルトの名無しさん
2006/11/25(土) 00:06:32おいらもこんなPG作りたくないっす
でもね・・・・。
レジストリはいじりたくないですね
APIスレに行ってみます
0519デフォルトの名無しさん
2006/11/25(土) 00:13:130520デフォルトの名無しさん
2006/11/25(土) 01:16:57sexy dynamite!
0521デフォルトの名無しさん
2006/11/25(土) 01:20:04SystemParametersInfo
で制御すれば
0522デフォルトの名無しさん
2006/11/25(土) 10:19:390523デフォルトの名無しさん
2006/11/25(土) 12:52:51あったんですか……気付きませんでしたorz
ありがとうございました!
0524デフォルトの名無しさん
2006/11/25(土) 13:24:39このたびにソース修正するのがめんどくさいなー
どうすればいいですか?
0525デフォルトの名無しさん
2006/11/25(土) 13:33:02enable/disableで使わない方を消しておけ
0526デフォルトの名無しさん
2006/11/25(土) 14:26:400527デフォルトの名無しさん
2006/11/25(土) 14:35:530528デフォルトの名無しさん
2006/11/25(土) 14:38:26計画を立ててからフォームを組むようにする。
0529デフォルトの名無しさん
2006/11/25(土) 14:52:51(DataGridView上をダブルクリックした時のイベント)
をコンテキストメニューをクリックした所から呼び出したいんだけど、
どうすればいいですか?
private void メニューをクリックToolStripMenuItem_Click(object sender, EventArgs e)
{
this.dataGridView1_CellDoubleClick(this,DataGridViewCellEventArgs.Empty);
}
とか無理やりDataGridViewCellEventArgs.Emptyを引数にとってもダメでした。
private void メニューをクリックToolStripMenuItem_Click(object sender, EventArgs e)
{
this.dataGridView1_CellDoubleClick(this,DataGridViewCellEventArgs.Empty);
}
とか無理やりDataGridViewCellEventArgs.Emptyを引数にとってもダメでした。
0530デフォルトの名無しさん
2006/11/25(土) 16:05:51亀レスだけど、
.NET製のわりと大規模なアプリ
http://www.getpaint.net/index2.html
0531デフォルトの名無しさん
2006/11/25(土) 17:17:42賢い
0532デフォルトの名無しさん
2006/11/25(土) 17:24:46そのPaint.NETはこのスレだかで知ったんだけど、
使ってみると意外といいね。
0533デフォルトの名無しさん
2006/11/25(土) 17:32:33イベントプロパティを呼び出すのは無理。
0534デフォルトの名無しさん
2006/11/25(土) 20:14:59何がダメなのか分からんが。
普通はメソッド化して両方でそれを呼ぶ
0535デフォルトの名無しさん
2006/11/25(土) 22:27:11ビミョーなアプリですね
0536デフォルトの名無しさん
2006/11/26(日) 11:47:570537デフォルトの名無しさん
2006/11/26(日) 12:54:29確かにw
0538デフォルトの名無しさん
2006/11/26(日) 13:15:280539デフォルトの名無しさん
2006/11/26(日) 13:27:33あれは失敗だったと開発者も認めているのにw
0540デフォルトの名無しさん
2006/11/26(日) 14:45:040541474
2006/11/26(日) 17:56:330542474
2006/11/26(日) 18:02:33現在、この頁を見ています。
確かに、この頁に記載されている通り、
WORD97からのアップグレードとして
WORD2003をインストールしました。
しかし、すでにアップグレードしている状態で、
このような97に関連したエラーが出ているのが
とても不思議です・・・
0543デフォルトの名無しさん
2006/11/26(日) 18:05:420544474
2006/11/26(日) 18:21:31エラーの詳細をうp致しました。
0545デフォルトの名無しさん
2006/11/26(日) 18:23:23それができるってことは次はもちろん何をうpすればいいかわかってるだろうな
0546デフォルトの名無しさん
2006/11/26(日) 18:23:33俺だけなのか?
0547デフォルトの名無しさん
2006/11/26(日) 18:24:510548デフォルトの名無しさん
2006/11/26(日) 18:29:01まだできたてほやほやの言語だし可能性はある
詳細と再現方法をテキストで作ってMSに報告するとよろし
0549デフォルトの名無しさん
2006/11/26(日) 18:30:340550デフォルトの名無しさん
2006/11/26(日) 18:35:248007007eが出てるってことは、何かがCLSIDの関連付けあたりを破壊したんだろう。
セキュリティソフトをアンインスコしてから、Officeの自動修復を試してみるとどうじゃろう。
0551474
2006/11/26(日) 18:36:35でもどうしようもない・・・
みんな、コメントありがとう!!
明日の朝までにはなおさんと!!!!
0552474
2006/11/26(日) 18:40:46コメントありがとう。
僕も、ノートンアンチウィルスのアンインストールが
原因だったと思っています。
このアンインストールの前後に、今回の不具合が発生しているので。
でも、このノートンアンチウィルスを
アンインストールした後に、
WORD2003は再インストールしましたし、
修復っていうのも何度か渡来しております。
でも、そういえば、2003をインストールする前に
予めインストールしておいた97には、
今回は、一切何もふれませんでした。
ひょっとすると、97も完全にアンインストールして
(というか、97はもうPCにないよな気がします。)
0553474
2006/11/26(日) 18:42:47というCLSIDを削除してWORD2003をアンインストールし、
又は、WORD2003をアンインストールしてから、このCLSIDを手動で削除し、
そのあとに、再度、WORD2003をインストールしなおせば直るかなぁ・・・・。
0554474
2006/11/26(日) 18:45:24のCLSIDは、↓このようになっております。(一応、うpしてみました。)
http://kasarfa.com/modules/php/bbs/ubbs/image/1164534281.gif
0555474
2006/11/26(日) 18:46:21レスありがとうございます。
えっと、次は何をうpすればよろしいでしょうか。
0556デフォルトの名無しさん
2006/11/26(日) 18:46:340557デフォルトの名無しさん
2006/11/26(日) 18:46:53聞く前に試せよ
0558474
2006/11/26(日) 18:50:34いま、試しています。
WORD2003を完全アンインストールしました。
0559474
2006/11/26(日) 18:51:26WORD2003をアンインストールしたら
このCLSIDは、併せて削除されていました。
0560474
2006/11/26(日) 18:52:52このフォルダにあるテンプレートもバックアップした上で削除しておきました。
それでは、改めてインストールしてみます。
暖かいご支援、ありがとうございmす。
0561デフォルトの名無しさん
2006/11/26(日) 19:51:330562デフォルトの名無しさん
2006/11/26(日) 20:03:000563デフォルトの名無しさん
2006/11/26(日) 20:55:22答えてるっつーかからかってるように見える
0564デフォルトの名無しさん
2006/11/26(日) 22:13:23Dispose()でいいんですか?
Disposeした後にそのインスタンスのプロパティに普通にアクセスできるし変更できて
解放されていないようなんですけど。
Disposeした後、解放のタイミングはCLRにおまかせで、
今すぐメモリ解放ということは不可能なんですか?
0565デフォルトの名無しさん
2006/11/26(日) 22:16:43>解放されていないようなんですけど
そういうことはやめましょう。
null代入してほっとけばGCされるのでほっとけ。
0566デフォルトの名無しさん
2006/11/26(日) 22:18:41お前C++使いだな
ふらっとC♯, C#(初心者用) Part10
http://pc8.2ch.net/test/read.cgi/tech/1162193452/
0567デフォルトの名無しさん
2006/11/26(日) 22:25:18http://www.atmarkit.co.jp/fdotnet/dotnettips/027dispose/dispose.html
0568474
2006/11/26(日) 22:41:420569デフォルトの名無しさん
2006/11/26(日) 22:45:08メモリ使用量が減っていないのでまだ残ってんじゃないの?と思い
ためしにやってみました。null代入した後だと流石にあとかたもなくなってますね。
メモリ解放はdisposeと同様に即座にはされないようですけど。
>>566
いや、C#君ですよ。低レベルすぎてスレ違い?
>>567
よんだけどそれ回答になってないでしょ。
ずばり、インスタンスが使用しているメモリ空間を即解放するにはどうすれば良いか?
という問いの答えは、マネージドコードでは不可能 なんですかね。
0570デフォルトの名無しさん
2006/11/26(日) 22:47:26nullを代入することに何の意味があるんだ?
0571デフォルトの名無しさん
2006/11/26(日) 22:48:39んなこといってるからC++使いだって言われるんじゃよー
> マネージドコードでは不可能
GC対象メモリであれば強制GCを呼べばいいよ。System.GCだっけ。
でも実際に行われるかどうかは知らない。
メモリ使用量がタスクマネージャのそれだとすれば、不可能だねえ。
ヒープはすぐにコンパクト化されるわけではないし。
0572デフォルトの名無しさん
2006/11/26(日) 22:50:250573デフォルトの名無しさん
2006/11/26(日) 22:50:350574デフォルトの名無しさん
2006/11/26(日) 22:59:06Disposeとメモリ解放は全く関係ありません。
Disposeが解放するのはアンマネージドリソースです。
0575デフォルトの名無しさん
2006/11/26(日) 23:00:37GCは確保したオブジェクトが、どこかから参照されているかどうかで
GC対象かどうか判断してるんじゃなかったっけ?
null代入して参照数をゼロにしないと、プログラム終了まで
インスタンスメモリは確保されっぱなしの可能性がある。
0576デフォルトの名無しさん
2006/11/26(日) 23:02:35>それが単なるメモリ領域なら、使用可能なメモリ容量に余裕がある限り、
>回収されずに放置されるケースがあってもそれほど問題とはならない
0577474
2006/11/26(日) 23:03:280578デフォルトの名無しさん
2006/11/26(日) 23:04:35スコープってしってる?
0579デフォルトの名無しさん
2006/11/26(日) 23:05:24ぐだぐだやってないでOSからクリーンインスコしろ
0580デフォルトの名無しさん
2006/11/26(日) 23:06:02一般的には、弱参照以外の参照を切ってGC.CollectでGC発動
させれば回収される。
Finalizer持っていてかつ、SupressFinalizeされていなければ、
さらにFinalizerの終了を待って、GC.Collectで回収。
ただ、この行為はともにスループットをほぼ確実に落とす。
もっといえば、2.0だとさらに複雑になっていて「正確に」こんな
ところで説明するのは長すぎるかも。「即開放は不可能」というより、
システム側にその権利は譲った(そして最適化の余地を作った)が
正しい。
0581474
2006/11/26(日) 23:07:240582デフォルトの名無しさん
2006/11/26(日) 23:09:44スコープから外れない場合があることを忘れずに…
form
0583デフォルトの名無しさん
2006/11/26(日) 23:14:09vbsとかからはCreateObjectできんの?
0584デフォルトの名無しさん
2006/11/26(日) 23:15:53スルーします。
0585デフォルトの名無しさん
2006/11/26(日) 23:16:22ttp://etc4.2ch.net/test/read.cgi/male/1156204826/
0586デフォルトの名無しさん
2006/11/26(日) 23:17:15思わず吹いた
0587デフォルトの名無しさん
2006/11/26(日) 23:21:16古いけどググレカスでいいのかな?
http://www.atmarkit.co.jp/fdotnet/dotnettips/021gc/gc.html
0588デフォルトの名無しさん
2006/11/26(日) 23:56:520589デフォルトの名無しさん
2006/11/26(日) 23:57:17>ためしにやってみました。null代入した後だと流石にあとかたもなくなってますね。
何言ってんだか
0590デフォルトの名無しさん
2006/11/26(日) 23:59:04即開放は必要ないんじゃない?それに即開放が正しいかどうか分からない場合がある。
C++等では開放してはいけないメモリを勝手に開放して困る場合があった。
人間は簡単にへまをする。
GCだとその可能性は低い。
0591デフォルトの名無しさん
2006/11/27(月) 00:01:04上に書いてあるように
>インスタンスのプロパティに普通にアクセスできるし変更できて
とあるじゃないか?
0592デフォルトの名無しさん
2006/11/27(月) 00:03:17デストラクタはObject.Finalizeのオーバーライドにコンパイルされる。
0593474
2006/11/27(月) 00:03:22レス、ありがとう。でも、12時過ぎて電源落とされたんで、タクシーで家に帰ることにしました。明日、朝一でまたクライアントのところへ出張いかないとです…なおんなくって怒られるのが目に見えてて鬱です…。
0594デフォルトの名無しさん
2006/11/27(月) 00:03:26この意味が理解できるか?ってか意味不明
0595デフォルトの名無しさん
2006/11/27(月) 00:14:26マネージドではどのリソースがどこのメモリ空間を占有しているって概念がないのよ。
fixedしないとポインタが使えないのも、勝手に整理されてメモリ上を動いてしまうから。
0596デフォルトの名無しさん
2006/11/27(月) 00:35:530597デフォルトの名無しさん
2006/11/27(月) 00:40:310598デフォルトの名無しさん
2006/11/27(月) 00:43:24ならDispose()しないでいいじゃんってこと?
ばかん♪
0599デフォルトの名無しさん
2006/11/27(月) 00:43:47読解力ないんだよ。
0600デフォルトの名無しさん
2006/11/27(月) 00:45:420601デフォルトの名無しさん
2006/11/27(月) 00:48:15Disposeはオブジェクトの持っているアンマネージドリソースを開放するメソッド
0602デフォルトの名無しさん
2006/11/27(月) 00:49:41そこまで気になるなら勝手にCでも使っててくれよ。
0603デフォルトの名無しさん
2006/11/27(月) 00:50:010604デフォルトの名無しさん
2006/11/27(月) 00:55:100605デフォルトの名無しさん
2006/11/27(月) 00:59:46じゃ意味が通るように説明してみろ。
null代入したら普通はたどれる元がないんだから
そりゃメンバにはアクセスできんだろうが、
「それはあとかたなく開放されたからだ」
とでも言う気かよ。
GC起こるまで消えてないことには何のかわりもない。
なんらかの方法でメンバにアクセスしたら普通にアクセスできるわな。
0606デフォルトの名無しさん
2006/11/27(月) 01:00:58厳密に言えばSystem.Transactionsのような例外も出てきたから
そうではないのだけど、主目的なのは確かだな。
つか一回Disposeが必要なクラス、アンマネージラッパを書いて
みればとてもよくわかるんだけど、それなりに暗黒面なので難しい
のだろうなぁ。
0607デフォルトの名無しさん
2006/11/27(月) 01:01:39それってシュレディンガーの猫っぽいね
0608デフォルトの名無しさん
2006/11/27(月) 01:15:38ふふふ。覚えた言葉をうれしそうに遣いたがる。
0609デフォルトの名無しさん
2006/11/27(月) 01:40:240610デフォルトの名無しさん
2006/11/27(月) 01:56:09オマイの日本語お勉強スレじゃねーんだよ
0611デフォルトの名無しさん
2006/11/27(月) 01:56:43mobileでのwebアプリを作るにあたって、DBから値を引っ張ってきてそれを元にmobilelistitemを作成し、selectionlist.items.add(item)してるんだが、通常はこんなことしないんだろうか?
itemの横にcheckboxをつけてそこを選択してから確認ボタンを押すとチェックのついた項目だけ何か操作を行う、といったことがしたいんだが…。
selectionlistに動的にitemを加える作業をすると確認ボタンを押したときにエラーが起こる。indexが不正だというエラーが出る。なんでだろう?
0612デフォルトの名無しさん
2006/11/27(月) 03:22:03はん、おかしいことにおかしいといったら日本語云々だあ?
たく最近はこんなのばっかだな。
こっちはちゃんと説明してるってのにな。
それともこんな簡単な内容すら理解できん馬鹿だったか。
0613デフォルトの名無しさん
2006/11/27(月) 03:24:16簡潔におながいします
0614デフォルトの名無しさん
2006/11/27(月) 06:29:56まだこんなに煽りに過敏に反応する奴がいるのか。
まだまだ捨てたもんじゃないなwww
0615474
2006/11/27(月) 09:13:010616474
2006/11/27(月) 10:16:59word2003の修復を3回、
word2003の再インストール直後のofficeのアップデート1回
これで直りました。
特に、「word2003の再インストール直後のofficeのアップデート1回
」が決め手だったような気がしました。
みなさんも、僕と同じエラーが出たときには、
決して、OSの再インスコなどせずに、
word2003の再インスコなどを試してみてください。
それじゃ、さようなら、ごきげんよう、へけけのけ。
0617デフォルトの名無しさん
2006/11/27(月) 11:00:43一つ質問だが、>600はintとかstringとかを使ってて
「滅させる処理書かないとと構文的にシンメトリーじゃないじゃん」とか
考えてる?
0618611
2006/11/27(月) 12:39:33要するにmobile用のフォームでチェックボックスが使いたいんです。そこでselectionlistを使おうと思ったんだけど、普通これってすでに中に入るitemが決まってるもんじゃん?例えば男と女を選択させるみたいな。
でも今回はそうじゃなくてDBからとってきたものにチェックボックスをつけて選択させたいのよ。
0619デフォルトの名無しさん
2006/11/27(月) 15:44:02具体的に言えば、リストを二つ並べて、右側のリストをスクロールさせた際に、
左側のリストも連動してスクロールするようなプログラムを作りたいのですが…
WndProcからスクロールイベントを取得する事はできたのですが、そこで行き詰ってしまいましたm(_ _)m
0620デフォルトの名無しさん
2006/11/27(月) 16:37:070621デフォルトの名無しさん
2006/11/27(月) 16:47:20ListView.TopItem
0622デフォルトの名無しさん
2006/11/27(月) 21:38:56インデックス取るだけならLVM_GETTOPINDEX投げるほうが速いかもね。
0623デフォルトの名無しさん
2006/11/27(月) 22:44:35でKeyの長さでソートするようにSortedDictionary<string,int>のコンストラクタに指定したいんですけど
どうすればいいですか?
0624デフォルトの名無しさん
2006/11/27(月) 22:52:12なんてVC++を使っているように思えるが、そんな人にする質問にはとても
思えん
0625デフォルトの名無しさん
2006/11/27(月) 23:13:250626デフォルトの名無しさん
2006/11/28(火) 00:49:030627デフォルトの名無しさん
2006/11/28(火) 01:00:29後は private なインスタンスフィールド辺りだな
0628デフォルトの名無しさん
2006/11/28(火) 01:01:10CLRはフィールドとメソッドの引数が小ラクダ式で、その他は大ラクダ式になってるが。
0629デフォルトの名無しさん
2006/11/28(火) 01:13:500630デフォルトの名無しさん
2006/11/28(火) 01:16:550631デフォルトの名無しさん
2006/11/28(火) 01:27:07http://www.atmarkit.co.jp/fdotnet/special/pdc2005_02/pdc2005_02_02.html
0632デフォルトの名無しさん
2006/11/28(火) 10:22:35>SmtpException
>SMTP サーバーへの接続に失敗しました。
>または
>認証に失敗しました。
>または
>操作がタイムアウトしました。
とあります。
認証失敗等はともかく、このメソッドでタイムアウトが原因でこの例外が発生することはあり得るのでしょうか?
0633デフォルトの名無しさん
2006/11/28(火) 10:41:41別スレッドで起きた冷害はボタン(元スレ)のcatchでは処理できないですよね。
別スレッドの例外をフォーム側で処理したい(メッセージボックスを出すとか)
のですが、どうしたらいいですか?
0634デフォルトの名無しさん
2006/11/28(火) 10:43:35Application.ThreadException
0635デフォルトの名無しさん
2006/11/28(火) 14:26:36これを容易にするコントロールなどは標準で提供されているのでしょうか?
0636デフォルトの名無しさん
2006/11/28(火) 14:31:30なんでもそれで対応出来ると思ってんのか?
0637デフォルトの名無しさん
2006/11/28(火) 14:43:38スレッド内で発生した例外はそのスレッドでcatchする。
必要なら UI スレッド側のフォームのメソッドをinvokeするとかしてユーザに通知する。
処理完了の通知と何ら変わるトコないですよ。
0638デフォルトの名無しさん
2006/11/28(火) 16:09:320639デフォルトの名無しさん
2006/11/28(火) 16:31:39ユーザはtrueを渡して、ランタイムライブラリはfalseを渡すことになっている。
0640デフォルトの名無しさん
2006/11/28(火) 16:43:300641デフォルトの名無しさん
2006/11/28(火) 17:40:35postDataってどーやれば文字列型に変換できますか?
0642デフォルトの名無しさん
2006/11/28(火) 18:03:51if(e.postData != null)
{
s = System.Text.Encoding.ASCII.GetString((byte[])e.postData);
}
てな具合で文字列に変換できる
0643デフォルトの名無しさん
2006/11/28(火) 18:07:07642に加えてmime-encodingかURLEncodeかされてると思うんで、
そいつをdecodeして素のbyte[]にしたうえで、適切なencodingで
GetStringする。
0644デフォルトの名無しさん
2006/11/28(火) 18:11:32641です
ありがとうございます
今のところ、アルファベットと数字だけなので642の方法でうまくいきました
日本語使うようになったら643の方法にトライします
0645デフォルトの名無しさん
2006/11/28(火) 21:36:37文中でカタログの例と言っている彼の論理C#コード(脳内コード)をどなたか補完して頂けないでしょうか。
(できれば次のイベントを使った例まで行きたいのですがここでつまづいています)
ttp://vsug.jp/tabid/63/forumid/51/postid/3057/view/topic/Default.aspx
0646デフォルトの名無しさん
2006/11/28(火) 22:26:11俺はこういう風に理解した。
----
interface IHogeFactory
{
IHoge CreateInstance();
}
static class HogeCatalog
{
private static Dictonary<Type, IHogeFactory> catalog = new Dictonary<Type, IHogeFactory>();
public static IHoge CreateInstance( Type type )
{
return catalog[type].CreateInstance();
}
public static void Regitster( Type type, IHogeFactory factory ) {
catalog[type] = factory;
}
}
class HogeA: IHoge { }
class HogeFactoryA : IHogeFactory
{
public static HogeFactoryA() { HogeCatalog.Register( typeof(HogeA), new HogeFactoryA(); }
public IHoge CreateInstance() { return new HogeA(); }
}
0647デフォルトの名無しさん
2006/11/28(火) 22:40:43ファイナライザでは実行順序が不定のため他のマネージ参照に
触ってはいけないから、ユーザーコードから呼び出されたDisposeと
ファイナライザから呼び出されたDipsoseで処理を分ける必要がある。
C++/CLIでもデストラクタ、ファイナライザはこのパターンを利用して
ILを生成している。雑談だが。
0648デフォルトの名無しさん
2006/11/28(火) 22:41:15一つのFormで2つのBackgroundWorkerをつかっているのですが、
Formでの処理が重ならないように、どこかで同期させたいのですが、
タイミングは手動でとるしかないのでしょうか?
手動でとるにはどのような方法がありますか?
ManualResetEvent などをうまく使うのでしょうか?
どなたか教えてもらえませんか?
0649デフォルトの名無しさん
2006/11/28(火) 22:42:31その程度ならこれくらいでいいんじゃねーかな。
IHoge CreateInstance<T>() where T : IHoge, new()
{
return new T();
}
0650デフォルトの名無しさん
2006/11/28(火) 22:47:01Invokeじゃだめなん?
0651デフォルトの名無しさん
2006/11/28(火) 22:50:36Tをハードコーディングできるなら、直接newするだろ
0652デフォルトの名無しさん
2006/11/28(火) 23:07:57わろた。
newって書くのとかわんねー
ちなみに
Activator.CteateInstance<T>()
てのが標準であるぞw
0653デフォルトの名無しさん
2006/11/28(火) 23:08:35処理はメインスレッドで行われるので同時にってことはあり得ない
0654デフォルトの名無しさん
2006/11/28(火) 23:16:570655デフォルトの名無しさん
2006/11/28(火) 23:27:350656デフォルトの名無しさん
2006/11/28(火) 23:28:32使えるならその方法を教えてください
0657デフォルトの名無しさん
2006/11/28(火) 23:30:34翡翠石よ
クラスを継承させたりした場合で、必ず呼び出してほしい
メソッドがある場合に、インターフェースを入れると、
コンパイラが警告を入れてくれる。
0658デフォルトの名無しさん
2006/11/28(火) 23:31:040659デフォルトの名無しさん
2006/11/28(火) 23:36:31そんな事初めて聞いたわ
0660デフォルトの名無しさん
2006/11/28(火) 23:45:140661デフォルトの名無しさん
2006/11/29(水) 00:41:14多重継承の代わりじゃないのかな?くるみちゃん
0662デフォルトの名無しさん
2006/11/29(水) 00:43:50Microsoft.Win32.NativeMethods.CreateFileMappingを参考に自前でDllImport汁
0663デフォルトの名無しさん
2006/11/29(水) 01:19:39やめておけ
エディタって何の編集するするものか知らんが
テキストエディタは相当難しい。
3Dグラフィックのほうがはるかに簡単。
つか、.NETで実用的なテキストエディタを作ることは不可能と思って
間違いない。
0664デフォルトの名無しさん
2006/11/29(水) 01:31:33SettingProvider から継承して作れって・・・
LocalFileSettingsProvider のタコ!!!
・・・愚痴でした。
みんなは、どうやってる?
アプリケーションの設定保存
0665デフォルトの名無しさん
2006/11/29(水) 01:40:370666デフォルトの名無しさん
2006/11/29(水) 01:47:570667デフォルトの名無しさん
2006/11/29(水) 07:19:290668デフォルトの名無しさん
2006/11/29(水) 12:21:17壊れたらどうするのよ
0669デフォルトの名無しさん
2006/11/29(水) 15:51:22サルベージする
0670デフォルトの名無しさん
2006/11/29(水) 15:53:34http://dobon.net/vb/dotnet/programing/storeappsettings.html
上のサイトで紹介されているアプリケーションの設定を保持するクラスを、”俺”ライブラリに追加しようとして難儀しています。
各々の静的メソッドとシングルトンであることを基本クラスで定義しておき、これを継承するクラスでシリアライズするプロパティを追加したいのです。
試行錯誤してみましたが、「静的メソッドとシングルトンであること」を基本クラスでうまく定義できなくて行き詰っています。
最近ようやくOOPを意識しはじめたので的外れな質問かもしれませんが、指針についてアドバイス頂ければと思います。
0671デフォルトの名無しさん
2006/11/29(水) 16:37:53その時点で破綻してないか?
0672デフォルトの名無しさん
2006/11/29(水) 17:07:36Orz
恥の書き捨てで伺いますが、それなら継承後のクラスをシングルトンにするのは如何なものなのでしょうか。
でも、それだと当初の目論見から外れてめんどうになりそうだなぁ。
0673デフォルトの名無しさん
2006/11/29(水) 17:14:28その程度のシングルトンなら
class MyClass {
static MyClass _cur = new MyClass();
static public MyClass Current {
get { return _cur; }
}
}
でいいんじゃないか?
何のためにがやりたいのか日本語で普通に説明してみて。
0674デフォルトの名無しさん
2006/11/29(水) 17:27:33>>670のURLを参考に、「アプリの設定を保持するためのクラス」を作りました。
シリアライズしたいオブジェクトをプロパティに持たせて使います。
シングルトンなのは「設定が複数できるとマズいから」です。
それを使ってみて便利だったので、シリアライズ用のメソッドと、保存する値を書き込むプロパティを別個のクラスにしたいなと思いました。
ここまで書いておもったのだけど、シリアライズ用のメソッドがstaticである必要は特に無いのかもしれません。
派生したオブジェクトについてはインスタンスが複数できるとマズいけど、>>673で頂いたような手法で良いのかも…。
検討してみまふ。どうもありがとうございました。
0675デフォルトの名無しさん
2006/11/29(水) 17:42:300676デフォルトの名無しさん
2006/11/29(水) 18:53:41VSってRTFでコピーできるんだね。
色がついてて驚いた。
0677664
2006/11/29(水) 20:46:21今まで俺Setting的 Singleton 使ってたけど、
.NET Framework 2.0 での System.Configuration.ApplicationSetting が用意されてるから
わざわざ自分でつくるのは、すでに「車輪の再発明」的かな、と思ったです。
Settings.cs のコンストラクタに、this.Upgrade() 入れておけば
バージョンアップの際、結構自動で管理してくれるみたいだし。
ただ、デフォルトの LocalFileSettingsProvider がタコだなーと
バージョンアップした時の、以前の user.config の扱い次第では
自分で Provider 実装か、LocalFileSettingProvider か、
そこまではよくわかってません。
ttp://msdn2.microsoft.com/ja-jp/library/ms181001(vs.80).aspx
# Mono を意識するなら、現時点では
# 俺Setting になるから、これがベストかどうかはわからない
0679645
2006/11/29(水) 21:17:51レスが遅れて申し訳ありません。補完して頂き大変参考になりました。m(_ _)m
自分は2003なので、多少修正したのと返すクラスがシングルトンでもOKなように
改造しました。一応載せますです。
public interface IHoge
{
void ShowMessage(string str);
}
public interface IHogeFactory
{
IHoge CreateInstance();
}
public sealed class HogeCatalog
{
private static Hashtable catalog = new Hashtable();
public static IHoge CreateInstance( string key )
{
return ((IHogeFactory)catalog[key]).CreateInstance();
}
public static void Register( string key, IHogeFactory factory )
{
catalog[key] = factory;
}
private HogeCatalog(){}
}
0680645(続き)
2006/11/29(水) 21:18:15{
public static void Register() { HogeCatalog.Register( "A", new HogeFactoryA()); }
public IHoge CreateInstance() { return HogeA.CreateInstance(); }
private HogeFactoryA(){}
}
sealed class HogeA: IHoge
{
private static HogeA myclass = new HogeA();
public void ShowMessage(string str)
{
Console.WriteLine(str);
}
public static HogeA CreateInstance()
{
return myclass;
}
private HogeA(){}
}
[STAThread]
static void Main()
{
HogeFactoryA.Register();
IHoge hoge = HogeCatalog.CreateInstance("A");
hoge.ShowMessage("ぬるぽ");
}
0681デフォルトの名無しさん
2006/11/30(木) 00:37:44これってEclipseのような自動インポート機能ってないのでしょうか?
いちいち
using
を自分で書いていかなきゃだめっすか?
0682デフォルトの名無しさん
2006/11/30(木) 00:54:320683デフォルトの名無しさん
2006/11/30(木) 00:54:540684デフォルトの名無しさん
2006/11/30(木) 01:18:32Ctrl+スペース
0685デフォルトの名無しさん
2006/11/30(木) 01:23:01それだと
using
追加知れくれませんでした。
eclipseなら追加してくれるんだけど・・。
0686デフォルトの名無しさん
2006/11/30(木) 01:34:430687デフォルトの名無しさん
2006/11/30(木) 02:00:34最初に使うときに型名を明示的に書かせてusingに追加させるスタイルなんだね
0688デフォルトの名無しさん
2006/11/30(木) 08:44:20パスから鋭角を丸める→パスグラディエントブラシ?
0689デフォルトの名無しさん
2006/11/30(木) 10:28:28ReSharperっつーアドオンいれるとQuickFixでusingの追加できる。
けど、アドオンってことでVS2005 Expressだと無理で、ReShaperも有料だ。
ReSharperいれると、リファクタリングもeclipseレベルにまで拡張される。
0690デフォルトの名無しさん
2006/11/30(木) 17:37:21なんつーか( ゚Д゚)<氏ね!
0691デフォルトの名無しさん
2006/11/30(木) 17:53:21印刷と表示と色の設定で別々になってるよ
0692デフォルトの名無しさん
2006/11/30(木) 18:10:16それ設計思想が間違ってるだろう。
0693デフォルトの名無しさん
2006/11/30(木) 18:14:05画面でみるときには黒背景にしてるやつってたまにいるぞ。
うちの会社にも1人いる。
0694デフォルトの名無しさん
2006/11/30(木) 18:37:14テキストエディタの設定をコピーする機能があるから問題なし
0695デフォルトの名無しさん
2006/11/30(木) 19:21:430696デフォルトの名無しさん
2006/11/30(木) 19:24:480697デフォルトの名無しさん
2006/11/30(木) 19:31:29無効にしてどうしたいんだ?
0698デフォルトの名無しさん
2006/11/30(木) 19:33:560699デフォルトの名無しさん
2006/11/30(木) 20:01:29蛍光灯凝視しているようなもの。
黒地に白がベター
印刷は別設定できるほうが絶対優れていると思うが、>>692みたいに
ねじ曲がった奴もいるんだな。
0700デフォルトの名無しさん
2006/11/30(木) 22:07:30薄緑地に黒が良い
0701デフォルトの名無しさん
2006/11/30(木) 23:53:490702デフォルトの名無しさん
2006/12/01(金) 09:38:10当方 CRT で背景 rgb(215,215,215)
結構見易い
0703デフォルトの名無しさん
2006/12/01(金) 16:05:00ユーザIDとパスワードを入力して、ログオンする機能をつけたいのですが、作り方の定石があれば教えてください。ID/Passは両方ともサーバ側で認証を行います。
ちなみに前身のAccessアプリではID/Passテーブルというものが設けられていました。
0704デフォルトの名無しさん
2006/12/01(金) 19:32:11ODBC接続の接続文字列変えるだけでいいのかも。
0705デフォルトの名無しさん
2006/12/01(金) 22:01:25PropertyGridで、項目を展開できるようにしたはいいのですが、その数値変化した時にイベント取得が出来ません。
基本的に、位置は関係なく起こりさえすればいいのですが、ABCの値変化はMyClassChangedが発生しません。
結果、ABC変化は取得できない状況です。この取得は難しいでしょうか?
ソースはこんな感じです。
0706デフォルトの名無しさん
2006/12/01(金) 22:04:05public Class Class1
{private CustomClass myClass;
public event EventHandler MyClassChanged;
public Class1()
{ myClass.DataChanged += new EventHandler(Triggar);}
[DefaultValue(0,0,0)]
public CustomClass MyClass
{get{return myClass;} set{ myClass = value; Triggar(); }}
public void Triggar()
{if(MyClassChanged != null) MyClassChanged(this,EventArgs.Empty);}}
public Class CustomClass
{private int a,b,c;
public event EventHandler DataChanged;
public CustomClass(){a = 0; b = 0; c = 0;}
public int A
{ get{return a;} set{a = value; Triggar(); }
public int B
{ get{return b;} set{b = value; Triggar();}}
public int C
{ get{return c;} set{c = value; Triggar(); }}
public void Triggar()
{if(DataChanged != null) DataChanged(this,EventArgs.Empty);} }
0707デフォルトの名無しさん
2006/12/01(金) 22:12:010708デフォルトの名無しさん
2006/12/01(金) 22:12:190709デフォルトの名無しさん
2006/12/01(金) 22:13:14public class Class1{
private CustomClass myClass;
public event EventHandler MyClassChanged;
public Class1(){
myClass.DataChanged += new EventHandler(Triggar);
}
[DefaultValue(0,0,0)]
public CustomClass MyClass{
get{return myClass;} set{myClass = value; Triggar();}
}
public void Triggar(){
if(MyClassChanged != null) MyClassChanged(this,EventArgs.Empty);
}
}
public class CustomClass{
private int a,b,c;
public event EventHandler DataChanged;
public CustomClass(){ a = 0; b = 0; c = 0; }
public int A{
get{return a;} set{a = value; Triggar();
}
public int B{
get{return b;} set{b = value; Triggar();}
}
public int C{
get{return c;} set{c = value; Triggar();}
}
public void Triggar(){
if(DataChanged != null) DataChanged(this,EventArgs.Empty);
}
}
0710酔いちくれ ◆J0rwikii8c
2006/12/01(金) 22:14:210711デフォルトの名無しさん
2006/12/01(金) 22:16:240712705
2006/12/01(金) 22:17:51スミマセン、携帯手打ちな上に改行規制でかなり削りました。
>>708
申し訳ないですが、Class1()内でnewを脳内補完していただけますよう。
0713デフォルトの名無しさん
2006/12/01(金) 22:21:55とりあえずここでやるには長すぎる。
0714デフォルトの名無しさん
2006/12/01(金) 22:21:570715デフォルトの名無しさん
2006/12/01(金) 22:28:360716デフォルトの名無しさん
2006/12/01(金) 22:35:290717デフォルトの名無しさん
2006/12/01(金) 22:47:23とりあえずこちらではコンパイル通っているので、基本的なエラーは目を瞑って下さい。
CustomClassでA、B、Cという値が設定できる状態で、
それをまとめたものとして"0,0,0"というstringをCustomClassのABCに代入出来るように、
ExpandableObjectConverterを継承したCustomClassConverterで変換してます。
CustomClassの各ABCset{}の時にイベントを発生させる形で、
それをさらにClass1で受け取って発生させるつもりでした。
しかしながら、一度Class1のプロパティとしてMyClassの値を変化させると、
DataChangedイベントは取得されなくなります。
どうやらMyClassで設定した後はDataChanged==nullとなってしまうようで、
これがなぜだか分かりません。
何をすれば再びABCの変化を取得出来るのでしょうか?
0718デフォルトの名無しさん
2006/12/01(金) 22:52:22イベント登録しなおせ
0719デフォルトの名無しさん
2006/12/01(金) 23:36:58また、親や子に名前以外のデータ(構造体やクラス)をもたせることって出来ますか?
0720デフォルトの名無しさん
2006/12/01(金) 23:42:190721酔いちくれ ◆J0rwikii8c
2006/12/01(金) 23:43:210722デフォルトの名無しさん
2006/12/01(金) 23:43:420723デフォルトの名無しさん
2006/12/01(金) 23:43:55Tag は .NET 2.0 以降だっけ?
それ以前なら TreeNode の派生クラス作るなり外部で Hashtable/Dictionary<TreeNode, Hoge>使うなり
0724デフォルトの名無しさん
2006/12/01(金) 23:50:570725デフォルトの名無しさん
2006/12/02(土) 00:40:200726デフォルトの名無しさん
2006/12/02(土) 00:43:270727デフォルトの名無しさん
2006/12/02(土) 00:45:490728デフォルトの名無しさん
2006/12/02(土) 00:46:24つかなんでserialPostの受信ハンドラから同じクラス内の
コントロールハンドラを呼べないんだろ
0729デフォルトの名無しさん
2006/12/02(土) 00:58:45おっさん乙
0730デフォルトの名無しさん
2006/12/02(土) 01:02:15意味なら「委譲」。
.NETの機能のことなら、「型」の一種(delegate型)。
その型のインスタンスは、オブジェクト、または静的な「メソッド」へ
の参照を保持して呼び出すことが可能な実体。
型の一種として定義されるのでタイプセーフ。ポインタではなく
呼び出しのための実体として抽象化されているので、オブジェクトのメソッド、
静的なメソッド区別なく呼び出し可能。
別の機能である「イベント」と関連性が深い。
さらに言語機能として、C# 2.0で匿名メソッドが追加。これにより、「手続き」を
持ち運びできるように「見せ掛ける」機能にもなるように。BCLのコレクションク
ラスにもこの機能の使用を前提とした設計が見受けられるように。
3.0になるとさらに(ry
0731デフォルトの名無しさん
2006/12/02(土) 01:03:24脳内補完で充分通るソースだと思うのですが・・
スペルが変、名前おかしい(インスタンスとクラスの区別ができていない?etc)、デリゲートの型があわない。
DefaultValueAttributeの使い方があわない、Frameworkの初期化ルールがわかっていないかも?
インスタンスとイベント(デリゲート)の関係が怪しいところ。くらい?
myClassオブジェクトに関するあらゆる変更を監視して、イベントMyClassChangedを呼び出すようにしたいはずなので
フィールドが変更されたときもイベントを購読(subscribe)するようにするとよいと思われ。
public CustomClass MyClass
{get{return myClass;}
set{
if(myClass==value){return;}
if(myClass!=null){ myClass -= new EventHandler(value_OnDataChanged);}
value += new EventHandler(value_OnDataChanged);//value_OnDataChangedはEventHandler型メソッド
myClass = value;
Triggar();
}
public Class1(){ this.MyClass = new CustomClass();}
}
こんなのでよい?
0732デフォルトの名無しさん
2006/12/02(土) 01:08:24GenericsのList<T>クラスを使ってみると分かるかも
delegateを引数に取る奴、FindとかForEachとか
0733デフォルトの名無しさん
2006/12/02(土) 01:09:50それじゃコンパイル通らないよ
0734デフォルトの名無しさん
2006/12/02(土) 01:12:04スレッドが違うから。別のスレッドにアクセスするならInvokeしないと。
0735デフォルトの名無しさん
2006/12/02(土) 01:14:41TypeConverterがなんでClass1についてるのとか、
TypeConverterの中身はどうやねん(InstanceDescriptorの実装とか)とか、
DataChangedにするよりINotifyProertyChanged使えとか、
そもそもCustomClassはstructでいいやんとか、
class使うならDesignerSerializationVisibilityはContentのにしろよとか、
あーもうきりがない。
だからただ一言問題外と。
0736デフォルトの名無しさん
2006/12/02(土) 01:20:29回答者の負荷が増えるじゃん
関数ポインタ知らない人にデリゲート教えるのメンドイよね。
Javaスクールの危険 - The Joel on Software Translation Project
http://local.joelonsoftware.com/mediawiki/index.php/Java%E3%82%B9%E3%82%AF%E3%83%BC%E3%83%AB%E3%81%AE%E5%8D%B1%E9%99%BA
じゃないけど、C#が便利すぎて逆に怖い。
0737デフォルトの名無しさん
2006/12/02(土) 01:27:18{
Point p = new Point();
p.X = e.X;
p.Y = e.Y;
ContextMenu1.Show(this,p);
}
ツリービューを右クリックした時にメニューを表示したいのですが
これは間違ってますか?表示されないんですが
0738デフォルトの名無しさん
2006/12/02(土) 01:34:30{
ContextMenu1.Show( this.TreeView1, e.Location );
}
あるいは
this.TreeView1.ContextMenu = this.ContextMenu1;
としておくだけ。
0739デフォルトの名無しさん
2006/12/02(土) 01:34:58TypeConverter(typeof(ExpandableObjectConverter))はプロパティグリッドで展開して編集できるようにするためでは
プロパティグリッドにバインディングした奴は
DesignerSerializationVisibilityを特に設定しなくても実オブジェクトのプロパティは変更されると思われ
この場合は特に要らないかと。
structは特性を熟知している人が少ないから使わ(せ)ない派なんですが、あまりよくないのかな?
どうでもいいけど、INotifyProertyChangedを知ったときはちょっとショックだった。
後からこんなクラスあったんだって・・
Frameworkだだっぴろいよね。
0740デフォルトの名無しさん
2006/12/02(土) 01:49:28TypeConverterつけるべきはこの場合CustomClassのほうだと思うのだが?
それにCustomClass型のプロパティを使用するとして、これを代入させるのなら
TypeConverterにInstanceDescriptorの変換を定義しないとデザイナがプロパティ
代入時シリアライゼーションできない。直接ExtendableObjectConverterだけでは不可。
方法論としてはDesignerSerializationVisibilityがContentにして、その場合は
プロパティとしてgetのみにする(というかsetがあったら明示指定しないとContentと
デシリアライゼーション&代入とデザイナは区別できないはず、どっちが優先されるか
知らんが)。
または、この実装のように代入も許可するなら、この辺のシリアライゼーションを
きちんと実装した上でさっき誰かが書いたコードのようにイベント登録、解除の処理も
きちんと入れてやる。INotifyPropertyChangedにしたほうがいいが。あるいは代入クラスを
Componentにしてしまうのもありだろう。
ほかには動的なのでDefaultValueの代わりにShouldSerializePropertyの実装に切り替えるとか
ぐらいか。
つーかこの辺まじめに解説するとこのように長くなるっつーの。これでも省きまくっているのだが。
基礎知識ぐらいはつけてから聞いてほしいよ。
0741デフォルトの名無しさん
2006/12/02(土) 02:00:43ありがとうございます
しかしe.Locationの定義がありませんと出てしまいました
0742740
2006/12/02(土) 02:04:11CustomClassをstructに変更。CustomClass用のTypeConverterを実装(
stringの双方向変換、InstanceDescriptorへの変換、サブプロパティの許可等)して、
CustomClassに結びつける。InstanceDescriptorの関係から、組み込み型のみ使用
したコンストラクタor静的メソッドの実装あたりも。
ちなみに、これが最も標準的な方法で、使い方も楽。参照型のプロパティで
かつImmutableでない型をプロパティに使用し、代入許可するのはかなり異端な方法。
整合性を取るのが大変だからね。
0743デフォルトの名無しさん
2006/12/02(土) 02:11:110744デフォルトの名無しさん
2006/12/02(土) 02:12:140745デフォルトの名無しさん
2006/12/02(土) 02:27:19ありがとうございます
0746デフォルトの名無しさん
2006/12/02(土) 04:25:20TreeViewの親や子に名前以外のデータ(構造体やクラス)をもたせることって出来ますか?
0747デフォルトの名無しさん
2006/12/02(土) 08:30:36>>723
0748デフォルトの名無しさん
2006/12/02(土) 09:20:50ああ、ありどとうございます!
もう一つ質問ですがハッシュテーブルをそのままファイルに書き出すことってできますか?
もちろん見ることではなく、次の起動の時読み込むのが目的です
0749デフォルトの名無しさん
2006/12/02(土) 09:27:340750デフォルトの名無しさん
2006/12/02(土) 15:40:14変数にメソッド代入して実行できるなんて適当に言ってみようか…
0751デフォルトの名無しさん
2006/12/02(土) 15:47:330752デフォルトの名無しさん
2006/12/02(土) 15:51:360753デフォルトの名無しさん
2006/12/02(土) 16:28:56をつけたいと思うのですが、どのように実装すればいいでしょうか?
0754デフォルトの名無しさん
2006/12/02(土) 17:25:29C#でかかれたテキストエディタって、どこかにないのかな?
かなりP/Invokeを自分でラップすることになると思うんだけど・・
0755デフォルトの名無しさん
2006/12/02(土) 17:46:11SelectionModeにFullRowSelect
を設定してるとき、選択されるのは行単位で、SelectedCellsも
その行のセルすべてになってるけど、これを本当にクリックして選択してる
1セル(点々で囲まれてるセル)を知るにはどーすればいいでしょう?
0756デフォルトの名無しさん
2006/12/02(土) 18:04:590757デフォルトの名無しさん
2006/12/02(土) 18:14:03C/C++でいうところのの関数ポインタだよというとか。
1メソッドInvokeだけを含むインターフェースだよというとか。
0758デフォルトの名無しさん
2006/12/02(土) 18:20:24>これを本当にクリックして選択してる
間違いじゃないかな。
アクティブ≠選択している
DataGridView.CurrentCellAddress あたりじゃないかなと勘で答える。
0759デフォルトの名無しさん
2006/12/02(土) 18:26:08関数ポインタ知らない奴結構いるよ…
俺も使ってないし。
0760デフォルトの名無しさん
2006/12/02(土) 18:37:23これのこと!!
どうもありがとう!
0762デフォルトの名無しさん
2006/12/02(土) 18:41:13そりゃよかった。
適当に答えたけどあたってて良かった。
俺は知識無かったけどMSDN探せば簡単に見つかったよ。
0763デフォルトの名無しさん
2006/12/02(土) 18:45:050764デフォルトの名無しさん
2006/12/02(土) 18:49:360765デフォルトの名無しさん
2006/12/02(土) 18:56:24そうですか
XmからTreeViewへのサンプルコードはたくさんあるんですが
逆は全く無いので難しいのかと思ってました、もうちょっと探してみます
ありがとうございました
0766デフォルトの名無しさん
2006/12/02(土) 19:10:390767デフォルトの名無しさん
2006/12/02(土) 19:20:05まんまコピーして使っているので仕組みを理解してません
ちょっと改造すればできるんですか?
0768デフォルトの名無しさん
2006/12/02(土) 19:29:07xmlの保存だけで事は済むってことだろ。
0769デフォルトの名無しさん
2006/12/02(土) 19:55:510770デフォルトの名無しさん
2006/12/02(土) 19:56:160771デフォルトの名無しさん
2006/12/02(土) 20:07:360772デフォルトの名無しさん
2006/12/02(土) 20:16:240773デフォルトの名無しさん
2006/12/02(土) 20:23:57xmlに元々あるデータは保存できるのですが
新しいノードを作ると反映されないのです
0774デフォルトの名無しさん
2006/12/02(土) 20:24:120775デフォルトの名無しさん
2006/12/02(土) 20:47:270776デフォルトの名無しさん
2006/12/02(土) 20:49:300777デフォルトの名無しさん
2006/12/02(土) 20:54:24不可能化可能かでいったら十中八九可能だと思うよ。
意味がないだけで。
0778デフォルトの名無しさん
2006/12/02(土) 20:58:23俺は見つけたぞ!!
しかもソースまである。
ググレカス!
0779デフォルトの名無しさん
2006/12/02(土) 20:59:16テキストエディタ単体としてではなく、テキストエディタコンポーネントとして。
0780デフォルトの名無しさん
2006/12/02(土) 21:03:18死ぬほどメソッドがあるコンポーネントだろうけどな。
0781デフォルトの名無しさん
2006/12/02(土) 21:04:580782デフォルトの名無しさん
2006/12/02(土) 21:24:01目的の場所までたどり着く自信がない。orz
0783デフォルトの名無しさん
2006/12/02(土) 21:42:33今まで検索してましたけどありませんでしたから
多分試したやつだと思います
0784デフォルトの名無しさん
2006/12/02(土) 21:54:48コンポーネントとして使えればいいんなら C++(/CLI) で作るよ。
だから「意味がない」なんて言い回しになるわけで
0785デフォルトの名無しさん
2006/12/02(土) 21:55:010786デフォルトの名無しさん
2006/12/02(土) 22:04:020787デフォルトの名無しさん
2006/12/02(土) 23:05:14これで行番号とかアイコンとか出せるんだな…
0788753
2006/12/02(土) 23:17:07よかったらURL教えてください。
http://sharpdevelop-jp.sourceforge.jp/index.php?SDJEditor
↑見つけたのですが行番号とルーラーのソースどれか分かりません・・
0789デフォルトの名無しさん
2006/12/02(土) 23:17:34tipsゲット!!
でも自分でいちから書くにはしっかりした設計が必要だな
0790デフォルトの名無しさん
2006/12/02(土) 23:22:31OnPaint で検索しろ。
GutterMargin.cs
HRuler.cs
0791デフォルトの名無しさん
2006/12/02(土) 23:34:37いろいろ勉強になった。
データ構造も面白かった。
昔Cオンリーで書いてたころと大違いだな。
実装の参考になる。
テキストもキャレットも選択部分も自前で書く参考になる。
おもしろい。
0792デフォルトの名無しさん
2006/12/02(土) 23:47:24外部の設定ファイルに応じて自由に変える機能を作りたいのですが
方法はないでしょうか?
0793デフォルトの名無しさん
2006/12/02(土) 23:50:050794デフォルトの名無しさん
2006/12/02(土) 23:50:33サイズ0のメインウィンドウを作る
0796デフォルトの名無しさん
2006/12/02(土) 23:57:59ソリューションの関連先がかわってしまった!
しばらく沈黙します。
0797デフォルトの名無しさん
2006/12/03(日) 00:00:45どういったやり方があるのでしょうか?
次に起動したときに読み込みたいのです
0798デフォルトの名無しさん
2006/12/03(日) 00:04:190799デフォルトの名無しさん
2006/12/03(日) 00:13:32その方法だと
シリアル化できない設定ですってエラーがでるんです
0800デフォルトの名無しさん
2006/12/03(日) 00:23:380801デフォルトの名無しさん
2006/12/03(日) 00:27:22ttp://module.jp/blog/RTFM_Hell.html
ttp://oldriver.org/torumemo/065.html
0802デフォルトの名無しさん
2006/12/03(日) 00:45:08TreeViewを継承して[Serialized]でもできませんでしたし・・・
[NonSerialized()]も使わなきゃいけないんですか?
0803デフォルトの名無しさん
2006/12/03(日) 00:58:18{
List<TreeNode> lst = new List<TreeNode>();
foreach( TreeNode node in this.treeView1.Nodes )
{
lst.Add( node );
}
BinaryFormatter bf = new BinaryFormatter();
using( FileStream fs = new FileStream( "unko.dat", FileMode.Create ) )
{
bf.Serialize( fs, lst );
}
}
private void button3_Click( object sender, EventArgs e )
{
BinaryFormatter bf = new BinaryFormatter();
List<TreeNode> lst;
using( FileStream fs = new FileStream( "unko.dat", FileMode.Open ) )
{
lst = (List<TreeNode>)bf.Deserialize( fs );
}
this.treeView1.Nodes.AddRange( lst.ToArray() );
}
0804デフォルトの名無しさん
2006/12/03(日) 01:04:130805デフォルトの名無しさん
2006/12/03(日) 01:07:340806デフォルトの名無しさん
2006/12/03(日) 01:48:12何を永続化する必要があるのかをよく考えるべき。
0807デフォルトの名無しさん
2006/12/03(日) 02:47:40nddeapi.dllのAPIを使おうと下記のように書いてみたのですが、呼び出し時にインスタンスが
なんたらとかいうエラーが出てしまいます。
たぶん構造体の受渡に失敗しているような気がするのですが、みなさん助けてください(><)
[StructLayout(LayoutKind.Sequential, Pack=1)]
public struct NDdeShareInfo {
public long lRevision;
public char[] lpszShareName;
public long lShareType;
public char[] lpszAppTopicList;
public long fSharedFlag;
public long fService;
public long fStartAppFlag;
public long nCmdShow;
public long[] qModifyId;
public long cNumItmes;
public string lpszItemList;
}
[DllImport("nddeapi.dll", EntryPoint="NDdeShareAdd", CharSet=CharSet.Ansi)]
public static extern uint NDdeShareAdd(
string lpszServer,
int level,
ref SecurityDescriptor pSD,
ref NDdeShareInfo lpNDdeShareInfo,
long cbShareInfo
);
0808デフォルトの名無しさん
2006/12/03(日) 03:36:190,2,3,5列目
の値がそれぞれ
hoge0, hoge2, hogeee, hoge
の行を探す
みたいな機能はdataGridViewにはないですか?
もしくは、
0,2,3,5列目
の値がそれぞれ
hoge0, hoge2, hogeee, hoge
だったらtrueを返す
みたいな比較メソッドはないですか?
0809デフォルトの名無しさん
2006/12/03(日) 06:16:49MSDN の「アンマネージ コードとの相互運用」以下を嫁。
型のサイズがめちゃくちゃだ。
そう言えば Vista では NetDDE 完全廃止らしいな。
>>808
そんなのが標準で用意されてたら却ってイヤだ。
素直にループ回せ。
0810デフォルトの名無しさん
2006/12/03(日) 07:34:43まだC#でプログラミングしてはいないのですが、その前に既存の Word2003 が
インストールされているところへ、
・ .NET Framework 2.0
・ Visual C# 2005 Express Edition 日本語版
をインストールしたところ、 Word2003 が起動するときによくわからないエラー
が出るようになってしまいました。(そのエラーメッセージをエンターで解除した
あとは Word2003 自体は使えていました)
そうこうするうちに、Word2003 の使用頻度が高くなり、一方 C# の緊急度が下がり、
逆に別のアプリケーションを入れる関係で .NET Framework 1.1 の導入の必要が
出て、一旦 C# も .NET Framework 2.0 もアンインストールしてしまいました。
すると Word2003 の起動時に出ていたエラーは出なくなりました。
今度また C# や VB.NET を学習するために再び同様にインストールしようと
考えているのですが、同じ問題が起こるとちょっと困るなと思いました。
出ていたエラーメッセージは記録していなかったのですが、こうしたことは起こるもの
でしょうか?それとも Express Edition であったために起こった問題の可能性もある
でしょうか?申し訳ないですが、よろしければ教えていただけたらありがたく。
環境: Windows2000 (Updateはネット経由で随時更新)
0811デフォルトの名無しさん
2006/12/03(日) 07:42:36大抵はインストールする人が変なコトしたからだろう。
あと .NET 1.1 入れるからって .NET 2.0 消す必要も意味もないぞ。
別物だから。
0812デフォルトの名無しさん
2006/12/03(日) 07:54:15さっそくどうもです。助かります。
.NET Framework 2.0 や C# Express を入れるときにトラブルしたり
その他のNG等が出たわけでもなく、すんなり普通に終わっていたかと思います。
そこで思いましたのは、もしかしたら Express を入れるとそうなってしまうのか
ということでした。製品版だと問題ないのだとしたらしょうがないのかなと。
>.NET 1.1 入れるからって .NET 2.0 消す必要も意味もない
あ、そうだったのですか!問題起こすといけないと思って抜いてしまいました。
だとすると これからこのまま 2.0 入れてしまえばいいわけですね。
それでその上で
Visual C# 2005 Express Edition 日本語版
や同 VB.NET Express も入れてしまえばよいと。
ありがとうございました。またやってみてわからないことが出たら教えてください。
大変どうもでした。
0813デフォルトの名無しさん
2006/12/03(日) 10:59:28でXMLのルートノードの最初の子を取り出せますよね?
その次の子が欲しい場合は
rootXmlNode = myXmlDocument.DocumentElement.FirstChild.NextSibling;
で取り出せるんですけど、次の子がnullになるまで取り出したい場合、
XmlNode rootXmlNode = myXmlDocument.DocumentElement.FirstChild;
(rootMxlNodeを使った処理)
if(rootXmlNode = myXmlDocument.DocumentElement.FirstChild.NextSibling != null)
{
rootXmlNode = myXmlDocument.DocumentElement.FirstChild.NextSibling;
(rootMxlNodeを使った処理)
if(myXmlDocument.DocumentElement.FirstChild.NextSibling.NextSibling != null)
{
rootXmlNode = myXmlDocument.DocumentElement.FirstChild.NextSibling.NextSibling
(rootMxlNodeを使った処理)
}
・
・
・
}
ってやらなきゃいけないんですか?
For文を使うわけにはいけないし・・・
他にいい方法ないですかね?
0814デフォルトの名無しさん
2006/12/03(日) 11:01:02無能っぽく再帰でもしてろよボケ
0815デフォルトの名無しさん
2006/12/03(日) 11:11:55ファイル読み込みなので再帰の方法が思いつかないんですが
こういう場合でもできますか?
0816デフォルトの名無しさん
2006/12/03(日) 11:12:27{
Console.WriteLine( "ふらっとC♯, C#(初心者用) Part10" );
Console.WriteLine( "http://pc8.2ch.net/test/read.cgi/tech/1162193452/" );
Console.WriteLine( " へどうぞ" );
}
0817デフォルトの名無しさん
2006/12/03(日) 11:34:54ありがとうございました。
0818デフォルトの名無しさん
2006/12/03(日) 11:36:34rootXmlNode = myXmlDocument.DocumentElement.FirstChild;
do{
//
}while(null!=(rootXmlNode = rootXmlNode.NextSibling));
0819デフォルトの名無しさん
2006/12/03(日) 11:41:27foreach(rootXmlNode in myXmlDocument.DocumentElement.ChildNodes){
//
}
0820デフォルトの名無しさん
2006/12/03(日) 12:06:05>>819
ありがとうございます
0821デフォルトの名無しさん
2006/12/03(日) 13:05:15すみませんが、ついでにもう一つ教えてくださいませ。申し訳ありません。
もしかして、.NET は Windows2000 はサポート外ではないですよね
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetdep/html/ndp2_prere.asp
では
Microsoft Windows 2000 Professional with SP4
がありましたのでOKのようですが、今 Microsoft のサイトを見ましたら、
現在の Framework の最新バージョンは 3.0 になっていました、それで対応OSに関しては
http://www.microsoft.com/japan/msdn/windowsvista/general/netfx30.aspx
-------------------------
.NET Framework 3.0 の導入
このセクションでは、.NET Framework 3.0 を導入してアプリケーションで使用する方法について説明します。
ソフトウェア要件
.NET Framework 3.0 をインストールするには、対象のコンピュータに次のいずれかのオペレーティング システムがインストールされている必要があります。
Microsoft Windows XP Home または Microsoft Windows XP Home Professional、Service Pack 2 以降
Microsoft Windows Server 2003 ファミリ、Service Pack 1 以降
-------------------------
とありました、これは 3.0 以降はこのバージョン以上からしか対応しない
ということになるでしょうか?Windows2000 は安定性がいいのでずっと使っていましたが、
.NET 3.0 以降が必要な場合は上記OS以上に Upgrade しないといかんということになる
でしょうか?
0822デフォルトの名無しさん
2006/12/03(日) 13:25:23その通り。
WinFX改め.NET3.0からは2kサポートがドロップされてる。
0823デフォルトの名無しさん
2006/12/03(日) 13:25:502.0 までは Win98 以降
あと今更 2k の方が安定性がとか無い
0824デフォルトの名無しさん
2006/12/03(日) 13:58:15早速にどうもです。
そうだったんですか、うーん。
早急な Upgrade はまだとしても、いずれはやらないと
いけないんですね。わかりました。
とりあえずは 2.0 を入れて VS2005 を勉強してみます。
どうもありがとうございました。
>あと今更 2k の方が安定性がとか無い
そうでしたか、自分がいた会社でも去年ぐらいまではずっと
これを言っていて業務用は2000で統一していたりしていました。
ありがとうございました。
それではまたよろしくお願い致しますです。
0825デフォルトの名無しさん
2006/12/03(日) 14:43:14それは機材の更新を先延ばしにしたい鯖缶の常套句
0826デフォルトの名無しさん
2006/12/03(日) 15:52:420828デフォルトの名無しさん
2006/12/03(日) 18:00:23金ないのもあるだろうがむしろ
め ん ど く さ い 仕 事 増 や す な
だと思う > 鯖缶
0829デフォルトの名無しさん
2006/12/03(日) 18:13:55C#には、FTPサーバにファイルを
アップデートする方法(クラスライブラリ)
があるのでしょうか。
0830デフォルトの名無しさん
2006/12/03(日) 18:46:02当然MSDNぐらいは検索したんだろうな?
0831デフォルトの名無しさん
2006/12/03(日) 20:03:31すいません、MSDNってなんですか?
0832デフォルトの名無しさん
2006/12/03(日) 20:10:48>すいません、MSDNってなんですか?
>すいません、MSDNってなんですか?
>すいません、MSDNってなんですか?
>すいません、MSDNってなんですか?
0833デフォルトの名無しさん
2006/12/03(日) 20:13:270834デフォルトの名無しさん
2006/12/03(日) 20:16:570835デフォルトの名無しさん
2006/12/03(日) 20:25:360836デフォルトの名無しさん
2006/12/03(日) 20:35:51すみません初心者なので略されると学習できません
おはずかしいのですが
0837デフォルトの名無しさん
2006/12/03(日) 20:37:570838デフォルトの名無しさん
2006/12/03(日) 20:46:54Virtuoso Sound
0839デフォルトの名無しさん
2006/12/03(日) 20:56:420840デフォルトの名無しさん
2006/12/03(日) 20:57:200841デフォルトの名無しさん
2006/12/03(日) 21:19:25飽きたのでマジレス。まず、ここは初心者スレ(ふらっとスレ)ではないです。
ましてや「C#初心者」よりもっと前の段階の人なんて初心者スレでもお断りです
入門書でも買ってそこからはじめてください。
0842デフォルトの名無しさん
2006/12/03(日) 21:25:010843デフォルトの名無しさん
2006/12/03(日) 22:57:240844デフォルトの名無しさん
2006/12/03(日) 23:02:01検索はYahooで行っています。
なにか、問題ありますか?
0845デフォルトの名無しさん
2006/12/03(日) 23:04:56問題ないから他所に池
0846デフォルトの名無しさん
2006/12/04(月) 00:31:38変数に格納する作業をしたいのですがエラーが発生します。
string ErrCode = "";
"DECLARE @ErrCode exec [STP_SelectKoshinSiire] @ErrCode OUTPUT SET @ErrCode = " + ErrCode;
どこか間違っていますでしょうか?
0847デフォルトの名無しさん
2006/12/04(月) 00:39:14基本がナットラン・・・
0848デフォルトの名無しさん
2006/12/04(月) 00:44:10たぶんコンパイラも呆れてるよ?
x = y;
右辺yを左辺xに代入
0849デフォルトの名無しさん
2006/12/04(月) 01:02:12エラーメッセージ
=付近に不適切な構文があります。
となってしまいます。
0850デフォルトの名無しさん
2006/12/04(月) 01:06:21Visual Studio 2005のスレがあるから、次からはそちらへ。
0851847
2006/12/04(月) 01:06:23不適切な構文があるんです
0852デフォルトの名無しさん
2006/12/04(月) 01:25:16いえ自分の見る限りですがそんな構文あり得ないです
0853デフォルトの名無しさん
2006/12/04(月) 02:00:49おまいは C# が使いたいのか C# に似たオリジナル脳内言語が
使いたいのかどっちなんだ?
前者ならコンパイラのほうがまず正しい。後者なら C# のコンパイラは
使えない。
0855デフォルトの名無しさん
2006/12/04(月) 08:29:520856デフォルトの名無しさん
2006/12/04(月) 08:48:500857デフォルトの名無しさん
2006/12/04(月) 09:51:26全力をもって食い付くのが俺のジャスティス。
0858デフォルトの名無しさん
2006/12/04(月) 09:59:53がんばれ。
0859デフォルトの名無しさん
2006/12/04(月) 11:43:310861デフォルトの名無しさん
2006/12/04(月) 21:21:520862デフォルトの名無しさん
2006/12/04(月) 21:22:540863デフォルトの名無しさん
2006/12/05(火) 16:50:07FontプロパティをMS ゴシック, 9ptにしているのですが、Textプロパティに文字列をセットしたときと
RichTextBoxに直接入力したときでフォントが変わってしまいます。
なぜだかご存知の方はおられますか?
0864デフォルトの名無しさん
2006/12/05(火) 17:24:140865デフォルトの名無しさん
2006/12/05(火) 17:25:180866デフォルトの名無しさん
2006/12/05(火) 18:56:08メニューなしでショートカット(Ctrl+Oで開くなど)を実現する方法はありますか?
0867デフォルトの名無しさん
2006/12/05(火) 19:05:120868デフォルトの名無しさん
2006/12/05(火) 19:13:07アジア言語圏特有の仕様。
この機能を抑制するにはWin32ではEM_SETLANGOPTIONSメッセージでIMF_AUTOFONTをクリアする。
.NETでもP/Invokeを使わない方法が何かあったと思ったが出てこないな。
0870デフォルトの名無しさん
2006/12/05(火) 20:31:12ログ紛失してしまったorz
0871デフォルトの名無しさん
2006/12/05(火) 20:43:53これ?
uint opt = (uint) richTextBox1.LanguageOption;
opt &= ~((uint)RichTextBoxLanguageOptions.DualFont);
richTextBox1.LanguageOption = (RichTextBoxLanguageOptions) opt;
0872デフォルトの名無しさん
2006/12/05(火) 21:52:29おおおおおおおおおおおおおおおおおおおおおおお
ありがとうございます!!!
0873871
2006/12/05(火) 22:06:35richTextBox1.LanguageOption &= ~RichTextBoxLanguageOptions.DualFont;
でいいな。
0874デフォルトの名無しさん
2006/12/05(火) 22:29:33enumを直接演算に使うと警告かエラーが出た気がする。それでuintにキャストしているはず。
0875デフォルトの名無しさん
2006/12/05(火) 22:36:410876デフォルトの名無しさん
2006/12/05(火) 22:43:18別に問題ないよ。
今回は大丈夫だけど、enumを32ビットと仮定しているところのが怖い。
0877デフォルトの名無しさん
2006/12/05(火) 23:45:060878デフォルトの名無しさん
2006/12/06(水) 12:12:370879デフォルトの名無しさん
2006/12/06(水) 12:29:44ここで現在表示されているUnix Epochからの経過秒数を、普通の日付に直したいと思います。
これは非バインドされた列を新たに追加して、バインドされた列を元にデータを作らないといけないのでしょうか。
それとも、バインドされた列に「そのように見えるフィルタ」のようなものをほどこしてやる事は可能でしょうか?
方針を教えていただければ幸いです。
0880デフォルトの名無しさん
2006/12/06(水) 12:43:39普通SQLの段階で直す。DataSetはあくまでコンテナ。クエリエンジン
ではない。
0881デフォルトの名無しさん
2006/12/06(水) 12:50:35そうなんですけど。レコード件数が多いのでサーバ負荷がすこしでも減ればと思って。
あまり意味はないのでしょうか。
0882デフォルトの名無しさん
2006/12/06(水) 14:33:33FieldOffset
ところでVARIANTARGには死んでもらっていいですか?
0883デフォルトの名無しさん
2006/12/06(水) 15:29:290884デフォルトの名無しさん
2006/12/06(水) 15:32:58アークエンジェル副砲。艦尾両舷に1基ずつ装備されているリニアガン。連射能力も高く精密射撃が可能だが、長時間連続使用すると砲身温度が上昇して使用出来なくなるのが欠点。
右舷が1番、左舷が2番である。ゴットフリートと違って側面に配置されているために上下方向の旋回が可能であるため、地表や海面を空中から直接狙撃することも可能である。
また、潜水航行が可能である本艦にとって数少ない水中での攻撃が可能な兵器である。
「DESTINY」最終話では、これによりミネルバの武装を破壊、戦闘不能に追い込んだ。
0885デフォルトの名無しさん
2006/12/06(水) 15:41:430886デフォルトの名無しさん
2006/12/06(水) 17:04:03普通にinvalidate()するよりも軽くなるんでしょうか?
[DllImport("user32.dll")]
private static extern IntPtr GetDC(IntPtr hwnd);
[DllImport("user32.dll")]
private static extern bool InvalidateRect(
IntPtr hWnd,
ref Rectangle r,
bool bErase
);
private void button2_Click(object sender, EventArgs e)
{
Graphics gra = pictureBox1.CreateGraphics();
IntPtr hwnd = gra.GetHdc();
Rectangle rect = new Rectangle(100,100,100,100);
InvalidateRect(hwnd, rect, false);
}
調べたんですがこの程度しか分かりませんでした。あってるのかも分からないです
0887デフォルトの名無しさん
2006/12/06(水) 17:17:380888デフォルトの名無しさん
2006/12/06(水) 17:42:12メソッド名にインタフェースを表すようなプレフィックスつけてる?
それとも衝突覚悟で同じ名前つける漢ですか?
0889デフォルトの名無しさん
2006/12/06(水) 17:46:12InvalidateRectが引数にとるのはRECT構造体へのポインタ。
マネージドのRectangleではない。メンバの意味が違う。MSDNで探せ。
GetHdcしたらReleaseHdcする。
CreateGraphicsしたらDisposeする。
あと細かいけど
>IntPtr hwnd = gra.GetHdc();
hwndはHWND型
hDCはHDC型
マネージドだとどっちもIntPtrで型はあってるけど
ふつうそういうときにhwndは使わない
つーか>>887でFA
0890889
2006/12/06(水) 17:54:02よく考えたらデバイスコンテキスト取得する必要ないじゃんorz
InvalidateRectの第一引数はウインドウハンドルっす。
どうしてもInvalidateRectしたいなら
struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
}
で
RECT rct = new RECT();
//ここでrctのメンバ入れる。rightとbottomにちゅうい
InvalidateRect( pictureBox1.Handle, ref rct, false );
0891886
2006/12/06(水) 18:34:56教えてもらったとおりがんばってみます。
0892デフォルトの名無しさん
2006/12/06(水) 19:32:32そこにリストボックスを配置、DockをFillにしました。
が、表示させるとなぜか下のほうにFormがはみ出ます。
(グレーの背景が見える)
なぜなんでしょう?
0893デフォルトの名無しさん
2006/12/06(水) 19:41:43IntegralHeight を false に
0894デフォルトの名無しさん
2006/12/06(水) 20:09:10行ごとに色を変える方法はDrawItemで作れたのですが
一列の中で何色も色を変える方法がわからないです
0895デフォルトの名無しさん
2006/12/06(水) 20:31:56ありがとうございました!できました!
0896デフォルトの名無しさん
2006/12/06(水) 20:39:48言いたいことがよく分からんが、オーナードローならどんな描画だってできるでしょ。
0897894
2006/12/06(水) 20:52:40e.Graphics.DrawString(文字列, フォント, 色, e.Bounds);
e.DrawFocusRectangle();
---
赤い青い黄色い
という文字列(実際に色がついているとして)をリストボックスの1列に表示したいんですが
ListBoxの要素ひとつの中で色を変更する方法を探してます
上のDrawString + DrawFocusRectangle だと一列ごとにひとつの文字列・一色しか設定できませんでした
わかりやすい説明が出来なくて申し訳ないです
0898デフォルトの名無しさん
2006/12/06(水) 20:55:23要は MeasureString だな
0899894
2006/12/06(水) 21:05:45苦肉の策で文字数*5と指定してX位置を横にずらして表示していたので
その部分を変えていけばできそうです
ありがとうございます
0900デフォルトの名無しさん
2006/12/06(水) 22:19:08そうならないようにインタフェースに責任を持たせる。
自然な発想で操作から連想される名前が重なる場合には衝突は気にしない。(どうせ、明示的実装できるし)
もちろん、時と場合による。
0901デフォルトの名無しさん
2006/12/06(水) 22:39:34そもそも視覚や聴覚も機能しないはず
0902デフォルトの名無しさん
2006/12/06(水) 22:55:450903デフォルトの名無しさん
2006/12/06(水) 23:14:54PictureBox.Imageが突然、nullになってしまうのですが、
何が原因なのでしょうか?
0904デフォルトの名無しさん
2006/12/06(水) 23:21:52何が投げてる例外だよ?
0905デフォルトの名無しさん
2006/12/06(水) 23:25:560906デフォルトの名無しさん
2006/12/06(水) 23:30:320907質問です。
2006/12/06(水) 23:32:58例えばDataTableに10行レコードが入っていたとして
一番最初(0レコード目)に””(空白)値のみのDataRowを
挿入したいのですが何か良い方法をご存知の方はいらっしゃいますか?
New DataRow ・・・ dt.Add
⇒この方法だと一番末尾にレコードが追加されてしまいます。
0908デフォルトの名無しさん
2006/12/06(水) 23:34:52indexにかかわらずIsEmptyがTrueのPoint(X=0,Y=0)が帰ってきます。
何がいけないのでしょう?
0909903
2006/12/06(水) 23:37:28原因が分かった orz...
try{...}
catch(...){return;}
PictureBox.Image = new ...;
0910デフォルトの名無しさん
2006/12/06(水) 23:38:33おもろいやんけw
0911デフォルトの名無しさん
2006/12/06(水) 23:43:18もうちょっとメソッド調べれ 挿入を英語で
0912デフォルトの名無しさん
2006/12/06(水) 23:46:01indexは0以上かつText.Length未満でなければならない。
0913デフォルトの名無しさん
2006/12/06(水) 23:54:18はい、その点は大丈夫です。
txtBox.GetPositionFromCharIndex(txtBox.SelectionStart);
とやっているのにそうなるのです…(T-T)
0914デフォルトの名無しさん
2006/12/07(木) 00:05:32ブレークポイント張ってSelectionStartの値は見てみたのか?
0915デフォルトの名無しさん
2006/12/07(木) 00:07:390916907
2006/12/07(木) 00:12:33DataTable.Insertでしょうか?
このメソッドは挿入箇所をインデックスで指定する事も
出来るのでしょうか?
0917デフォルトの名無しさん
2006/12/07(木) 00:21:000918907
2006/12/07(木) 00:24:00>>917
調べても使い方が分かりません。
0919デフォルトの名無しさん
2006/12/07(木) 00:36:36Add は別のクラスのだろ? それ調べれ
0920デフォルトの名無しさん
2006/12/07(木) 00:43:07そんな姿勢ならプログラミングやめた方がいいよ
少なくともこのスレには来ないでくれ
0921デフォルトの名無しさん
2006/12/07(木) 00:59:35プログラミングというのは、正にそういうことの地道な繰り返しなわけだが。
その作業が嫌なら、プログラミングには向いてないな。
0922907
2006/12/07(木) 01:06:17実際プロだしね。
0923デフォルトの名無しさん
2006/12/07(木) 01:09:190924デフォルトの名無しさん
2006/12/07(木) 01:09:31名前全角にしないとそれっぽく見えないよ
0925デフォルトの名無しさん
2006/12/07(木) 01:12:43それで教えて貰って分からないってのも。
0926デフォルトの名無しさん
2006/12/07(木) 01:16:300927デフォルトの名無しさん
2006/12/07(木) 09:52:41コレクション内の指定した位置に新しい行を挿入します。
名前空間: System.Data
アセンブリ: System.Data (system.data.dll 内)
構文
C#
public void InsertAt (
DataRow row,
int pos
)
パラメータ
row
追加する DataRow。
pos
DataRow を追加するコレクション内の位置。
解説
InsertAt で指定する位置は、DataRowCollection での行の順序だけを表しています。
DataRow 配列で複数の行が返される場合は、挿入行が InsertAt で指定した位置に返されないことがあります。
たとえば、Rows プロパティは指定した挿入位置に行を返しますが、Select と GetChildRows は挿入位置に行を返しません。
DataRowCollection の内容を XML (WriteXml など) で作成すると、行は DataRowCollection で指定された順序に従って書き込まれます。
pos パラメータで指定した値がこのコレクション内の行数を超えている場合は、新しい行はコレクションの末尾に追加されます。
0928デフォルトの名無しさん
2006/12/07(木) 10:25:47TEST_DLLという名前空間にTEST_CLASSというpublic クラスをつくりました。
これは、DLLとしてビルドされます。
それで、上記のDLL内のクラスを参照して、うごくEXEファイルを別につくっているのですが、
以下のようにするとDLLのクラスを呼べるのは確認しました。
TEST_DLL.TEST_CLASS test = new TEST_DLL.TEST_CLASS();
ただ、上記のDLLを削除して起動すると例外(System.IO.FileNotFoundException)が発生して
おちてしまいます。DLLがあれば、問題なく動きます。
そら、DLLがないのだから当然の例外なのですが、インスタンスを作成する前に、
DLLがあるかどうかのチェックをする処理を入れて、
あれば、インスタンス生成にしても、例外が発生します。
インスタンス生成を削除すると動くので、インスタンス生成が問題であるのは確認しました。
また、上記インスタンス生成時に(System.IO.FileNotFoundException)を
catchにしてもキャッチされません。
Visual Studioのデバッグで起動しても、どこで例外がおこってるかも表示されません。
どうしたら、いいのでしょうか?ご教授頂けませんか?おねがい致します。
0929928
2006/12/07(木) 10:59:08ごめんなさい。自己解決しました。
インスタンスの生成に失敗すると自動的に例外が上位にあがるんですね…。
たぶんで、自信ないけど…。
インスタンス生成部分をメソッド化して、呼び出し元でキャッチしたらできました。
メソッド化した時に例外が発生したら上位にあげるとかもかかなくても、勝手に上位に上ったので、
たぶん、そうなのかなあと思いましたが…。
0930デフォルトの名無しさん
2006/12/07(木) 11:00:24Exceptionならキャッチできる?
0931928
2006/12/07(木) 11:14:27System.Exceptionでもキャッチできなかったから、ほんきで悩んだんだ。
そんなはずないだろ?って。
メソッド化しても、メソッド内ではキャッチできなくて、呼び出し元ではキャッチできた…。
よくわからんが…。
0932デフォルトの名無しさん
2006/12/07(木) 12:04:29実際の実行より前に型情報が必要になるのね
つまり、そのコードを含むメソッドのJITコンパイル時ね
先にJITコンパイル済まさないと実行出来ないからね
てことは、そのメソッドの実行よりも前に型のロードが必要になるのね
もう分かるね?
0933デフォルトの名無しさん
2006/12/07(木) 12:09:390934デフォルトの名無しさん
2006/12/07(木) 12:15:49日本語でおk
0935デフォルトの名無しさん
2006/12/07(木) 12:19:38あるかどうか分からんライブラリをアーリーバインドする馬鹿がいるかよ。
Reflection使っとけ。
0936デフォルトの名無しさん
2006/12/07(木) 12:32:26namespace ConsoleApplication1
{
class Program
{
static private void doSomething()
{
new ClassLibrary1.Class1().DoSomethong();
}
static void Main(String[] args)
{
if (File.Exists("ClassLibrary1.dll"))
{
doSomething();
}
}
}
}
汚いからやめて欲しいが。
0937デフォルトの名無しさん
2006/12/07(木) 13:54:560938デフォルトの名無しさん
2006/12/07(木) 14:09:180939デフォルトの名無しさん
2006/12/07(木) 14:14:19使えるから自分で実装汁
0940デフォルトの名無しさん
2006/12/07(木) 14:15:25なる奴はなる。ならん奴はならん。
そういう質問をするタイプの奴はならん。
0941デフォルトの名無しさん
2006/12/07(木) 14:16:36じゃあやめとくか
0942デフォルトの名無しさん
2006/12/07(木) 17:59:47固定幅を文字数でなくバイト数で設定することは可能なのでしょうか?
何がしたいかというと・・・(アスタリスクは空白文字とお考え下さい)
1.String.Format("{0, -6}", 1) -> “11****”
2.String.Format("{0, -6}", "あい") -> “あい****”
上記の2の結果“あい****”を、“あい**”で取得したいのです。
0943デフォルトの名無しさん
2006/12/07(木) 18:05:43"1" と "あ" はどちらも2バイト。
0944デフォルトの名無しさん
2006/12/07(木) 18:17:42Encoding.GetEncoding(name).GetByteCount(s)
で目的のエンコーディングでのバイト長を取得して、
足りない分を空白を埋めればいいんじゃね?
0945デフォルトの名無しさん
2006/12/07(木) 18:27:07・・・根本的に思い違いをしていたのですねorz
GetByteCountで取得してみます。即レスありがとうございました。
0946デフォルトの名無しさん
2006/12/07(木) 21:05:16wsdl.exeで作成したプロキシクラス(呼び出し元はjavaで作成したwebサービス)
をコンソールアプリケーションのプロジェクトに追加してビルドすると
プロキシクラスの先頭で
using System.Web.Services;
using System.Web.Services.Protocols;
と宣言している部分で
「型または名前空間名 'Services' は名前空間 'System.Web' に存在しません。アセンブリ参照が不足しています」
というエラーが出ます。
どのようにすればビルドが成功するかわかりません。
助けて下さい。
0947デフォルトの名無しさん
2006/12/07(木) 21:19:03アセンブリ参照が不足しています
0948デフォルトの名無しさん
2006/12/07(木) 21:31:21public abstract class AbstractClass{
public abstract int Value{get;}
}
public class ConcleteClass{
public override int Value{get{return 0;} set{ }}
}
のようにサブクラスではGetter/Setter両方を定義する方法ってありませんか?
プロパティに対してoverrideキーワードを追加すると以下のようなコンパイルエラーになるのですが
「オーバーライド可能な set アクセサがないため、オーバーライドできません。」
0949デフォルトの名無しさん
2006/12/07(木) 21:39:29SetValue メソッドでも用意してやれ
0950デフォルトの名無しさん
2006/12/07(木) 21:43:35ありがとう。
0951デフォルトの名無しさん
2006/12/07(木) 21:50:15public abstract int Value{get;}
}
internal class MiddleClass : AbstractClass{
public override int Value{get{return 0;}}
}
public class ConcleteClass : Class{
public new int Value{get{return base.Value;} set{ }}
}
こうするとか
0952デフォルトの名無しさん
2006/12/07(木) 21:55:05ConcleteClass : MiddleClassね
あと、internalにはできないな
0953デフォルトの名無しさん
2006/12/07(木) 22:44:400954デフォルトの名無しさん
2006/12/07(木) 23:37:040955デフォルトの名無しさん
2006/12/07(木) 23:43:220956デフォルトの名無しさん
2006/12/07(木) 23:55:560957デフォルトの名無しさん
2006/12/08(金) 00:00:210958デフォルトの名無しさん
2006/12/08(金) 00:08:070959928
2006/12/08(金) 00:08:31Reflection使って、作りなおしました。
でも、複数アプリに共通なクラスはDLL化したらしたで、
Reflectionつかわないとってなるとめんどいな…。
0960デフォルトの名無しさん
2006/12/08(金) 00:10:180961デフォルトの名無しさん
2006/12/08(金) 00:16:410962デフォルトの名無しさん
2006/12/08(金) 00:22:17お前の頭についている二つの穴はフシアナか?
0963デフォルトの名無しさん
2006/12/08(金) 00:23:590964デフォルトの名無しさん
2006/12/08(金) 00:34:200965デフォルトの名無しさん
2006/12/08(金) 00:35:100966デフォルトの名無しさん
2006/12/08(金) 00:36:440967デフォルトの名無しさん
2006/12/08(金) 00:40:17メソッド用意しました。
0968デフォルトの名無しさん
2006/12/08(金) 00:43:16これは自分じゃないです
見てきます
0969デフォルトの名無しさん
2006/12/08(金) 00:59:38ごめんお…
0970デフォルトの名無しさん
2006/12/08(金) 01:10:15いったい何がしたいわけ?
dllがなくても正常に動かしたいの?
普通dllがなきゃ動かないのは当たり前でそ
0971デフォルトの名無しさん
2006/12/08(金) 02:34:06いや、エラー処理なんだな。
DLLがなきゃ動かないのは当然なのはわかってるんだ。
もし、DLLがない場合&DLLが古い&DLLが名前は同じでも別もの
の場合でもちゃんとエラーをだして止まるようにしたかったんだ。
例外が発生しておちましたでは困るんで。
一般のユーザは、こっちが思ってるように、正しく使ってくれないから…。
0972デフォルトの名無しさん
2006/12/08(金) 03:10:350973デフォルトの名無しさん
2006/12/08(金) 06:04:033行くらい書くだけじゃないの?
0974デフォルトの名無しさん
2006/12/08(金) 06:50:230975デフォルトの名無しさん
2006/12/08(金) 08:25:070976デフォルトの名無しさん
2006/12/08(金) 09:56:01XmlSerializer.Serializeを使ったら冷害が出ました。
どうすればいいんでしょうか?
0977デフォルトの名無しさん
2006/12/08(金) 10:15:510978デフォルトの名無しさん
2006/12/08(金) 13:50:320979デフォルトの名無しさん
2006/12/08(金) 18:17:13http://www.codeproject.com/cs/miscctrl/dockingmanagerextender.asp
デバッグに失敗するですけどどうすればいいんでしょうか?
VS2005です。
0980デフォルトの名無しさん
2006/12/08(金) 19:04:36Magic Libraryっていう有償のコンポーネントが必要
0981デフォルトの名無しさん
2006/12/08(金) 20:07:39http://www.codeproject.com/cs/miscctrl/magicdocking.asp
フリーバージョンがあってそれを使ってます。
参考サイト
http://dobon.net/vb/dotnet/links/dockingwindow.html
0982デフォルトの名無しさん
2006/12/08(金) 22:05:55詳しく書かないってことは答えて欲しくないってことでおk?
0983デフォルトの名無しさん
2006/12/09(土) 01:58:02またまた、出没しましたよ…。
下のソースの 1 のClassLibrary.MyClassがDLL内にある。
それで、そのDLLがないともちろんエラーとなるんだが、例外が 2 じゃなくて 3 でキャッチ
されるのがなぜなのか理解できない。普通 2 じゃないの?
ここでthrowしてないのに…。なぜ3にいくの…
static void DLL_Class_Test()
{
try
{
ClassLibrary.MyClass test = new ClassLibrary.MyClass(); // ←ここ 1
}
catch (System.Exception ex) // ←ここ 2
{
Console.WriteLine(ex);
}
}
static void Main(string[] args)
{
try
{
DLL_Class_Test();
}
catch (System.Exception ex) // ←ここ 3
{
Console.WriteLine(ex);
}
}
0984デフォルトの名無しさん
2006/12/09(土) 02:26:22>>932読んでも分かんないの?
0985デフォルトの名無しさん
2006/12/09(土) 03:29:17エラーになるのはなぜかっていうのはわかるけど、
例外の発生場所がなぜそうなるのかわからないよ…。
型情報がないから、そのメソッド自体を初期化できないってこと?
飲み込み悪くてすまねぇ。
0987デフォルトの名無しさん
2006/12/09(土) 10:32:02そのメソッドを実行開始する前に、型がロードされる。JITコンパイルしようとして。
これでなんで分からないんだ?
初めてDLL_Class_Testが呼び出される時点、つまりDLL_Class_Test();の部分を実行箇所に来ると、
この時点でDLL_Class_TestのJITコンパイルが開始され、
まだロードされてないClassLibrary.MyClassが必要と認識され、
自動的にロードが試みられる。
↓
ふぁいるが見つかんないから例外
↓
DLL_Class_Testメソッド内の
ClassLibrary.MyClass test = new ClassLibrary.MyClass();ではなく、
MainのDLL_Class_Test();
の実行箇所で例外となる。
0988デフォルトの名無しさん
2006/12/09(土) 11:30:390989デフォルトの名無しさん
2006/12/09(土) 15:32:10なにかのcontrol.Image プロパティに直接指定したときは綺麗なんですが、
一度ImageListに格納してしまうと(ColorDepth を32bitにしています)
微妙にアルファがつぶれてくれます。
iconでも確認しました。
回避法はありませんか〜?
0990デフォルトの名無しさん
2006/12/09(土) 15:45:510991デフォルトの名無しさん
2006/12/09(土) 15:51:390992デフォルトの名無しさん
2006/12/09(土) 16:02:510993デフォルトの名無しさん
2006/12/09(土) 16:05:570994デフォルトの名無しさん
2006/12/09(土) 16:34:14ImageListは内部でネイティブのImageList_DrawEx()を呼び出している。
自前でやってみればできるらしい。
0995デフォルトの名無しさん
2006/12/09(土) 18:40:28http://pc8.2ch.net/test/read.cgi/tech/1165656839/l50
たてますた
0996デフォルトの名無しさん
2006/12/09(土) 19:04:11これではエラーになりますよね
string str = " abc"d"efg ";
0997デフォルトの名無しさん
2006/12/09(土) 19:11:51または
string str = @" abc""d""efg ";
0998デフォルトの名無しさん
2006/12/09(土) 19:21:12ありがとうございます
0999デフォルトの名無しさん
2006/12/09(土) 19:23:051000ぼるじょあ ◆yBEncckFOU
2006/12/09(土) 19:23:3910011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。