1 :
デフォルトの名無しさん :
03/02/15 20:19 VC♯だけのスレッドです VB、JAVA厨は要りませんのでご了承
2 :
デフォルトの名無しさん :03/02/15 20:22
やっぱVisuralC#.NET統合スレッドにすればよかった・・・
Visural?
4 :
デフォルトの名無しさん :03/02/15 20:24
タイプミス
5 :
デフォルトの名無しさん :03/02/15 20:30
個人的にはC/C++も要りません
6 :
デフォルトの名無しさん :03/02/15 20:31
完全なC#のみスレッドにすればよし でもだれかまたCOBOLって叫ぶんだろうな
.NETライブラリは除いて言語のみを語るべきだな。
>>1 > VB、JAVA厨は要りませんのでご了承
そういう喧嘩腰の煽りはやめといけ
糞スレ扱いになるぞ。
9 :
デフォルトの名無しさん :03/02/15 20:35
新スレッド立てれるようになったら VisualC#.NET統合スレッド で新しく作り直します・・・ ちゃんとVB,VC,VC++,VJ,COBOL厨は要りませんってかいてね
10 :
デフォルトの名無しさん :03/02/15 20:36
>>8 すいましぇん・・・
次立てるときに気をつけます
>>9 > ちゃんとVB,VC,VC++,VJ,COBOL厨は要りませんってかいてね
だからそういうなめたこと書くなって言ってんだろ
12 :
デフォルトの名無しさん :03/02/15 20:57
13 :
デフォルトの名無しさん :03/02/15 20:59
なんか笑える・・・
っていうかコレ本当の話
15 :
デフォルトの名無しさん :03/02/15 21:03
素朴な疑問 1 まず俺が悪いこといいました(認めます 2 警告くらった 3 謝罪文書いた(ちょっといいすぎかな 4 また警告くらった この3と4の間に8分あったんだが これって謝ってるのに気づいて警告だしたってこと?? ちょっとそいつはひでぇですぜ
16 :
デフォルトの名無しさん :03/02/15 21:05
素朴な疑問その2 すでにC#の話題から完全にそれてること
>>15 そんなこと、ニュースグループでも頻発することだ。
ニュースグループを見ると
ある質問に対する返答記事が届く。
しばらくするとその返答の元になった質問記事が後から来る。
普通なら質問記事が着てから返事が来るはずが逆になっているのだ。
>>11 はリロードしていなかったのだろう。
やだ
20 :
デフォルトの名無しさん :03/02/17 18:38
そろそろ正規名称でスレたてよっかな
21 :
デフォルトの名無しさん :03/02/17 22:02
そのまえにテンプレ作ろうぜ。
賛成
誰かテンプレ作ってください 初スレ立てるので是非勉強を・・・
っていうかどういうスレにするか 計画案作りましょうよ
25 :
デフォルトの名無しさん :03/02/18 18:53
てゆうかVC#.NET統合スレッドって何を統合すんの?
個人的には言語仕様とかそこら辺を統合しようかとおもってますが
27 :
デフォルトの名無しさん :03/02/18 19:08
自分で書いて思った疑問 そこら辺ってどこら辺だ??
28 :
デフォルトの名無しさん :03/02/18 19:18
テンプレート(仮) C#.NETの言語仕様のみです VB,VC++等の他言語を利用の人は ほかの板への移動をお願いします こんなものですかね?
29 :
デフォルトの名無しさん :03/02/18 19:48
別にいいけど、ここでC#.NETの言語使用を語ってもどうしようもないよね。
誰か名案ない??
分ける明確な理由がないのにスレ立てたわけ? そりゃ糞スレっていうんじゃないのか?
32 :
デフォルトの名無しさん :03/02/18 20:30
>>31 自分でもそう思った
削除依頼でもだしとくか
つうか、その内容ならVいらんにょ。
オフィシャルとかNUnitとか、あとは@ITの記事とか。 まずはそこらへんのリンクからだろ。
Windows.Forms 周りのトピック専門スレッドきぼん
VC#.NET統合開発環境の使い方や便利なTipsとかは?
>>36 それはちょっといいかもしれない。
でも VC#.NET というよりは、VS.NET もしくは
Develop Environment になるのかな。
あと、それに付属されてくるツールの使い方や Tips とか?
まず問題はVがいるかどうかですね
記事について @ITからのリンクです 結構C#に使えると思われます 【情報】・・・突っ込まないでください!返信しようがありません ちなみにこの連載 C#入門ですが実はこの記事探す前に 実は書籍を購入してました もしきになる方は書店で2200円ほどで買うことができます たぶん緑色だったとおもうんですけど・・・
40 :
デフォルトの名無しさん :03/02/19 20:55
ガキが2chなんかに入り浸っちゃいかんよ。
42 :
デフォルトの名無しさん :03/02/19 21:03
開設意向 これよりこの板はC#の言語仕様のみのTipsとします 言語仕様のほか、みんなが楽しめる内容は許可しますが .NETFLAMEWORK(字間違えたかも)の話題は極力控えてください ただし、極力ですので一部ならいいです くれぐれも.NETFLAMEWORKの話題にならないようにお願いします
つまりflame大歓迎と。
45 :
デフォルトの名無しさん :03/02/23 16:01
46 :
デフォルトの名無しさん :03/02/23 16:18
今ログを見直しましたが
>>29 、
>>35 、
>>36 や
>>37 を見たところこれらの意見を統合して
1.言語仕様だけ語っても糞スレになると思われるのでそれ以外の内容OK
2.TopicやTips関連のものを内容に含む
そして題名が「統合」なのでこれらの内容【CONTENT】にしようと思いますが
どうでしょうか?
テンプレートはいつ実装されるのかしら。
GenericsならYukonで実装されるが、テンプレートは実装されないだろうな。
>>49 釣りか?
それとも、C#のgenericsはC++のtemplateと違って、
コードの爆発とか起きないし、テンプレート引数にintとかを取れないといいたいのか?
>>50 釣り?そんな趣味はない。
コードの爆発は起きないし実行時にGenericsとして認識できるし
.NETではintはクラスだから引数にも取れる。C++のテンプレートとGenericsを
混同しないように。
intをとれるっつーのは、コンパイル時に階乗計算したりするやつの事だろ。 でもまあ言葉だけで理解してもしょーもないと思うんだが。
>>53 template<typename T, int N>
↑
これの N の方のこと。
52の後半の文章は確かに意味分からん。
ついでに言うと、51の文章も意味分からん。
>>49 ワォワォ。YukonってSQL Serverだろ。
Genericsが実装されるとは驚きだね。
いや「言葉だけ」っていうのは、初めに49が書いたみたいに、 genericsであってtemplateじゃないよ、みたいな言い方のこと。 52に書いたのは50に同意って位の意味のことだ。
>50に同意 プゥ
59 :
デフォルトの名無しさん :03/03/04 15:17
C#するならやっぱXMLも必要だろうか・・・
60 :
デフォルトの名無しさん :03/03/04 16:04
C#するならやっぱunsafeキーワードも必要だろうか・・・
61 :
デフォルトの名無しさん :03/03/04 16:07
>>56 今さら驚くなよ。とっくに情報出てるだろ。
>>57 CLRのGenericsはテンプレートとは違うぞ。言葉だけじゃなくセマンティクスが違う。わかってる?
>62 頭の鈍い野郎だな。言葉だけで理解してるのが50なんだよ。 テンプレートにintが取れることも知らなかったし。
>50じゃなくて>49だった。鬱。
>66
○○と××は違うとか、セマンティックスとか抽象的な言葉で逃げてないで、
ちゃんと書いてみろよ、オラオラ。
言っとくけど
>>51 のは
>>55 も指摘しているとおり的外れだぞ。
>>62 そうか、SQL ServerにGenericsが実装されるのは当たり前のことだったのか・・・
SQL ServerにCLRが組み込まれるのでGenericsが実装される、 と言えなくもないな。 …と、ちと苦しいか。
70 :
デフォルトの名無しさん :03/03/05 15:55
いちいちイベントハンドラをかくのが面倒なのですが。
いちいちソースコードをかくのが面倒なのですが。
>>67 はあ、そうですか。
C++のテンプレートはRTTIではテンプレートかどうかわかりませんね。
CLRのGenericsはそれがわかるんです。
ちなみにJavaのGenericsはそれがわかりません。
それ以前に、テンプレートはGenericsの一形態に過ぎないなんて常識だろ。
あと、YukonをSQL Serverだと思ってるやつ、悪いこといわんから
業界から足洗ったほうがいい。
>>72 >YukonをSQL Serverだと思ってるやつ
モノが出てないのにどう思えばいいんだろ。(プ
>>73 モノが出てからじゃ遅いってことにまだ気づかんか。愚か者めが。
TextBox でエンターキーを押すとビープ音が出てしまいます。 これを抑制することはできますか? VB や Delphi ではイベントで受け取ったキーコードに 0 を 代入することで ビープ音を抑制できましたが、C# のイベント関数では 参照のみで代入を行うことができませんでした。 private void keyDown(Object source, KeyEventArgs args) { if(args.keyCode == Keys.Enter) { args.keyCode = 0; //参照のみで代入ができない! } }
>>76 ありがとう!
・キー入力処理より前に keyPress イベントが呼ばれる。
・keyPress イベントで Handled に true を代入することで
キー入力を処理したことにできる(キー入力処理が行われなくなる)。
private void keyPress(Object source, KeyPressEventArgs args) {
if((int)args.KeyChar == (int)Keys.Enter) {
args.Handled = true;
}
}
78 :
デフォルトの名無しさん :03/03/05 23:26
おまえら本当にGraphicsクラス使ってますか? ダブルフバッラリングしようがこんな遅い糞クラスは使い物にならん。 DirectXつかったら1画面にしか描画できないしな。 誰か高速化の方法知らない?
>>78 IDirect3DDevice*.CreateAdditionalSwapChain()
81 :
デフォルトの名無しさん :03/03/06 19:47
数値をあらわすクラスってありますか? Int32 や Decimal はクラスではなく構造体なので、 メソッドの戻り値の型として指定すると、 そのメソッドで Null を返却することができません。 public Int32 getHoge() { return null; //戻り値の型がクラスではないので Null は指定できない。 }
・・・intを返す関数なのになんでnullが返す必要があるんだろう・・・
83 :
デフォルトの名無しさん :03/03/06 22:10
テキストボックスに数値が入っていれば、その値を返す。 ただし、テキストボックスは空欄のままであることもある。 public Int32 getHoge() { try { return Int32.Parse(TextBox.Text); } catch(Exception) { return null; } }
例外の使い方を考え直したほうがよいのでは? これはあくまで例に過ぎないのかもしれないけど、 nullを返したところで、結局nullチェックしなきゃいけないじゃん。
>>84 このメソッド内の例外処理(try〜)はあくまでもたとえですよ。
それとも、このメソッド自体が 有効な数値を保持していないことを示す例外を
スローした方が良いということでしょうか? (呼び出し元に対して親切?)
呼出元では、シンプルに
if((value = getHoge()) != null) {
有効な値が保持されているときの処理;
}
と書きたかったのですが…
try {
value = getHoge();
有効な値を保持していた場合の処理;
} catch(XXXException) {
//何もしない
}
と書いたほうが(作法として)良いでしょうか?
とりあえず、Null が使えないので、有効な値を保持していない状態を
あらわすために MinValue を返すことにしました。
こうゆう可読性を低下させるコードは書きたくなかったのですが、まぁ、いいや。
>>86 な、なるほど!
C言語のような発想をしていたかもしれません。
ひとつのメソッドの戻り値に
・処理に必要な値
・エラーを示す値
とふたつの意味を持たせるというのが、そもそも良くないということですね。
public bool hasHoge() {
}
public Int32 getHoge() {
}
if(hasHoge()) {
value = getHoge();
...
}
とすることにします。
hasHoge()がtrueだった次の瞬間に、 まだhasHoge()がtrueで有り続けているかどうかは 保証されないだろ。
>>89 むむむ…。たしかにその通りですね。。
戻り値を Object型にしちゃおうかな。
>>90 値の変更が別スレッドでなければ保証されるよ。
問題ないから
>>88 でやれば?
>>92 これはテキストボックスの値を取り出すものなのですが大丈夫でしょうか?
自分で別スレッドをおこしたりするつもりはありませんが、
GUIはそもそも別スレッドとして動作しているのでないのでしょうか?
94 :
デフォルトの名無しさん :03/03/08 23:24
結局 Yukon == SQL Server で決定のようですね。
>ひとつのメソッドの戻り値に > ・処理に必要な値 > ・エラーを示す値 >とふたつの意味を持たせるというのが、そもそも良くないということですね。 ここがわかっているならば、 try { value = getHoge(); } catch (空欄だよ例外){ //なにもしないのもあり } としたほうが理想的だと思う。例外クラスが一つ増えてしまうのが嫌かもしれないけど。 これならばスレッドセーフも確保できる。
すみません、質問です。 C#でVC++の拡張機能にあったような配列つきのプロパティを設定することは可能ですか? TekitouClass c; c.data1[x,y]=1; int i=c.data2[x,y]; ってな感じでやりたいのです(dataはプロパティ) 似たようなものにインデクサがありますが、 これだと一つのインデクサしか宣言できない(thisのみ)わけですよね? どうすればよいのでしょうか?教えていただけると幸いです。
>>96 C#ではできません。VB.NETならできます。
C#のインデクサはC++の[]のオーバーロードと考えたほうが無難です。
なんで VB で出来て C# で出来ないんだろ? 俺的には、配列型のプロパティとインデクサの区別付かないから 気持ち悪くて禁止しちゃったのかなとか思ってるんだけど。 インデクサを this[int i] なんて書き方するってことは、 C# 開発段階では任意の名前のインデクサが作れたんじゃないかなとか思うんだけど。
正直 配列型プロパティとインデクサの区別つかないってどんな奴だ …と思う。 MSは便利な機構を後から小出しにして、毎回後方互換性のある新環境を 買わせる気に違いない。 いや違うかもしれんけど。
やっぱぜんぶポインタみたいなもんなのがきもちわるいな。
しつもんです。 デバッグしてて、.NET Framework の中に入って行きたいときはどうするのでしょうか? MFCみたいにソースコードってないのでしょうか?
>>101 そんな事出来るなら、おれも.NET使うよ・・・
C#のセマフォクラスの名前おしえてください。
正直、インデクサの意義がわからん。 VBの引数付きのデフォルトプロパティでええがな。 ちゅうか、.NET Framework的にはインデクサは引数付きプロパティだし。
>>105 嘘教えるな。
APIは関数だから無くても我慢できる事が多いが、
クラスライブラリのソースは無いと困る事が多い。
儂はアンチじゃないんじゃケド、CLRが挙動不審だと、 儂のソースかライブラリかの問題切り分けに、ソース見たいと良く思うぞよ。 ソース見れれば、ほほ間違いなく原因くらいはわかるぞな。 バグでも派生させれば、修正できることも多いぞな。 ソースは百利あって一害無しだぞよ。
MSがソース公開できないのは、実はC#の使用率が(  ̄ノ∇ ̄) ̄ー ̄)ホウホウ
まあ、ソースなんか無い方が良いという香具師は、 金なんか無い方が良いという香具師に同じってこったな。
112 :
デフォルトの名無しさん :03/03/13 03:07
動かないソースはいらないんですけど・・・
絵に描いた餅とはまさにこのことか。
> CLRは約3800のクラスで構成 > CLIは350のクラスで構成 意味ねー(#゚Д゚)
115 :
デフォルトの名無しさん :03/03/13 06:05
C#のセマフォクラスはどうなった?
>>115 これかな。
Monitor
ms-help://MS.VSCC/MS.MSDNVS.1041/cpref/html/frlrfSystemThreadingMonitorMembersTopic.htm
117 :
デフォルトの名無しさん :03/03/13 23:23
>>116 すいませんが、インターネット上でないですか?
119 :
デフォルトの名無しさん :03/03/14 02:15
煽りだったのか・・・
>>107 ildasmで逆アセすればだいたいわかるぞな。
いくつかのバグもここでバグってるっていうところまではわかるし。
>>120 具体例を見せてください。参考にしたいと思います。
122 :
デフォルトの名無しさん :03/03/25 22:40
VC#でプロジェクトに対する操作で、項目の追加を選ぶと、クラスとか フォームとかを追加できるんだけど。 あそこにオリジナルのテンプレートファイルを登録したりできないでしょうか。 フォルダ潜って元データの構造みたけど、なんか特別なパラメータとかファイル形式が あるみたいで手が出せませんでした。ぐう。
123 :
デフォルトの名無しさん :03/03/25 23:46
だめだ、半日やったけどDataSetからXMLへXSLで変換させてから出力できなかった…
どなたか成功している人がいたら教えて頂けないでしょうか。
原因は、DataSetをXMLに変換するときに
<DataSe2 xmlns="
http://www.tempuri.org/DataSe2.xsd ">
こんなエレメントが入っていて、どうも名前空間を切り替えているのでXSLでの変換がこの内部へ
及ばないかららしいです。 xmlnsのアトリビュートを削除すれば動くことは確認できています。
Qname設定されてないし、ユニバーサルネームで修飾してみたけどIEがエラーを出してきますた。
完全に手詰まりです。
間接変換がうまくいかないので、直接変換もやってみますた。
開発者ガイドの「DataSet への XSLT 変換の適用」のサンプルを見ながら、手元にあるDBのスキーマ
に変えてやってみたのですがどうも同じような挙動です。
XMLスレのほうがよかったかな? よろしくお願いします。
遅レスすまそ。
>>121 System.Windows.Forms.dllをildasmにかけてみ。
TextBoxBaseのMaxLengthプロパティからはじめて、
内部で呼んでいるメソッドを順に追っていく。
最後は、SendMessage関数を呼んでいるところに辿り着くが、
auto指定で呼び出してるんだわ。
auto指定で呼び出すってことは、NT系ではSendMessageWが呼ばれて、
9x系ではSendMessageAが呼ばれるってこと。
そのせいで、テキストボックスに入力できる量が、
NT系では文字数で制限、9x系ではバイト数で制限される。
ヘルプには、MaxLengthプロパティは文字数で制限するとあるが実際は上記の通り。
>>123 自己レスです、書き込んでまもなく解決しますた。
なんだ、頭の方で自分でQName設定して修飾してやればいいだけじゃん。
スマソ
(^^)
∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
別にいいけど、ここでC#.NETの言語使用を語ってもどうしようもないよね。
130 :
デフォルトの名無しさん :03/06/26 22:19
始めてC#.netを使うド素人でつ。 webアプリでフレームを使用しているんですが、 同じ幅にしているにもかかわらず、見た目のセルのサイズが異なります。 なにか設定を間違っているのでしょうか?
131 :
デフォルトの名無しさん :03/06/27 08:37
C, VB, FORTRAN, ASMわかる、C++少々わかる人がVC#を始めます。 おすすめの本は?
133 :
デフォルトの名無しさん :03/07/08 22:35
C#でASP.NETのWebApplicationを最近やりはじめたんですが 普通にWindowsアプリケーション作る要領でメッセージボックスを出そうと思ってもでません 名前空間が何とかかんとか、ってエラーが出て、、、 WebApplication側からメッセージボックス出すには、何か別のクラスを使わないといけないんですか?
135 :
デフォルトの名無しさん :03/07/09 09:09
>>134 JavaScript使わなきゃできないよ、って意味ですか?
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
137 :
デフォルトの名無しさん :03/07/17 21:10
webアプリのbuttonコントロールでポップアップwindowを出したいんですがやり方がわかりません…。 どなたか知ってたら教えてください。 ど素人の質問でスマソ
138 :
デフォルトの名無しさん :03/07/18 00:28
dataGridについての質問です。 dataGridに新しい行を追加して、その列に変数を初期値として渡したいのですが、 どうやればいいのでしょうか? ヘルプを見ても難しくてわかりませんでした・・・ よろしくお願いします。
>>139 アドバイスアリガト!(´▽`)
なんとかできました。
141 :
デフォルトの名無しさん :03/07/18 22:20
>ヘルプを見ても難しくてわかりませんでした・・・ どんな回答も、より難しいので永遠に理解不能....
VC# Standardでdllとかnetmoduleを作成したいのですが、 Standardではできないのでしょうか…。 このままだとプロジェクトが巨大な1個のexeファイルに まとまってしまいます…。
VC#の限界が垣間見えますた。
>>142 書き換えればできる。
C#相談室かくだすれで既出。
<>144 見つかりました。ありがとん
(^^)
とりあえずクライアントソフト泣かせの95&98は撲滅汁!! あとNISは余計なことしなくていいんじゃー−−−− いちいち対応できるかボケ!! ・・・ごめん、とりみだしました・・・ しかもVCに限った話しじゃないわな・・・
しかもここは#だった・・・ でもいいんだ・・・王様の耳はロバの耳−−−−−!! ・・・たびたびごめん、てんぱってます・・・
VC#でDLLを他の.NET以外のプラットフォームで読み込ませる方法ってあるでしょうか またその場合、関数のエクスポート等はどうすればいいでしょうか
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
152 :
デフォルトの名無しさん :03/08/16 10:46
age
149は俺じゃない。 だってこのスレはいま初めて見たもん。 他は俺かもな。
>>155 C#関連スレの保守乙
他のスレでも保守ってくれてるよね?
データベースからListBoxに特定の行のデータを表示して、 そこから複数選択したデータを元に抽出して、 DataGridに表示する方法がわからないのですが、 どなたかお教え願えませんでしょうか。
・データベースを使う ・特定の行を取り出す ・取り出したデータをListBoxに表示する ・リストボックスで現在選択されているデータを取得する ・取得したデータを元にDBからデータを抽出する ・DataGridのデータソースに設定する どれが分からないんだ?
>>158 申し訳ありません。言葉が足りませんでした。
・取得したデータを元にDBからデータを抽出する
これです。
パラメータクエリで条件をつけようかと思ったのですが、
複数の条件下での抽出方法が分からないのです。。。
「複数の条件下」って何だ? OleDbCommand cmd = new OleDbCommand( "SELECT * FROM tabletable WHERE xxx = ?", connection); cmd.Parameters.Add("paramxxx", アレ);
161 :
デフォルトの名無しさん :04/01/09 22:34
age
162 :
デフォルトの名無しさん :04/01/10 03:39
複数ファイルを一つのファイルに圧縮したいのですが どのようにすれば良いでしょうか?
163 :
デフォルトの名無しさん :04/01/10 16:01
lhaつかえ
具体的なサンプルはないでしょうか?
165 :
デフォルトの名無しさん :04/01/11 10:58
lha a hoge.lzh *.txt
166 :
デフォルトの名無しさん :04/01/27 00:06
ASP.NETのデータグリッドで長いデータだと一つのセルが2行に間延びしてしまうけど どうしたら防げますか。フローテイングレイアウトあたりを使うのが良いのかな?
167 :
デフォルトの名無しさん :04/01/30 15:07
VC#.NETでHTMLを表示できるブラウザのようなアプリを作るには どうすればよいでしょうか?
それ無茶苦茶嘘です
171 :
デフォルトの名無しさん :04/02/17 04:34
vc#からのexcel操作について 詳しく載ってる本、もしくはサイト誰か知りませんか?
VC#のMSChartの使用法も知っていたら教えて欲しいです。 なるべく日本語が良いですが、英語でもご存知でしたら教えて欲しいです。 よろしくお願いします。
173 :
デフォルトの名無しさん :04/02/17 10:02
UpdateAllViews()に相当するような,全てを再描画する関数はなんでしょうか?
174 :
デフォルトの名無しさん :04/02/17 11:09
事故レス. Update()じゃ駄目ですけれど,Invalidate()で出来ますた.
正確にはInvalidate()したあとでUpdate() Update()呼ばなくてもシステムが呼んでくれるが 急ぎの時はこれでw
176 :
デフォルトの名無しさん :04/02/17 11:38
(゚Д゚;) ハッ!・・・ なるほど,どうも有り難うございました.
Byte型の配列からBYTE型の配列にmemcpyのように簡単にコピーする方法はありませんか? マネージ型からアンマネージ型への変換が楽にできるようにならないかな?
Visual C#.NET Standard 2003単体に、 ADO.NET用のDBコントロールは付いているのでしょうか? 購入を考えているのですが今使っているDelphiの場合 安いグレードだとDBコントロール付いてないので チョト心配になりました。教えてエロイ人!
>>178 自分で買って確かめろ。
Standardも買えない貧乏人は#Developerでも使ってろ。
標準のDBコントロールは全部使えますよ。
いくつか制限はありますが個人用途ならとりあえずStandardでもよいかと。
情報サンクスコ〜 買ってコヨ〜
181 :
デフォルトの名無しさん :04/03/07 19:56
ファイルの異なるクラス間で、変数の値を共有したい場合はどうすればいいですか? C++ではexternでできたんですが・・・
182 :
デフォルトの名無しさん :04/03/08 12:51
>↑ 邪道 オブジェクト指向の基礎から勉強すれ
183 :
デフォルトの名無しさん :04/03/09 13:17
C#でXMLを扱うときに参考になるページを教えてください。 扱うXSDファイルからはデータセットが作成できませんでした。
185 :
デフォルトの名無しさん :04/03/09 13:44
なんていうか・・・ こう・・・・ ありがと!
186 :
デフォルトの名無しさん :04/03/09 22:35
デバッグで出てくるシンボルが読み込まれませんでしたってのは 一体どういう意味?
187 :
デフォルトの名無しさん :04/03/10 22:13
コンポーネントのヘルプってどこにあるんですか? たとえばボタンとかコンボボックスとかの。 MSDN見てるんだけどわからないです。
188 :
デフォルトの名無しさん :04/03/10 22:15
すいません。 F1押したらいとも簡単に出てきました。 自分で探し回るのがいけなかったようです。
189 :
デフォルトの名無しさん :04/03/20 18:23
ラベルとテキストエディットがくっついたフォームどこかにありませんか?
190 :
デフォルトの名無しさん :04/03/20 18:45
新規作成からクラスライブラリを選んで フォームにラベルとテキストエディット貼り付けて 適当にコード書いてビルド
191 :
デフォルトの名無しさん :04/03/21 21:04
>>186 デバッグで出てくるシンボルが読み込まれませんでしたってのは
デバッグ用のシンボルが読み込まれなかったっていう事じゃないかな。
難しいなあ。VCでゲーム制作でもしたいと思ってるんだが 一向にラチがあかん DirectXもなんなんですかもう頭豆腐です HSP卒業したいんだけどなあ VC#にすべきだったかな俺……
193 :
デフォルトの名無しさん :04/04/10 23:39
wavファイとかのサウンドを鳴らしたいんですが WIN32APIとか使わないと出来ないんでしょうか? 簡単なメソッドみたいなやつはないんでしょうか?
194 :
デフォルトの名無しさん :04/04/11 00:51
195 :
デフォルトの名無しさん :04/04/11 07:25
>>193 Managed DirectSound
で決まり。
これ簡単、一発
196 :
デフォルトの名無しさん :04/04/15 21:27
C#を使って携帯電話のソフトを作りたいのですが、できますか?
VC#ではできない
198 :
デフォルトの名無しさん :04/04/15 22:04
>>96 C#でつくったソフトをjavaアプリに変換するソフトがあるよ
なんでスレが乱立してんだろ?
200 :
デフォルトの名無しさん :04/06/29 00:02
201 :
デフォルトの名無しさん :04/06/30 21:05
ToolTipの文字列に改行をプロパティ画面で入力する方法はありますか?
>>202 やってみましたが"\n"がそのまま表示されてしまいます。
204 :
デフォルトの名無しさん :04/06/30 22:06
カレンダーコントロールから選択された日付を ラベルに表示させるにはどうしたらよいんでしょう? label1.text=〜じゃだめでした。 「型System.DateTimeからstringに変換できない」 ってでます。
>>204 こんな感じ?
this.label1.Text = this.monthCalendar1.SelectionEnd.ToString();
>>205 おぉ、そんな感じです!!
早速やってみます。
ありがとうございました
207 :
デフォルトの名無しさん :04/06/30 22:48
>>207 やっぱりそうですか。ありがとうございました。
>>208 プロパティ画面でなくてコードに書いたら駄目ですか?
this.hoge.tooltip="〜\n〜";
みたいな感じで。
>>209 なるべく避けたいのです。ツールチップを頻繁にいじるので。
でも最悪の場合はコードに書くつもりでいます。
ずっとメモ帳 + SDKでやってたんで、VS.NET使うと凄い違和感。 特にコンストラクタを勝手にいじるなってのがウザイ。
??? テンプレートのこと? 消せばいいくらいでたいしたことではない気が… それとも他の何か?
>>212 どこにコンストラクタを勝手にいじるなって書いてあるの?
「勝手に」って?
215 :
デフォルトの名無しさん :04/07/08 16:32
RS-232Cの任意のピン(RxDとかにデータ送るだけじゃなくて、DTRとかも) をON/OFFするにはどうしたらいいですか?
.NET FrameworkにMFCのCRectTrackerに代わるものは無いでしょうか? 宜しく願いいたします。
ASP.NETのスレはないのか、、 つーか要らない?
WebProg板のほうじゃないかな?
C++とJAVAは経験ありますが C#も.NETもWindowsでの開発もはじめてです 参考になる書籍をご紹介願います
221 :
デフォルトの名無しさん :04/07/17 10:16
↑ゲイツ
223 :
デフォルトの名無しさん :04/07/19 03:39
224 :
デフォルトの名無しさん :04/07/23 23:05
225 :
デフォルトの名無しさん :04/07/25 01:53
俺思うんだけど、たとえばリンクでちょっと変更あったりしたら Release とDebugでちょこちょこ切り替えて書き換えるの めちゃくちゃめんどくさいんだよね・・。なんかいい方法ないの?
リンクって何?
227 :
デフォルトの名無しさん :04/07/25 03:44
これはどうも質問者本人が気付いていないことも多いようですが、
質問の文章に第三者が問題を理解するのに十分な情報が含まれていないとことがしばしばあります.
このような状況で求められる極限的な推理を,私はしばしば「メタ推理」と読んでいます.
>>225 もうとてもとてもいい感じに足りてません.
リンクはlink.exeだろ。
230 :
デフォルトの名無しさん :04/08/09 10:17
int 型とかの Dispose できないヤツを解放したい場合はどうすればいいんでつか?
スタックに取られる変数の解放の仕方を聞いてるの?
class Hoge { int a, b, c, d; // プロパティ・関数がいろいろ } class ABC { private void abc { Hoge hogehoge = new Hoge(); // 処理をいろいろ // 処理完了。ここで hogehoge を Dispose したい } } というクラスがあった場合、(Hoge は int 以外のリソースは使わない) Hoge に IDisposable インターフェイスをつけても int 型が Dispose できないのでメモリが解放されません 「new hogehoge」で確保したメモリを解放したい場合はどうすればいいですか?
hogehoge.Dispose()だと思ってたんだけど違うの? あんま気にして無かったよ。
ぬるぽGC.Collect();
というより、 > int 型が Dispose できないのでメモリが解放されません の文が意味不明。 Disposeは直接的にはメモリを開放するメソッドではない。
何を聞きたいのかよく分からんけど、メモリの開放はオブジェクトへの 参照がなくなった後、GCが適当なタイミングで勝手にやることを知ら ないって話?
どう見ても夏房でしょう
>>232 非マネージド型(or 非マネージド型メンバからなるstruct)で、
単一のスコープの寿命で事足りるなら、stackalloc しとけばGC
動かさないですみますけど。
struct aaa
{
public int aa;
public int bb;
public int sum() { return aa+bb;}
}
unsafe void test()
{
aaa* fib = stackalloc aaa[100];
int sum1 = fib[1].sum();
}
質問です。 listViewのアイテム欄に表示しきれない文字列を複数行に分けて表示したいのですが、 どうしたらいいのでしょうか?
ListViewのDetailモードのことかな? それだったら改行はできなかったと思うんだけど。
>>240 そうです、Detailsです。
Detailsでは改行はできないのですか。。。
レスサンクスです。
まぁ、確かに改行したい時はあるな。
VC++netで checklistboxを使いたいんですけどツールボックスの中にはありませんよね これをデザインで視覚的に操作しながら編集するには?
>>243 スレタイ見て書き込めよヴォケが。
それとも誤爆?
246 :
デフォルトの名無しさん :04/08/10 17:19
VC#でDDEクライアントを作りたいのですが、どのように作ればよいでしょうか。 いろいろ検索したのですが見つかりませんでした。 誰かご教授ください(ノД`)
>>247 レスありがとうございます。
VB6からの移行で右も左も分からずやっています・・・
ソースを見るとなんとなく分かりそうです。
神様ありがとう(゚∀゚)
ageてしまった・・・鬱 ゴメソ(ノД`)
またまた聞いてもいいですか? listViewのDetailsモードのようなビジュアルで 改行しても違和感ないようなフォームって どれを使えばいいと思いますか?
251 :
デフォルトの名無しさん :04/08/11 00:38
pictuerBoxに貼り付けた画像に対して矩形を 描画する方法を教えてくだされ(ドラッグしながら マウスを動かすと矩形が大きくなるやつ)。 また、確定した矩形を消去する方法も。
反転モードで矩形書く。 .NETではよくしらん
//Graphicsオブジェクトの作成 Graphics g = PictureBox1.CreateGraphics(); //Penオブジェクトの作成 Pen pen = new Pen(Color.Black, 1); blackPen.DashStyle = DashStyle.Dot //(10,20,100,80)の長方形を描く g.DrawRectangle(pen, 10, 20, 100, 80); //リソースを開放する pen.Dispose(); g.Dispose(); これで四角形が書ける。 消し方は知らん。
254 :
デフォルトの名無しさん :04/08/11 07:14
メモリーイメージに頼っちゃダメだよ メモリーイメージに頼る方法だとXORで描画という方法だ XORで四角を書いて描き、もう一度同じ四角を書いて消す これが基本 マウスの移動イベントに合わせてこれを行うわけだけど マウスの他のイベントもきっちり制御しないとゴミが残るよ それやるよりは描画データを持ってた方が10000倍楽だよ 移動や拡大縮小実装するのも簡単だし、、 描画データを持ってれば何でも可能
DataGridってフォーカスが当たってるところ意外って一行目しか見えないの?
>>254 描画データを持っとくというのはメモリイメージって言葉に
当てはまるような気がしないでもないんだが。
むしろ描画状態に頼っちゃダメってほうがしっくり…
257 :
デフォルトの名無しさん :04/08/13 08:36
.NETって、XOR描画するのにはRegion.Xor()を使うしかないんだね。 ちなみにXOR(排他的論理和)演算を知らない人のための紹介 描画対象の色ビットが1100で、描画する線の色が1010の時、 XORだと、実際に描画使われる色は1001となる。 つまり、両方のビットが一致しないと真にならない。 したがって、どんな色で書かれていても、必ず線が見える。 普通に書くと、青い画像に青で線を書いたら見えないが、 XOR描画なら必ずみえる。 1100 1010 -------------- 1001 これのもうひとつのメリットは、もう一度同じ色で線を書くと ビット状態が元に戻るということだ。 つまり、描画した線が消える。 1001 1010 -------------- 1100
258 :
デフォルトの名無しさん :04/08/13 08:41
排他的論理和だから0110だね
1100 1010 -------------- 0110 1001 1010 -------------- 0011
2つめの例の意味がなくなってるということに気づいていないかな…
つかXOR描画で色ってあったっけ
>>250 ListViewItemを継承してどうにかこうにかすれば
改行できるアイテム作れるかも…と思ってやってみたけどダメぽ。
でもまぁ、どうしてもというのなら、
上みたに楽して作ろうと思わなければ、出来るには出来るよ。
Controlを継承してチマチマとコンポーネント開発でGo。
色ってなんだ色って… 単なるビット列として見ての話なんだから、色があるもないも関係なし。
264 :
デフォルトの名無しさん :04/08/13 19:19
色情報のビットの話なんだからいいんじゃねーの?
あ、うーん、「色の話自体」はいいんだけど、 >つかXOR描画で色ってあったっけ って表現がなんかずれてるような気がしたもんで…
266 :
デフォルトの名無しさん :04/08/16 18:24
初歩的な質問で申し訳ないですが、 javaやc++のvectorのような、可変長の配列を使用するには どうすればいいのでしょうか? ご教授お願いします(;´д⊂
>>266 1.1 System.Collections.ArrayList
2.0 System.Collections.Generic.List<T>
>>267 某書籍(c++&java)を参考にリバーシを開発しようとしてまして。
石の変更点を記録するために可変長の配列を用いてみようとしております。
>>268 ありがとうございます。
ヘルプなど見て試してみたいと思います。
RSACryptoServiceProvider使って、 秘密鍵で暗号化して公開鍵で複合化するのは無理ですか?
復号
273 :
デフォルトの名無しさん :04/08/16 19:02
>>266 System.Collections.ArrayListを使え
//エナメレータアクセス
IEnumerator en = anArrayList.GetEnumerator();
while (en.MoveNext())
{
Foo foo = (Foo)en.Current;
...
}
//インデクスアクセス
for (int i = 0; i < anArrayList.Count; i++)
[
Foo foo = (Foo)anArrayList[i];
...
}
//要素の更新方法
anArrayList.Add(foo); //追加
anArrayList.Remove(foo); //削除
anArrayList.RemoveAt(10); //インデクスによる削除
anArrayList.Insert(3, foo); //インデクスによる挿入
anArrayList[10] = foo; //更新
anArrayList.Clear(); //要素のクリアー
274 :
デフォルトの名無しさん :04/08/16 19:09
後悔鍵暗号ないのか...
あるプロジェクトの *cs ファイルを他のプロジェクトと共有して、 一方のプロジェクトで変更されたらもう一方でも反映されるようにしたいのですが、 「プロジェクト」−「既存項目の追加」で追加するとコピーが作成されてしまいます。 うまく共有するにはどうすればいいのでしょうか?
>278 DLLにしたほうがいいと思います.
サーバ側ではBeginWriteを、 クライアント側ではBeginRead使って 通信を行おうと思っているのですが、 BeginWriteとBeginReadは常に1対1で対応しますか?
>>280 TCP の場合、しません。何をどうやってもできませんので、
相互に送出単位を認識できるようにちゃんとプロトコルを設計しましょう
(改行で区切るとか、バイト数を先に送るとか)。
>>281 ありがとうございました。
UDPなら対応するのですか?関数名は変わりますが。
>>282 UDP はメッセージ型なので、
メッセージが分断されたり連結されたりすることはありませんが、
ルータやファイアウォールを(双方向には)通過できないとか、
パケット(メッセージ)が失われたり、
順序が変わっても文句を言えないという低レベルな仕様になってますけど、
その辺大丈夫ですか?
>>283 メッセージの順番はどうでもいいのですが、
失われるのは困るのでやめておきます。
ありがとうございました。
元となるクラスの型のオブジェクトからは呼び出せるが、継承したクラスの型のオブジェクトからは 呼び出せない関数を作りたいのですが、どうすればいいでしょうか? 例えば public class Hoge と、それを継承した public class HogeHoge : Hoge があり、 Hoge には AAA() が実装されているとすると、 Hoge hoge = new Hoge(); HogeHoge hogehoge = new HogeHoge(); hoge.AAA(); // OK hogehoge.AAA(); // エラー といった感じにしたいです。
ブラウザに.NET Passportのログイン機能を持たせたいんだが、 検索しても、asp.netの情報しか見つからない。 何か知っていることがあったら教えてくれ
288 :
デフォルトの名無しさん :04/08/17 20:51
>>285 最初に自分自身のクラス名を判定すればいいじゃん
メンバメソッドにしなきゃいいじゃん. インターナルクラスにしてpraivateで定義
privateで同名のメソッドを定義する。 シグニチャが同じだったらnewとかいったかな。 ちがったらoverloadとかいったかな。
VC#2002において、System.Windows.Forms.Menuを継承したクラスを プロパティエディタ上でSystem.Windows.Forms.FormのMenuプロパティのリストに表示させる こんなことは出来ますでしょうか?
System.Nullable<T> T? t??
294 :
デフォルトの名無しさん :04/08/23 23:07
Windows.Formにプロパティを加えたんだけど、 デザイナのプロパティウィンドウには表示されませんね。 基底クラス(Windows.Form)に加えたプロパティは 派生クラス(Windows.Form)のデザイナに反映される みたいだけど、自分自身ならなぜだめなのかなぁ。
295 :
デフォルトの名無しさん :04/08/24 03:19
VS2003.NETを使っています。 C#でDLLを作ろうと思うのですが、 新規プロジェクト作成を選んだ後、テンプレートから どれを選択すればよいのでしょうか? 拡張ストアドプロシージャDLLというのがありますが これで大丈夫ですか? 他の言語からも呼び出すことができるのでしょうか・・・? よろしくお願いいたします。
296 :
デフォルトの名無しさん :04/08/24 03:36
拡張ストアドプロシージャDLLはVisualC++のテンプレートでした・・・ C#ではDLLは作れないのでしょうか・・・
クラスライブラリでは駄目なの?
298 :
デフォルトの名無しさん :04/08/24 10:33
>>297 できればDLLがいいんです。
ネイティブコードからダイレクトに呼ばれることもあるので・・・
作成するプロジェクトを選択する画面でクラスライブラリを選択して ビルドすれば、DLLが吐き出されるよ。
300 :
デフォルトの名無しさん :04/08/24 11:17
>>299 本当ですか?
ありがとうございます。
他の言語からも呼び出せますよね?
呼び出せると思うけど、当然.NET Frameworkは必須
302 :
デフォルトの名無しさん :04/08/24 16:14
長い処理をするとフォームが固まってしまうので フォームを再描画したいと思い、 this.Invalidate()やthis.Update()を試したのですが 結局「応答なし」となってしまいだめでした。 (応答なしでも実際は動いています) せっかくプログレスバーをつけてもこれでは意味がないので、 よい方法が有りましたら教えてください。よろしくお願いします。
>302 .NET解説書にはWindowsメッセージの話し載ってないのか? 1.マルチスレッド 2.処理中メッセージ処理 3.処理中強制的にウィンドウ描画 楽なのは2.場合によっては1
クラスライブラリ中に埋め込まれた画像を、クラスライブラリ中のメソッドから取得しようとしてるのですが上手くいきません プロジェクト名「ClassLibrary」に埋め込みリソースとして「BackGround.bmp」を追加した状態で System.Reflection.Assembly assm = System.Reflection.Assembly.Load(this.GetType().Assembly.GetName()); System.IO.Stream stream = assm.GetManifestResourceStream("ClassLibrary.BackGround.bmp"); Bitmap bmp = new Bitmap(stream); とやろうにもstreamがnullと返ってきます。どこが駄目なのかイマイチわからないのでご教授願えませんか?
カレントディレクトリがずれてるんでは?
すまん勘違い
どうでもいいが、 >System.Reflection.Assembly.Load(this.GetType().Assembly.GetName()) はないだろ。
>>306 漏れのコード見るとこんな感じ。
System.Reflection.Assembly myAssembly = System.Reflection.Assembly.GetExecutingAssembly();
img = new Bitmap( myAssembly.GetManifestResourceStream(url) );
なーんか、リソース名が間違ってるとかそんなんじゃない?
>310 Windowsアプリケーションだとそのコードで埋め込みイメージを取得できました が、クラスライブラリで同じコードを記述してもエラーが返ってくるんです
ほんとにリソースの含まれてるクラスライブラリと、 問題のコードは同じアセンブリ(クラスライブラリ)?
解決しました GetManifestResourceStream("ClassLibrary.BackGround.bmp"); の「ClassLibrary」をプロジェクトの「アセンブリ名」ではなく「規定の名前空間」にしたら きちんと取得できました。 アセンブリ名と名前空間名を違うものにしていたのが原因なのですかね 皆様サンクスです
いやそもそもきちんとリソース名を指定したらいいだけの話で。 アセンブリと名前空間というものを正しく理解する事ね。
>>314 既定の名前空間にしたらきちんと取得できたといってる時点で
まだちゃんと理解できてないな。
アセンブリ名と名前空間を違う物にしていたのが原因て…
確かにそういえないことはないが、問題の本質は
名前空間名を指定しなければならないところで違う物を指定していたということだ。
EXEでも勝手に使われるが?ってのは置いといて… まあ普通はDLLにしとくような気がするけど、別にそうしなければならない理由はないかな。 開発時の管理面等考えると、ライブラリにする方がいいとは思う。
319 :
デフォルトの名無しさん :04/08/25 03:05
C++で書かれたDLLを、C#から呼び出したいのですが、 C++のstd::string と、 C#のSystem.Stringの互換性がなくて うまく呼び出せません・・・ 関数は下記のようになっています。 int foo(int, string, string); また、もう一つこのようなものも用意されています。 int foo2(int, char*, char*); これをC#から呼び出す方法はあるでしょうか? どちらも機能は同じなのですが、 System.String.ToCharArray()を使ってもchar*にならないし 手が出ません・・・ 良い知恵がありましたら教えて頂けると助かります。 よろしくお願いします。
Managedで皮かぶせれば?
C#&VC#.NETをある程度マスターするのってどれぐらい時間が掛かる? ん〜、MSNメッセンジャーみたいなものを最終目標にするとしたらどれぐらいかな? C++、VC++はほとんど使えず、Java、VBはそこそこ使える状態です。 C#は完全に趣味としてしか使わないから、 習得にかなり時間の掛かるような代物なら手を出さないほうがいいかと思って。 経験者の判断を仰ぎたいです。
VB、Javaはそこそこ使えるってんなら、そこいらの入門書とか Webの解説ページとか自分で読んで判断したらいいんじゃないの? 趣味なら余計に。 誰も君の実力なんて知らないよ。
325 :
デフォルトの名無しさん :04/08/25 11:46
>>324 たしかに判断しろってのは無理があるorz
じゃぁ質問変えて、おまいだったらどのくらい掛かった?学習当初のレベルも合わせて教えてたも。
>>325 漏れは 324 じゃないけど、C++ 暦 12〜13 年位、Java は趣味程度、
その他 Cobol 以外の言語ならなんでもござれってな感じの職業プログラマだけど、
C# は大体 1〜2時間でだいたい使えるようになったよ。
言語としては Java と同程度に分かりやすく、複雑さも少なく、記述性も高いのでとっつきは良いよ。
あと例によって Microsoft 謹製のしっかりしたドキュメントが用意されてるから、
WEB漁ったりヘンな入門書買ったりする手間も少ないし。
327 :
デフォルトの名無しさん :04/08/25 13:54
>>326 へぇー(・∀・)
やっぱ他の言語を熟知してるっていうアドバンテージは大きいなぁ。
C#はC++っぽいところがあるみたいでちょっと手こずるかなーって思ってたんだけど、
それなら挫折しなそうだし習得も早いかも。早速挑戦してみます。ありがとうございます。
>>323 Javaと同程度に使えるようになるのに3日くらいあれば十分じゃないか?
言語仕様は小さいし。ライブラリを覚えるのは別だが。
329 :
デフォルトの名無しさん :04/08/25 23:37
例えば、カンマが何個かある文字列をsplitでカンマでわけてとりだそとしています。 カンマの数が決まっていないので、もしない範囲をしていしたら落ちてしまいます。 どうすれば回避できるのでしょうか?
??? splitで返った配列の要素分処理したらいいんじゃないのか? そういうことじゃないのか?
言語仕様は2時間くらいで覚えた。ライブラリは、まだまだかかりそう。
言語仕様の部分だけなら、Javaを分かってる人間なら短時間で 大体理解できるだろうな。 細かいところを含めるとある程度はかかるけど。 まあ結局一番時間かかるのはライブラリだな。
まぁライブラリは大枠捕らえて後はその都度引けばいいかんね。 んで、その大枠のってるの何かありまふか... 本でもサイトでもいいでふ...
C#は簡単でしょ。 いきなり業務のプログラムも組めたよ。 JavaやC++をしってれば即興でオケー
俺もCをちょっと、Delphi、phpのみの経験で 業務アプリが出来ました。 まあ業務アプリは実装部分は 大した事やらないですからね。 せいぜいマルチスレッド処理で ちょっとてこずった位。 でも判っちゃえばやりやすかった。
業務プログラムの場合、仕様を決めるまでが地獄だからねえ。 仕様さえ固まれば技術的には楽々。
>技術的には楽々 といいながらバグ含んでるプログラムがなんと多い事か。
>>337 そうなんだよなあ、技術的には楽々なんだけど
量的な問題とか理不尽な仕様変更とかままあるし
技術的に楽なだけにコーディングの
モチベーションも下がりやすいだろうし
スレ違いのグチになっちった
おまいらが技術的にはらくらくてのはどの程度のことをさすの?
>>341 人によって色々だろうけど
業務アプリって、
基本的には四則計算なのです。
GUIについての細かい注文もあるけど
そのために自前で何かを描画したりとかはまずないし。
開発環境についてくるコントロールをペタペタ貼って
限界を感じたらサードパーティのを買って使う。
コアな事やってる人達にそんなんで
プログラマーかと怒られそうですよ。
>342 するってーと余り創る喜び見たいのはないのかね?
業務アプリはポトペタでできそうなイメージだな。 DBにアクセスして云々という感じ。 レーダーみたいなものならゲームみたいな描画が要りそうだけど
>>343 作る喜び、ないこともないですよ。
APIたたいたりとかせんでもいい代わりに
業務をいかにシステムに落とすか、とか
いかに合理的で堅くて使いやすい
画面設計にするかとか、結構頭使います。
頭をどこに使うかが違うだけで、やっぱり大変。
そんな訳でガベコレのあるC#、 ポトペタできるVC#は大変有り難いです。 なんかこんな話ばかりで申し訳ないので むりくり話題を戻してみました。 でも、コアなところ知ってる人が DCがーとかウィンドウメッセージがーとか ゆってるの見ると、劣等感を感じない事もないです。
DCもウィンドウメッセージもWin系やるなら基礎知識だと思うが
にゃるほど。 自分はオンライントレード用のアプリとか創ってたんで少しはコアよりかも。 リアルタイムに動くUI創ったりするのとかちょっと面白かったですね.
>>337 それは標準的な業務プログラマが技術的に信じられないほどクソだからだ。
ビックリするぞ。あんなボンクラばっかりでいいのかよ、と思う。
業務プログラマが100人いたら、技術的にまとも(←決して優秀ではない)なのは
2〜3人くらいじゃないか。どいつもこいつも学習能力すらありゃしない。
>>347 うん、そのウィンドウズだろうと
Linuxだろうとそういう基礎知識がなくても
取り敢えずは出来ちゃうくらい、楽々って話なのよん。
でもまあ時々、知ってると便利な事はあるけど
そういうのはWebで調べるとサンプルコードが
すぐ出てくるのでコピペします。
あと大概チームに一人くらいは詳しい人がいるので
そういう時だけ助けてもらったり。
で、>349 のいうとおり、確かにクソな人は
結構な確率でいらっしゃいますけれど
そういう人はドキュメント書かせても
大概が誤字脱字表記ゆれてんこ盛りで
技術力うんぬん以前の問題って事が多いですね。
「とりあえず作って動かす」のは簡単なのよ。 でも、例えばWindowsFormの仕組み上、本当に正しい問題のない 動作が出来てるかってのはちょっとまた違うのね。 ところが、実は少々問題があっても、いいやそのままGOってパターンが… そして場合によっては不具合の発生するコードが量産されていく。 ※実は問題があることにも気づかないパターンが多いが。
そういうプログラムって内部のオブジェクト構造まともなんですか?
>>350 >でもまあ時々、知ってると便利な事はあるけど
>そういうのはWebで調べるとサンプルコードが
>すぐ出てくるのでコピペします。
それがバグの元だ。訳もわからんのに本番プログラムに採用するな。
ファイルを開きっぱなしで閉じないとか、DBでカーソルを閉じないとか、
そんなプログラムを見せられる身になってくれよ。
>あと大概チームに一人くらいは詳しい人がいるので
>そういう時だけ助けてもらったり。
はっきり言ってボンクラ過ぎてフォローなんか出来ないんだよ。
一見動くプログラムしか作れないくせに凝った事をするな。
>>352 まともなわけないじゃん。
勘と雰囲気で適当にオブジェクトに分けただけだよ。ポリシーなんかないんだよ。
デザインパターンなんて噂でしか知らないんだよ。
継承やポリモーフィズムが難しいとか言ってるんだよ。
そういう奴らのソースを修正するときは、どうしたもんだか途方に暮れる。
全面改定の工数なんか無いしさ。
しかも人がまともに設計したのを無茶苦茶にしやがる。
管理系の難点を除いても、XPとか夢のまた夢だよ。
まともなユニットテストを書ける奴すら居ないと思うよ。
俺は大したプログラマじゃないが、そんな俺でも今の職場じゃ
技術的に飛び抜けて優秀だから、ストレス溜まるったらありゃしない。
ホント勘弁して欲しい。
>>353 いやいや、俺の場合、
バグの元になるようなものはコピペせんですよ。
せいぜい二重起動防止でミューテクス使ったりとか
そういう決まり文句。
何を意味してるかはわかってるけど
一から書くのが面倒なので。
でもファイル開きっぱなしやDBオープンしっぱなしってのは
俺の職場じゃ流石に見た事ないなあ。
いくら技術的に楽々ってたって、そりゃ問題外、
お気持ちお察し致します。
いくら俺でもC#でストリームだのIDisposableを継承した
クラス使うときはusingで囲むかDisposeするようにしとりますよ。
業務系うんぬんの話、俺が始めちゃったんだけど
なんか急に盛り上がっちゃいましたね。
すんません、VC#の話題続けて下さい。
>人がまともに設計したのを無茶苦茶にしやがる。 これ痛い、多い。
Javaスレの無能なのに勘違いJava厨とかわらないねぇ C#ユーザーって社会不適合者多いんだね
Javaのクズプログラマ層が、一部C#に流れてきてんのかも。
359 :
デフォルトの名無しさん :04/08/28 04:53
>357-358 くずハケーン
>357 そういう事は、思ってても口に出さないように。(スレが荒れる原因になります。)
>>357 漏れの代わりによく逝ってくれた!! はースッキリした。
C#というか.NETFrameWorkって内部で何やってるかわからないんだよな そんでわからなくてもちゃんと動く それもまた良し悪し
MFCInternalみたいな本てないのかね?
C#って初心者向けの本ばっかりで 技術面まで言及した本少ないよね Microsoft公式か、プログラミングC#(だっけ?)ぐらいしかないような気がする
俺は初めて彼女と .NET した。 「もうそろそろ Interface? 君の ADO.NET を確かめたいんだ。 Delegate 」 Metrics あうと、彼女の MFC は ASP.NET としていた。 緊張した俺は焦り彼女の PE を ILDASM しようとした。 「ちょ、ちょっと Reflection!何を Serialization 」もう俺は既にアセンブリ。 Boxing のホックを外すとはちきれそうな Postback が インデクサ。 でも GDI+ は意外と構造体だった。 「恥ずかしいわ。あまりメタデータ・・・」 SOAP を Trace ると Container を Signature した痕がアプリケーション ドメイン。 あそこは相互運用機能アセンブリだった。プリンシパルも少し鼻についた。 しかし、彼女のグローバルアセンブリキャッシュを刺激しつつ俺のプライベートアセンブリ を 彼女のシグネチャからAccess Control Listに這わせると、 「もう、Assert。」「コンテキストが欲しいんだろ?」「早くインデクサ」 俺は激しくエバリュエータ。「 Property はいってるっ!Interop service 」 「あぁ WMI !」
>>365 そんなことはないと思うんだが。
それとも和書に限定した話か?
ならC#に限らずどの分野でも同じ話。あきらめろ。
C#というか.NETFrameWorkって内部で何やってるかわからないんだよな そんでわからなくて挙動不審 ソースがないのが致命傷
.NETデバッグシンボル出せないのかなぁ
ソースがあれば問題ないんだけどね
>>368 そうそう和書の話。
俺英語でニュアンスまで読み取れるほど出来てないんで。
CとかJavaって結構マニアックな解説してる本あるでしょ(ポインタとかメモリの解説とかCoreJavaとか)
C#本ではないが、和書の.NET本では一番の雄棲め。
Essential .NET ― 共通言語ランタイムの本質
ttp://www.amazon.co.jp/exec/obidos/ASIN/4891003685 COMの改良版としてとらえたCLRの概念、CLRのコードをパッケージにまとめる方法とコードをロードする方法、
CLRの持つ型の解説、インスタンスとメソッドの解説、ドメイン、さらにコードに特権を付与し、
特権の所持を強制することで得られるセキュリティとCLRの外側を処理する方法を述べている。
CLRがどのようなコンセプトで設計されているのか、どのような仕様になっているのかといった基本事項をはじめ、
CLRの持っている機能の利用方法やコードの実装の仕方についても詳細に解説している。
ただしCLRに絞って解説しているので、.NET FramewaorkやC#についての初歩的な解説はしていない。
これらの基礎を学ぶには他の書籍が必要となるだろう。
>>373 ありがとう
プログラミングMicrosoft .NETFrameworkを読破したら買ってみるよ。
.NETFrameworkが具体的に何をやってるかわかるような書籍ってないのかな
Control.WndProcからEventArgsの生成〜廃棄までの処理を知りたいんだけど
>>374 細かく知りたければReflector for .NETとかで逆コンパイルしてソース読んでみるとか。
>375 SSCLI を見ると何となく雰囲気は判る所がある気はする…全部ではないけど # WinForms 辺りは全くあかんだろうけど
>>376 動かない見本ソースなのは許すとしても、公開量が少なすぎる。
せめて全体の2割くらいは公開してくれよ。。。
>>375 良いツール教えて頂いてありがとうございます。
・・・しかしこれを使っても宣言部分しか読めないメソッドはやっぱりどうにもならないんでしょうか?
379 :
デフォルトの名無しさん :04/09/01 09:39
クラスライブラリを横断的に解説した良書はありませんか C#の基本的なところは理解したのですがMSDNのオンラインマニュアルは どうも構成が読みづらくて…
英書でもかまわんから良書情報きぼん
381 :
デフォルトの名無しさん :04/09/05 22:51
TabControlの中にあるTabPageを選んだときにはしるイベントは何でしょうか。
>>381 選択されているTabPageが変わった時は
TabControl.SelectedIndexChanged が発生。
TabPage自身で"自分が選択された"ことを
知りたい時は TabPage.GetFocus で。
用途に合った方を使え。
383 :
デフォルトの名無しさん :04/09/06 17:35
DirectX 9.0 SDK Update (Summer 2004)をインストールしたら vs.netのDirectXウィザードで作られたアプリがビルドできなくなった。 名前空間がないとかどうたら言われて・・・
>>383 リリースノートくらい読めよ・・・
スレ違いくらい自覚しろよ・・・
すみません。質問です。 webアプリで DBから取得した項目をDataGridで横方向ではなく縦方向で表示 させたいのですが、可能なのでしょうか? どなたかご教授ください。 縦方向というのは 社員コード 123456 社員名 田中太郎 部署 ソフトウェア開発 性別 男 年齢 22歳 このような感じです。 なお取得レコードは常に0件か1件です 開発環境はVC#.net です よろしくお願い致します
>>385 縦方向のDataGridってのは思いつかないのだけど、
0か1しか取得しないのであれば、
Gridである意味はないんじゃないのかな。
あなたの書いているフォームを作るのは
そんなに難しいことではないでしょ?
例えば、DataGridと同じようにDataSetを入れることで
データを表示したいとかんがえているのなら、
そのフォームがDataSetを受け取るように設計すればいいわけだから。
387 :
デフォルトの名無しさん :04/09/07 13:49
<TR> <TD CLASS="bgwhite"><SPAN CLASS="black12n">震源地</SPAN></TD> <TD CLASS="bgwhite"><SPAN CLASS="black12n"> 紀伊半島南東沖 </SPAN></TD> </TR> みたいなhtmlからこの例では紀伊半島南東沖 だけを抽出したいときはどうしたらいいですか?
なんていうか、自分でそれぐらい考えろ.それで着ないならプログラム止めろ
389 :
デフォルトの名無しさん :04/09/07 15:24
C++のプログラムはこっちで使えますか
>>389 Managed C++?
ならば普通に連携可能
ネイティヴなら共有ライブラリにしてDllimport
構造体や配列のデータを実行時に伸長したいんですが、または一回全部消して作り直し。 C#でのスマートな方法はどれなんでしょうか? C++みたいにdeleteしてまたnewとかできませんよね? ArrayListやHashTableを使用してもできるみたいですが、 →一度ClearしてからAddする。 単純な配列とか構造体だったらどうなるのでしょうか?
392 :
デフォルトの名無しさん :04/09/07 21:47
string fileName = "ファイル名"; で、fileNameが有効な画像のファイル名かを調べるにはどうすればいいのでしょうか? Image image = new Bitmap(fileName); のようにすると、fileNameが有効な画像のファイル名でなかった場合にimageにnullが帰ってくるかと思ったのですが、プログラムが強制終了されてしまいます。 解る方が居ましたら教えてください。
Image image; try{ image = new Bitmap(fileName); } catch{ image = null; }
>>392 Image image = null;
try
{
image = new Bitmap(fileName);
}catch( Exception e ){
MessageBox.Show("腐ったファイルを食わせる奴はぬるり");
throw new NullReferenceException("You are stupid.");
}
被ったorz
ありがとうございます。解決しました。
397 :
デフォルトの名無しさん :04/09/08 10:58
Visual Studio 2003にて、デザイナでコントロールを配置すると 勝手にresxファイルを使ってしまいむかつきます。 resxを使わずに、csファイルの中だけで コードを完結させる方法はあるのでしょうか? 全部手書きってのは無しとして。
びじゅあるすたじおをつかわない
度々すみません。 Graphics g = e.Graphics; g.DrawImage(image, rect1, rect2, GraphicsUnit.Pixel); として、画像を拡大して表示しようとしたのですが、ピクセルが補完された状態で描画されてしまいます。 画像が補完されずにそのままのピクセルで表示するにはどのようにしたら良いのでしょうか? 描画前に g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Low; とすると補完されずに描画されるのかと思ったのですが、補完された状態で描画されてしまいます。
>>392 System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor
>400 助かります。ありがとうございました。
いろんなところで間違えてる厨房がいるが、一応。 Interpolationは「補間」な。
403 :
デフォルトの名無しさん :04/09/10 19:03:36
MobileApplicationからクリップボードのデータを拾ってくるにはどうすればいいですか? IDataObjectが使えないのですが…
>>403 .NET CFの話なら、ClipboardサポートはCF2.0から、と今日のTech・Ed2004でやってたよーな気が。
すいません、言葉足らずでした。 MobileWebApplicationです。 携帯からアクセスすると、そのときのクリップボードの内容をサーバ側で処理して 携帯に送ってやろうと思ったのですが。 一度MobileじゃないWebApplicationでやってみます。 ありがとうございました
すみません、Unmanaged Codeを取り扱っていて困っているのですが、 char* で受け取った文字列をSystem.Stringに変換する 方法はありますでしょうか? 構造体の中に入っているので、マーシャリングもできずに 困っています・・・ よい手だてがありましたら教えて頂けると大変助かります。 よろしくお願いいたします。
408 :
デフォルトの名無しさん :04/09/13 19:34:03
関連付けされていないファイルを開くとどうなるかと思い, System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.EnableRaisingEvents = true; proc.StartInfo.FileName = "explorer.exe" proc.StartInfo.Verb = "explore"; proc.StartInfo.Arguments = "C:\\hoge.unko"; // ファイル自体は存在します proc.Start(); のようにしました. 通常エクスプローラで関連付けされてないファイルを ダブルクリックした時のように,「アプリケーション一覧」が 出てくることを期待しましたが,「関連付けされたアプリケーションがありません」 というエラーになりました. 実装する場合には,このエラーをハンドリングして自前で処理しなくてはいけないんですか? めんどくさいよー
verb を open にすればいいのに。
410 :
408 :04/09/13 22:04:07
>>409 ありがとうございます.
でも open にすると,『「開く」か「保存するか」』のダイアログが出てしまいます.
(IEで何かをダウンロードするときと同じです)
うーん
ProcessStartInfo.ErrorDialogで出来なかった? 出来なかったかな…っていうか既にやってるってことかな…
412 :
408 :04/09/14 11:27:46
>>411 ありがとう!
ErrorDialog 使って,shellexecuteすることで実現できました!
↓こんな感じ
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "C:\\hoge.unko"; // ファイル自体は存在します
proc.StartInfo.ErrorDialog = true; // ←これと
proc.StartInfo.UseShellExecute = true; // ←これが大事(既定でtrueだけど一応)
proc.Start();
413 :
デフォルトの名無しさん :04/09/19 13:12:59
setpixelとか使わないで、ビットマップの配列を得るのには どうしたらよいでしょうか?
プロジェクト配下に、 bin obj って二つのディレクトリが作成されて、dllもそれぞれ2種類出力されますよね? これって、どういうことなんでしょうか? 何か違いあるんですかね? また、参照はる場合やりリースする場合ってどっちのファイル使うのが正解なんでしょうか?
416 :
デフォルトの名無しさん :04/09/20 13:33:14
SQLサーバで一時のローカルテーブルを作った時って、どのタイミングで 消えるんですか?
>>417 1. System.Net.ICertificatePolicy を実装したクラス「hoge」を作る
ICertificatePolicy の実装メソッドは単にtrueを返すだけ。(つまりどんな証明書も信頼する)
2. 通信を行う前に System.Net.ServicePointManager.CertificatePolicy へ1で作成したクラスを登録。
System.Net.ServicePointManager.CertificatePolicy = new hoge();
という具合かな。
>>418 上手くいかない(泣)
”基になる接続が閉じられました:SSL/TLSの安全なチャネルを確立できませんでした。”
っていうエラーが出る・・・orz
なぜだー。
ちなみに接続にはWebRequestを使ってます。
>>417 using System.Net;
using System.Security.Cryptography.X509Certificates;
class Test
{
static void Main(string[] args)
{
ServicePointManager.CertificatePolicy = new hoge();
WebRequest req = HttpWebRequest.Create("
https://example.com ");
WebResponse res = req.GetResponse();
}
internal class hoge : ICertificatePolicy
{
public hoge() { }
public bool CheckValidationResult(ServicePoint srvPoint,
X509Certificate certificate,
WebRequest request,
int certificateProblem)
{
return true;
}
}
}
とかでいけるはずなんですけども。
421 :
デフォルトの名無しさん :04/09/26 08:07:33
ListViewItem の SubItems コレクションって、 Add とか Remove とかできますが、 その際に整数でインデックスを指定する代わりに 分かりやすい名前で指定できないものでしょうか。
>>421 別に整数値を直書きしかできないわけじゃないんだから、分かりやすい名前の
変数名で指定するなりすれば良いのでは?
423 :
デフォルトの名無しさん :04/09/30 01:17:38
ASP.NETの開発をしているんですが、
webアプリで現在のURLを取得する方法はないでしょうか?
例えば、
http://www.xxx.com/aaa/bbb/ccc/ex.aspx を実行したなら、cccが返ってくるようにしたいのです。
Windows.Forms.Applicationなどを使おうかと思っていたら
当然ダメでした・・・
何か良い方法がありましたら教えて頂ければ幸いです。
どうかよろしくお願いいたします。
>>424 ありがとう。Response.Urlでいけました。
どうでもいいけど、なんで .NET SDK のサンプルには NetworkStream を StreamReader or StreamWriter で被せるサンプルが無いんだ?
428 :
デフォルトの名無しさん :04/10/07 17:20:03
印刷ダイアログで印刷範囲指定させるにはどうすればいいですか? System.Windows.Forms.PrintDialog printDialog1 = new PrintDialog(); printDialog1.Document = this.printDocument; printDialog1.AllowSelection = true; printDialog1.AllowSomePages = true; printDialog1.PrinterSettings.FromPage = 1; // とりあえず決め打ち printDialog1.PrinterSettings.ToPage = 2; // とりあえず決め打ち DialogResult result = printDialog1.ShowDialog(); //印刷の選択ダイアログを表示する if (result == DialogResult.OK) { //OKがクリックされた時は印刷する this.printDocument.Print(); } のように書いたのですが,出てくる印刷ダイアログの「ページ範囲」で 『すべて』以外の『選択した部分』や『ページ指定』ラジオボタンが無効に なっていて選択できません. 上記コードで代入している printDocument は2ページ分のデータがあります (printPreviewControl もくっつけてるので,そちらで確認済み) 教えてください..
429 :
デフォルトの名無しさん :04/11/13 19:38:51
リストボックスで、複数列を表示するコントロールはなんになるのでしょうか? ウィンドウズでいえば、「フォルダオプション」の「ファイルの種類」タブにある、 「登録されているファイルの種類」のリストボックスで、拡張子とファイルの種類が表示 されているような、このようなコントロールなのですが・・・
質問なのですが、 皆さんはどうやって自分でプログラムを作れるようになりましたか? 自分の場合は、初心者用の本を読んだ(入力した)はいいのですが それ以上のことができません。 ソースコードを写しても覚えられません。 ぜひとも教えてください。
>>431 センスのない奴は何をやってもダメ。諦めろ。
433 :
デフォルトの名無しさん :04/11/14 01:29:26
マジレスすると自分で何かを作ろうとしないとだめだと思うよ。 で、そのときの取っ掛かりで聞ける人とかがいるとなおいいだろう。 マニュアル盆見て全部覚えようとしても必要のないものばかり(そのときは)なので無理。 たとえば2chブラウザ作ってみようかとおもえば何が必要かやってるうちにわかってくるはず。 Webの仕組み TCP/IP HTTP 2chの仕組み 言語 GUI ファイル操作 スレッド管理など一通り抑えられる。 今ならネットあるからその辺はいいなぁ。
ICMP、SNMPをソッコーで理解するには2chブラウザがオススメ。
Λ_Λ . . . .: : : ::: : :: ::::::::: ::::::::::::::::::::::::::::: /:彡ミ゛ヽ;)ー、 . . .: : : :::::: ::::::::::::::::::::::::::::::::: お願い・・・ / :::/:: ヽ、ヽ、 ::i . .:: :.: ::: . ::::::::::::::::::::::::::::::::::::::: 誰かツッコんで・・・ / :::/;;: ヽ ヽ ::l . :. :. .:: : :: :: :::::::: : ::::::::::::::::::  ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ
>>431 リファレンスや上級者用の本を読む。むやみに暗記する。
同じプログラムを何度も作る。
なるほど、みなさんありがとうございます。 思えば、自分が様々なアプリケーションについて覚えたのは 試行錯誤したからでした。 なんとかがんばってみたいと思います。
440 :
デフォルトの名無しさん :04/11/14 19:12:33
VB.NETのソースで以下のようなものが あったのですが、これはC#ではどうやって書き直せば よいでしょうか? Public Class articleInfo <XmlElement("商品名")> Public product As String = String.Empty <XmlElement("価格")> Public price As Integer = 0 End Class
>>440 public class articleInfo
{
[XmlElement("商品名")]
public string product = string.Empty;
[XmlElement("価格")]
public int price = 0;
}
こんなん?
.NETってさ、SSLv3通信には自動で接続を確立してくれるけど、SSLv2通信には対応してないの?
>>445 .NET2.0ではSSL2対応してる。
447 :
デフォルトの名無しさん :04/11/17 21:05:32
計算の途中結果を表示するのに ReadOnlyなTextBoxを利用してるのですが(いじられたくないけどコピーはしたい) 条件によって文字の色を変える方法は無いでしょうか? ForeColorで指定してもReadOnlyなときは常に黒色で表示されてしまいます。 よろしくお願いします。
449 :
あるじゃジーらはどとねとゆーざ :04/11/18 03:08:00
http://english.aljazeera.net/InPictures/Falluja-Siege07-04-20044.htm [InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.]
System.Data.SqlClient.SqlConnection.Open() +761
AlJazeera.EnglishSite.ExtendedUser.getPrivileges() +66
AlJazeera.EnglishSite.ExtendedUser.getGroupsAndPrivilegesForUser() +113
AlJazeera.EnglishSite.ExtendedUser..ctor(String WinNTName) +540
AlJazeera.EnglishSite.DefaultConsole.Page_PreRender(Object sender, EventArgs e) +75
System.Web.UI.Control.OnPreRender(EventArgs e) +67
System.Web.UI.Control.PreRenderRecursiveInternal() +62
System.Web.UI.Control.PreRenderRecursiveInternal() +125
System.Web.UI.Control.PreRenderRecursiveInternal() +125
System.Web.UI.Control.PreRenderRecursiveInternal() +125
System.Web.UI.Page.ProcessRequestMain() +1470
450 :
デフォルトの名無しさん :04/11/18 17:15:38
ListViewを自分で作るのではなく 画面に表示されているウィンドウ(デスクトップ含む)の ListViewを取得するにはどうしたらいいのでしょうか? ListView *listview = GetListView(プロセスID); みたいな お手軽な方法があるのかと思っていたらなさげなので 全然わからないです(´・ω・`)
>>448 さん
ありがとうございます。
richtextboxだとread onlyにしてもグレーアウトしないんですね。
とおもったらDouble_Clickイベントがなくなってる…
しょうがないからMouse_Downにするか…
ありがとうございました。
以下のようにCOM+サーバ内で 呼び出し元のPCのIPアドレスを取得したいのですが可能でしょうか? class A : ServicedComponent { public string b(){ return このメソッドを呼び出したクライアントのIPアドレス } }
>>451 を見て思ったんだけど
RichTextBoxのプロテクトメソッドにDoubleClickあるんで
継承してつかえないもんでしょうか
IDEから見えないだけでイベントそのものはある。 ControlStyles.StandardClickをtrueにすればイベントも有効にできるが、ひょっとしたら何らかの副作用があるかも知れない。 .NET 2.0だとIDEからでも普通に見えるし使えるようになってるな。
456 :
デフォルトの名無しさん :04/11/22 14:51:26
457 :
デフォルトの名無しさん :04/11/24 20:41:14
Regexのことでお聞きしたいのですが
http://table.yahoo.co.jp/t?s=2353.t&a=8&b=23&c=2004&d=11&e=24&f=2004&g=d&k=20041124 のようなページをGETし、HTML中の
align=right bgcolor="#ffffff"><td><small>2004年11月24日</small></td><td><small>20,300</small></td>
<td><small>20,700</small></td><td><small>18,710</small></td><td><small><b>19,100</b></small></td>
<td><small>134,406</small></td><td><small>19,100</small></td></tr><tr
(実際は一行)
という形式の各一行から各要素を取り出したいのですが
Regex reg1 = new Regex(@"※");
色々やってみたのですが※の部分をどう指定していいか分かりません。
もし、判る方がいらっしゃいましたらご教授願えないでしょうか?
@"<td><small>([^<]*)</small></td>" みたく各カラムの要素を取り出して、列数で区切って配列に格納とか…? 力業で1行をまとめてマッチさせることもできるやも スマートな方法はちょっと思いつきません(´・ω・`)
適当に書く。間違ってたらスマン <td><small>(?<date>)</small></td><td><small>(?<val1>)</small></td> <td><small>(?<val2>)</small></td><td><small>(?<val3>)</small></td><td><small><b>(?<val4>)</b></small></td> <td><small>(?<val5>)</small></td><td><small>(?<val6>)</small></td> んで Regex.Match メソッドを使う
>>459 最初それ考えたんだけど、途中の
「分割:1株→21株」ってのでおかしくなる悪寒
返された Match クラスの Success プロパティを調べれば正しくマッチしたかどうか判る ……ってなんだこりゃw 妙なページソースだなぁ 株系はよくわからんけど、同じ要領で進めていけば回避できるのでは?
462 :
デフォルトの名無しさん :04/11/24 22:16:40
VS.net 2003を使ってます。 C#で開発しているのですが、特定の変数の値が変更されたときに ブレークさせたいのですが、そういった設定はどこですればいいんでしょうか?
すみません、叩かれるの覚悟で質問させてください。 これから.NETをやるので、何か本で勉強しようと思うのですが、 C#で書かれたASP.NETの本を買って来いといわれました。 でも、あまり売っていません。 C#.NETとは違うといわれたのですが・・・ C#.NETとC#で書かれたASP.NETというのは別物なんでしょうか? 勉強しようにもわからなすぎて困っています。 よろしくお願いします。
>>463 ASP.NET はサーバサイドアプリ……つまり IIS に取り付いてクライアントに HTML ページとか作って送る用の技術っす。
それを C# で書くから『C# で書かれた ASP.NET』
急ぎで無いのなら、まず始めに C# の入門書買ったほうがいいと思います。
ASP.NET はその上の難易度ですので。
>>464 レスありがとうございます!
疑問が解けました・・・今までわからずにやってたのが恥ずかしい。
ちょっと急ぎなのですが、C#の入門書とサンプル集、
ASP.NETのWebコントロールのリファレンス辺りを買ってみようかと思います。
466 :
エデン :04/11/25 02:48:46
現在VC#でメールソフトを作っているのですが
それがあと少しでできません(TT
たぶん(確率劇的に高い)初心者クラスの間違いだと思うのですが。
ぜんぜんどこが悪いのかという感じです。
もしよかったら教えてください(TT
ttp://up.satoweb.net/img100/889.lzh 現在大4でVC#かVJを覚えようと思っているけど、今から覚えようって言う状態なのになぜか
中学でBASICやってたというのが曲がってゼミの先生に届いたらしくプログラムできるになってて現在テンワヤンワですわ
まさかVC#がCとこれほど違うとは・・・・。
というかCを実際問題さわらな過ぎてすっかり忘れてしまっていました。
ハハハ・・・・。
就職決まるといいな・・・・・。
VJはやめとけ
>>466 皆さんレスつけない理由がわかったかも…。
・大文字小文字の区別
・名前空間の using が足りない
・配列の定義の仕方が間違っている
そして何より 誤 字 多 杉 。
他にもあるかもしれないけど調べる気力が失せたというか。
見た感じVS使っているようなのにどうしてここまで酷いかなぁ…
まあがんがってください。
VJ は Java のライブラリとの違いに悩まされるぅ
471 :
466 :04/11/25 11:08:35
>>466 です
とりあえず誤字は修正します。
名前空間と配列に関してはもう自分のレベルでは分からないので、C#の本を買ってやってみるしかないです。
大学の4年間は早いって本当ですね・・・。
前からやれば・・・。
先輩PG,SEさんたちに急遽
『納期直前(もしくは納期過ぎ)』の理不尽なプロジェクトが舞い込んできたときの気持ちが初心者なりに分かった気が・・・・。
(蒔いた種は自分で蒔いたんですが・・・。)
理不尽なのはお前の書いたコードだよ!
473 :
デフォルトの名無しさん :04/11/25 19:47:11
XMLDocの記述されたソースコードとその.xmlファイルだけの状態で 読みやすいHTMLや.chmなどのファイルに変換するツールはありますか? NDOCはアセンブリを要求されてしまうので使えません。
474 :
457 :04/11/25 20:10:02
475 :
デフォルトの名無しさん :04/11/26 09:02:42
>466 もしかして送受信をしてるときに操作を受け付けなくなる?
476 :
デフォルトの名無しさん :04/11/26 09:14:06
>466 たしかソケットを使うときってブロッキングが発生しないように threadを使うか非同期ソケットを使うかしないといけなかった ような気がするぽ
477 :
デフォルトの名無しさん :04/11/26 09:17:55
>466 それか using System.Web.Mail; ってやって SmtpMail.SmtpServerを使うとかw
>>466 thread使うのが一番楽。
System.Web.Mail使うのは簡単すぎて邪道な感じがするし、TcpClient使うとか?
TcpClientってブロッキングするだろ?
そこでThreadですよ。 ……あれー?
初心者の初ネットワークプログラムなんて、ブロッキングしながらの動作で十分って 気がするけどどうだろうか・・・
482 :
デフォルトの名無しさん :04/11/26 20:23:57
Thread + TcpClient でハッピーエンド
TcpClientのサンプルでブロッキングまでかんがえたやつがどっかにあったきがする。 while(active){ ブロックする処理 Thread.Sleep(500); } でメインスレッドからactiveをいじる。 レス読まずに書いてるからはずしてたらごめん
まぁぶっちゃ桁はなしスレッド使ったほうがいいよね。 非同期でもいいけど処理によっては時間かかりそうなんで別スレッドにしといたほうが吉。 まぁ最初はブロッキングで作ってその煩雑さを身をもって味わえば。そのあとで非同期とかスレッドとかにすればオブジェクトをどのようにしとけば後の拡張が楽になるかも身にしみる。
485 :
デフォルトの名無しさん :04/11/27 19:12:03
設定などで保存した情報を次回起動時にも反映させるように、 設定を保持しておきたいのですが、なにかファイルを生成して それから読み込むのがよいのでしょうか? それとも自分自身のexeなどを変更できるようでしたらご教授願います。
>>485 exe 改変なんて初心者の僕にはむりぽ
>>485 設定情報のクラス作って
Load時にファイルから読み込み
Exit時にファイルに書き込み
すればいいだけちゃう?
シリアライズ使えば楽だよ
488 :
デフォルトの名無しさん :04/11/27 22:06:41
ASP.NETでVBでSharedで変数定義しているWebアプリのコードあるのですが、 これってC#ならstaticですよね。 なんか、Webアプリでスタティック宣言すると、複数ユーザが同じページに アクセスした時に、片方が値を変えたら、もう片方を影響を受けるんじゃないか? と思ったりしたんですが、そんなわけ無く、使って大丈夫なんですよね。 IISのWebアプリから自作COMを呼び出しているアプリあるんですが、 この時、呼び出されたCOMが作り出すのはプロセスなんですか?スレッドですか? 別のプロセス監視アプリケーションに登録して、プロセス監視したいと言われたのですが・・・ COMなんて何かのDLLっていう程度の認識しかなかったものですから。
489 :
485 :04/11/27 22:17:55
XMLシリアライズで色を保存したいのですが、 Colorクラスを保持できません。 ColorTranslatorなどを使用して、色を文字列に変換しないと保持できないのでしょうか?
そう。ColorConverterクラス。 Fontとかもそう。
即レスありがとうございました。 さっそく試してみたいと思います。
>>488 COMの理解が間違ってる。
>この時、呼び出されたCOMが作り出すのはプロセスなんですか?スレッドですか?
呼び出されたCOMはどういう形で動くのか?が正しい。
つくったCOMの種類によって別プロセスとしても動くし呼び出しプロセス内でも動く。
493 :
デフォルトの名無しさん :04/11/29 02:29:33
たぶんVCとか以前の話になるとは思うのですが V.net2003を使っています。 using System.・・・・等の名前空間類の中で一部出ないものがあったのですが これはインストールの際に標準で通したせいで入ってないだけでしょうか? バージョンアップもないみたいなんで自分では入れ忘れ説が濃厚なのですが。 EX)using System.Web.Mail using System.Security.Cryptography.Xml;
それらはデフォルトでは参照されないDLLを使っているので、プロジェクトの参照設定で対応するDLLを追加する。 ちなみにデフォルトで参照するDLLは一部の基礎DLLと、csc.exeと同じディレクトリにあるcsc.rspの中に書かれてるDLL。
495 :
デフォルトの名無しさん :04/12/06 20:09:22
VS.NET使って中〜大規模のシステム開発してる方は居られますか?? 居られたら質問させてください。 開発メンバ全員がVS.NETを利用していますか? 全員の開発マシンにIISとかSQLServerをインストールするのはためらってしまうのですが。
>>495 何をためらっているんだ?
セキュリティー面ならLANを隔離するなり、最低限対策ソフトを入れるしかないし、
貧乏で困ってるなら2〜3人首にして人件費浮かせればいいだけだろ?
497 :
デフォルトの名無しさん :04/12/06 22:04:37
>>496 いやぁ、正確には上司を説得するのに困ってるんです。
上司いわく「はぁ?開発マシンにサーバ??DB??ばかだろおまえ」
って感じで、コボラーには理解できないようです。。。
で私が「だからIISとSQLServer入れなきゃインストールできないっていってるじゃないですか!!」
って逆切れしたら、「じゃーつかうな」って言われもんで。。。
全員の開発マシンにIISとかSQLServerをインストールしなくてもいいだろうに。
>>498 え?インストールしなくてもいいのですか?
なんかインストーラに怒られるんですけど
さげっと。
501 :
457 :04/12/06 23:32:33
datasetからXMLを吐きたいと思っています。 複数のテーブルをDBから読み込んでリレーションを貼り、 以下のようなXMLを出力するにはどうすればいいのでしょうか? <root> <fruit> <apple> <price>30</price> </apple> <melon> <price>50</price> </melon> </fruit> </root> 問題になっているのはタグ<fruit>なのですが、 これが要素(列)を持たないため、 ds.Relations.Add()を呼び出すことができません。 このような列が空のテーブルとリレーションを貼るには どのように記述すればよいのでしょうか? どうかよろしくお願い致します。
なお、上の例では dataset名がrootで、内部に3つのテーブルfruit, apple, melonを 持っているものとします。
>>502 なんかリレーションの意味を取り違えてるような気がしてならない。
506 :
デフォルトの名無しさん :04/12/13 20:13:55
agehatyou
ひらりひらりと(ry by ポルノグラフティー
BitmapメソッドのSaveで保存した画像が見れません。 ペイントとかで開こうとしても、開けない状態です。 XPのViewerだと何故か見れるんですが…。 原因がわかりません。
509 :
デフォルトの名無しさん :04/12/21 02:30:11
Cursor.Current = new Cursor("test.cur"); としてカーソルを変更しようとしたのですが、カーソルが指定したファイルのカーソルにならず、"I"の形をしたカーソルになってしまいます。 カーソルを変更するにはどうすればよいのでしょうか?
>>509 カーソル形状を変更したいコントロールやフォームのCursorプロパティに
Cursorを設定する。
511 :
509 :04/12/21 03:21:45
>>510 返信ありがとうございます。
早速試してみたのですがやはり"I"の形をしたカーソルが表示されてしまいます。
他に方法は無いでしょうか?
512 :
509 :04/12/21 18:10:55
メニューバーの「ファイル」>「新規作成」>「ファイル」で「新しいファイル」ダイアログを開き、カテゴリの「全般」内のカーソルファイルで作成したカーソルは上手く表示できなかったのですが、 「全般」内ではなく「Visual C++」内のカーソルファイルで作成したカーソルは上手く表示されました。 全般内で作成したカーソルは、何故か「ホットスポットの設定ツール」も使用できません。 通常皆さんはどのようにしてカーソルファイルを作成していますか?
現在のイメージの種類の16x16 16色にビームカーソルがデフォルトで描かれてるからだろ。
514 :
509 :04/12/21 18:30:54
>>513 あ、すみません。ホントですね。
16x16 16色のところに"I"の形をした絵が描かれてました。
しかし「全般」内のカーソルファイルで作成したカーソルファイルはどのようにしてホットスポットを設定すればいいのでしょうか?
「ホットスポットの設定ツール」がクリックできないようになっているのですが・・・
カーソルで作ってもアイコン用のヘッダで作られてしまうのが原因だね。 そのせいでアイコンと認識されてカーソルエディタじゃなくてアイコンエディタが起動してしまう。 アイコンの種類をバイナリエディタで3バイト目を0x02に、9バイト目を0x00に。 複数のアイコンを格納してる場合、2枚目は17バイト目、3枚目は25バイト目……を0x00に。 これで開け直せばカーソルエディタが起動するようになるようだ。
× アイコンの種類をバイナリエディタで ○ バイナリエディタでファイルを開けて、
これはいいこときいたメモしとこ
518 :
509 :04/12/22 00:43:40
>>515 うわっ、そんな風になってるんですか。凄いですね。
早速やってみます。
ありがとうございました。
C#のデリゲートっていうのは Javaでいうところのイベントリスナと同じなの?
>>519 同じじゃないけどイベントリスナを使うケースはほとんどデリゲートに
おき替えができる。ハンドラ用のクラスをいっぱい作らなくていいのは
助かる。C#(1.0と1.1)は無名クラスをサポートしてないけど何も困らん。
>>519 boostでいうところのfunctionと同じです。
522 :
デフォルトの名無しさん :04/12/28 22:25:25
Webでおとしたサンプルみてたら、ソリューションエクスプローラの右の部分が ショートカットのアイコンになっているわけですよ。 今までクラスの再利用はコピーして使っていたので どこかを更新するたびにコピーしなおさなくちゃいけなくて面倒だったけど そんなふうに使う方法もあるんだね。 で、そういう追加の仕方はどうやるの?どこかのファイルを直に弄るのですか?
523 :
デフォルトの名無しさん :04/12/28 22:26:17
>>522 「既存項目の追加」ダイアログ
↓
「開く」の右側にある▼を押す
↓
「リンクファイル」
525 :
509 :04/12/29 03:09:57
前回カーソルの変更方法について質問させていただいたものです。 現在、 Cursor.Current = new Cursor("test.cur"); として実行ファイルの外部のカーソルデータを実行時に読み込んでいるのですが、カーソルファイルを実行ファイルに埋め込み、使用するにはどのようにすればよいのでしょ うか?
527 :
509 :04/12/29 03:55:39
>>526 リンク先を見させていただいて解決しました。
どうもありがとうございました。
csファイルをダブルクリックして その状態でコンパイルすることは出来ないですか? 上のツールバーにDEBUGが表示されないためどうやって コンパイルして良いのかがわかりません。 プロジェクトとかではなくテスト用にcsファイル単体に記述してチェックしたいのですが 。 お願いします。
csc.exeをつかえばよかろ。
>>528 VS 2003 の時点ではそういう機能なかったと思う。
2005 には付いてるとかいう話を聞いたことがあるような。
あと、529の補足、
csc.exe が入ってるフォルダにパス通しとけ。
パスは、
C:\WINDOWS\Microsoft.NET\Framework\[バージョン番号]
[バージョン番号]の所には、 .NET Framework が 1.0 なら v1.0.3705、
1.1 なら v1.1.4322、 2.0 βなら v2.0.40607。
それと、窓の手とか使って、フォルダ右クリックで DOS 窓を開けるようにしとけ。
529-530 DOS窓からcsc.exeを使ってコンパイルするしかないのですね。 どうもありがとうございました!m(_ _)m
534 :
デフォルトの名無しさん :05/01/01 23:53:02
Windows Messangerみたいなポップアップウィンドウ(〜〜さんがきたよ、みたいな画面右下にでる奴)は 何を使えば簡単に実現できるのでしょうか?
>>534 じゃないけど、面白そうだから使ってみようと
サイトに行ったけど、もう無いんじゃない?
見つからないんだけど。
情報有難うございます。 ググってもみつからないんですけど、何で消えちゃったんだろう 本体が置いてある場所を知ってる人がいたら教えて下さい。参考にしたいので
ググると普通に
>>538 にたどり着くけど、
やっぱりそこで良いんだよなぁ。
どうやら落ちているみたいだね。
また後でアクセスしてみるか。
javascriptを許可しないとダウンロード出来ない
へ〜、知らんかった〜。 結構いいですね。 俺も使わせてもらおう。 情報提供してくれた皆さんありがとうございました
544 :
デフォルトの名無しさん :05/01/04 10:20:02
ヒロシです… メモ帳のソースが欲しいとです。 ヒロシです……
545 :
デフォルトの名無しさん :05/01/04 21:32:21
W2Kの流出コー(ry うわなにをするんだこのくろずくめじゃいおfrtgyふじこp
546 :
544 :05/01/04 22:32:12
ヒロシです… やっと見つけたと思ったらHSPのだったとです。 ヒロシです…
ぶっちゃけRichTextBox(Rich Edit Control)の一通りの機能を適当に実装すればそれでOKって感じはする。
>>547 サンクスです。
実はHTMLエディター(詳細は下)を作成中なんですが、
配列やStreamWriteやらを使わなくても作れますでしょうか。
詳細
機能はメモ帳の機能に加えて、"〜"と<○○>〜<○○>などの中身の色を
変えて表示する機能と、右クリックで<B>タグや<U>タグなどを選択して
挿入できる機能です。今のところこれだけできれば満足です。
リンク先からやっとダウンロードできました。 皆さんありがとうございました。
>>548 色変えはメモ帳じゃできんだろw
RichTextBoxの機能だけで実装は十分可能だろうね。
取りあえずやってみて、分からない事を聞きに来れば。
> 配列やStreamWriteやらを使わなくても作れますでしょうか。
配列やStreamWriterを使うのに何の躊躇いが必要なのさ。
つかその辺を躊躇うレベルなら、まずそっちを勉強すべきかも知れない。
551 :
544 :05/01/06 09:32:50
ヒロシです… 10日でおぼえるVisual C#が10日で終わらんとですorz ヒロシです… >つかその辺を躊躇うレベルなら、まずそっちを勉強すべきかも知れない 上の本にほとんど乗ってないので今日帰りに買ってきます。
552 :
デフォルトの名無しさん :05/01/06 11:11:13
554 :
544 :05/01/06 19:11:07
ヒロシです… richTextBox中の任意の文字列にSelectionFontを 適用する方法がわからんとです。 ヒロシです…
555 :
デフォルトの名無しさん :05/01/06 19:33:46
SelectionStartとSelectionlength
構文強調のできるHTMLエディタを作ろうと思い以下のようなものを書きましたが 色の変更にとても時間がかかります、高速化の方法はありませんか? Regex r = new Regex(@"<[^<>]+>"); String text = richTextBox.Text; for (Match m = r.Match(text); m.Success; m = m.NextMatch()){ richTextBox.Select(m.Index, m.Length); richTextBox.SelectionColor = System.Drawing.Color.Blue; }
>>556 正規表現でごそっと変換するのではなくて
一文字の入力を見て色変換する方法とかいかがでしょう。
558 :
544 :05/01/06 21:15:22
>SelectionStartとSelectionlength
さんくすです。おかげで解説してるサイトを見つけたとです。
>>556 参考になる… ( ̄¬ ̄*)じゅるっ
Form1のタイトルを変えたくて、 Form1.Text = "メモ帳練習"; のコードををButton1に書いたんですが、 「静的でないフィールド、メソッド、またはプロパティ 'System.Windows.Forms.Control.Text' で、 オブジェクト参照が必要です。」 というエラーが出てしまいます。 何を修正すれば意図どおり実行されますか?
>>559 キーワードは this ですかね。
エラーの通り、Textプロパティはstaticに宣言されてはいないので
<クラス名>.Text ってことはできません。
>>560 ありがとございます。
thisについて小一時間考えてみるとです。
562 :
デフォルトの名無しさん :05/01/06 23:07:25
I would like to ask all of you one question. どなたも答えられそうもない I wish somebody could... マイナーな質問させていただきます。 I tried to change "forecolor"property of myToolProgressBar 2005 VC# StatusStrip ToolProgressBarで which belongs to a StatusStrip pasted to myForm. forecolorをdefaultから黄色などに変更したのに But when I start F7, the forecolor is displayed in the default color. F7時、適用されません。 Otherwise, myform closed, また、F7で起動したアプリを終了すると、 the forecolor shown in property window myToolProgressBarのForecolorが is no longer expected color to be the default color. DefaultColorに戻ってしまいます。 Thanks alot ;-)
>>562 # F7 -> F5 typo?
I don't know such a ProgressBar control that can add to StatusStrip :(
StatusStripに追加できるProgressBarがわかりませんが。
If you draw the ProgressBar control in your code,
ProgressBarを独自に描画しているなら
you'll fix the code to represent your ForeColor property, won't you?
ForeColorプロパティの値を反映して描画すればいいのでは?
Alternatively, if you show us some sample code or how to add controls,
あるいはコードなり操作手順なりを見せてもらえれば
other kind people answers to you, maybe :)
誰か他の人が答えてくれるかも:)
By comparison, in design mode, I select a ProgressBar in ToolBox,
ちなみにデザインモードでProgressBarを選択して
pasted to my Form (Form1), open Property Window,
フォーム(Form1)に貼り付けてプロパティウィンドウを開いて
set Value property 50 and set ForeColor property Yellow,
Valueプロパティを50、ForeColorプロパティをYellowにしたら
then ProgressBar's forecolor shown correctly yellow.
正しく黄色に表示されてました。
…英語むつかしい…
ヒロシです… thisが気になって仕事が手につかんとです。 ヒロシです…
>>564 =544
Form1 f = new Form1();
f.Text = "foo";
この場合 f はnewされたインスタンスなので f.Text はOK。
ではForm1クラスの中で同じことをやろうとすると。
this.Text = "foo";
そこを勧めんのかよ
569 :
デフォルトの名無しさん :05/01/09 11:23:10
いまpop3を作っているのですが =?iso---- ←?B---- という文字化けを直せません。 上がshift-jis(iso何とかだったかも) 下がBase64 でエンコードされているというのは理解できてはいるんですが それをデコードする方法がわかりません。 ヘルプやネットで探してはいるのですがいまいち理解できません。 いろいろエンコードやエンコーディング、デコードなど試したのですが成功しません。 知っている方いたらお願いします。
RFC嫁
VS.NET でコンパイル直前に自作のプリプロセッサ噛ませられないっスか?
VC#でDataGridを貼り付けてます。 プロパティビルダの「列」で「使用可能な列」から「連結列」を選択して、ボタンの種類を 「PushButton」にしたいのですが、これだと、ItemCommandイベントに反応しません。 LinkButtonにすると反応するのですが、どうしたらいいでしょう? あと、DataGridの列幅、行高さを設定したいのですが、どのプロパティかわかりません。 (なさそうなのですが・・)どうしたらよいでしょう? もう一つ(DataGridとは関係ないのですが)、他のページ(同じプロジェクト内のページ)を表示するにはResponse.Redirect以外の方法は無いのでしょうか? 他のページを表示して、そのページを操作(例えばテキストボックスに文字を代入)したいのですが、うまい方法は無いでしょうか?
574 :
デフォルトの名無しさん :05/01/17 00:32:43
自分はVC#始めて半年の若造なんですが エラーで立ち往生。 原因は string Henkan = Regex.Replace(A, B, C); ※文(A)のなかからBを探してCに置き換える Bに『.』『(』『)』※()は半角 が代入されるとエラー。 これがプログラムが正しく動かない原因だと気がつくのに相当な時間がかかったんだが これって( )内に変数があるの全部に該当するんですか? そしてこれバグ?使用? ここからは愚痴らせてくれ。 『コンパイルの時点ではそういうのは関係ない』とC厨が強気に言い切りやったせいで 原因を一つ一つつぶす作業で3時間かかった。 もしかしてと思ってBに . ( ) が代入されないようにプログラムをいじろうとしたら 『おれは10年以上Cやってるんだから間違えるわけないだろ!!』と切れられて これだからオブジェクト指向っていやなんだよ。 と横でぎゃあぎゃあ抜かしやがったんです。 刺しちゃってもいいですか(エ
そのエラーとやらはArgumentExceptionで、例外メッセージが「解析中〜〜が〜〜」と言うオチ?
576 :
デフォルトの名無しさん :05/01/17 12:00:26
>575 ちょっと難しい話でわからないですが、try-catchで例外になりました。
もしかして
>>574 のやりたいことは、単に Henkan = A.Replcace(B,C) なのでは?
Regexは無罪というか、Regexで使うパターンは正規表現でなくてはならない。
単純文字列置換には Stirng.Replace を使う。
いやいやいやいや。 575が難しい話って。 どうやってデバッグしてるんだ? あれか、考えられる全ての所にConsole.WriteLineとか仕込んでどこで処理が中断されてるか判断するとかそんなんか。
579 :
デフォルトの名無しさん :05/01/17 19:39:59 ,
すいません タスク〜のところにそんなの出力されんだろがい!! と勝手に考えていました。 解析中と出てました。 タスクのところばっかり見てました。 try-catchやるとcatchに飛ぶので例外メッセージが出なかったもので。 てっきり タスクにそれが解析中〜とされるのかと思ってました。 自分はConsole.WriteLineよりもMessageBox.show("")のほうを使ってます。 >577を試してみます
580 :
デフォルトの名無しさん :05/01/25 18:29:23
ブラウジング中のプログレスバーの進め方が良くわからんとです・・・。 何を見てプログレスバーを進めていけば良いのでしょう・・・。 サンプルや参考サイトなどありましたらキボン・・・。
何その口調ふざけてんの?
(益)ノシ
584 :
デフォルトの名無しさん :05/01/27 23:14:32
今、アイコンファイルを作ろうとしているのですが、VS以外のペイントツールからクリップボードにコピーした画像をVSのアイコン編集ツールへペーストすると、色が化けてしまいます。 パレットが原因だと思い、一度VSにアイコンに使用するビットマップを読み込み、その画像のパレットを保存し、アイコンファイルに先ほど保存したパレットファイルを読み込ませ、ビットマップの画像をアイコンにペーストしたのですが、それでも色が化けてしまいます。 アイコンファイルを作るときに色化けしない方法をご存知の方は教えて下さい。 お願いいたします。
別にわざわざVS使わなくてもいいんじゃない? 形式変換にしろ端から.icoで保存するにせよ、いくらでもそう言うアプリはあるっしょ。
586 :
584 :05/01/28 17:37:10
>>585 確かにそうですね。
他のソフト探してみます。
何かお勧めのソフトとかあったら教えて下さい。
フォーマット無視してやってるだけだろう
588 :
デフォルトの名無しさん :05/02/01 09:30:37
スプレッドシートって買わないと標準ではないのですね
589 :
デフォルトの名無しさん :05/02/01 23:25:34
TextBoxに半角の数字しか入力できないようにするにはどのようにすればよいのでしょうか? 最初はNumericUpDownコントロールを使えば良いのかと思いましたが、少数が使えないのでやめました。 解る方教えて下さい。宜しくお願いいたします。
NumericUpDownで小数も扱えるけど?
591 :
589 :05/02/02 00:36:58
numericUpDown.Value = (decimal)0.01; として少数の値を設定しようとしてもNumericUpDownには 0 と表示されてしまいます。 何が悪いのでしょうか?
頭が悪いと思います。
594 :
589 :05/02/03 02:43:54
ごめんなさい!
VS2003 C#で、tabControlに2ページ追加して、タブを表示しておき、 条件を満たさない場合2ページ目に移動できない様にしたいのです。 現在、SelectedIndexChangesイベントで見ていますが、 画面がちらついて見栄えが悪いです。 良い方法があれば教えてください。
596 :
デフォルトの名無しさん :05/02/03 09:30:02
C#に詳しい香具師、どこで調べてる? 俺もそこそこのシステムは組めるが、 いかんせん詳しいことまで書かれた資料なり何なりがないことに悩んでる。 例えばすべてのクラス、すべて関数(関数って言わないのかな?細かいところに突っ込まないでくれ。) の使い方や、すべての引数の意味とかどこに資料がある? VS.NETのHELPはまるで関係ないような候補が出てくるばかりだし、 公式解説書はあまりに内容がなくてこれ以上読む気になれんが、 詳しく読めば書いてあるのか? いい本とかありますかい? どうやって調べてる?
ヘルプ/MSDN。英語版も。 Google。特に全言語での検索。 日々の積み重ね。
msdn 引数の意味がわからないのは、たぶんC#とそれの下敷きになっている Win32/COM/SOAPなどのアーキテクチャを理解していないからだと思う。
>>598 「C#と」は間違いで、「.Netv Frameworkの各クラスのアーキテクチャと」ですた。
いや、自分もこの間 IMEの使い方についてみていたんだけど、MSDNでも詳しく乗ってないし、 サイトでも断片的にコードがあるだけでした。英語版とかも見たけれど満足のいく情報調べるまでに相当時間かかりました。
601 :
デフォルトの名無しさん :05/02/03 16:28:42
はじめまして。 現在VC#を使用してMathmaticaとの通信を行うソフトを開発しております。 しかし、結果の取得の部分でどうしてもうまくいかなく行き詰まっております。 その内容としては、.NetLinkを使用して、オリジナルのパッケージを読み込み、 評価式を送信すると、グラフや数字の結果が得られるというものです。 その結果の中でも、Answer{int1,int2,...,intN}EndAnswer で囲まれた部分を 受け取りたいのですがうまくいきません。 どうすればよいでしょうか? よろしくお願いします。
文字列 『Answer{int1,int2,...,intN}EndAnswer』 から 「int1」、「int2」、「...」、「intN」を取り出したい。 って解釈でいいのかな? //using System.Text.RegularExpressions; string str = "Answer{int1,int2,...,intN}EndAnswer"; // 『Answer{』 と 『}EndAnswer』 の間の文字列を取り出す str = Regex.Match(str, "Answer{(.*?)}EndAnswer").Groups[1].Value; // strを『,』で区切って(ry foreach(string n in str.Split(',')){ Console.WriteLine(n); }
603 :
601 :05/02/03 18:40:19
お返事ありがとうございました。 C#の方はこのやり方でいけそうなので、 後はMathmaticaの結果取得を勉強しようと思います。
それだけ重い処理をしてるからだろ。 基本的に再描画はアイドル状態になった時に行われる。 ループしてる間は再描画されない。
>>606 条件満たすまで次に行かないようにすればいいじゃん、
逝ってから戻るって変な処理だな?
っていうか、TabControl 使う必要あんのか?
>>607 TabControlってページ切り替え禁止できなくない?
datagridの行を削除してaccessに反映するようにしたいのですがなかなかできません 当方かなりの素人 一応自分なりに検索してみたのですが・・・ どなかご教授ください
OK、まずは「どうやって、どうなった」をはっきりさせようか。 コードなど実際にあるとなお良いな。
>>611 おお 早速レスが 大変助かります
自分学生なんですが、学校で何人かでプログラム組むことになったんですが、
みんなやる気ないので僕が頑張ることに・・・ まじめにやってなかったから素人同然なんです
Adapterでテーブルを取得して、それをデータセットにいれてDataGridで表示してる感じなんですけど・・・
すんません うまく説明できないです
だから、「どうやって、どうなった」をはっきりさせろ、と言ってるわけだ。 問題点の切り分けができないじゃないか。 取りあえずデータをDataSetに詰め込んでDataGridに表示させるところまではできてるのかな、としか読みとれん。 613のサンプルはSystem.Web.UI.WebControl.DataGridのサンプルだが、 作ってるのはWebアプリなのか? それともWinFormアプリなのか? すら分からないし。
あ、すいません DataSetに詰め込んでDataGridに表示するところまではできてます 削除ボタンも取り付けれたんですが、ボタンを押したらDataGrid上の行を削除できるようになりません(イベントって言うんですか?) ちなみにWebアプリです
あとDataGridで削除した行をAccessにも反映さしたいです よろしくお願いします
いい加減言うのも疲れてきたが、「どうやって、どうなった」んだ? 613の中にDataGridコントロールの拡張って見出しで > ・ユーザーが行を削除できるようにします。詳細については、…… があるが、これをやってみたんだよな? それでどうなった? そもそも途中で何か分からない部分があってコーディングできなかった? 或いはコーディングはしたけど期待通りに動かないのか? それならどこが期待通りの動作をしないのか?
>>617 す、すいません
> ・ユーザーが行を削除できるようにします。詳細については、……
は試してみました
でもdelete_commandの中になんてコードを書けばいいかわからなくて
どうやら僕はこのスレにくるにはレベル低かったみたいです・・・
すんません 質問を整理してくればよかったです 勉強しときます その下のソースは一応ここに来る前に試してはみたんですが、動きませんでした
じゃあまずはDeleteCommandイベントが実行されてるかどうか、からだな。 619のサンプルコードで言うところの、 int row... にブレークポイントを設置して削除ボタンを押してみる。 ブレークされる?
す、すいません ブレークポイントってのがわかりませんです・・・
それは自分で調べろ。 あと開発ツール書いてねん。
開発ツールってつくってるもの書いたらいいんですか? スケジュール帳ですYahooにあるような
じゃなくて何で開発してるか。 WebMatrix? VC#.NET2003?
VC#.NET2003つかってます ブレークポイント検索してみました でもブレークされてるのか・・・よくわからんです すいません
レスありがとうございます 自分でももう何が聞きたいか何が知りたいかわからなくなってきました・・ とりあえずさっきの619のサンプルを書き込んだのはエラーが出ずにブラウザでは表示できるのですが 削除ボタンを押してもなにも起こらない状態です
ボケとツッコミが上手い具合にマッチして、妙な面白さがあるな。 とりあえず二人にGJ!
631 :
デフォルトの名無しさん :05/02/13 16:55:45
DataTableのデータの重複レコードを削除する機能ってありませんか? DataViewではGropBy見たいなのないみたいだし。 もしあればやりかたを教えてください。よろしくお願いします。
発想が逆 フィールドの重複不可を定義した方がいいのでは?
DB側でGroupBy使ったビューを作るとか。
>633は意図が分かっていない回答見本
635 :
デフォルトの名無しさん :05/02/13 20:03:54
datagridに(null)を表示させないようにするにはどうしたらいいですか? (null)ではなく空白を表示したいです。
DataGridColumnStyle.NullText
638 :
デフォルトの名無しさん :05/02/13 22:06:26
今、下記のようにしてビットマップを読み込んでいます。 Image image = new Bitmap( "imageName.png" ); このBitmapクラスのインスタンスが存在しているあいだに、他のペイントソフトからimageName.png画像に保存しようとすると、保存に失敗してしまうようなのですが、これを保存できるようには出来ないでしょうか? 解る方いらっしゃいましたらお願いいたします。
640 :
638 :05/02/13 23:03:46
>639 出来ました。本当にありがとうございます。
age
そんなものは使わない
データベースの中身をHTML文を使って表を作って表示させ、ひとつの項目にリンクを持たせ、 そこをクリックしたら次のページに飛んでTEXTBOXなどにクリック元の情報を表示させたいのですがいい方法が思いつきません Session使ってみようとしましたがなかなか上手くいかず・・・ 誰かよかったらご教授ください
どこで躓いてるのかも読みとれません。
最初から教えろなんて、そんな面倒見切れません。
というか VC# の質問ですか?
ASP.NETということは読み取れた。
どなたかCalendarコントロール使ったことある方いませんか? VC#を使って簡単なスケジュールを作ろうと思っています 予定のある日付をDBにいれておいて、Calendarで表示する時に予定のある日だけ色を変えたりしようと考えています どこかでCalendarコントロールはデータの連結を直接サポートしてないって見たような気がします DBの中身をデータセットに入れて、その中身を比較して一致したらCalendarの色を変えようと思ったのですが 何を比較対象にしていいのかわからず・・ 本当に困っています 誰かお助けください
DayRenderイベントのハンドラの引数に丁度良いのがあるじゃん。
>>651 返信ありがとうございます
調べてみたのですがイマイチです
具体的に教えて頂けると助かるのですが・・・
>>652 1から10まで教えろってか?
取りあえずどこまで自分で実装したのか書いてみなよ。
>>653 返信ありがとうございます
DayRenderイベントで指定した日の色を変えたりするのはできました
ただしDBにある日付の日の色を変えるっていうのがどうしてもできません
>>654 DBの情報は既にDataTable/DataSetにあるんだろ?
あとはe.Day.Dateがテーブルの中(の特定の列)に含まれるかどうか判定すれば良いだけじゃない。
何が分からないのさ。
DBの情報はData Tableにあります if文で指定した日の色などを変えることはできるんですが if(e.Day.Date.Day = 18 ) { e.Cell.BackColor =System.Drawing.Color.Red; } foreach文で foreach(DataRow row in dt.Rows) { if(row["日付"]==e.Day.Date.Day) { e.Cell.BackColor =System.Drawing.Color.Red; } } みたいな感じだとエラーは出ないんですが色が変わってくれません DBには[2005/02/18]ってはいっているので多分そこで一致しないんだと思います この[2005/02/18]の日の色を変えたいのですが、どう比較していいのかが分かりません 説明下手で申し訳ないんですがよろしくお願いします
>>656 > if(row["日付"]==e.Day.Date.Day)
//キャストしなくて良いのか……?
["日付"]列の型は何なの?
e.Day.DateがDateTime型を返すんだから、DateTime同士で比較するのが基本だと思うんだけど。
わざわざe.Day.Date.Dayなんて使わなくてもさ。
>>657 返信遅れてすいません ["日付"]はテキスト型です
なんとかテキスト型のままで比較したいのですが方法ないでしょうか?
>>658 まあ別にstring型で比較しようがDateTime型で比較しようが構わないけどさ。
それならそれでDateTime型であるe.Day.Dateをstring型に変換しなければならない。
ヘルプの日付と時刻書式指定文字列を調べて、["日付"]列の書式にあった変換を。
660 :
デフォルトの名無しさん :05/02/24 23:32:59
どうでもいいけどさ、 うちの前任者、P-invokeのDllImport宣言で HWNDをintにするならまだ普通の間違いだが、 ULONGをlongで宣言してるのはメジヤメテクレwww
>>660 ご愁傷様。
VB歴の長かった人かね。
VB.NETスレでも32bitをLongで宣言してる人の多いこと。
>>659 返事遅れてすいません
なんとか動きました ありがとうございます
663 :
デフォルトの名無しさん :05/03/02 18:40:11
むー 修正一覧が読めない
「インストールの準備中」が30分も続いてようやく 「SP-1 をインストールしますか」の確認がでたぜ
.NETアプリ間でプロセス間通信を実装したいと考えているのですが、.NETでは どのように実装するのが一般的でしょうか?
>>668 ソケットというとTCP/IPソケットですか?(あんまり良くわかってない)
DDEとかに比べて反応速度とかどうなんでしょうか?
起動コストが結構大きい。 一度起動した後は気にならない。ただし何万回も呼ぶ気は起きない。 最大の特長はマネージドオブジェクトをそのままリモートで操作できる点。 複数起動を禁止して先に起動してたのにコマンドライン引数を渡す程度ならSendMessageとかの方がいいかもしれない。
>>669 TCP/IP ソケットの事 (ローカルマシン上だとエミュレーションされてたような気もするが)
反応速度はローカル内だから、調べた事ないけど遅延はないんじゃないか?
ちなみに、System.Net.Socket を使う
DDE を扱うクラスはない
>>670 ,671
ありがとうございます。とりあえずTCP/IPソケットで実装してみようと思います。
そんなに反応速度が要求されるものでもないからいいかなっと。
でも同じアプリがネットワーク上でいっぱい開いてたら大変なことにならないかな?
>>672 > でも同じアプリがネットワーク上でいっぱい開いてたら大変なことにならないかな?
実装の前にまず勉強からだな。頑張れ。
674 :
デフォルトの名無しさん :05/03/07 01:03:28
DDEのかわりってremotingじゃないの?
675 :
デフォルトの名無しさん :05/03/18 03:14:12
Adobe Photshop の画像データのように、作成したファイルのアイコンを、そのファイル固有の画像にするにはどのようにすればよいのでしょうか? ファイルのアイコンの表示状態を ”アイコン” や ”縮小版” にしたときに表示されるアイコンの画像データを、作成したファイルの内容によって変更したいのですが。 方法をご存知の方、いらっしゃいましたら教えて下さい。お願いいたします。
677 :
デフォルトの名無しさん :05/03/18 16:12:37
PropertyGridコントロールの、各データ項目の名前の デフォルトはプロパティ名になっていますが、 これをプロパティ名から別の名前に変える方法をご存知の方がいればご教授願えませんでしょうか? 宜しくお願いします。
半日かけて作ったCrystalReportsのレポートが、何かのキッカケで表示出来なくなった・・・ へこむ〜 あとMS純正のアセンブリでNullReferenceExceptionが発生するし、どうなってんの?
前者についてはご愁傷様としか言えないが、 後者についてはそれだけじゃお前がヘタ打ったからだろとしか言えないな。
>>679 デバッガで追って行って、自分のソース以外のアセンブリ(mscor何とか.resource.dll)
を読んだ後NullReferenceExceptionが発生してて、”ソース表示出来ない”ってメッセージ出るから
.NETの構成ファイルが壊れたのかな?と
引数におかしなモノわたしたりしてないかい
[WebMethod]で返されるXMLのエンコードをutf-8以外にしたいのですが、うまくいきません。 変更できないんでしょうか。
めんどっちぃからクライアント側でUFT-8⇒UTF-16変換したよ。。
Visual C#.NETをインスコしようとすると、なぜかBeatJamのセットアップ画面が立ち上がってしまい Visual C#.NETがインスコできない_| ̄|○
>>684 Office絡みではよくあることだけど。
BeatJamのファイルいじったりした?
とにかくWindowsインストーラが糞ってことで。
BeatJamはPC買った時にインスコされてたんだけど一度も起動してないです。 何か解決策はないでしょうか?このままじゃ8000円が無駄に…
インスコとかいってる奴には教えたくないなぁ
BeatJam一旦消せば。
>>688 プログラム板でそのレスはないんじゃないの?
>>689 対処の一つとして妥当だと思うけど。
どうせ使ってないそうだし。
セットアップ画面とやらが何を指すのか分からないから効果も分からないけど。
BeatJamをアンインストールしてやってみましたがだめでした。 BeatJamのインストールウィザードが出てしまいます。
693 :
684 :2005/04/09(土) 07:30:02
レスしてくださった皆様ありがとうございました。 どうやら、Cドライブ内にBeatJamのインストーラがあったのが原因みたいでした。 インストーラを削除したら、無事Visual C#.NETをインストールできました。 なんでこんなもん入れとくんだよNEC
理解不能なものが入ってる、それがメーカーPC
>>693 >>692 の方法は試したのか
試したとしたら何か変化があったのか
今後のために報告よろしく
>>693 は掲示してくれた方法の報告をしないとは
これからプログラムを学ぶ者の態度としてどうかと思うよ
698 :
デフォルトの名無しさん :2005/04/17(日) 22:57:11
c#で作ったアプリなんかを配布する場合frameworkなんかをインストールしてもらなわいと動かないんだよね? それって結構めんどくない?
>>698 JavaもVBもランタイムが必要だったでしょ。
700get
大きさがなぁ。 2.0は16MBになるらしいが、それでもでかい
>>698 delphiとかmfcはそのままでおkだったきがす
ただjavaとかc#になれるとc++とかは書きたくなくなる(俺は)
C#→C++ってやったが、 ヘッダーの存在意義がわからん
メタデータを持たない言語の宿命。
ただ単に宣言と実装を分けてるだけだろ
極端な話importもusingも#includeも同じようなもんじゃん。
>>706 import と using は短縮ダイヤルだけど、include は結合だから全然違う
そのソースひとつでは解決しないものを解決する、というくらいの意味で同じってこと。
だめだなこりゃ
includeは確かにソース単位だが importとusingは名前空間単位じゃなかったか?(俺Cしかワカンネーケド) 作成者から見たら似てるのは確かだが、観念は全く別だと思う
作成者から見たときの話として書いたんだろ。
全く分からない人に対しての説明の場合、 概念的に正確な説明より、実像と多少異なっても知っているものとの 共通点をあげたほうが受け入れてもらいやすいんだよ。 プログラマは正確さを求めがちだけど、漏れは場合によりけりだと思っているからああ書いたんだがね。
C#もC++も知っているであろう人に対しては不適切だと思うがね。
#include <iostream> ←ヘッダファイルを読むことで「どんな関数・クラスがあるのか」をコンパイラに認識させる。 using namespace std; ← 名前空間 std を省略することを宣言。 int main(){ cout << "hello"; ← using文とあわせて、 std::cout << "hello"; と同一視される。 std::cout << "world"; ←こう書くならば、usingは不要。でもincludeは外せない。 }
#includeってその場にファイルを展開するんでしょ?? ならusingとかとは全然違うような希ガス
>713 はじめたばかりと思いこんで書いてた…違ってたらスマソ>703 >714 coutも実体はクラスへのexternだし。 全部書くのはアホラシイけど。 まあ、漏れの場合は各言語で同じ/似たような意味の記述を覚えて、 概念や設計思想を後付けしたのが多かったから、 純粋にその言語を習得した人とは、考え方が違うかもとも思う。 紙や脳内でちゃんと設計すれば、ソース単体は「コンパイラに食わせる記述」を書くもの、と。
去年フレームワークとC#Padでコンソールアプリだけでモニョモニョ勉強した クラスとか面白かった 雑誌の付録のVC#β版をパソコンに入れたら、すげー楽と分かった とりあえず超初心入門者向けの本で、最初の3章くらいを2時間でざざっとやった VC++やBCBよりコード楽だし、VBやJAVAよりずっと速いし。 でもそんな部分を求める人は、普通デルファイやってるのかなあ
Delphiやるかどうかは、人によるからね。 そういう機会がなかったってこともあるし。 私はVB、VC++、JavaはやったけどDelphiはやってないよ。
720 :
デフォルトの名無しさん :2005/04/25(月) 17:38:32
すいません、マジで困ってるのですが、 WinFormのDataGridにチェックボックスを表示したのはいいですが、 チェックボックスでスペースキーのイベントが取れなく制御できません。 どうにかならないでしょうか? 宜しくお願いします。
721 :
デフォルトの名無しさん :2005/04/25(月) 18:01:49
>>720 プリプロセスメソッドをオーバーライドすれば対応できるかも
「プリプロセス」「processcmdkey」でぐぐってみ
722 :
デフォルトの名無しさん :2005/04/25(月) 18:54:06
>>721 早速の返答ありがとう。
何とかやってみます。
723 :
720 :2005/04/25(月) 19:50:54
何回もすいません。 ちなみにShift+Tabって制御できますか?
724 :
デフォルトの名無しさん :2005/04/27(水) 01:35:47
できません
2005 Express Edition のレジストレーションコードをもらおうとしても > We were unable to send your e-mail verification mail. となってメールが送られてこない 誰か取得できている奴いる?
メアドがおかしいんじゃねーの?
メールアドレスは4つほど試しました
4つともおかしいんじゃねーの?
串経由でユーザ登録したら一発で送られてきました 訳わからん
730 :
デフォルトの名無しさん :2005/05/01(日) 02:02:58
senderはTextBox、ComboBoxなどの 不特定のコントロールのイベント内で 下のようなキャストはできないのでしょうか? (sender.GetType())sender.Text = "HELLO";
731 :
730 :2005/05/01(日) 02:04:36
すいません、日本語が少し変でした・・・
変でしたってんなら言いなおせよ
733 :
デフォルトの名無しさん :2005/05/01(日) 06:42:00
だったら指摘しろよ、ボンクラ
((Control)sender).Text = "HELLO";
735 :
730 :2005/05/01(日) 11:57:02
(Contorol)でしたか、どうもありがとうございます。
Generic で、sender の型をいちいちキャストしなきゃいけない問題は解決するのだろうか? 教えて、知っている人!
genericでも解決しないと思うよ いちいちキャストしてください。
738 :
デフォルトの名無しさん :2005/05/01(日) 19:07:28
ErrorProviderはどうやってアイコンをリセットするのでしょうか。
739 :
デフォルトの名無しさん :2005/05/01(日) 20:29:54
RichEditBoxで、予約語の色付けをしたいので TextChangedが発生したときにRTFを書き換えようとしたんだが、なぜかTextChangedが無限に呼び出されてフリーズする。 これってRTFプロパティを書き換えたからTextChangedが発生したということか? これを打開する方法ある?ユーザーが明示的に変更したときだけ呼びたいんだが。
>>739 TextChangedの中でフラグ立てる。
741 :
739 :2005/05/01(日) 21:59:58
それって独自にクラス内で変数を作るの?それともobject sender eなんたらとかで返すもの?
1: フラグが立ってたら処理中止 2: フラグを立てる 3: 一通りの書き換え処理 4: Application.DoEvents(); 5: フラグを寝かせる ……か?
743 :
デフォルトの名無しさん :2005/05/02(月) 10:43:59
ユーザコントロール内で、まだ未定義のこれからホストされるForm1上の コントロールの参照(GridView)を得るにはどうしたらよいでしょうか。
ユーザコントロールのプロジェクト(または新規のプロジェクト)にインターフェイスを作成し、 そのインターフェイスに必要な機能を定義する。 Form1がそのインターフェイスを実装する。 ユーザコントロールはフォームの参照(FindForm()とか)をインターフェイス型にキャストし、 それに定義されているメソッド・プロパティを呼ぶ。 直接コントロールをプロパティとして公開するのはOOPとして好ましくないことには留意しとく事。
745 :
743 :2005/05/02(月) 18:40:54
ありがとうございました。早速取り組んで見たいと思います
746 :
デフォルトの名無しさん :2005/05/08(日) 08:37:06
TreeViewでドラッグ&ドロップする時にカーソルに内容を 表示したいのですが、どうしたら良いでしょう? (つまり、WIndows標準のエクスプローラーみたいにしたいのです) また、カーソルの内容を自前で描画する事は可能でしょうか? 解る方宜しくお願いします。
FormにVScrollBarとHScrollBarを配置して、 DockプロパティをそれぞれRightとBottomに設定すると、 片方が右下端に飛び出してうまく収まりません。 右下端を空白にするいい方法はありませんか?
VScrollBarとHScrollBarは、ウィンドウ本体のスクロールバーでは うまく表現できないところに使うと思われ。
DockじゃなくてAnchorで配置するとか。
751 :
デフォルトの名無しさん :2005/05/09(月) 23:37:54
VC++から乗り換えた人いますか? 僕は乗り換えたわけじゃいが、次プロジェクトからVC#を使うことが 濃厚ですが、どうもVBライクのポトペタ環境がなれなんですが、 Doc/Viewはどうしてます? 自力で実装???
今時はDoc/Viewをあえてやらないんじゃないかな? もっとあたらしめの手法取り入れたり。 ただやろうと思えば自力で実装できると思うよ。
753 :
デフォルトの名無しさん :2005/05/09(月) 23:44:50
複数で開発しようとするとポトペタは足かせでしかない
>>747 1.Panelの中にHScrollBarとPanelを入れて、Panelを右端にDock&HScrollBarをFill。
2.1をBottomにDock。
3.VScrollBarをRightにDock。
だめかなあ。
Doc/Viewってなんか懐かしい響きだなと思ったり。 JavaもどきだからJavaの開発手法も見て回ると良いかも。
756 :
747 :2005/05/10(火) 17:21:40
多くの回答ありがとうございます。 いろいろ試してみます。
757 :
デフォルトの名無しさん :2005/05/10(火) 18:43:04
すんません。VC#でクリスタルレポート使ってるんですが、レポートの設計時に指定した データベースファイルをプログラム中で動的に指定し直す方法ってありますか? もしありましたらご教授ねがいます。m(_ _)m
758 :
デフォルトの名無しさん :2005/05/10(火) 21:26:57
[1] DataSourceに”dataSetTest.t_Employee”と指定するのと、 [2] DataSourceに”dataSetTest”と指定して、DataMemberには”t_Employee”と指定するのとでは 同じことだと思うのですが、どう違うのでしょうか。どうか[1]と[2]の使い分けを お教えください
TextBoxを継承して、カスタマイズしたTextBox2を作ろうとしています。 TextBox2では、既存のプロパティのデフォルト値を変えたいと思います。 (デザイン時のプロパティ表示で太字にならないようにしたい) DefaultValue属性で設定することで可能なのは分かったのですが、 そのためには、プロパティのオーバーライドをしなければならないのでしょうか? 例えば、AutoSizeプロパティのデフォルト値を変える場合 ・AutoSizeプロパティのオーバーライド ・DefaultValue属性の記述 ※動作は既存どおりでいいので、本当はオーバーライドしたくない またりvirtualになっていないプロパティにはデフォルト値を設定できなくなる ということになるんでしょうか?(例えばBorderStyle) コンストラクタでセットするだけだと、デザイン時のプロパティ表示が 太字に表示されて、リセットできてしまうので困ります。
>そのためには、プロパティのオーバーライドをしなければならないのでしょうか? 実際にやってみれば?
762 :
デフォルトの名無しさん :2005/05/12(木) 12:57:09
>>761 はい。実際にやってそれでOKなのはわかったのですが、
オーバーライドをしないでできる方法があったらと思って質問しました。
>>760 DesignerAttribute属性を工夫すればリセットでデザイナ側が指定したDefaultValueに戻すことはできるが、
太字になるのは避けられないようだな。
overrideなりnewなりで再定義するしかないか。
764 :
デフォルトの名無しさん :2005/05/12(木) 21:42:55
VSIPについて解説しているサイトってありませんか?
765 :
デフォルトの名無しさん :2005/05/13(金) 13:13:40
button1.Clickに現在セットされているイベントハンドラを 取得することは可能でしょうか? 例えばbutton1.Clickにbutton1_Clickが現在設定されているとして、 それを取得してから以下のようにラップしたいのですが。 button1.Click = 前処理; button1.Click = button1_Click;//元々セットされていたイベントハンドラ button1.Click = 後処理;
766 :
デフォルトの名無しさん :2005/05/13(金) 13:14:23
間違えました。 button1.Click = 前処理; button1.Click += button1_Click;//元々セットされていたイベントハンドラ button1.Click += 後処理 です。
無理
768 :
デフォルトの名無しさん :2005/05/13(金) 14:28:02
やはり無理ですか? そういう言語仕様なんですかね、.NETて。
Buttonを派生させてOnClickをオーバーライドすればbase.OnClickを呼ぶタイミングは調整できるな。 Clickの前後処理はClickイベントじゃなくてClickingイベントとClickedイベントでも実装させれ。
なるほど。769さん、ありがとうございます。 ただ、全てのコンポーネントのClickイベントに こういう前後処理を適用できたらとも思っているのですが。 (各コンポーネントに対して子コンポーネントを作成しなければ ならないとすると手間ですね) 何か楽に実装できる方法はないでしょうか? (本当はControlクラスをいじれれば一括して拡張できるのでしょうけど...)
MouseDown、MouseUpイベントが使えるかも。キーボード派が居ないことを祈る
>>771 マウス限定ならそれも有効でしょうけど...
773 :
739 :2005/05/14(土) 12:49:13
>>770 Controlクラスをいじればどうすればできるのですか?
775 :
デフォルトの名無しさん :2005/05/14(土) 22:55:51
ごめんなさい、少し聞きたいのですが ADO.NETでオラクルに繋いでいるのですが、.Fill()した後に OpenFileDialog.ShowDialogすると、マイコンピュータの所だけ表示されないです。 .Fillの所だけコメントアウトすると、表示されます。 これって何故でしょうか??他の方はなりませんか?
776 :
775 :2005/05/15(日) 15:50:02
自己解決しますた。 [STAThread]をメインに付けたらきちんと表示されました。
777
>>774 ControlでClickが定義されているので、そのソースを改造すれば
できると思いました(でも実際にできたとしてもやるべきではないでしょうけど)。
ようはやりたいことはアスペクト志向的に既存のものに
処理を追加したいのだともいえます(継承とかなしに)。
Rubyをちょっとかじってたのですが、Rubyだと簡単に再定義とか
できるのでそういう柔軟さはC#にはないのかなと。
属性というのがあることを思い出してちょっと調べましたが、
やはり無理そう。
779 :
774 :2005/05/15(日) 21:07:08
>>778 なんだそういうことか・・・
そもそもイベントハンドラなんて自分でセットしてるんだから、
場合に応じて切り替えたらいいだけじゃん。
なんでもとのイベントを取得するしか方法がないの?
どうでもいいんだが
>>768 >そういう言語仕様なんですかね、.NETて。
「.NET」 も 「.NET Framework」 も、C# とは完全に独立した機構・ライブラリであって、言語仕様とかそういう範疇じゃない
っていうかそもそも言語じゃない
C#ならAOPくらいできるよね?
標準では無理 AspectC# とかあるんで、ごちゃごちゃ組み合わせると可能
>>781 言語仕様としては無い。
>>778 DIContainer+Proxyパターン。
リフレクションを利用してハンドルの型を得た上で、CodeDomを利用して
ハンドリングコードを動的生成すれば意図は満たせると思う。
ただ、実際にコードを書いてみないと細部の問題点が見えてこないから
ニンともカンとも言い難いが・・・・・・
DIContainer+Proxyを参考に検索してみたところ、
AttoContainerというのがありました。
ちょっといじってみましたが、これならできるかもしれません。
(まだ実験中...)
ありがとうございました。技術力のある方ですね!
>>783 さん
785 :
デフォルトの名無しさん :2005/05/17(火) 17:09:16
いきなり質問で申し訳ないのですが、ChangeLogを変更できるアドオンとかってないでしょうか?
786 :
785 :2005/05/17(火) 17:35:01
わかりにくくてごめんなさい。 EmacsなどのエディターにはChangeLogを編集するマクロがあったりします。 同じようにVisualStudioでChangeLogを編集するための、アドオンとかないでしょうか?
>>780 厨な質問で悪いが、
たとえば int が System.Int32 なのは .NET における実装であって、
そうである必然性はないということね?
intがSystem.Int32のエイリアスであるというのはC#の言語仕様だよ。 逆に言えばC#を正しく実装するにはSystem.Int32構造体が必ず存在しなければならない。
あ、そうなん? intをObjectなところへ渡すコーディングをしている場合、 コンパイラが自動的にInt32を作るよう書き換えてるんだと思ってた。
>>788 ってことは、C# には .NET のライブラリが必要である、という仕様
であるということ?
それとも、その前に System.Int32 は .NET のライブラリではない?
なんかよくわからなくなってきた。
仕様書よめば?
>>790 C#にはプリミティブ型はない。
それから、C#のライブラリとか.NETのライブラリとか
分けて考えてる時点で相当不自然。
>>792 > C#にはプリミティブ型はない。
なるほど。
> C#のライブラリとか.NETのライブラリとか 分けて考えてる時点で
C# のライブラリがあるとは一言も書いてませんが…。
あと、MSDN の C# 言語仕様書を読んでも
「C# は .NET のライブラリには依存しないかどうか」という点についてはわかりませんでした。
>>793 それじゃあobjectについてはどう考えてんの?
class(参照型)とstruct(値型)の違いこそあれ、境遇は同じだよな?
非プリミティブ型を利用するのに、その実体たるコードが必要なのは
言うまでもなく自明だと思うんだが?
どうしても.NET Frameworkの標準ライブラリを使いたくないなら、自
前で定義すればいいだけの話。
System.Int32は結局ただのstruct型なんだからさ。でしょ?
795 :
794 :2005/05/18(水) 01:22:11
あれ?よく考えたら駄目だわ。 プリミティブ型がないから自前では定義できない。 これについては後日の宿題にさせてくれ。
なんだよw
プリミティブ型を排除する代わりに自己記述性を失うか 自己記述性を得る為にプリミティブ型を残すか これは二択だから両立はしないよ。 それから、プリミティブ型がないのはC#の仕様ではなく.NETの仕様。
現在単純な書籍検索のソフトを造っているのですが・・・・・。 XMLからlistViewに 名前 性別 年齢 住所 紹介HP のリストを反映させるやり方がわかりませんorz サンプルとして使っている本にlistViewとXMLの組み合わせが載っていないもので///. ボタン1で読み込み ボタン2で書き込みというようにしたいのですがまず読み込ませたいorz やり方がわからないのでお願いします
組み合わせってなにさ。 普通にXMLをXmlDocumentやらXmlTextReaderやらで読み込んでListViewのアイテムに突っ込んでいくだけじゃん。 //DataSetのReadXmlを使って一旦DataSetに入れてもいいけど。
そいつキモいから嫌い
802 :
デフォルトの名無しさん :2005/05/24(火) 00:41:44
VC#でBCBのStringGridに相当するものはないの? BCBをしらない人には聞いていません。
DataGridView
804 :
デフォルトの名無しさん :2005/05/25(水) 10:31:46
Viewってw
どこに笑う要素が?
806 :
デフォルトの名無しさん :2005/05/25(水) 11:56:47
DataGridView ←
808 :
デフォルトの名無しさん :2005/05/25(水) 16:04:04
810 :
デフォルトの名無しさん :2005/05/25(水) 16:19:25
>>809 intはSystem.Int32のエイリアスですが何か?
C#にプリミティブ型(組み込み型)は有る。 ただし、C#に於ける組み込み型は System 名前空間に組み込まれた型のエイリアスである。 ってことじゃねーの。
てかなぜに今更そんな分かりきったこと話してんの? (今あるC#実装では)ない、が結論。
JISのC#の規格をよんでみたら、そっちでもintはSystem.int32だって書いてあった。
シンタックスシュガーの一言で済みそうな気が
819 :
デフォルトの名無しさん :2005/05/27(金) 12:26:00
質問。 フォームデザイナでFormの大きさを変更するとき、内部に配置されているコントロールのAnchorによっては コントロールの大きさも一緒に変化します。 この機能を一時的にOFFにして、Formのみの大きさを変えることはできないんでしょうか? いちいちAnchor変更するのは激しくめんどくさい。
820 :
デフォルトの名無しさん :2005/05/27(金) 14:51:33
>>819 じゃ、たとえばだけど、シフトキー押しながらリサイズしたときだけ
Anchorを変更すればいいじゃん。
つーかモマイみたいなものぐさ君はプロブルマにはむかンよ。
デザイナ上ではAnchor設定せずにフォームロード時にAnchor設定するようにすればいいんじゃまいか? リリースするときにコンストラクタで設定するように変更すれば? デザイナ上でもAnchorが効いた方が良いときもあるからね
822 :
819 :2005/05/27(金) 16:09:05
>>820 > つーかモマイみたいなものぐさ君はプロブルマにはむかンよ。
エェーだったらあんたはエディタの置換機能もデザイナも使用禁止な。
>>821 > デザイナ上でもAnchorが効いた方が良いときもあるからね
だから特定のキーを押しながらだと一時的に無効になるような便利機能はないかと思ったんだけど
漏れが甘かったようだ。
論点が・・・
>>822 マクロつくればできそうな気もしないでもないけど、
そんなんするんだったら
>>821 のやり方採用したほうが楽じゃない?
825 :
デフォルトの名無しさん :2005/06/02(木) 09:16:17
VC#で、.NETに依存しない実行形式ファイルって作れないもんでしょうか? CRLの基礎概念わかってんのかと叱られそうな質問であれですが。 無料だからってついVC# Express2005 Beta2でアプリを組んでしまったんですが、 いざ他人に頒布する段になって、.NETのBetaを他人様にインスコさせるのもなぁ、と。
>>825 無理。C#は.net前提。
あー待てよ事前にネイティブコードを生成するツールがあったはずだからそれ使って超がんがればなんとかなるようなならないような。
おとなしくVC++でも使っとけヴォケ。
>>826 ぬふぅ。了解、Delphiいってみるっす。
828 :
デフォルトの名無しさん :2005/06/02(木) 09:33:42
C#のタブコントロールは、内側に4ドットぐらいの隙間が出来てしまうんですが これを無くす方法ってありますか? タブブラウザなどであるような感じで、めいっぱい広げたいんですけど。
829 :
デフォルトの名無しさん :2005/06/02(木) 14:44:17
826が言ってるのはngen.exeのことかな? ネイティブイメージを作るだけでネイティブコードに変換するわけではないのだが…… 初回起動ははやくなるねぇ。
ネイティブイメージとネイティブコードの違いを教えてください
.NET Framework を使っているか否かの違いです
833 :
デフォルトの名無しさん :2005/06/06(月) 10:21:43
VSのエディタのように構文を色分けできるエディタコントロールって無いですかね? もちフリーな奴で。 それともみんな自作してんの?
Oracleからもってきた値をDataGridのセルに入れて、 そのセルの文字にアンダーラインつけて太字にしたいんです。 でもアンダーラインと太字がどうしてもできない('A`) 答えてくれたらイケメン認定
836 :
デフォルトの名無しさん :2005/06/07(火) 10:58:26
USBメモリのデバイス インスタンス IDを取得する方法をどうやったらできるのか分かる方、よろしくお願いします。
>>837 WMIのWin32_DiskDriveかWin32_USBHubあたりで取れそう。
>>838 さん、ありがとございます!早速試してみます!
質問! asp.netでexcelファイルに接続してデータを読み込もうとしています。 下のように書いたんですが、エラーになります。 OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.jet.OLEDB.4.0;Data Source=\\[サーバ2]\test\test.xls;Extended Properties=Excel 8.0;"); con.Open();//←ここでエラーになる エラー内容は >例外の詳細: System.Data.OleDb.OleDbException: ファイルを作成できませんでした。 サーバは2つあって、サーバ1はasp.netのアプリを起動、サーバ2はexcelファイルを保存してます。 excelファイルを保存しているフォルダの権限は ・aspnet_wp account(ASPNET) ・everyone ・インターネットゲストアカウント(IUSR_○○) ・サーバ1のログインユーザーと同一のUSER名・PASSのユーザー で、「フルコントロール」と「特殊なアクセス許可」以外全て許可してます。 ちなみに"Data Source="の部分をC:\test\test.xlsなどの様にサーバ1のファイルを読み込む時は上手く行くみたいです。 どなたか解決策を・・・
一応、他の部分のソースも DataSet ds = new DataSet(); OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.jet.OLEDB.4.0;Data Source=\\[サーバ2]\test\test.xls;Extended Properties=Excel 8.0;"); con.Open(); OleDbDataAdapter oraDa = new OleDbDataAdapter("select * from [Sheet1$]", con); oraDa.Fill(ds,"test"); con.Close();
すでに20ほどの検索画面が存在して、基本の検索条件があって 画面ごとに検索条件が増減する状態になってる。 検索ボタンを押したときに呼び出す検索処理を一本化してほしいと頼まれて 「フォームの情報を共通部品に丸ごと送れば、各部品の情報を取得して簡単に一本化できる」といわれたんだけど 単純に一個クラスを作って、そいつから同じプロジェクト内の各画面の情報って読み取ることってできるのでしょうか 根本的にクラスの継承とかさせない限り無理のような気がして…
で、何を一本化するの? クラス? 手順? 見た目? 自然に考えるなら、基本抽象クラスFindingFormにCreateFindingForm静的メソッドでも作って、 それに条件類が収められたオブジェクトを引数として渡す。 CreateFindingFormはその引数を元にFindingForm派生クラスのインスタンスを作成する。とか。 あるいは単純に条件に応じてVisibleやEnabledを操作するだけ?
844 :
デフォルトの名無しさん :2005/06/07(火) 18:41:59
IISのログファイルを読み込もうと思ったんですけど、 System.IO.FileStream fs = new System.IO.FileStream ( filename, System.IO.FileMode.Open, System.IO.FileAccess.Read ); System.IO.StreamReader stream = new System.IO.StreamReader( fs ); としてみても使用中と例外が出ます。 C++ならifstreamで普通にopenできるのですが、どうすればいいのでしょうか?
>>844 stream = fileInfo.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
>>845 なんと!
FileShare.Readは試していたのですが、そこで諦めていました。
帰社してしまったので試していませんが。ありがとうございます!!
>FileShare.Readは試していたのですが、 それじゃ意味ねえよ…orz
849 :
837 :2005/06/09(木) 09:34:49
WMIのWin32_DiskDriveかWin32_USBHubを調べてみたのですが、VBの取得方法しか見つかりませんでした...orz VCでのロジックの書き方を教えて下さい<(_ _)>
850 :
デフォルトの名無しさん :2005/06/09(木) 09:43:45
>>849 system.managementを参照して
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_ClassName");
ManagementObjectCollection col = searcher.Get();
foreach (ManagementObject mo in col)
{
string property = mo["PropertyName"].ToString();
}
てな具合でとれるよ。
win32_classname, propertynameは適当に使いたいWMIクラスに変えて
ください
851 :
837 :2005/06/09(木) 11:35:44
>>850 さん、どうもありがとうございます!
書き方がぜんぜん分からなかったので、非常に助かります<(_ _)>
852 :
デフォルトの名無しさん :2005/06/10(金) 09:32:14
エディタのフォントについて、英語の場合はCourier Newの8pxを使いたいのですが、 コメントに日本語を使うと、日本語の部分だけ文字サイズがでかくなってしまいます。 フォントサイズを調整する何かいい方法ないでしょうか?
853 :
デフォルトの名無しさん :2005/06/10(金) 15:01:01
ESC押すとフォームが閉じるように なっていて、ダイアログでESCでキャンセルすると、 呼び出しフォームごと閉じてしまうんですが、 これを回避するのはどうしたらよいでしょうか
854 :
デフォルトの名無しさん :2005/06/10(金) 17:49:30
DomainUpDownコントロールで上ボタン/下ボタンのイベントが取りたいのですが どうすれば良いか分かりません。 どなたかご存知の方、教えて下さい。
>>854 SelectedItemChangedで我慢しとけ。
856 :
デフォルトの名無しさん :2005/06/10(金) 20:50:57
>>853 > ESC押すとフォームが閉じるようになっていて、
まずその糞設計から見直せ
>>853 ダイアログでもESCでフォームを閉じるようにすれば
いいだけじゃないのか?
858 :
デフォルトの名無しさん :2005/06/11(土) 00:59:02
Windos.Forms.DataGridのセルに表示される文字で 特定の文字の背景色を変えたいんだけど、何か上手い方法ない? ちなみにセルの背景色はpaintをオーバライドすることで変更できました。 文字幅さえわかれば強引に出来そうなんだけど。。。
>>858 文字のってまた無茶な。
塗りつぶして自前で描画すれ。
Graphics.MeasureStringあたり。
>>865 >まずその糞設計から見直せ
ESC押すとキャンセルで画面が閉じるって普通だと思うのだが
865が
ダイアログはESCで閉じても良いけど普通の窓でそれをやるのはどうかと
DirectXアプリだとありがち
簡単なアプリというかユーティリティならESCで終了も有りだな。 画像ビューアとか。
>>852 前にそれで悩んだことがあるけど
結局諦めて今はMSゴシック
865 :
デフォルトの名無しさん :2005/06/11(土) 15:02:23
>>864 私もしょうがないので諦めてVerdanaを使うことにします。
Verdanaなら日本語ともサイズが合うので結構よかったです。
ただちょっと行間が詰まりすぎて見にくいかなとか感じたり。
eclipseとかのほうがよっぽど気が利いてますね。
外観に関する設定をもうちょっとがんばって欲しい。
866 :
デフォルトの名無しさん :2005/06/11(土) 15:16:16
>>859 返事遅くなってスマソ
そんな便利なメソッドがあったんですね!
フォントはDataGridから取れそうなので、ちょっとがんがってみます
ありがとです
PAINTSTRUCT::rcPaint(無効リージョン) に当たるのって PaintEventArgs のどっかから取れるの? 探す所多すぎで分からん
868 :
867 :2005/06/14(火) 18:29:12
sageてしもた(^^;
どこが多いのか聞いてみたいもんだ。4つやそこらじゃないか。
870 :
867 :2005/06/16(木) 13:52:11
スマソ PaintEventArgs.ClipRectangle がそのままやったんか... クリッピングの意味が分からんかったんだけど、 Paintイベント内って自動的にクリッピングしてあるのか... だからPaintイベントの挙動が不審なのか >869 ってか暗に答え教えてくれてアリガトウ
1週間に課金200キャラ減るとして 現在の課金は23251キャラだから 12週間後にレッドゾーン突入ww 個人的には計画どおりwww N-Ageと同じ運命をたどるww 俺がどんどんゲーム内でUZA行為して 止めを刺す! UZAPギルドはいってるとUZA行為しなきゃいけないという 気持ちにさせてくれるのがありがたいぜwwwww もうレベルあげあきたヤツらはUZAPに加入して じゃんじゃん暴れようぜ4649
872 :
デフォルトの名無しさん :2005/06/21(火) 14:03:48
ウィンドウの上部の青色のバーの部分の色を変えるには どうしたらよいでしょうか。
画面のプロパティ
>>872 SendMessage API関数を使えばOK
875 :
IKeJI :2005/06/21(火) 14:22:50
今作っているソフトは、GUI版とコンソール版があるんだが、 Main関数があるクラス以外は共有している。 この2つのヴァージョンのプログラムを同時にビルドする事はできないでしょうか? 今は、構成を追加しているが、切り変えるのメドイ
876 :
デフォルトの名無しさん :2005/06/21(火) 14:28:11
すいません、フォーカスを当てたときに、コマンドボタンの枠の色を変えたいんですが、 やり方を知っている方いらっしゃいますか? プロパティのForeColorで色を変えると、枠の色が変わると同時に文字色まで変わってしまうので、文字色はそのままで枠の色だけ変えるやり方はないでしょうか? よろしくお願いしますm(__)m
自分で描画。
879 :
デフォルトの名無しさん :2005/06/21(火) 20:42:50
質問です。ArrayListのSortメソッドなんですが・・ public class MyComparer : IComparer{ public int Compare(object x, object y){ int strComp = string.Compare(((List)x).s1, ((List)y).s1); return strComp; }} public class List { public string s1,s2; public List( string ss1, string ss2) { s1 = ss1; s2 = ss2; }} public class WebForm1 : System.Web.UI.Page{ private void Page_Load(object sender, System.EventArgs e){ ArrayList arr_rec = new ArrayList(); arr_rec.Add(new List("id1", "2")); arr_rec.Add(new List("id1", "1")); MyComparer my_comp = new MyComparer() ; arr_rec.Sort(my_comp); foreach (List rec in arr_rec) { Response.Write(rec.s1 + ":" + rec.s2 + "<br/>\n"); }}} ソートキーのid1が同じ値なのでソートして欲しくないんですが、これを実行すると id1:1 id1:2とソートされてしまいます。これはSortメソッドの仕様なんでしょうか? それとも使い方が違うとか?また、これを回避する方法はあるでしょうか?よろしくお願いします。
ArrayList.Sortはクイックソートを使う。 で、クイックソートは安定でない。 マージソートとかバブルソートとかを自前で実装する必要がある……かな?
x y が等しいときには、以前の格納順から順序を判定すれば良い
882 :
デフォルトの名無しさん :2005/06/21(火) 21:34:41
>>880-881 ありがとうございます。
>x y が等しいときには、以前の格納順から順序を判定すれば良い
なんか難しそうですね。
具体的にどうコーディングしたらいいんでしょうか・・・?
ListにOwnerListプロパティ持たせてIndexOfを比較
ネトゲでチートをボタン1つで出来るようにするソフトを作ろうと思ったんだが 実行中のプロセスのメモリを操作する方法(命令?)がわからん ヒントでも誘導でも検索キーワードでもいいから教えてくれたらかっこいいと思う
C++
886 :
デフォルトの名無しさん :2005/06/21(火) 22:10:13
>>883 ありがとうございます。
明日やってみます。
887 :
デフォルトの名無しさん :2005/06/21(火) 22:19:51
C++でいう#pragma comment(lib,"***") をC#でやりたいんだけどできる?
そもそも静的リンクが事実上無い。
889 :
デフォルトの名無しさん :2005/06/21(火) 22:28:00
debugとreleaseでDLL参照先変えたいんだけど どうしたらいいかな?
そうして発生するデバッグでは起きないエラー
891 :
デフォルトの名無しさん :2005/06/21(火) 23:13:40
参照設定するしかないんすね ども
>>883 ソート中に IndexOf は不味くないか?
それとも平気なの?
C#のラベルコントロールに背景透明の方法はいったい?
日本語の深淵を垣間見るかのような独特な文章だ。
たそがれて横浜
犯されて小田原
あきれ果てて秋葉原
898 :
デフォルトの名無しさん :2005/06/23(木) 03:07:48
マウスのクリック時に同時に押されてるAlt とか Ctrl の状態を 取得したいのですが、どういやったらいいですか? 用はGetAsyncKeyState()が欲しいです。
899 :
898 :2005/06/23(木) 03:15:08
間違えたGetKeyState()
Control.ModifierKeys
RichTextBoxで文字列を矩形選択したいのですが、どうすれば良いでしょう? WORDだとAlt+でできるので、簡単にできると思っていたのですが。。
902 :
sage :2005/06/23(木) 10:53:22
InternetExplorerを操作したいのですが。。。 あるURLを1分おきにリロードして、ある文字列がHTMLの中にあった場合 メッセージボックスを出すというような小物アプリを作りたいのですが どしたらよかですか?
IE を使いたいなら System.Windows.Forms.WebBrowser でもつかってろよ 文字列の検索だけをしたいのなら WebClient の方が楽かもしれんが
要件を見ただけだとIEである必然性がどこにも感じられんな。
905 :
902 :2005/06/23(木) 13:34:27
そうですね、説明不足でした。 文字列がマッチしたらメッセージボックスを出すと同時に そのWebページを表示しているIEを前面に出すということもしたいです。
ie automation c# あたりで
907 :
898 :2005/06/23(木) 14:31:14
>900 ありがと!
スクリプト無効にされてるとアウトだと思うが 妙にそういう事に拘る厨房が多いし
はじめに断っておけばいいじゃん
別にオートメーションとスクリプトは関係ないが。 一番簡単なのは、WebClientでデータ受け取ってチェックしてヒットしたらIEを起動させる。
MSDNのリファレンスってこのオブジェクトはこれこれこうするためのものですって文章が抜けている気がする。 いきなりプロパティ語りだされてもわけわかんねーよ。 っていうのはここでいいのですか?
クラス名とメンバ名みりゃ分かるだろ
ていうか普通に書いてあると思うんだが。
例えばUriクラス、
>URI (Uniform Resource Identifier) のオブジェクト表現を可能にし、URI の一部へ簡単にアクセスできるようにします。
>URI は、アプリケーションが使用できるインターネット上のリソースを簡潔に表す記述方式です。
>Uri クラスは、URI の解析、比較、結合などの URI 処理のためのプロパティとメソッドを定義します。
>Uri クラスのプロパティは読み取り専用です。 Uri インスタンスを変更するには、 UriBuilder クラスを使用します。
>Uri クラスは、"
ttp://www.contoso.com/index.htm " などの絶対 URI だけを格納します。
>"/new/index.htm" などの相対 URI は、ベース URI を基準にして展開し、絶対 URI に変換する必要があります。
>MakeRelative メソッドは、必要に応じて絶対 URI を相対 URI に変換するメソッドです。
(以下略)
なにか足りない?
なんかすごくいい例をだしてない? 俺が今日会社で見たのはまさしくプロパティの説明から始まっていた。 ちなみにVS.NET2003付属の日本語版ね。
何を見たんだよ!
>>902 SHDocVW.ShellWindowsをforeachで
917 :
902 :2005/06/24(金) 15:05:20
>>916 どうやったらいいんでうか。。。?わかりまぜん。
分からないなら素直に910にしとけ。
919 :
902 :2005/06/24(金) 15:08:47
VBScriptでは Set Shell=Wscript.CreateObject("Shell.Application") Set ws=Shell.Windows For Each obj In ws でできたのですが。
920 :
902 :2005/06/24(金) 15:21:48
わかりました。WebClientというのを使ってみます。
921 :
デフォルトの名無しさん :2005/06/25(土) 00:23:37
Sendkeysでシステムに直接キー入力を渡せるようですが、 逆にフォームがアクティブじゃない時でもキー入力を受け取る方法は無いですか? 教えていただきたいです。
グローバルフック。 .NETではできないはずなんだがWH_KEYBOARD_LL/WH_MOUSE_LLは何故か有効だと聞いたことがある。 あとはホットキー。
IKeJIさんがここに出没していましたか。多分知り合い。俺も最近C#を。
五月蠅い
ノートン インターネットセキュリティ2005を使っています devenv.exeというスクリプトが検出されるのですがこれは認証しても問題ないのでしょうか?
普通にVSの実行ファイルじゃねぇか。
やはり.NET上で実行されるだけに起動時、ウィンドウやボタンなんかの生成が チラついたりもっさりしてるね。
>>927 CPUをもっと速いのに替えろ。
メモリを増やせ。デュアルチャンネル化しろ。
>>927 生成でチラつくなんて、いったいどんなマシン使ってるんだ?
>>927 まさか、Celeron 450MHz + 256MBなんて言わないだろうな?
家のクライアントアプリは画面遷移に5秒かかりますがなにか?
そんな糞マシンでCLR言語を使おうって気持ちがおこがましい。 逝ってヨシ!
メイン以外のFormインスタンスの生成だけは初めのApplication.Idleでやってそれを使い回すようにしてる。
>>931 それはおまいのプログラムの仕様だろw
>>927 はウィンドウやボタンなんかの生成だけでチラつくんだぞw
>>927 SuspendLayout使えばマシになるんじゃね?
936 :
デフォルトの名無しさん :2005/07/01(金) 15:06:08
C#.NETでmp3再生させようと思い、mciSendStringを使ってコーディングしてみたのですが 以下のエラーが出て先へ進めなくて困ってます。 引数 '4' : '<null>' から 'System.IntPtr' に変換できません。 'mp3_4.Form1.mciSendString(string, string, uint, System.IntPtr)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。 次のすれにコードを貼り付けるので、助言いただけるとうれしいです。
937 :
936 :2005/07/01(金) 15:08:02
[DllImport("winmm.dll", EntryPoint = "PlaySound")] static extern System.IntPtr mciSendString( string lpszCommand, string lpszReturnString, uint cchReturn, System.IntPtr hwndCallback ); private void button1_Click(object sender, System.EventArgs e) { mciSendString("open \"C:\\madonna.mp3\" type mpegvideo alias MP3", null, 0, null);//この行にエラーが出ます。 mciSendString("play MP3 notyfy", null, 0, null);//この行にもエラーが出ます }
IntPtrは構造体だから。 int a = null; とおなじぐらいおかしい。 NULLポインタを指すのはIntPtr.Zero。
939 :
デフォルトの名無しさん :2005/07/01(金) 15:22:59
System.IntPtr hwndCallback を String hwndCallback mciSendString("open \"C:\\madonna.mp3\" type mpegvideo alias MP3", null, 0, null); を mciSendString("open C://madonna.mp3 type mpegvideo alias MP3", null, 0, null); に変えてみたところ、ビルドは成功したのですが、ボタンを押してもmp3ファイルの音が鳴らないのですが 何か考えられる原因があれば教えていただけるとうれしいです。
もう@stringにしてよ〜見にくくて仕方ない。
941 :
936 :2005/07/01(金) 15:38:14
>>938 アドバイスありがとうございます。
IntPtr.Zero hwndCallback
これでビルドしてみたのですが、
型、または名前空間名 'Zero' は、クラスまたは名前空間 'System.IntPtr' に存在しません。アセンブリ参照があるか確認してください。
と出力されます。
名前空間は
using System;
using System.Runtime.InteropServices;
これらを指定してるので、問題ないと思うのですが。
>>940 アドバイスありがとうございます。
下の@string hwndCallbackの前に全角入れて右に寄るようでしたら入れて体裁整えます。
@string hwndCallback
でビルドすると通るのですが、音が鳴りません。なんででしょうか。
>>941 > IntPtr.Zero hwndCallback
あのな……。
IntPtrは型。
ZeroはIntPtr型の静的フィールド。
メソッドの宣言で値まで書いてどうする。
public void Does(Int32.MaxValue value);
なんて書かないだろう?
で、
> 音が鳴りません。なんででしょうか。
そりゃデバイス開いただけで開始しろいうコマンドを送ってないもの。
あと [DllImport("winmm.dll", EntryPoint = "PlaySound")] なんだこれ。PlaySound関数を呼んでどうする。 呼びたいのはmciSendStringだろ。
944 :
936 :2005/07/01(金) 15:57:05
>>942 アドバイスありがとうございます。
>そりゃデバイス開いただけで開始しろいうコマンドを送ってないもの。
mciSendString("play MP3 notyfy", null, 0, null);
これが再生させる命令だと思うのですが、違うのでしょうか(T T)
>ZeroはIntPtr型の静的フィールド。メソッドの宣言で値まで書いてどうする。
とりあえず、IntPtr mciSendStringに変えときました(T T)
>なんだこれ。PlaySound関数を呼んでどうする。
[DllImport("winmm.dll", EntryPoint = "mciSendString")]
ご指摘どおり上のように変えました。
しかし、音が鳴りません。また、いろいろいじってみます。
[DllImport("winmm.dll", EntryPoint="mciSendString")] extern static System.Int32 mciSendStringA( string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);
947 :
デフォルトの名無しさん :2005/07/01(金) 16:02:52
DataGridのヘッダセルとセル内で改行ってできますか? 普通に"HELLO\r\nWORLD"では出来ませんでした。 Windowsアプリケーションです。
948 :
936 :2005/07/01(金) 16:13:26
>>945 アドバイスありがとうございます。
コードをそのまま張り替えてビルドしてみたのですが、
>>936 と同じエラーが表示されてしまいました。
とにかく、hwndCallbackの前の引数をstringにしないことにはビルドが通らないといった状態です。
>>946 ありがとうございます。印刷してよく読んでみようと思います。
949 :
936 :2005/07/01(金) 16:13:50
>>945 アドバイスありがとうございます。
コードをそのまま張り替えてビルドしてみたのですが、
>>936 と同じエラーが表示されてしまいました。
とにかく、hwndCallbackの前の引数をstringにしないことにはビルドが通らないといった状態です。
>>946 ありがとうございます。印刷してよく読んでみようと思います。
950 :
936 :2005/07/01(金) 16:14:42
>>945 アドバイスありがとうございます。
コードをそのまま張り替えてビルドしてみたのですが、
>>936 と同じエラーが表示されてしまいました。
とにかく、hwndCallbackの前の引数をstringにしないことにはビルドが通らないといった状態です。
>>946 ありがとうございます。印刷してよく読んでみようと思います。
951 :
936 :2005/07/01(金) 16:17:01
>>945 アドバイスありがとうございます。
コードをそのまま張り替えてビルドしてみたのですが、
>>936 と同じエラーが表示されてしまいました。
とにかく、hwndCallbackの前の引数をstringにしないことにはビルドが通らないといった状態です。
>>946 ありがとうございます。印刷してよく読んでみようと思います。
[DllImport("winmm.dll", EntryPoint="mciSendString")] public extern static System.Int32 mciSendStringA( string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback); private void button2_Click(object sender, System.EventArgs e) { string FileName = @"C:\madonna.mp3"; mciSendStringA("open \""+FileName+"\"", null, 0, 0); mciSendStringA("Play \""+FileName+"\"", null, 0, 0); VCL.Netならuses MMSystem;でおわる。 いちいち 定義をインポートする必要なし。 Delphi2006 C++ つくので のりかえ検討しましょう。 ちゃんちゃん
[DllImport("winmm.dll", EntryPoint="mciSendString")] public extern static System.Int32 mciSendStringA( string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback); private void button2_Click(object sender, System.EventArgs e) { string FileName = @"C:\madonna.mp3"; mciSendStringA("open \""+FileName+"\"", null, 0, 0); mciSendStringA("Play \""+FileName+"\"", null, 0, 0); VCL.Netならuses MMSystem;でおわる。 いちいち 定義をインポートする必要なし。 Delphi2006 C++ つくので のりかえ検討しましょう。 ちゃんちゃん
[DllImport("winmm.dll", EntryPoint="mciSendString")] public extern static System.Int32 mciSendStringA( string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback); private void button2_Click(object sender, System.EventArgs e) { string FileName = @"C:\madonna.mp3"; mciSendStringA("open \""+FileName+"\"", null, 0, 0); mciSendStringA("Play \""+FileName+"\"", null, 0, 0); VCL.Netならuses MMSystem;でおわる。 いちいち 定義をインポートする必要なし。 Delphi2006 C++ つくので のりかえ検討しましょう。 ちゃんちゃん
955 :
936 :2005/07/01(金) 16:28:29
>>952 再生されましたヾ(*´∀`*)ノありがとうございます。
よーく見て勉強しようと思います。
DelphiやC++も検討しようかと思います。ありがとう。
mciSendText(コマンド);でうごきます。 mciSendTextの名前は好きな名前に変えてください。 stausの時は、戻り値に入ります。 こんな感じです。 textBox1.Text = ciSendText("Status \""+FileName+"\" mode"); 訂正のコード載せておきます。 // using System.Text; // を追加します。 // [DllImport("winmm.dll", EntryPoint="mciSendString")] public extern static System.Int32 mciSendStringA( string lpstrCommand, System.Text.StringBuilder lpstrReturnString, int uReturnLength, int hwndCallback); public string mciSendText(string lpstrCommand) { StringBuilder buf = new StringBuilder(500); // サイズは適当に決めて下さい mciSendStringA(lpstrCommand, buf ,buf.Capacity ,0); return buf.ToString(); }
ハンドルにintを使うなと言うに。 EntryPointと定義する関数名が逆。 その.NETらしからぬネーミングどうにかなんない?
>>955 それから
[DllImport("winmm.dll", EntryPoint="mciSendString")]
を
[DllImport("winmm.dll")]
にしてください。
961 :
936 :2005/07/02(土) 21:53:26
>>956-960 たくさんのアドバイスありがとうございます。
皆さんのアドバイスを参考にいろいろいじって勉強しようと思います。
今まではC++を使おうかと思ったのですが、MFCやらC++.NETやらAPIやらややこしそうだったので
C#に決めたのですが、今度は型の変換がややこしいということですね。
その辺も、アプリを作りながら考えようかと思います。
どうもありがとうございました。
963 :
936 :2005/07/03(日) 20:25:44
>>962 とってもすてきなサイトをどうもありがとうございます。
すごく参考になりました。
Win32APIを使う際に、C#用に型変換しなくちゃいけないのは面倒だなと思っていたところなので
とっても助かります。
Win32API使う際にはぜひ活用しようと思います。
ありがとうございました。
964 :
デフォルトの名無しさん :2005/07/04(月) 08:36:43
指定時刻に、メッセージボックスが表示されるようにしようと思うのですが タイマーのコンポーネントを使って、1秒ごとに、アラーム時刻と現在時刻を比較して一致したら メッセージボックスを表示という仕組みにしようかなと思いついたのですが それだと、タイマーと現在時刻の同期がとれるのかという疑問がわいてきました。 C#でアラーム機能を盛り込むのに、もっとスマートな方法はないでしょうか。 タイマーのように、アラームのコンポーネントがあれば楽でいいのですが。 何か他にスマートな方法があれば助言いただけるとうれしいです。
965 :
964 :2005/07/04(月) 08:54:41
設定時刻を秒に変えて、タイマーにする方法を思いつきました。 とりあえずこの方法でやってみようと思います。 他にもっと簡単な方法があれば助言いただけるとうれしいです。
966 :
964 :2005/07/04(月) 09:23:00
やっぱり単純にタイマーで日付時刻を比較する方法にしようと思います。 簡単なコードで確認したところ、システム時計と、.NETのタイマーコンポーネントとは ちゃんと同期がとれているようです。 どうもお騒がせしました。
967 :
デフォルトの名無しさん :2005/07/04(月) 17:16:49
日付を選択できるDateTimePickerというコンポーネントがありますが 日付と時刻を選択できるコンポーネントってないでしょうか。 もしあれば教えてください。 なければテキストボックスとラベルの組み合わせを使うことにします、
DateTimePicker
969 :
967 :2005/07/04(月) 17:58:59
>>968 回答ありがとうございます。
どこか設定をいじったらDateTimePickerに時刻が現れるのかと思っていろいろ
いじってみましたが見つかりませんでした。
日付と時刻を同時に設定できるようなコンポーネントがあったらうれしいのですが。
日付しか扱えなかったらDate"Time"Pickerの名前に反するじゃないかw FormatプロパティとCustomFormatプロパティを使う。
DateTimePicker
972 :
967 :2005/07/04(月) 20:55:43
>>970-971 ご指摘のプロパティをいじったら時刻が表示されました。
どうもありがとう。CustomFormatプロパティとか調べていろいろいじってみようと
思います。
973 :
デフォルトの名無しさん :2005/07/06(水) 16:51:11
DateTime構造体を初期化するにはどのように書けばいいのでしょうか。 参考書で自作クラスのフィールドの各メンバ変数を初期化するというところで躓いてます。 参考書では using System; public class AlarmData //自作のAlarmDataクラスです。 { private DateTime date; private string title; public AlarmData() { this.date = DateTime(0); //この部分でエラーが出ます。 this.title = ""; } } このように記述されていますが、これをビルドすると 'System.DateTime' は 'クラス' を意味しますが、このコンテキストでは無効です。 と、出力されます グーグルで「DateTime 初期化 C#」とか「DateTime(0) 初期化 C#」とか「DateTime構造体 初期化」とか 入れて調べてみましたが、DateTime構造体を0に初期化する方法はわかりませんでした。 こういう場合、どのように記述すればDateTime構造体が初期化されるのでしょうか。
new
DateTime.〜
976 :
973 :2005/07/06(水) 17:04:36
>>974 this.date = new DateTime();
と書いたらビルド成功しました。ありがとうございます。
this.date = DateTime.Parse("");
と書いてみたこともあったのですが、ビルド成功しますが。はたしてこれが初期化の記述であるのか自信がありませんでした。
ParseはstringをDateTimeに変換する関数ですが、これを使って初期化したことになるのかという疑問がわいてきたんです。
>>975 アドバイスありがとうございます。
DateTime構造体のなんらかのメソッドを使って初期化する方法もあるよということでしょうか。
だとすると、上でかいたParseを使った方法でも初期化したことになるのでしょうか。
初期化というのが微妙な表現だ。 構造体は値型なんだから、値を持ってるということが事実。それがどんなものに因るにせよ。
978 :
973 :2005/07/06(水) 17:27:44
>>977 AlarmDataコンストラクタでフィールドを初期化するというところなので、初期化という表現を
使ったのですが、DateTime構造体の場合どう書けばいいのかと困ってしまいました。
とにかく、this.date = new DateTime(); でやってみようと思います。
これで何か問題があれば
>値を持ってるということが事実
ということろを参考に、何か適当に値を入れてやってみようと思います。
>>976 > this.date = DateTime.Parse("");
これって成功するの?
例外吐くような気がするけど。
980 :
973 :2005/07/06(水) 18:59:49
>>979 ビルドは成功しました。
実行してアプリを動かしてみても例外をはいたりはしてません。
が、おそらくそのコードは間違ってるのでしょうね。
981 :
979 :2005/07/06(水) 19:04:47
982 :
973 :2005/07/06(水) 19:14:19
>>981 情報ありがとうございます。
new使って今コード書いてます。たぶんこれでいけるような気がします。
どうもありがとう。
プロパティグリッドの各プロパティ表示ON/OFFの切り替えって 属性を直接書き換えないとできないのですか? 動的にbrowsable属性を切り替える感じです。 元クラスを書き換えたり継承したりはできない状況なのです。
984 :
デフォルトの名無しさん :2005/07/07(木) 13:38:58
トレイアイコンを状態によって切り替えるために以下のようなソースを作ってみましたが、 アイコンのリソースの設定をどうやったらいいか分かりません。 ヒントをいただけませんか? System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(TrayControllerForm)); if(~) { notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon1"))); } else { notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon2"))); }
985 :
984 :2005/07/07(木) 15:24:10
>984 自己レスです。 アイコンをEXEに埋め込む場合は、 RESXGEN.EXEでアイコンのイメージを.resx形式に変換して 埋め込むらしい。。。
986 :
デフォルトの名無しさん :2005/07/07(木) 15:32:46
DateTimePicker
987 :
898 :2005/07/07(木) 16:02:12
印刷プロパティのフリーのクラスライブラリー無いの?
988 :
Form1.cs :2005/07/08(金) 07:49:20
using System.Collections; public class Form1 : System.Windows.Forms.Form { private AlarmList report; public Form1() { this.report = new AlarmList(); } private void button1_Click(object sender, System.EventArgs e) { string title = textBox1.Text; this.report.Add(title); UpdateListBox(); } //リストボックスを更新するメソッド private void UpdateListBox() { ArrayList items = this.report.GetItems(); IEnumerator it = items.GetEnumerator(); listBox1.Items.Clear(); while(it.MoveNext()) { AlarmData item = (AlarmData)(it.Current); listBox1.Items.Add(item.ToString()); //.ToString()がないとListBoxに文字列が表示されない } } }
989 :
AlarmList.cs AlarmDataクラスを自作 :2005/07/08(金) 07:50:15
namespace AddList { using System; using System.Collections; public class AlarmData { private string title; public AlarmData() { this.title = ""; } public AlarmData(string title) { this.title = title; } //リストボックスに表示する用に文字列を整えるメソッド public string ToString() { string moji; moji = String.Format("{0}", title); return moji; } }
990 :
AlarmList.cs AlarmListクラスを自作 :2005/07/08(金) 07:50:48
public class AlarmList { private ArrayList items; public AlarmList() { this.items = new ArrayList(); } public void Add(string title) { AlarmData item = new AlarmData(title); this.items.Add(item); } public void Add(AlarmData item) { this.items.Add(item); } public ArrayList GetItems() { return this.items; } } }
991 :
988 :2005/07/08(金) 07:55:22
>>988 の
listBox1.Items.Add(item.ToString()); の部分を
listBox1.Items.Add(item);
にして、リストボックスにテキストボックスに入力した文字列を表示させたいのですが
listBox1.Items.Add(item); と書くとリストボックスに
AlarmList.AlarmData
と表示されてしまいます。
listBox1.Items.Add(item); と書いてリストボックスに文字列を表示させるにはどうすれば
いいのかで悩んでます。
同じコードを前にC++で書いたことがあるのですが、そのときはlistBox1.Items.Add(item);
と書いてもちゃんと文字列が表示されました。
なのでC#のなんらかの原因があるのかと思うのですが、何か助言いただけるとうれしいです。
992 :
988 :2005/07/08(金) 08:04:04
なんで listBox1.Items.Add(item); にしたいかというと 後々、リストボックスから一行を削除するのに this.report.Remove(item); と書いて、削除しようとするとアプリが固まってしまうからです。 listBox1.Items.Add(item) にすると固まらずに一行を削除可能なのですが そうすると今度は、リストボックスに表示されるはずの文字列の代わりにAlarmList.AlarmData という文字列が表示されてしまうので困ってます。
このコード、コンパイル時に警告が出ているはずだが。
994 :
988 :2005/07/08(金) 08:21:10
>>993 こちらでは、ちゃんとビルド成功しますし、アプリの実行もできてるのですが。
投稿するために極力けずりましたが、けずったものでもちゃんとビルド成功してますけどなんでだろう。
警告とエラーは別物なんだが
996 :
988 :2005/07/08(金) 08:33:30
>>995 アドバイスありがとうございます。
出力ウィンドウをよく見てみたら
ビルドの完了 -- エラー 0、警告 1
とありました。
'AddList.AlarmData.ToString()' は継承されたメンバ 'object.ToString() を隠します。
現在のメンバでそのインプリメンテーションをオーバーライドするには、override キーワードを追加してください。
オーバーライドしない場合は、new キーワードを追加してください。
と出ます。
しかし、listBox1.Items.Add(item.ToString()); とToStringをつけると警告が消えます。
ここに何かヒントがあるのでしょうか。
ちょっとAlarmData.ToString()をいじってみようかと思います。
997 :
988 :2005/07/08(金) 08:38:25
>>995 解決しました。
public override string ToString()
{
}
にしたところ、 listBox1.Items.Add(item) でちゃんと文字列が表示されました。
どうもありがとうございました。大変たすかりました。
結局問題の本質は理解しないというかしようとしないんだろうな……。
999 :
988 :2005/07/08(金) 08:49:49
>>998 'AddList.AlarmData.ToString()' は継承されたメンバ 'object.ToString() を隠します。
現在のメンバでそのインプリメンテーションをオーバーライドするには、override キーワードを追加してください。
オーバーライドしない場合は、new キーワードを追加してください。
の意味が残念ながらわかりません。
ご指摘のとおり、なんか知らないけどoverrideつけたら解決したよという段階にすぎません。
プログラミングの習得にかなりの時間使っちゃったので、今はもうとにかく動くものを作ろうという決意のもとやってます。
結局、ご指摘の問題の本質は理解できてませんが、時間があいたらその件はじっくり考えようと思います。
今、自分なりに考えた解釈は
クラスの設計時に、ToStringというメソッドを作ると、オブジェクトをToStringの返す文字列に整形してくれるんだけど
それにはoverrideって書かないとやってあげないよっていう意味かなとしか解釈できません。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。