トップページ⇒tech
1001コメント329KB

C♯相談室 Part15

レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん♯NGNG

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


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

関連リンク
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
0002名無しさん♯NGNG
過去スレ
Part14 http://pc5.2ch.net/test/read.cgi/tech/1076933504/
Part13 http://pc2.2ch.net/test/read.cgi/tech/1071663456/ ログ行方不明(´・ω・`)
Part12 http://pc5.2ch.net/tech/kako/1066/10660/1066038651.html
Part11 http://pc5.2ch.net/tech/kako/1061/10612/1061262958.html
Part10 http://pc5.2ch.net/tech/kako/1051/10518/1051842450.html
Part9 http://pc2.2ch.net/tech/kako/1039/10396/1039646808.html
Part8 http://pc3.2ch.net/tech/kako/1032/10324/1032488831.html
Part7 http://pc3.2ch.net/tech/kako/1027/10275/1027531796.html
Part6 http://pc3.2ch.net/tech/kako/1022/10222/1022257078.html
Part5 http://pc3.2ch.net/tech/kako/1019/10195/1019533942.html
Part4 http://pc.2ch.net/tech/kako/1016/10165/1016597767.html
Part3 http://pc.2ch.net/tech/kako/1009/10094/1009473982.html
Part2 http://pc.2ch.net/tech/kako/1002/10024/1002468050.html
Part1 http://pc.2ch.net/tech/kako/977/977112364.html
0003デフォルトの名無しさんNGNG
∩( ・ω・)∩ ばんじゃーい
0004デフォルトの名無しさんNGNG
       ヽ|/
     / ̄ ̄ ̄`ヽ
    /         ヽ
   /  ノ'' ll ''ヽ ノ( |  
   | (●) (●)⌒ .|  
   |  / ̄⌒ ̄ヽ   |  
   |  | .l~ ̄~ヽ |   |
   |  ヽ|  u/ノ   |
   |   | /| |     |
      // | | ))
     U  .U >>3
0005デフォルトの名無しさんNGNG
5
0006デフォルトの名無しさんNGNG
>>3
(*´ー`)σ)ω・) プニ
0007デフォルトの名無しさんNGNG
あるメソッドから返される変数なのですが、セットされていない場合があります。
nullのまま変数を操作使用とするとNullReferenceExceptionがスローされてしまうので、
操作する前に変数がセットされているかどうか確認できるでしょうか?
0008デフォルトの名無しさんNGNG
>>7
if (hoge == null)
   return;
じゃまずいのかね。
0009デフォルトの名無しさんNGNG
ぬるぽ
0010デフォルトの名無しさんNGNG
>>9
ガッ
0011デフォルトの名無しさんNGNG
.NET Framework的には
ぬるり
だよな。
00127NGNG
>>8
申し訳ないです。返されるのは変数ではなくて配列でした。
一応、
if(test.sakusha == null) { ~~~~} /* sakushaが返ってくる配列 */
と記述はしているのですが、この行でNullReferenceExceptionがスローされてしまいます。
0013デフォルトの名無しさんNGNG
ぬる
0014デフォルトの名無しさんNGNG
>>12
>  if(test.sakusha == null) { ~~~~} /* sakushaが返ってくる配列 */

そりゃsakusha==nullのときにsakushaを参照すりゃNullReferenceだわな。
00157NGNG
>>14
確かにその通りですよね……。
このような場合、そもそもsakushaが存在するかどのように確認したらよいのでしょうか>
0016デフォルトの名無しさんNGNG
~~~~ってなんだよ。
そこでsakusha使ってんじゃないの?って>>14が言ってるんだが。

まさかtestがnullとかイワンだろうな?
0017デフォルトの名無しさんNGNG
ド素人は恥ずかしがらずにソース見せた方が、解決もして追加情報ももらえるかもよ。
疑問点が既に恥ずかしいので、ソースがそれ以上恥ずかしいなんてことはあり得ない。
0018デフォルトの名無しさんNGNG
>>12
それどう見てもtestがnullだろう。
00197NGNG
ソース自体は、
Information test = new GetInformation(config);
Console.WriteLine(test.sakusha);
Console.WriteLine(test.id);
と言った非常に簡単なものです。

Console.WriteLine(test.sakusha);の部分を
if(test.sakusha == null) { /* ここは空* / }
にしてもエラーが発生してしまいます。

test.idには値が入っているのでtest自体がnullということはないと思います。
sakushaがセットされてないときは例外をおこなさないようにしたいのですが。
00207NGNG
すみません。
Console.WriteLine(test.sakusha);
↓
Console.WriteLine(test.sakusha[0]);
の間違いです
0021デフォルトの名無しさんNGNG
で、そのGetInformationとやらの定義は?

//Informationを継承したGetInformationクラスとはまた美しくないネーミング
0022デフォルトの名無しさんNGNG
プロパティなのかフィールドなのか、アクセス就職誌も出てないし。
0023デフォルトの名無しさんNGNG
もせのタグ取得も初心者には長い道のりなんだなぁ
0024デフォルトの名無しさんNGNG
>>19
testがnullじゃないなら、sakushaのget{}の中でNULL参照してると思うが。
public変数だったらNullReferenceはありえないし。
0025デフォルトの名無しさんNGNG
ランタイムのフォントのファイナライザから例外が出るんだけど。。。

Windowsアプリでプロジェクトつくって、ボタンを配置。ボタンのイベントハンドラに

AppDomain domain = AppDomain.CreateDomain("2nd domain");
domain.ExecuteAssembly(Application.ExecutablePath);

と書く。(ここで同期呼び出しになるのは承知。)

実行して、ボタンを押すと、フォームが二つ出てくる。
新しいフォーム、最初からあった古いフォームの順に閉じると、例外が出る。


皆さんのとこはどう??
0026デフォルトの名無しさんNGNG
はい、どうもー。

C#のいかした本を教えてもらいたいわけなんですけれども
どなたかご教授ねがえませんか?

当方は、
Cobol(8年) VB(3年) java(入門本卒業)
レベルです。あ、Cはほんのりわかります。

よろしゅっしゅー。
0027デフォルトの名無しさんNGNG
コボラーのサンプルが採取されました

●いじる
○いじめる
○解雇する
0028デフォルトの名無しさんNGNG
>>26
http://www.amazon.co.jp/exec/obidos/ASIN/0321154916/249-7990876-9425123
0029デフォルトの名無しさんNGNG
>>26
http://www.netcobol.com/products/windows/netcobol.html
0030デフォルトの名無しさんNGNG
まったくの初心者です。よろしくおながいします。

using System;

namespace ConsoleApplication1
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
Console.WriteLine("Hello World C#");
}
}
}

を打ち込んで実行したものはいいものの、
コンソールがちょっと文字を表示しただけで消えてしまいます。
CやC++ならエンターや閉じるボタンを押せば消えるのですが、
C#の場合はこれをどのように解決したらいいのですか?
003130NGNG
vc#.net2003環境です。
0032デフォルトの名無しさんNGNG
どうすればCLSに依存しない、Win32ネイティブのC#アプリを作ることが出来るのですか?
0033デフォルトの名無しさんNGNG
>>30
Mainの最後の行にブレークポイントを置いて、F5で実行。
0034デフォルトの名無しさんNGNG
>>32
>  どうすればCLSに依存しない、Win32ネイティブのC#アプリを作ることが出来るのですか?

以前DLL関連の疑問をひたすらぐぐってた時に、どっかの海外の会社の製品を見かけた。
必要なManagedのDLLを全部パッケージングしてネイティブな実行ファイルを書き出すって奴。
どこなメーカーかも値段も覚えてないけどな。
0035デフォルトの名無しさんNGNG
>>34
C#の優れた言語仕様を.NET Frameworkに依存せず簡単にWin32APIプログラミングで使えないものかと思いましたが、
どうやら簡単ではないようですね。ありがとうございました。
0036デフォルトの名無しさんNGNG
いずれにせよC#の利点の相当の部分は.NET Frameworkに依るところであると思うのだが。
003730NGNG
ブレークポイントとはbreakのことですか?
ってことはfor文とかでループをつくるんですかね。

無知でスマソ
今日、図書館で本を借りようと思ったら休館だったので
参考書が全くなくてC#の基本がまったくわかりません。

0038デフォルトの名無しさんNGNG
>>36さん

そうは思うのですが、少し古い(P3@600MHz/MEM128MBあたり)マシンではメモリ使用量が多すぎて大変なんですね。
0039デフォルトの名無しさんNGNG
>>37
C#だけでやるなら最後に
System.Console.Read();
てかいとけば良し。

ブレークポイントは……ヘルプ読めと。
デバッグの基本。
0040デフォルトの名無しさんNGNG
>>39
解決しました。
ありがとう
0041デフォルトの名無しさんNGNG
>>20
ばかやろー
sakusha==null なのに sakusha[0] にアクセスしたらエラーになるのは当たり前だろウンコー
0042デフォルトの名無しさんNGNG
つまり、ぬるぽですね
0043デフォルトの名無しさんNGNG
ばかやろー。
>Console.WriteLine(test.sakusha);の部分を
>if(test.sakusha == null) { /* ここは空* / }
>にしてもエラーが発生してしまいます。
>sakushaがセットされてないときは例外をおこなさないようにしたいのですが。
か。
俺的予想。
Information test = new GetInformation(config);
if(test.sakusha == null) { /* ここは空* / }
Console.WriteLine(test.id);
    :
sakusha[0] = "hoge"; // 全然関係ないところで参照してる


さっさとエラーメッセージ貼れ。それと行番号に対応するソースを貼れ。
初心者の癖に何をもったいぶってんだか。
0044デフォルトの名無しさんNGNG
VSでプロパティを編集するときのように、
リストビューの右項目がドロップダウンするコンポありますか?
0045デフォルトの名無しさんNGNG
PropertyGrid
0046sageNGNG
ウェブアプリのテストを自動化したいのですが
C#にはjavaでいうhttpunitみたいなものありますでしょうか?
どなたか教えて下さい。
0047デフォルトの名無しさんNGNG
>>46
NUnitAspはどうよ?
0048デフォルトの名無しさんNGNG
前スレでお聞きしたのですが、
解決に至らなかったのでもう一度お聞かせ下さい。
DataTable内にAutoIncrementプロパティをtrueに設定している列があります。
(仮にIDNOとする)
このDataTableをClearしてもう一度Fillすると
IDNO列に自動で割り当てられる値がどんどん増えていってしまい困っています。
再読込する毎に1から振り直したいのです。
どうすればいいでしょうか?
よろしくお願いします。
0049sageNGNG
>>47
アドバイスありがとうございます。
NUnitAspについて詳しく調査してみます。
0050デフォルトの名無しさんNGNG
>>42
ガッ
0051デフォルトの名無しさんNGNG
参照について質問です。
C++で
int i;
int &r = i;
とやってたことをC#でやるにはどうしたらいいでしょうか。
条件によって異なる変数を扱いたいのですが。
0052デフォルトの名無しさんNGNG
>>51
質問が曖昧すぎると思うのだが。
流れがないことにはどうにも。
メソッドの引数に構造体の参照、ってならrefだけど。
005351NGNG
>>52
書いてあるとおり、そのまんまです。
参照というよりむしろポインタですね。
メソッドでの参照渡しではありません。同じブロック内で。
unsafeではない通常のコードで、ポインタ的扱いができないかなと。
変数 p で、状況によって i と j の異なる変数を指す、みたいな。
0054デフォルトの名無しさんNGNG
クラスでラップすればいいのでわ。
C++と違って参照はなんぼでも差し替え効くし。
0055デフォルトの名無しさんNGNG
>>53
状況によって最後に i に代入するか j に代入するか切り替えるのでは駄目なの?
0056デフォルトの名無しさんNGNG
C#で作ったクラスをnamespace単位でDLL化したいのですが可能でしょうか?
originalというnamespaceに以下の4つのクラス

original.drow
original.print
priginal.write
original.run

があるとして、それをoriginal.dllとして
1つのファイルに保存したいのですが、やり方がわかりません。
0057デフォルトの名無しさんNGNG
>>56
その4つのクラスが書かれてるcsファイルをまとめて/target:libraryでコンパイルするだけだけど。
csc /target:library /out:original.dll draw.cs print.cs write.cs run.cs
0058デフォルトの名無しさんNGNG
どうでもいいがどうみてもoriginalがクラスでその4つのメソッドって名前だな。
0059デフォルトの名無しさんNGNG
class drow {public void do();}
class print {public void do();}
class write {public void do();}
class run {public void do();}
です。
0060デフォルトの名無しさんNGNG
あー、interface抽出してー。
0061デフォルトの名無しさんNGNG
writeだけnamespace priginalか。
0062デフォルトの名無しさんNGNG
>>61
drowもツッコもうぜ
0063デフォルトの名無しさんNGNG
>>54
>C++と違って参照はなんぼでも差し替え効くし。
よくわかりません。詳説いただければ助かります。
ラッパークラスを作るとかそこまでやらなくても、
言語の仕様に含まれていそうに考えていたんですが。

>>55
その手間を省きたかったりします。
0064デフォルトの名無しさんNGNG
>>63
条件によって参照先の変数を書き換えるC++コード例を示してくれないか?
006551=63NGNG
>>64
>>53
とゆー流れっす。
0066デフォルトの名無しさんNGNG
今まで必要になったことないということは今後必要になることもまず滅多にないだろうし
わざわざそんなことに頭悩ますよりは一旦普通のintに移して後で戻すな。
私なら。
0067デフォルトの名無しさんNGNG
>>65
良くわからんなあ。
ま、どちらにしろポインタが不可能なんだから、
似非ポインタである参照も不可能だろうな。
0068デフォルトの名無しさんNGNG
>>62
drowは合ってるから突っ込まなかったんだよ。
0069デフォルトの名無しさんNGNG
ぐあ。drawね。draw……(´・ω・`)すまん>>62
0070デフォルトの名無しさんNGNG
前スレ埋めようぜ(`・ω・´)
0071デフォルトの名無しさんNGNG
>>57
ありがとです。少し勉強不足でした。
0072デフォルトの名無しさんNGNG
どうでもいいがMSDNはやや上級者用って感じの文体っぽくて俺には理解しにくい
0073デフォルトの名無しさんNGNG
読みにくいのは単に直訳調(というか直訳そのもの)だからだと思う。
0074デフォルトの名無しさんNGNG
直訳ではあるがヘタに意訳するよりミスが少ないな。過去に叩かれた誤訳は多々あるが。

かく言う漏れはずっとUS版MSDNに張り付いてるけどな
0075デフォルトの名無しさんNGNG
C++のWin32に挫折してC#を勉強してみたが、
あまりにも習得しやすいので驚いた
0076デフォルトの名無しさんNGNG
質問です。
MFCで作成したCWndから派生させたウインドウを
WindowsFormに貼り付けることは可能でしょうか?
0077デフォルトの名無しさんNGNG
厳しいとオモフ
0078デフォルトの名無しさんNGNG
MFCでActiveXコントロール作れたっけ?
007992NGNG
>>94
派生元をCWndからCOleControlに変えれば簡単にできそうです。
ありがとうございます。

ちなみに、カスタムコントロールを.NET上で作成する場合
FormのOnPainをオーバーライドして引数内のGraphics
オブジェクトを使って描画するってのが一般的なやり方ですか?
0080デフォルトの名無しさんNGNG
試験的にポートスキャナを実装したいんですが
GUI部分は置いておいて
ネットワーク部分はどんなクラスを使ったらいいか
見当もつきません。どなたかお知恵を!
0081デフォルトの名無しさんNGNG
>>80
マルチかえれ
008265NGNG
>>66
考え方の相違をひしひしと感じる1行半ですねえ。
結局2行目後半の方法しかなさそうでがっくりきてますが。

>>67
ないですか。そうですか。
参照やポインタ、まねごとでいいから同様の機能を
備えておいてほしかった。

ともかく、ご回答いただいた方々、ありがとうございました。
0083デフォルトの名無しさんNGNG
どうしてもやりたかったらポインタ使えってことだろ…
意味があるのかは知らんが。
0084デフォルトの名無しさんNGNG
>82
いっそのこと、何でも参照が取れるPerlで(ry
0085デフォルトの名無しさんNGNG
C#ってポインタあるの?
0086デフォルトの名無しさんNGNG
>>85
あるよ。
見えないけどな
0087デフォルトの名無しさんNGNG
個人と個人の考え方の違いではなく、
ManagedとUnmanagedの考え方の違いに見えるね。
.NETへ移行する際に捨てるべき過去の経験は多い。
0088デフォルトの名無しさんNGNG
パラダイムシフトってやつか。
0089デフォルトの名無しさんNGNG
>87
なるほどね。
もうC#以外ではプログラミングする気が起こらない趣味グラマですが・・・
C#の言語仕様にない、ということは要らない、ということだろう。
withを入れなかったのはどうか分からないけど。
0090デフォルトの名無しさんNGNG
>>89
http://www.gotdotnet.com/team/csharp/learn/columns/ask.aspx#with
http://www.gotdotnet.com/team/ja/team/csharp/learn/columns/ask.aspx#with
0091デフォルトの名無しさんNGNG
>>89
withの必然性はないからね。
0092デフォルトの名無しさんNGNG
withなんていらないけど、テンプレートは早く使いたい。
VS2006くらいまでマテネーヨ
0093デフォルトの名無しさんNGNG
VS2005(Whidbey/for Yukon)には C# 2.0がクるでしょう。
009489NGNG
プロパティの初期化の時などはwithがあれば、と思うときもあります。
C#の言語設計者を信じるか・・・
0095デフォルトの名無しさんNGNG
多次元配列(ジャグでない)で、
列数、つまり一行の要素数はGetLength()で得られるとして、
行数はLength / GetLength()で求めるしかない?
結構わずらわしいんだが……。
Rankなんてなんのためにあるのかわからない。
0096デフォルトの名無しさんNGNG
GetLengthの引数は何のために…?
009795NGNG
>>96
そおゆうことだったか。
ありがとう、どうやら動的な、ダイナミックな勘違いをしていたみたいだ。
0098デフォルトの名無しさんNGNG
対象の文字が特殊文字か通常のアルファベットや数値かどうかを
調べる方法ってあるんでしょうか?
0099デフォルトの名無しさんNGNG
正規表現
0100デフォルトの名無しさんNGNG
>>51
何がしたいのか分からないけど、場面毎によりエレガントな
手法が用意されている可能性が高い。ポインタがない分ね。
だからどういう場面か知るために、具体的なコードが求められてるのに、
>>53みたいな抽象的な回答では話にならない。

>>51は、どこに行ってもCOBOLの手法で押し通すコボラーと
同じ愚を犯している気がする。
0101デフォルトの名無しさんNGNG
サードーパーティ製メニューやツールバーがDLLで再配布可能で、
本体EXEとともに、普通にZIP圧縮で配布しています。
インストーラなどナシのフリーソフトです。
初心者が雑誌CD-ROM掲載でこのソフトを入手し、同CD-ROMで.NETインスコしました。

さて、再配布したDLLは本体EXE以上に大きく、
その初心者に、毎回JITで重いソフトだなぁとか思われたくないので、
ネイティブイメージをキャッシュしておけたらいいと思っています。
ngenはコマンドラインなので初心者向けではありません。
本体の初回起動時に自動でバージョンチェック等してngen相当の動作をしたいのですが、
うまくやっている方がいたら教えてください。
0102デフォルトの名無しさんNGNG
XPathReader
http://www.microsoft.com/downloads/details.aspx?FamilyID=db0c5fae-111d-4b24-b10c-e4cdb13705da&DisplayLang=en

また謎のアセンブリが・・・。
0103デフォルトの名無しさんNGNG
Mono beta1のC#実装はどんなもんですか
0104デフォルトの名無しさんNGNG
>>103
なんでStatus見ねえの?
ドキュメント書いても読んでもらえなきゃ書く意味ねえな。
0105デフォルトの名無しさんNGNG
FILETIME構造体から時刻を得るにはWin32API使うんでしょうか。
DateTime構造体とか見たけどよくわからんのです。Win32APIでないとしたら、1600/01/01で初期化して
AddMillisecondsでFILETIMEの中身を足すという方法くらいしか思いつきません。
もうちっと楽なうまい方法はないもんでしょうか。
0106デフォルトの名無しさんNGNG
>>105
DateTime.FromFileTime
0107デフォルトの名無しさんNGNG
avicap32.dllでビデオキャプチャの初期化をしたいのですが
どのように、書いていったらいいのかわかりません。
素人同然な私に教えてください。
0108デフォルトの名無しさんNGNG
>>107
ttp://homepage1.nifty.com/MADIA/vb/vb_bbs/200401_04010125.html
で理解できないならまだ手を出すべきでは無いかも。

>>105
ちなみにFILETIME構造体は自前で用意しなくても
System.Runtime.InteropServices.FILETIME
が用意されてる。あんまり意味無いけど。
0109デフォルトの名無しさんNGNG
>>108

ありがとうございます。
とりあいず、そのページ見て勉強してきます
0110105NGNG
利用するAPIがFILETIME構造体で時刻をよこしてくるので、どうしたものかと考えてるんですが・・・。
いちお>108のSystem.Runtime.InteropServices名前空間にあることは分かっています。
FILETIMEの中身を何とかして64ビット整数値に合成してDateTime.FromFileTimeに渡したほうがいいのだろうか
0111デフォルトの名無しさんNGNG
>>110
なんとかするってほどのことか?
DateTime.FromFileTime(((long)fileTime.dwHighDateTime << 32) + (uint)fileTime.dwLowDateTime)
ってだけだが。

//ところでなんでこの構造体の各フィールドはintに設定されてるんだろう……?
0112デフォルトの名無しさんNGNG
何回か書き込んだのですが、
未だに解決の糸口すら見つからないので再度お聞かせ下さい。、
DataTable内にAutoIncrementプロパティをtrueに設定している列があります。
(仮にIDNOとする)
このDataTableをClearしてもう一度Fillすると
IDNO列に自動で割り当てられる値がどんどん増えていってしまい困っています。
再読込する毎に1から振り直したいのです。
どうすればいいでしょうか?
よろしくお願いします。
0113デフォルトの名無しさんNGNG
ラベルなどに文字列を表示する際に、
一部だけ文字色を変更することって出来ますか?

たとえば「テストです」とラベルに表示させたときに
【テスト】という文字列を赤で【です】を黒に。みたいな。

ご存知の方よろしくお願いします。
0114デフォルトの名無しさんNGNG
>>112
AutoIncrementは一意の数字をつけるために使うので、
その数字にあんまり意味は無い。
どうしても思い通りの番号を振りたかったら自分で振ればいいんでない?
0115win2000 + sdk v1.1NGNG
SoapFormatterを使ってFontをシリアライズすると、
デシリアライズするときに例外が飛んでうまくいかないのですが
どうすればいいのでしょう?

using System.IO;
using System.Drawing;
using System.Runtime.Serialization.Formatters.Soap;

class App {
static void Main() {
SoapFormatter formatter = new SoapFormatter();
Font font = new Font("Arial", 8);

FileStream fs = new FileStream("test.xml", FileMode.Create);
formatter.Serialize(fs, font);
fs.Close();

fs = new FileStream("test.xml", FileMode.Open);
font = (Font) formatter.Deserialize(fs);
fs.Close();
}
}
0116最凶VB厨房NGNG
プロパティでラッピング・・・
0117最凶VB厨房NGNG
コード読んでなかったわw逝って来るわ
0118デフォルトの名無しさんNGNG
>>115
仕様かバグらしい。
FontConverterを使うといいよ
0119デフォルトの名無しさんNGNG
>111
シフトという便利なのがありましたね。VB6から移行したばかりなもんで、dwHighDateTimeを
2^32倍するには・・・とか考えてました。コードまで示していただき、感謝します。
0120デフォルトの名無しさんNGNG
2^32は0x100000000だけどな。
0121115NGNG
>>116-118
アドバイスありがとうございます。
名前、サイズ、スタイルあたりをばらしてシリアライズすることにします。
0122デフォルトの名無しさんNGNG
UNIXタイムスタンプをDateTime型に変換しようと思っています。

// hoge: UNIXタイムスタンプ
fuga = (new DateTime(1970, 1, 1)).AddSeconds( hoge );

これだと、時間にずれが生じます。
1083942000(2004/05/08 00:00:00 のUNIXタイムスタンプ) -> hoge
fuga -> 2004/05/07 15:00:00

どのように変更すればよろしいでしょうか?
0123デフォルトの名無しさんNGNG
>>122
>  1083942000(2004/05/08 00:00:00 のUNIXタイムスタンプ) -> hoge
が1970/1/1 0:00:00 UTCから 2004/05/08 0:00:00 UTC+0900 までの時間になってるよ。
0124デフォルトの名無しさんNGNG
>>123
ありがとうございます。
UTC と JST の違いに気づきませんでした。
今考えれば、時間のずれの差をみればわかりますね。
0125デフォルトの名無しさんNGNG
fuga = ((new DateTime(1970, 1, 1)).ToLocalTime()).AddSeconds( hoge );
0126112NGNG
>>114
なるほど、そうなんですか。
手動で振ることにします。
とりあえずCommandTextは
SELECT 0,〜FROM TBL
としてFill時にDataTableに0を入れておいて
直後に書き換えることにします。
ありがとうございました〜。
0127デフォルトの名無しさんNGNG
C#で、音量を調節したいと思っています。
winmm.dllを使えばいいところまでは分かったのですが
VBのサンプルコードばかりでいまひとつ分かりません。
ご存知の方教えていただけませんでしょうか。
0128デフォルトの名無しさんNGNG
VBのサンプルコードがあれば十分じゃないの?
C#で書き直せばいいだけだ。
0129デフォルトの名無しさんNGNG
>>113
1つのラベルに複数色使うのは無理だろう。
PictureBoxあるいはFormにイメージとして描くか、RichTextBox使うか。
0130113NGNG
>>129
回答ありがとうございます。
何とか他の方法を探してみます。
ありがとうございました。
0131デフォルトの名無しさんNGNG
publicだけどIDEのプロパティグリッドには表示させたくないっていうことは出来ますか?
0132デフォルトの名無しさんNGNG
>>131
System.ComponentModel.BrowsableAttribute


プロパティグリッド使うならSystem.ComponentModel名前空間のクラスに
一通り目を通しておいたほうがいい。
0133デフォルトの名無しさんNGNG
ボタンやラベルを追加したときに
フォントプロパティが最初から
「ms pゴシック、14ポイント」
に設定されているようにする方法ってありますでしょうか。
0134デフォルトの名無しさんNGNG
再帰関数使うぐらいしか思いつかん。
0135ぷぷぷっNGNG
Assembly.LoadFromについてちょいと教えて著。
a.exeからAssembly.LoadFromをつかってb.dllを呼び出すんだけど、
呼び出したときにa.exeのformはhideしておいてb.dllがcloseしたときに、
自動的にa.exeもcloseするなんてことできるっすか?
0136デフォルトの名無しさんNGNG
>>133
クラスを派生させて、それぞれ設定しとけば?
0137107NGNG
えっと、なんとかビデオを取り込んで表示させることができたのですが
逆に取り込みを中止させるようするにはどうしたらいいのでしょうか?
0138デフォルトの名無しさんNGNG
コマンドラインからビルドしているのですが、resxがうまく埋められません。
/res でファイルを指定すると、サイズは増えるのですが、
起動するとリソースが埋め込まれていないと叱られます。
どうやるんですか?
0139デフォルトの名無しさんNGNG
>>138
リソース取得部分のコードを見てみないことには何とも。
0140デフォルトの名無しさんNGNG
クラスとコ構造体の違いについての質問なのですが
作成した構造体やクラスの変数を
ArrayList lit=new ArrayList();
Hoge hoge=new Hoge();//自作したクラスまたは構造体
for(int i=0;i<1000;i++)
{
list.add(hoge);
}

としたときのメモリ消費量は値方の構造体の方が多いのでしょうか?
0141デフォルトの名無しさんNGNG
>>140
メモリサイズには影響ないんじゃなかったっけ?
まぁManagedでメモリサイズを一々気にするな。

クラスと構造体の差は、
作成・運用にかかるコスト(速度)
参照型か値型か
継承できるか
あたりが大きなポイントかな。
0142140NGNG
>>141
構造体を変更したいときにrefで渡せないなどの場合を除いては
構造体で問題ないならオーバーヘッドの少ない構造体にしたほうがいいってことですか?
0143最凶VB厨房NGNG
この場合クラスでは?
0144デフォルトの名無しさんNGNG
>>142
構造体の方が必ずしもオーバーヘッドが小さいと決まった訳じゃない。
例えばメンバが50ほどあるオブジェクトをa = bする場合
クラスの方は参照をコピーするだけで済むから圧倒的に早いしな。

大体の場合、
単純なオブジェクトは構造体
複雑な場合・継承する必要がある場合はクラス
と使い分けるのが基本。
0145デフォルトの名無しさんNGNG
あ〜、それ以前に140のコードじゃclassとstructで意味が変わるな。
0146最凶VB厨房NGNG
あっw
classだとインスタンスは1個で
structはクローン大量発生ってとこか。
0147最凶VB厨房NGNG
ん?理解がぁゃιぃ。やばい>俺
0148最凶VB厨房NGNG
ArrayListに渡す時にstructだとクローン発生。
んでクローンがボクシング。
逆もあるのでやっぱりstructだと遅くなる。

はずw
出かけよっと
0149デフォルトの名無しさんNGNG
.NETのWindows API呼び出しを支援するツールがフリーで公開
http://itpro.nikkeibp.co.jp/free/NT/NEWS/20040510/4/
0150デフォルトの名無しさんNGNG
Windows Forms の ListView で columnsHeader に表示される文字列を
中央寄せ(TextAlign = Center) にしたいのですが,
何か方法があれば教えてください.

columnHeader.TextAlign = Center とすると,ヘッダだけではなく
Item の文字列も中央寄せになってしまうし,一番最初の列は
Left 以外に変更できないようなのですが.

よろしくお願いします.
0151デフォルトの名無しさんNGNG
>>150
ListViewでは無理な希ガス
0152デフォルトの名無しさんNGNG
DBのデータをDataGridを使って表示したいんだけど
Accessのリンクテーブルみたいに最初の数行だけを取得(フェッチ)することってできないのかな?
スクロールに合わせて次の数行を取得、みたいなことなんだけど・・・

0153デフォルトの名無しさんNGNG
>>152
MSDNでクエリ結果のページングって項目みてみ。
0154デフォルトの名無しさんNGNG
>>153
ページングか
これってページの管理だけができるのかと思ってたよ
「全部で20ページあって、15ページ目を表示する」みたいな使い方。
ちょっと見てみる。サンクス。
0155デフォルトの名無しさんNGNG
ん〜、初心者的質問で恐縮ですが・・・
たとえばFormにTextBoxをDock.Fillにして配置してます。
で、その辺のテキストファイルをそのTextBoxにドラッグして表示させるにはどうしたらいいのでしょうか?
とりあえず外からのドラッグ通知を知る方法が分からないので、それさえ分かればなんとか・・・
0156デフォルトの名無しさんNGNG
んっと、ついでにもう一つ質問です。
えと、例えばPenとかBrushとかGraphicsとかのDisposeメソッドが付いてる奴は
GCに任せるよりも使い終わったら明示的にDisposeを呼んだ方がいいのでしょうか?
質問ばっかりですいません。
0157デフォルトの名無しさんNGNG
>>155-156
色々参考になるサイト
ttp://ukamen.hp.infoseek.co.jp/

GCはメモリしか面倒見てくれない。
Disposeはそれ以外のリソースを明示的に破棄するためのメソッド。
ttp://www.users.gr.jp/ml/archive/list.aspx?name=cs&no=2500
の「げに奥深きはGCかな」の一連の流れが参考になる。
0158デフォルトの名無しさんNGNG
Windows Forms の DateTimePicker で, Enterキーの押下で,
年,月,日へフォーカスを移動する方法があれば教えてください.
年,月,日へは左右カーソルでしか移動できないのでしょうか?
0159デフォルトの名無しさんNGNG
すまんいまだによくわかってないんだが,多重継承ないと不便でないのか?
自分はC++でシリアライズ機能をもつウィンドウとかを作ったりするんだが,インターフェースだと派生クラスでかく必要が出てくるよね.
多重継承できると,クラス宣言だけで出来て非常に簡便なんだがどうなんでしょう?
0160デフォルトの名無しさんNGNG
入門者向けの、おすすめの書籍を教えて。
テクニック集みたいなのじゃなくて、文法を分かりやすく説明してくれるような本。

いままで、Javaを半年ほどやっただけです。
0161デフォルトの名無しさんNGNG
VS.NETで、ユーザーコントロールや自作コントロール使ってたら、
急にデザイナで表示されなくなったりするようになることがあるんだけど、
こんな経験している人って他にもいます?
0162最凶VB厨房NGNG
kokoniimasu
0163161NGNG
おお、自分だけじゃなかったか。

どうやらデザイン時にフォームに貼り付けたり、デザイナを開いたりする時に、
コントロールのコンストラクタやLoadイベントが発生しているみたいですね。
そこでエラー発生したりすると、デザイナがエライことになってしまうみたい。
とほほ・・・
0164デフォルトの名無しさんNGNG
>159
そこはhas-a使って委譲。まぁ、呼び出しメソッド書く手間はちょろっと要るけど。

多重継承即ち悪かと言われると漏れには分からん。まぁとりあえずC#に多重継承が
ないことは動かしようがないんで、郷に入れば郷に従うってことで。
0165デフォルトの名無しさんNGNG
>>160
Java半年やって、それなりに理解できてるんだったら、別にどれ買っても
いいんでない?Java半年やって、全然身についてないんだったら、どれ
買っても無駄なような気もするが。
0166デフォルトの名無しさんNGNG
というか、Java 半年やってるんだったら、ネットで「C# Java 比較」と検索するのが一番手っ取り早くない?
0167デフォルトの名無しさんNGNG
高橋 麻奈 シリーズの やさしいJava ってわかりやすかったので
そういう感じの、入門者定番の書籍ってないかなぁと思ったのですが。

やっぱりC#って、CやC++からの乗り換えの人が多いから、そういう親切な本って少ないんですかね。
0168デフォルトの名無しさんNGNG
俺はC#->C++->C->JAVA->C#って感じに流れていったけど
(JAVAまではお遊びレベル。どの言語にするか落ち着かなかったので。)
俺は独習C#が分かりやすかったな。
C#の本じゃないけど、+オブジェクト指向開発講座ってのと結城著のデザインパターン入門が俺には良かった。
コンソールアプリ作りながらOOを勉強してからFormアプリに行くのが近道と俺は思うぞ。
0169デフォルトの名無しさんNGNG
大学受験の時、あんまり勉強しなかったけど、
参考書は毎日のように探しに行ったな。
0170デフォルトの名無しさんNGNG
MFCでPreTranslateMessageの戻り値にtrueを返して
メッセージの流れをそこで止めたのと同じことは、
どうすれば実現できますか。
mainForm1にオーバーライドしたWndProcの、
Messageのプロパティを全て変更してみましたがうまくいきません。
0171デフォルトの名無しさんNGNG
VS.NET 2003 英語版でC#のスタンドアロンアプリを作ってるんですが、
System.Web に
AspNetHostingPermission
AspNetHostingPermissionAttribute
の2つのsealedクラスしかなく、HttpUtilityなどがないため、途方にくれています。
(Object Browserで System.Web で検索した結果)

実際、using System.Web; しても、エディタでHttp... と打っても補完してくれません。

何が悪いんだろう?? 英語版だから??
0172デフォルトの名無しさんNGNG
>>171
参照設定でSystem.Web.DLLを追加してやれば?
0173デフォルトの名無しさんNGNG
関連して独り言
参照設定でSystem.Web.DLL追加したら「using System.Web; を追加しますか?」とかなんとか、
using System.Web; と書いたら自動でSystem.Web.DLL参照設定追加
してほしいと今まで何度も思った。
0174171NGNG
でけました。ありがとうございました。

「System.Web 見つからない」とかで必死にグーぐるしたら、@ITの会議室にも
同じ質問があった。。。
0175デフォルトの名無しさんNGNG
>>173
無茶。
0176デフォルトの名無しさんNGNG
>>170
IMessageFilterを実装して、Application.AddMessageFilterで登録。
0177デフォルトの名無しさんNGNG
>>167
そのレベルで考えるなら、JAVAを学習したあとC#をあえて学習しなおす必要はないと思う。
それより、チュートリアルの方が役に立つと。
0178デフォルトの名無しさんNGNG
ListView にいくつか項目を追加して表示します.
項目が多い時はスクロールバーで上下に動かして内容を見る事になります.

このような時,ユーザーの操作ではなく,コードによって,
ある条件に該当する ListView の項目を選択状態としているの
ですが,アイテム自体は選択状態となるのですが,スクロールが
自動でされないので,選択しているアイテムを探すには
ユーザーがスクロールバーで選択されているアイテムをみつけるしか
ありません.

選択されたアイテムが表示できるように,スクロールバーの値を
動かしたいのですが,何か方法はありますでしょうか?
0179デフォルトの名無しさんNGNG
>>178
ListView.EnsureVisible(int index)
0180178 NGNG
>> 179
できました.ありがとうございます.
0181デフォルトの名無しさんNGNG
Disposeもデストラクタもないけど要らなくなったオブジェクトは、
GCの対象にしたいのですが、
要らなくなったことということをどうやって書くんですか?
0182デフォルトの名無しさんNGNG
>>181
……GCをきちんと理解してるかね?

>  Disposeもデストラクタもないけど要らなくなったオブジェクトは、
>  GCの対象にしたいのですが、

デストラクタは明示的に呼ぶもんじゃないぞ。
明示的に破棄したいならnullを代入しとく。
0183デフォルトの名無しさんNGNG
>>182
明示的に「GCの対象」にしたいならとかの方がいいかもね。
# 破棄という言葉を勘違いする人が多いので
0184デフォルトの名無しさんNGNG
0xなどで始まる16進数のstringをint32に変換する方法を教えてください。
string s = "0xFFFF";
int i = Hoge(s);
みたいな。
0185デフォルトの名無しさんNGNG
>>184
Convert.ToInt32(string value, int fromBase)
//あ、これ0xつけてても問題ないんだ。
0186デフォルトの名無しさんNGNG
MDI子フォームを親フォームの中で最大化させると
勝手にコントロールボックスついてしまうんですが、
なくすことって出来ないんでしょうか

VB6とかVB.Netならできるのに
0187184NGNG
ありがとうございました
0188170NGNG
>>176
いけました。ありがとうございます。
0189た〜NGNG
教えて頂きたいことがあります。
環境:WinXP VisialC# SQLServer

現在、検索処理を作成中で、
VisualC#からSQLサーバのデータを取得するために

///ソース抜粋 Start
system.Data.SqlClient.SqlCommand commandOtherFields = new System.Data.SqlClient.SqlCommand(sb.ToString(), conn);
System.Data.SqlClient.SqlDataReader readerOtherFields = commandOtherFields.ExecuteReader();

while(readerOtherFields.Read())
{
al.Add (readerOtherFields.GetString(0)) ;
}

readerOtherFields.Close();
commandOtherFields.Dispose();

///ソース抜粋 End

と、このような感じでデータを取得しにいっているのですが、
ExecuteReaderが行われている段階(つまり途中で)
で、検索をキャンセルしたい場合は
このSQLConnection自体を切断してかまわないのでしょうか?
それともExecuteReaderのように同期ではなく非同期に
データを読むやり方があるのでしょうか?

説明がうまくないのでわかりにくいかもしれませんが
よろしくお願いいたします。
0190デフォルトの名無しさんNGNG
>>189
マルチポスト ハケン(・∀・)
0191デフォルトの名無しさんNGNG
まるぽぐらいで騒ぐか
0192デフォルトの名無しさんNGNG
>>191
ガ・・・
ガッ
0193デフォルトの名無しさんNGNG
>>189
なんで、検索をキャンセルしないといけないの?
WHEREできっちり該当を絞れば検索なんてすぐ終わるんじゃない?
0194デフォルトの名無しさんNGNG
>>189
ExecuteReader()の実行が、人間にキャンセルできるくらいに遅いということですか?
それDBアクセス側を見直したほうが良いとおもわれますが・・・
0195デフォルトの名無しさんNGNG
「らっぴんぐ」

ってなんですか?
分かりやすく教えて欲しいです。
0196デフォルトの名無しさんNGNG
http://www.google.com/search?num=50&hl=ja&ie=UTF-8&q=%E3%83%A9%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0&lr=lang_ja
0197デフォルトの名無しさんNGNG
>>196
下らんこと書くな。ぼけ
ほらよ。
http://www.asahi-kasei.co.jp/saran/products/saran_h/saran_h.html
0198デフォルトの名無しさんNGNG
Caps/Num/Kana Lockの状態はどうすれば取得できますか。
0199デフォルトの名無しさんNGNG
C#これは買っとけ!って本ありますか?
レベルはK&R一回読んだレベルです。
憂鬱なも一回読みました。
0200デフォルトの名無しさんNGNG
あと、独習javaも一回よみました。
0201デフォルトの名無しさんNGNG
重い腰を上げてC#を始めようと、入門書を買いに行ったんです。
売り場にはC#の棚もあって、数はそれなりにあってんだけど、
昔、C言語を勉強したときに読んでいた林晴比古のものがあったんで、それを選びました。
4000円。

さっき、さっそく読もうと手に取ったら
「新 Visual C++.NET」って書いてあるわけですよ。

C++.NET

俺はこのままC++.NETを始めるべきでしょうか?

ちなみに内容は読みやすそうでした。
0202デフォルトの名無しさんNGNG
買った本でどの言語を始めるかを決めるとは、男の中の男ですな。
0203デフォルトの名無しさんNGNG
>>201
C-OBOLの本でなかったことに感謝し、C++を勉強すべし
0204デフォルトの名無しさんNGNG
重い腰を上げて入門書を買ったにもかかわらず、切替は軽やかだなw
0205デフォルトの名無しさんNGNG
まあマジレスすれば、C#の方が言語の習得に使う時間は少なくて済む。四千円分以上。
仕事にしようと言うんでない限りC#のほうが良かろう。
0206201NGNG
前書きを読んでみると
・VC++.NETの学習には労力がかかる
・異質な世界の「業界語」

とか書かれちゃってますw
なのでC#をメインで、C++は怖いもの見たさで流し読みすることにしました。

>>202-205
助言ありがとう。
0207デフォルトの名無しさんNGNG
動くだけのプログラム開発ならC#はかなり簡単だが、
.NET内部の不透明さや複雑さのせいで、
より速いコードを書こうとか考えると難しくなる。
機械の動きを理解できれば最終的には低レベル言語がよろしい。
0208デフォルトの名無しさんNGNG
FormにオーバーライドしたProcessKeyPreviewって、
なぜかComboBoxにフォーカスがあるときは呼ばれないね。
また、呼ばれるコントロールでもキーによっては
falseを返してもtrueと同じになる。
ex. Delキーはt/fで区別されるのに、BSキーはされない。
0209199-200NGNG
だれかアドバイスください。おなかいたい。
0210デフォルトの名無しさんNGNG
>>209
参考書は胃薬でも精神安定剤でもない。
0211デフォルトの名無しさんNGNG
>>209
「C#によるプログラミングWindows」でもかっとけー。
ちょっと高いけどその価値はあるから。
0212デフォルトの名無しさんNGNG
>>209
Helpにもウェブページにも参考書をはるかに凌ぐ情報があるぞ。
しかも、入門レベルから高度なものまで!!
なぜ、利用しない?
0213デフォルトの名無しさんNGNG
>>212
だね。
オレ、一冊も持ってない。
書店に行ってもしっくりくる本がない。
オレ的に不要な超入門的なものは日本語でもたくさんあるのに、欲しい本は英語版ばかり。
良い本は翻訳して欲しいなー。
0214208NGNG
後半は誤解だった。すまね。ComboBoxのは事実。
0215デフォルトの名無しさんNGNG
>>212-213
>>209はプログラムが書きたいわけじゃなくて、C#の本を読みたがってるんだから
教えてあげなよ。
0216デフォルトの名無しさんNGNG
>>215
そうねぇ。じゃ。
標準C#.NETプログラミング(1)と(2)が良いかな。
でもね。本って目的によっても、好みによっても選択肢が違うから
売れてる本を知りたいならAmazonで調べてみたら。
JAVAがわかるなら、実際に何か作ってみて「?」なところはHELPへGO!!
0217209NGNG
どうも。

とりあえず@ITの改訂版C#入門でもやってみようと思います。
本はとりあえずあきらめました。
0218デフォルトの名無しさんNGNG
こんにちは。
Windowsフォームを表示する際に画面の中央に表示させたいのですが、
どうもうまくいきません。いろいろ試行錯誤したソースが以下です。
なにがおかしいのでしょうか。記述はFormのInitializeComponent関数の
後ろにしています。

Rectangle tempRectangle1 = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;
Rectangle tempRectangle2 = this.Bounds;

this.label2.Text = System.Convert.ToString(tempRectangle1.Width)
+ "," + System.Convert.ToString(tempRectangle1.Height);
this.label3.Text = System.Convert.ToString(tempRectangle2.Width)
+ "," + System.Convert.ToString(tempRectangle2.Height);
//this.label2.Text = System.Convert.ToString(System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width);
//this.label3.Text = System.Convert.ToString(System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height);
//this.DesktopLocation.X = (tempRectangle.Width - tempRectangle2.Width) / 2;
//this.DesktopLocation.Y = (tempRectangle.Height - tempRectangle2.Height) / 2;
//this.label2.Text = this.DesktopLocation.ToString();
//this.DesktopLocation = new Point((tempRectangle1.Width - tempRectangle2.Width) / 2, (tempRectangle1.Height - tempRectangle2.Height) / 2);
//this.label3.Text = this.DesktopLocation.ToString();
//this.Location = new Point((tempRectangle1.Width - tempRectangle2.Width) / 2, (tempRectangle1.Height - tempRectangle2.Height) / 2);
this.Text = "Hello,World";
this.Top = (tempRectangle1.Width - tempRectangle2.Width) / 2;
this.Left = (tempRectangle1.Height - tempRectangle2.Height) / 2;
0219デフォルトの名無しさんNGNG
どうおかしい?
これだと何処に表示されてんの?
0220デフォルトの名無しさんNGNG
>>219
不定です。
0221デフォルトの名無しさんNGNG
>>218
this.StartPosition = FormStartPosition.CenterScreen; だけでいいじゃん。
0222デフォルトの名無しさんNGNG
>>218の問題は>>221で正解だろうけれど、
FormのコンストラクタでLocation変えても指定した位置に出なくて俺も悩んだ。

Loadの中でも出なかったっけ?
0223デフォルトの名無しさんNGNG
C#2003を使用しています。
したいことは、ボタンを押すとピクチャーボックス内に線を引き、その画像を
保存することをしたいのですが、
「'System.NullReferenceException' のハンドルされていない例外が 040516.exe で発生しました。
追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。」
というメッセージがで前にすすみません。
よいアドバイスを頂けませんか。

private void button1_Click(object sender, System.EventArgs e)
{
Graphics g = this.pictureBox1.CreateGraphics();
Pen myPen = new Pen(Color.LightGreen);
g.DrawLine(myPen,100,100,200,200);
pictureBox1.Image.Save(@"d:/testZ.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
}
0224デフォルトの名無しさんNGNG
Imageがnullなんでは?
0225デフォルトの名無しさんNGNG
下のような感じにしましたら
エラーはでなくなったのだけど、線が保存できません。

pictureBox1.Image = Image.FromFile("d:/st1.bmp");

Graphics g = this.pictureBox1.CreateGraphics();
Pen myPen = new Pen(Color.LightGreen);
g.DrawLine(myPen,100,100,200,200);

pictureBox1.Image.Save(@"d:/testZ.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
0226デフォルトの名無しさんNGNG
new Bitmap() して
bmp.Save() かなんかすればいいんでは?
0227デフォルトの名無しさんNGNG
Graphics g = this.pictureBox1.CreateGraphics();
↓
Graphics g = Graphics.FromImage(pictureBox1.Image);
でどうかな
0228218NGNG
>>221
ありがとうございました。できました。

>>222
無理なんですか、今までどうにかやろうと格闘していました。
丸一日無駄だったのか(笑)
0229デフォルトの名無しさんNGNG
すいませんが、C#でC++のlistやvectorみたいなのってありますか?
とりあえず可変長の配列が欲しいと思ったのですが
0230デフォルトの名無しさんNGNG
>>229
System.Collections名前空間を調べれ
0231デフォルトの名無しさんNGNG
>>227
ありがとうございます。
0232デフォルトの名無しさんNGNG
>>230
うおお、たくさんある!
ありがとうございました
0233デフォルトの名無しさんNGNG
すいませんがもう一つお願いします

メニューバーにあるような、ファイル(F) の(F)みたいなのをつくりたいのですが
ShortCutの項目ではAlt+Fで割り当てられませんでした
これはどこで割り当てるのですか?
0234デフォルトの名無しさんNGNG
>>233
"ファイル(&F)"
0235デフォルトの名無しさんNGNG
>>234
できました
ありがとうございました
0236デフォルトの名無しさんNGNG
C#でRs232通信したいんだけど、どうしたら言いのでしょう。
0237デフォルトの名無しさんNGNG
>>236
ここでも参考にしたら?
http://msdn.microsoft.com/msdnmag/issues/02/10/netserialcomm/default.aspx
0238デフォルトの名無しさんNGNG
>237
 ありがとう。
0239デフォルトの名無しさんNGNG
ListViewを使っているのですが、
ある列だけ非表示にすることってできませんか?
ListViewはデータを持っているけど、非表示にしてユーザに見せたくないのです
よろしくお願いします
0240デフォルトの名無しさんNGNG
>>239
非表示にするっていうか、ColumnHeaderのWidthをゼロにするとか。
0241デフォルトの名無しさんNGNG
見せないListViewって存在価値あるの??
0242デフォルトの名無しさんNGNG
ListViewItemのTagプロパティに見せたくないデータをいれとけば?
0243デフォルトの名無しさんNGNG
>>241
あるよー。
0244デフォルトの名無しさんNGNG
>>239
そういうのって結局、テーブルでデータを持って、表示はそのうちの一部の列にすればいいと思うが。
0245デフォルトの名無しさんNGNG
>>240
ColumnHeaderのWidthを0にしてもマウスで触られると見えちゃった気がするんだけど。
違ったかな…
0246239NGNG
Tagにいれておくことでなんとかできました
Tagって何のためにあるのかよく解っていませんが
とりあえずこれでやってみたいと思います
0247デフォルトの名無しさんNGNG
>>246
ヘルプを見れば何となく分かるけど、
要はそのコントロールに関連の深いデータを入れるプロパティ。
ま、都合良く好きなものを入れられるプロパティとおもっといて間違いじゃない。
0248デフォルトの名無しさんNGNG
ListViewを使っているのですが、ウインドウのサイズ変更をしたときに
ちらつきが激しいのですが、何か対処法はありませんか?
他のアプリケーション動かしてみるとまったくちらつきが発生してないので
これはどうやってるんだろう…
0249デフォルトの名無しさんNGNG
>>248
このへんをヒントにしたら?
http://www.codeproject.com/cs/miscctrl/listviewxp.asp
http://www.codeproject.com/cs/miscctrl/listviewff.asp
0250デフォルトの名無しさんNGNG
Microsoft Win32 と Microsoft .NET Framework API との対応
http://www.microsoft.com/japan/msdn/net/general/win32map.asp#win32map_performancemonitoringfunctions

ここきれいにまとめてあって便利


ところで、http://www.google.com/intl/ja/sitesearch/bsd.gif
と入力したら
http://www.google.com/intl/ja/sitesearch/ と
bsd.gif に文字列を分けてくれる関数ってないですか?
0251デフォルトの名無しさんNGNG
>>250
取り敢えず思いつくのはSystem.IO.Pathクラスの各メソッド
0252デフォルトの名無しさんNGNG
>>251
サンクス

public class systemio_path {
public static void Main(string [] args){
string files;
files=Path.GetFileName(
args[0]);
Console.WriteLine(files);
}
}
0253デフォルトの名無しさんNGNG
>>250
System.Uri クラスあたりはどうよ?
0254デフォルトの名無しさんNGNG
>>253
正直いまいち。と言うか果てしなく使いにくい。
基本的にHost部分とそれ以外(とクエリ部分)、にしか分けてくれないから。
0255デフォルトの名無しさんNGNG
C#にてC言語で書かれたDLLを使うときに
char **型とFILE *型をどう扱えばいいのか分かりません
char **型はsting[]として扱いたいのですが可能でしょうか?
またFILE *はどうやって扱えばよいのでしょうか?
0256デフォルトの名無しさんNGNG
>>255
構造体は手で書く。
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconosinfosample.asp

文字列の配列はこの辺参照。
ttp://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpconmarshalingarraysoftypes.asp
0257デフォルトの名無しさんNGNG
スクロールをキャンセルする方法って何かないでしょうか?

Rtfコードをリッチテキストにぶっこむと、キャレットの移動によるスクロールで
がっくんがっくんになるんで、それを防ぎたいんですが、今の所手詰まりです。

0258デフォルトの名無しさんNGNG
C#(.NET WinApp)でプロジェクトを公開するときに、例えばForm1.csとClass1.csがあって、
Form1.csのソースだけ公開してClass1.csのソースは非公開にすることって可能ですか?
プロジェクトはコンパイル可能で、且つEXEファイル単体で動作できるという条件で。

Class1をDLL化する方法は試したんですが、これだと実行ファイル配布時に
EXEファイルと一緒にDLLファイルも渡さなきゃならないんで条件に合わないんです。
そもそもDLLってそういうものですけど・・・(´∀`;)

C#で実現するとなると、Calss1.dllをリソースとしてForm1.exeに埋め込んで、
初回実行時にDLLファイルを吐き出すような力技しかないですか?
0259デフォルトの名無しさんNGNG
>>258
うん、できない。
まあ.NET Frameworkの設計思想的にDLLを推奨してるようだし。
0260デフォルトの名無しさんNGNG
ストリームからAssemblyをLoadFromできたらいいんだけどねぇ。
0261258NGNG
>>259
ありが�d。
EXEからDLL吐き出す方法を試してみます。
もしかしたら例外拾わなきゃ駄目かなー。今日一日実験。

>>260
画像リソースみたいに実行ファイルも内包参照できれば
何かと利用価値あるんですけどね。
0262255NGNG
>>256
ありがとうございました
何とか解決しそうです
0263デフォルトの名無しさんNGNG
propertyGridのリストで、プロパティ名にカッコなど使えない文字があるので、
なにかよい解決法はありませんか?
たとえば属性で変更できるとか。
0264デフォルトの名無しさんNGNG
no pno
0       0
1  0     ├- 1 
2  1     │  ├ 2 
3  1     │  └ 3
4  3     │    ├ 4
5  3     │    └ 5
6  0     └- 6
7  6       ├ 7
8  6       └ 8

Visual Studio 2003 C# です
TreeView の扱いに関して教えてください。
上記の左のようなデータから,右にあるようにツリーを作成したい
のですが,コードがうまく書けません。
pno は どの no にぶらさがるか,というデータを持っています。
どなたかアドバイスくださいませんでしょうか?
0265デフォルトの名無しさんNGNG
>>264
なにがわからないのかさっぱりわからない。

まるまるコードを教えてほしいの?
0266デフォルトの名無しさんNGNG
著作権法違反ほう助の疑いで逮捕されたWinny開発者の47氏の為にTシャツを作って応援しましょう。
まずは以下の投票所でこれを着て応援したいというデザインを投票してください。
締め切りは5/19日、皆さんの協力よろしくお願いします

投票所
http://f40.aaacafe.ne.jp/~nytshirt/
投票の前にここを読め
http://f40.aaacafe.ne.jp/~nytshirt/readme.html
まずは予選です。良識をもって投票しましょう。

------------------------------------------------------------------------------
0267264 NGNG
>> 265
すみません。どうコーディングすべきかわからないんです。
自分なりに書いてみたんですが,意図したようにツリーがうまく展開されなくて。
まるまるコードを頂けると参考にできてありがたいです…。

0268デフォルトの名無しさんNGNG
>>264
public struct Data
{
  public int No;
  public int PNo;
    
  public Data(int no, int pno)
  {
    No = no;
    PNo = pno;
  }
}

TreeView treeView = new TreeView();      
Hashtable table = new Hashtable();
      
Data[] dataArray = new Data[] {
  new Data(0, -1), new Data(1, 0), new Data(2, 1), new Data(3, 1),
  new Data(4, 3), new Data(5, 3), new Data(6, 0), new Data(7, 6), new Data(8, 6)};
0269デフォルトの名無しさんNGNG
foreach (Data data in dataArray)
{
  TreeNode node = new TreeNode(data.No.ToString());
  table[data.No] = node;

  if (data.PNo == -1)
  {
    treeView.Nodes.Add(node);
  }
  else {
    TreeNode parent = (TreeNode)table[data.PNo];
    parent.Nodes.Add(node);
  }
}
0270デフォルトの名無しさんNGNG
>>267
フォームデザイナでTreeViewのNodesプロパティをセットしろ。
そこから生成されたコードを見ろ。
0271デフォルトの名無しさんNGNG
>>264
treeViewの使い方として間違っているような肝。

もしnoとpnoが常に変化して、その都度treeViewを更新するというなら、
treeViewは使わずに自分でそういうクラスをk作った方がいいよ。
もし最初にnoとpnoからtreeViewを形成して、以後はtreeViewだけで
管理するなら、何も悩まずnodeを追加していけばいいだけだし。

思いつきで書いたけど、リカーシブコールとかどう?
 void treemain()
 {
  ツリー初期化&親ノード作成
  int f = no_MAX;  // =9
  int i = 0;
  treesub(i, f);
 }

 void treesub(int i, int f)
 {
  for(int j=0; j<f; j++){
   if(pno[j] == i){
    子ノード作成
    treesub(j, f);
  }
 }
0272264 NGNG
皆様,ありがとうございます。
今日一日ずっと悩んでいた事が,みなさまのおかけで解決する事が
できました。本当に感謝しています。ありがとうございました。
しかし,返事の速さにびっくりしました。
0273デフォルトの名無しさんNGNG
だってやることないんだもん
0274デフォルトの名無しさんNGNG
仮想リストビューってなくなったの?
0275デフォルトの名無しさんNGNG
Improving .NET Application Performance and Scalability
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenet.asp

チェックリストも付いててかなり良さげ。
0276デフォルトの名無しさんNGNG
>>268なぜにstruct…
0277デフォルトの名無しさんNGNG
>>276
どして?いくない?
0278255NGNG
C言語のFILE構造体を手書きでC#に書き直し
msvcrt.dllのfopen関数を使ってファイルを開こうとしたのですが
どうにもうまくいきません。
fopenで開いた後
FILE*型の引数を持つ、ファイルに出力する関数に渡すと
'System.Runtime.InteropServices.SEHException' のハンドルされていない例外が ConsoleTest.exe で発生しました。
となります

fopenは
[DllImport("msvcrt.dll")]
[return:MarshalAs(UnmanagedType.Struct)]
public static extern FILE fopen([MarshalAs(UnmanagedType.LPStr)]string file,[MarshalAs(UnmanagedType.LPStr)]string mode);
として使ってます。
0279デフォルトの名無しさんNGNG
……なぜC#を使っていてfopenなんだろう?
0280デフォルトの名無しさんNGNG
>>278
fopenの返値は FILE* だから、FILEではなくIntPtrでもいいんでない?
0281デフォルトの名無しさんNGNG
CreateFile()でも驚くけどfopen()はありえないんじゃないか?
移植だとしても、Framework使って作ったほうが後々楽だと思う。
というか(移植だとすればだが)そんな移植になんの意味があるんだろう。
0282デフォルトの名無しさんNGNG
ごめん、C製のDLLを使う時なのか。意図は解った。
0283デフォルトの名無しさんNGNG
[StructLayout(LayoutKind.Sequential)]
public struct SCROLLINFO
{
public int cbSize;
public int fMask;
public int nMin;
public int nMax;
public int nPage;
public int nPos;
public int nTrackPos;
}
[DllImport("user32.dll")]
public static extern int GetScrollInfo(IntPtr hWnd,int n,[MarshalAs(UnmanagedType.Struct)] ref SCROLLINFO lpScrollInfo);

API.GetScrollInfo(hWnd,API.SB_VERT ,ref si);

どうやってもDLLへ渡した構造体に値が入らないんですが、どこが間違ってるんでしょう?
0284デフォルトの名無しさんNGNG
>>283
合ってそうな気もするが・・・。
MarshalAsAttributeが余計とか。
0285デフォルトの名無しさんNGNG
>>283
SCROLLINFOをclassに、
GetScrollInfoの第3引数を SCROLLINFO lpScrollInfo に(属性もrefもつけない)、
でどうよ?
0286デフォルトの名無しさんNGNG
>>283
>この関数を呼び出す前に、SCROLLINFO 構造体の
>cbSize メンバで sizeof(SCROLLINFO) を指定し、
>fMask メンバで、スクロールバーのパラメータのうち取得するべきパラメータを指定してください。
はできてる?

//手元で実験したら構造体・API関数定義部分そのままで取得できたよ。
0287255NGNG
FILE*をIntPtrにしてみたところめでたく成功いたしました!!
>>280 どうもありがとうございます!
ちなみにわざわざこういうことをしたのは>>282のとおり、
C製DLLの関数を呼び出したかっただけです
Frameworkでファイルを作る方法は知っています、
っていうか、最近C#ばっかりでCをやっていなかったので
ポインタやらに久しぶりに面と向かうと、なんとも扱いづらくて困ってしまいました
やっぱり使わないと錆びるもんですね
0288283 NGNG

出来ました。
vbは全然分からんのですが、そこからのAPI使用によく出てきてるのを見つけてそれを参考にしました。

>この関数を呼び出す前に、SCROLLINFO 構造体の
>cbSize メンバで sizeof(SCROLLINFO) を指定し、

この辺の情報みて気づきました。
最初に読んでて知ってたはずなのに、度忘れしてました。

si.cbSize = sizeof(SCROLLINFO);
si.fMask = API.SIF_POS;
API.GetScrollInfo(hWnd,API.SB_VERT,ref si);

ありがとうございました。
0289デフォルトの名無しさんNGNG
StreamReaderでファイルからReadLine使って一行ずつ読み込む
プログラムを書いてるのですが、ロードにものすごい時間がかかります
(3、4秒くらい)

ファイルが2万行あるのでファイルサイズが大きいとは思うのですが
こんなものなのでしょうか?
それとも何か注意する点とかあるんですか?
0290デフォルトの名無しさんNGNG
>>289
そりゃどんなコード書いてるかによるでしょ。
読んだデータを処理する部分が遅いのか、
それともハードスペックの問題なのか。
0291デフォルトの名無しさんNGNG
StreamReader sr;
string buf;

for (int i = 0; (buf = sr.ReadLine()) != nul; i++) {
  /* string配列に格納 */
}

これだけのプログラムです
C++で書くと一瞬なのでスペックの問題ではないと思います
0292デフォルトの名無しさんNGNG
>>291
string使わずに、StringBuilderかArrayList使ってみれ。
0293デフォルトの名無しさんNGNG
>>292
わかりました。これから出かけるので帰ってきたらやってみます。
ありがとうございました。
0294デフォルトの名無しさんNGNG
文字列の動的配列ならSystem.Collections.Specialized.StringCollection。

StreamReader sr = new StreamReader("hoge", Encoding.Default);
StringCollection col = new StringCollection();
string buf;
while ((buf = sr.ReadLine()) != null)
   col.Add(buf);
で18万行ほどを読み込んだら、キャッシュなしで0.8秒、二回目からは0.3秒ほどだったよ?
0295デフォルトの名無しさんNGNG
>>291
あ、よくみたらそりゃ遅くなって当たり前じゃん!!

「(buf = sr.ReadLine()) 」が遅くなる原因じゃね?
C#のstringは内容書き換えるたびに再生成されるから、
何度も書き換えてるうちにどんどん遅くなるよ。

bufだけでもStringBuilderに汁!
読み込むテキストも加工して書き換えるならstring[]はやめるべき。
0296295NGNG
と>>292が申しておりました。
0297デフォルトの名無しさんNGNG
>>295
>  「(buf = sr.ReadLine()) 」が遅くなる原因じゃね?
>  C#のstringは内容書き換えるたびに再生成されるから、
>  何度も書き換えてるうちにどんどん遅くなるよ。

そんなことないよ。
   
>  bufだけでもStringBuilderに汁!

bufをStringBuilderにしちゃ駄目。
意味無いどころかどう実装させるかすらわからん。
0298デフォルトの名無しさんNGNG
文字列丸々入れ替えるだけならstringbuilderよりもstringの方が速いね。
0299デフォルトの名無しさんNGNG
StringBuilder buf=newStringBuilder()

while (((buf.Append(sr.ReadLine()).ToString())!=null)
{
//処理

//最後にbufをクリア

}

こんな感じか?遅そうだが、、
0300デフォルトの名無しさんNGNG
>>299
>  while (((buf.Append(sr.ReadLine()).ToString())!=null)
無理。buf.ToString()がnullにならない。空行と区別がつかなくなっちゃう。

> //最後にbufをクリア
StringBuilderにClearメソッドがない以上newし直すことになるのかな……。
//Removeするよりかはnewし直した方がましだろうし。
0301デフォルトの名無しさんNGNG
二重起動したときに、引数をすでに起動している側に渡す方法はありませんか?

具体的には、再生ソフトにファイルパスを渡したときに、すでに起動されている場合は
そのファイルを再生リストに追加したく思っています。

0302301NGNG
前スレで既出でした。申し訳ない。
0303デフォルトの名無しさんNGNG
>>300
StringBuilderクラス、Lengthプロパティを0に設定すればClearと同じ効用だったような。
0304デフォルトの名無しさんNGNG
>>303
Lengthの解説は
現在の長さ未満の長さを指定した場合は、このインスタンスが指定した長さまでに切り捨てられます。
指定した長さが現在の長さを超える場合は、このインスタンスの文字列値の末尾に空白が埋め込まれます。
指定した長さが現在の容量を超える場合は、 Capacity が指定した長さに設定されます。

とのことなのでClearできそうですね。でも
if((text=sr.ReadLine())!=null)
に問題があれば多くの例で使われることも無いと思うのでこれでいいのかも。
0305デフォルトの名無しさんNGNG
なんか今回の件では使えなくても、後々応用できそうな話だな。メモしとこ。
0306デフォルトの名無しさんNGNG
MCIを使わずにCDトレイのオープンってできますか?
0307デフォルトの名無しさんNGNG
>>306
ボタンをぽちっとな。
0308デフォルトの名無しさんNGNG
>>307
それで開かないからトレイオープンだけのアプリを作ろうとしてるんですが…。
エクスプローラーの右クリックで「取り出し」やっても開かない。

今はCD取り出すためだけにライティングソフト起動してます。
0309デフォルトの名無しさんNGNG
>>308
ものすごい自分専用アプリだな、笑った。
0310デフォルトの名無しさんNGNG
針を差し込んで強制排出できないの?
0311308NGNG
XP起動直後は普通にポチっとなで取り出せますが、
2、3日使いっぱなしだといつの間にか取り出し効かなくなるんですよ。
何かのアプリかサービスが悪さしてるようですが、特定できていません。
不要プロセス全部止めても駄目でした。

ただ、ライティングソフトだと問題なく取り出しできるので、それと同じように
直接Openコマンド発行できればいいなと思いまして・・・。

似たようなアプリ見つけたんですが、NT専用らしくてXPじゃ動きませんでした。
ttp://www.vector.co.jp/soft/winnt/util/se020223.html
0312デフォルトの名無しさんNGNG
CPPで書け。CDMのソースから該当部分だけコピペして完成。
0313デフォルトの名無しさんNGNG
>>312
WMPの取り出しでも出てこないので、winmm系の取り出し方法だと駄目っぽいです。
0314デフォルトの名無しさんNGNG
ライティングソフトが掴んでるのでは?
0315デフォルトの名無しさんNGNG
>>314
ライティングソフトを起動しなくても、いつの間にか
取り出しできなくなってるのでライティングソフトは白です。

ググってみてもMCI使った取出ししか引っかからない… orz
0316デフォルトの名無しさんNGNG
画像プレビューつきファイルオープンダイアログが欲しいのですが、
標準のダイアログボックスにコントロールを追加する方法がわかりません。
良いサンプルなどを知りませんか?
0317デフォルトの名無しさんNGNG
>>291
  /* string配列に格納 */
ここでいったい何をやってたんだ?

あと、盲目的に string は遅いからStringBuilderに変えろってのはやめれ…
0318デフォルトの名無しさんNGNG
>277
別に駄目とはいわんが、使い方から言って普通classにするべきと思われる。
ってか、あえてstructにしている理由が分からない。
0319デフォルトの名無しさんNGNG
mp3プレイヤー作ろうと思うのですが
ファイルの音声フォーマットとか再生時間を読み込むクラスは
BASEクラスライブラリにはないんでしょうか?
エクスプローラーの”表示->列の選択”で
これらの情報はひきだせるので何とかなりそうなんですが
0320デフォルトの名無しさんNGNG
>>319
音声のサポートは.NET Framework次バージョンから。
元々マルチメディアはDirectXで、と言うのが方針だったわけだしねー。
MP3PlayerならManagedDirectXを使えば?
簡単な実装も複雑な実装もどんとこいだよ。
0321318 NGNG
>>別に駄目とはいわんが、使い方から言って普通classにするべきと思われる。
ぎゃあ、↑書いたけど、ちょっとプログラムを読み違えていた気がする…
0322デフォルトの名無しさんNGNG
>>321
大丈夫です、勘違いしてる馬鹿はあなただけですので。
0323デフォルトの名無しさんNGNG
.NETコロコロと仕様変更で思い切ったソフトが作れない
0324デフォルトの名無しさんNGNG
思い切ったソフトつくってからいえやヴォケ
0325デフォルトの名無しさんNGNG
仕様変更といえば

.NETのv1.2
C# v2

ってそれぞれいつ製品版がでるの?
.NETv1.2はロングホーンで
C# v2はいつ?
0326デフォルトの名無しさんNGNG
>>325
>  .NETv1.2はロングホーンで
>  C# v2はいつ?
C#の次バージョンは.NET Frameworkの次バージョンと同時。
ジェネリクスをフレームワークがサポートできるようになる。

//.NETの仕様変更で困るようなソフトってそう作らないような気がするけど。
//当面は別に旧バージョンでも良いわけだし。
0327デフォルトの名無しさんNGNG
1.0→1.1体験しなかった?
0328デフォルトの名無しさんNGNG
>>327
去年の夏からプログラム始めたもので。
0329デフォルトの名無しさんNGNG
>>327
>  1.0→1.1体験しなかった?
.config書くから。
0330デフォルトの名無しさんNGNG
仕様変更って、まさか過去に作ったやつはリビルドしなきゃ動かなくなるの?
そういうのはPHPだけにしてくれ・・・。
0331デフォルトの名無しさんNGNG
>>330
リビルドしなくても動く。つられんな。
0332デフォルトの名無しさんNGNG
1.0でビルドしたDLLを1.1のEXEで使えるの?
たとえば1.0のenum引数をセットするのに1.1の同名enumは渡せるんだろうかと。
0333デフォルトの名無しさんNGNG
FolderBrowserDialogってv1.1しかつかえないらしいじゃん
v1.0って相当糞だったんだな
0334デフォルトの名無しさんNGNG
FolderBrowserDialogぐらい自分で作れって事じゃね?(w
CompactFrameworkのダイアログなんてMyDocumentにしかアクセスできないし
あってないようなものだぞ。もちろんFolderBrowserDialogなんて存在しない。
0335316NGNG
ダイアログの話題から関連で話が戻ってこないかなぁと期待
0336デフォルトの名無しさんNGNG
コントロール関連のサンプルなら、
まずcodeprojectへ逝くのがいいと思うよ。
0337デフォルトの名無しさんNGNG
つまり自分で作れと言うことだな。
0338デフォルトの名無しさんNGNG
>>335
javaのswingのにアクセサリみたいにできないかってこと?
0339デフォルトの名無しさんNGNG
コモンダイアログでファイル開くときに、そのダイアログの下半分などに、
私は画像やテキストのプレビューをつけたいと思っていますが、
他にも、テキストエディタで文字コードを指定しているものもあるし、
保存時は拡張子だけでなく保存形式もコンボボックスで選ぶアプリも存在します。
それで、codeprojectあたりも見たのですが、
そもそもコモンダイアログをいじったサンプルがないといった現状です。
0340デフォルトの名無しさんNGNG
>>339
>そもそもコモンダイアログをいじったサンプルがないといった現状です。
デコンパイラでOpenFileDialog見てみるとか。
0341デフォルトの名無しさんNGNG
>>339
コモンダイアログを弄ったサンプル。
ロシア語だが。
ttp://www.gotdotnet.ru/LearnDotNet/NETFramework/578.aspx
0342デフォルトの名無しさんNGNG
C#しかやったことがないんだろうなぁ
0343デフォルトの名無しさんNGNG
クラスの状態をファイル化しておきたいんだけど、
SoapFormatterとXmlSerializer使うのとどっちが一般的なんだろう。

soapでできるファイルはごちゃごちゃしてるし、
アプリ間で受け渡しする訳じゃなきゃ、XmlSerialのほがいいのかな。
0344デフォルトの名無しさんNGNG
>>343
シリアライズならむしろBinaryFormatterじゃない?
XMLにこだわるならXmlSerializerだろうけど。
0345デフォルトの名無しさんNGNG
>>344
そか。
テキストファイルを手で直接編集できる最終手段を用意しておきたいし、
XMLでいくよ。
さんくす
0346デフォルトの名無しさんNGNG
次期開発でC#かDelphiのどちらにするか検討中です。
C#はまだ買ってないのですがいろいろ調べたんですけど
入力項目移動をタブじゃなくてエンターでしたいのですけど
2ch関連スレでもググっても見つからないのです。
もしかしてC#はエンターで項目移動は無理なのでしょうか?
Delphiだと、
SelectNext(ActiveControl,true,true);
ってするといけるんですが・・・
0347デフォルトの名無しさんNGNG
>>346
できる
GetNextControl
0348318NGNG
>>345
XML シリアライズでクラスの状態を保存する場合は、
パブリックなフィールドとプロパティしか保存できないので
注意がいるよん。
0349デフォルトの名無しさんNGNG
.NET Framework SDKを入れてC♯の練習に
タブブラウザでも作ってみようと思ったのですが、
IEのコンポーネントを利用する方法がよく分かりません。
VisualStudio上から参照設定をするという説明はよく書かれているのですが、
それと同じことをSDKで行う手順はないのでしょうか?
0350デフォルトの名無しさんNGNG
>>349
Windows フォームで ActiveX コントロールをホストする
http://ja.gotdotnet.com/quickstart/winforms/doc/WinFormsAxHosting.aspx

これをしたら後は同じだから、下の19回から見てがんば。

GotDotNet Japan Student コラム 「はじめの一歩」
http://www.gotdotnet.com/japan/student/column/firststep/

0351デフォルトの名無しさんNGNG
先生!日本語ファイル(sjis:crlf sjis:LF)から読み込んだ文字列が
フォームのtxtboxに文字化けしてかけません!

using (StreamReader sr = new StreamReader(file))
{
String line;
uint i=0;
while ((line = sr.ReadLine()) != null)
{
//txtbox1.Text= txtbox1.Text+line.TrimEnd(null);
// txtbox1.AppendText(line+"\r\n");
txtbox1.Text= txtbox1.Text+line;
}
}
0352デフォルトの名無しさんNGNG
System.IO.StreamReader(@"hoge.txt", System.Text.Encoding.GetEncoding(932));

"932"のところを希望の文字コードに汁。
0353デフォルトの名無しさんNGNG
>>351
StreamReaderのデフォがUTF-8だから。
0354デフォルトの名無しさんNGNG
システムの言語が日本語ならEncoding.DefaultでShift_jisになったり
0355351NGNG
>>352
>>353
>>354

サンクスでつ
0356デフォルトの名無しさんNGNG
JapaneseCalendarのDefaultEraが 0 返すのってバグ??
0357デフォルトの名無しさんNGNG
>347
> できる
> GetNextControl
おお! 出来ますか!
情報ありがとうございます!
0358349NGNG
>>350
こういう説明が欲しかったんですよ。これで何とかなりそうです。
頑張って2chブラウザでも作り上げます。
0359351NGNG
2chブラウザって結構複雑だからな
まぁC#でも無理じゃないが
-----------------------------
top.htmlをパース
subject.txt一覧をツリー表示
ツリーをリンク付け
3ペイン
subjext.txtのダウンロード->リンクづけ
datのダウンロード
gzip展開
datのパース(htmlのパース)
差分所得処理
履歴の作成
ログ整理
書き込み->cokie処理->書き込みログ
●の対応か
ID,レスのポップアップ,あぼーん機能
検索
スレしぼりこみ
dat落ち
色設定
proxy
タブ
HEADポップアップ
画像処理
-------------------
こんなもんか

C♯製のtwintail2は
軽いかわりにメモリをめちゃめちゃ食う。300Mぐらい消費した。
あれは画像を一気にダウンロードしたからかもしれんが
0360デフォルトの名無しさんNGNG
ちょっと質問でつ
ListViewで、AllowColumnReorderをtrueにして列の順番を入れ替えれるようにした時に、
ColumnHeaderCollectionからColumnHeaderを表示されてる並び順で取る方法あるんすかね?
VB6ではPositionつープロパティがあって、表示位置番号が取れるとか聞いたんだけど、
.NETでそんなプロパティなくて・・・

何かユーザが列情報を記憶させてくれとか言い出しちゃって。。。(´・ω・`)

0361デフォルトの名無しさんNGNG
>>359
twintailとかget2chで●対応できてないのは何か理由があったような、、
どっちでも使えるDLLをC#のみで作ったら神かも
0362デフォルトの名無しさんNGNG
>>360
P/Invokeを使うしかないと思われ。

  const int LVM_FIRST = 0x1000;
  const int LVM_GETCOLUMNORDERARRAY = LVM_FIRST + 59;

  [DllImport("user32")]
  static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int[] lParam);

取り出すときはこんな感じ。

  int count = listView1.Items.Count;
  int[] pos = new int[count];
  SendMessage(listView1.Handle, LVM_GETCOLUMNORDERARRAY, count, pos);

で、配列 pos に列の表示位置が入ってるはず。
0363362NGNG
間違えた。

× int count = listView1.Items.Count;
○ int count = listView1.Columns.Count;
0364デフォルトの名無しさんNGNG
C#のクリスタルレポートでこんなこと可能ですか?
例えば領収証への印刷なんかで
印刷時:普通に印刷
プレビュー:領収証の画像イメージと印刷を合成して見る
0365デフォルトの名無しさんNGNG
皆さん上位・下位ワードの抽出ってどうやってますか?
0366デフォルトの名無しさんNGNG
>>365
BitConverter使うとか?
0367デフォルトの名無しさんNGNG
>>365
textBox1〜3とbutton1を配置して、

private void button1_Click(object sender, System.EventArgs e) {
 int d = Convert.ToInt32(textBox1.Text, 16);
 int x = d & 65535;
 int y = d / 65536;
 textBox2.Text = Convert.ToString(x, 16);
 textBox3.Text = Convert.ToString(y, 16);
}

質問の読み違いだったらスマン。
0368デフォルトの名無しさんNGNG
ビットシフトが一番直感的だな。
0369デフォルトの名無しさんNGNG
>>368はこんな感じ?

d = 0x5555aaaa;
x = d >> 16;
y = d & 0xffff;
0370デフォルトの名無しさんNGNG
パフォーマンスの高いプログラムの書き方を勉強したいんだが、
参考になるサイトや書籍は何か無い?

JAVAやPerlならたくさん引っかかるんだがなぁ…
0371デフォルトの名無しさんNGNG
>>370
厳密な少数演算が必要でなければ、float使わずにintの百倍や千倍で済ませるとか。
x = 123.45; → int x = 12345;

演算も式と結果がパターン化されているなら、その都度演算せずに配列で持ってしまうとか。

アセンブラもかじっておいた方が役に立つとは思う。
例えばさっきのワード分離なんかも、もし関数が用意されてたとしてもそれを使うよりは
単純にANDとビットシフトを使った方が速いしコードも短いんじゃないか?という推測はできる。


…なようなことは、ゲームプログラム系のサイトでよく見かける。
ビジュアルスタジオの「+??のオーバーロード」なんてのも気にしてるといいかも。
オーバーロードが増えればそれだけたらい回しが増えて速度に影響出る。
0372デフォルトの名無しさんNGNG
>>370
>>275
0373デフォルトの名無しさんNGNG
>>370
.NET Framework Home: Improving .NET Application Performance and Scalability
http://msdn.microsoft.com/netframework/default.aspx?pull=/library/en-us/dnpag/html/scalenet.asp
.NET Framework のランタイム テクノロジに関するパフォーマンス上の注意事項
http://www.microsoft.com/japan/msdn/net/general/dotnetperftechs.asp
.NET アプリケーションのパフォーマンス関連のヒントとトリック
http://www.microsoft.com/japan/msdn/net/general/dotnetperftips.asp
Visual C# Home: Calling Code Dynamically (Working with C#)
http://msdn.microsoft.com/vcsharp/default.aspx?pull=/library/en-us/dncscol/html/csharp02172004.asp
Performance Quiz #1 (of a series?)
http://blogs.msdn.com/ricom/archive/2004/03/12/88715.aspx
http://blogs.msdn.com/ricom/category/2050.aspx
The Code Project - Iteration Performance in .NET - C# Programming
http://www.codeproject.com/csharp/iter_perf.asp
0374351NGNG
>>370
CLIの仕様書読んで
仮想アセンブラでゴリゴリ書いとけ
0375デフォルトの名無しさんNGNG
>>371
オーバーロードはコンパイル時に解決されるんだけど…
0376デフォルトの名無しさんNGNG
>>375
JITでも差はないものなの?
0377デフォルトの名無しさんNGNG
メソッド呼び出しがどの程度インライン化されるか、かな?
0378デフォルトの名無しさんNGNG
オススメのリファレンス本ってありますか?
初心者で凄く困ってるんです。
ちなみに、チェックリストボックスの項目の
すべてのチェックを一度(1行の文で)に
消す事って出来ますか?
リストボックスの選択は一度に消せたので
同じように、チェックリストボックスでも
出来るかなって探してるんですが・・・

ご存知の方、教えてください。お願い致します。
0379デフォルトの名無しさんNGNG
>>378
一行で消すとかそういう本質的でないことにこだわってると
なかなかプログラミング上達しないぞ。
0380デフォルトの名無しさんNGNG
本や入門サイトに関しては、どれが合ってるはひとそれぞれだからな。
手当たり次第に見て、自分のレベルと知りたい内容に合致したのを選ぶしかない。
0381デフォルトの名無しさんNGNG
if節などで、&と&&の違いが分かりません。
まったく同じように動作して見えますが?
0382デフォルトの名無しさんNGNG
ならそのまま使ってろ
0383デフォルトの名無しさんNGNG
>>381
&はビット演算子、&&は論理演算子
boolに対して使う限りは同じ結果が得られるように見える。
論理演算子は短絡的評価が起きる。
0384デフォルトの名無しさんNGNG
なんでbooleanにビット演算子が使えるんだろう…
0385デフォルトの名無しさんNGNG
>>384
Cからの伝統。
0386デフォルトの名無しさんNGNG
というか、ヘルプで演算子のオーバーロードの項目見てみ。
&& は直接オーバーロードすることは出来ないけど、
true 演算子と & をオーバーロードすることで && も使用可能。
a && b は !a ? a : (a & b)
a || b は a ? a : (a | b)
という扱い。
0387378NGNG
>>379

返答どうもー。
そうっすね。視野広げて頑張りまつ。

>>380
いろいろみてみまつ。ありが�d。
0388378NGNG
ageてしまった・・・スマソ・・・。
0389デフォルトの名無しさんNGNG
>>385
そういや、Javaもこの伝統を引き継いでたな。
こういうのは引き継がなくていいと思うのだが。
0390デフォルトの名無しさんNGNG
アプリ起動時に作ったビットマップを、アプリ終了まで使い回すので、
フォームのデストラクタで解放するのが妥当だと思いますが、
ここでアプリは終了なのでビットマップ解放するコードを削除していいのかな?
それともアプリ終了後もリソース持ちっぱなしですか?
0391デフォルトの名無しさんNGNG
boolは真なら1、偽なら0っていう表現を継承してるんだろ。
0392デフォルトの名無しさんNGNG
>>391
>  boolは真なら1、偽なら0っていう表現を継承してるんだろ。
真と偽をboolという型にして、while(1){}とかの表現を禁止した以上、
もう false=0 true!=0 という概念とその派生部分はいらんのではないか、と。
0393デフォルトの名無しさんNGNG
テキストボックスとかの1行サイズって取得する方法ってありますか?
例えばカレットのある行に線を引こうと思ったとき、GetCaretでカレットの位置が分かっても
文のちょうど下の位置がわからない。と。

何か知る術ってないでしょうか?
0394デフォルトの名無しさんNGNG
すいません、文字列から数値を取り出したいんですがどうすればいいんでしょうか?

string array = "01214";
char moji = array[2]; 

Console.WriteLine(moji);

とかで取り出した、文字"2"を数値に変換したいのです。
int moji = (int)array[2];とかは無理?
0395デフォルトの名無しさんNGNG
intの後にドット(.)を撃ってみると幸せになれるかも。
0396デフォルトの名無しさんNGNG
>>393
TextBox.Font.Heightが一行の行数になる

……んだけど。
.NETFrameworkもキャレットにもうちょっと気を遣って欲しかったなぁ。
0397デフォルトの名無しさんNGNG
>396
一行の行数ってなんだよう。
一行の高さ、ね。
0398デフォルトの名無しさんNGNG
>>397
ありがとう、助かりました。
0399394NGNG
ありがとうございます。

char型はint.Parseで変換できないようなので、
int number = int.Parse("0" + array[2])

無理やり文字列にしてから、変換させました。
0400デフォルトの名無しさんNGNG
いや、Int32.Parse('1'.ToString())が自然なんだけど。
0401デフォルトの名無しさんNGNG
>>394
string s = "12345";
int d = int.Parse(s.Substring(2,1));
0402デフォルトの名無しさんNGNG
C#.NETで、1つのプロジェクトに、2つのファイルがあって、それぞれ1つずつのMain()メソッドを持っています。
この状況で、エントリポイントを指定するにはどうしたらいいですか?
コマンドラインから指定する方法はわかるんですが、VS.NET上から指定する方法がわかりません。
0403デフォルトの名無しさんNGNG
>>402
何がしたいのかわからんけど、スタートアップオブジェクトとかは?
0404デフォルトの名無しさんNGNG
>>403
プロジェクトのプロパティな。
0405デフォルトの名無しさんNGNG
>>403-404
出来ました!!ありがとうございます!!
0406デフォルトの名無しさんNGNG
PDFLib で PDF が生成できるように、
Word や Excel のファイルを生成することができる
ライブラリ等はないでしょうか?
# Perl/PHP なら Excel のみですが
# Spreadsheet::WriteExcel がありましたが。
0407デフォルトの名無しさんNGNG
COM呼び出しつかうんじゃないの
Perlとかはそうだったよ
0408デフォルトの名無しさんNGNG
新しくクラスを作る場合「public void 〜」や「praivate string 〜」の使い分けがうまくいかないわけで、エラー起きまくりです。
voidは返すものがないから代入、privateに関数を作った場合はreturnで返すって考えであってますよね??
0409デフォルトの名無しさんNGNG
ぜんぜnちがう
0410デフォルトの名無しさんNGNG
>>408
間違ってる。
0411デフォルトの名無しさんNGNG
>>408
publicに対応するものがprivate、voidに対応するものがstring。
だからprivate void 〜もあればpublic string 〜もあり得る。
0412デフォルトの名無しさんNGNG
>>406
Visual Studio Tools for Office
http://www.microsoft.com/japan/msdn/officedev/vsto2003/
0413デフォルトの名無しさんNGNG
OpentypeフォントのUnicode外の文字を表示したいのですが
方法がわかりません。
Unicode外の文字はグリフIDで表すことができるのですが、
グリフIDをあたえて、文字を表示することはできるのでしょうか?
0414デフォルトの名無しさんNGNG
配列で要素を挿入したり削除したりすることはできますか?
id[0]=0;
id[1]=1;
 ↓
id[0]=0;
id[1]=3;
id[2]=1;  みたいな感じに
0415デフォルトの名無しさんNGNG
>>414
可変配列にはArrayListを。

既存の配列でそういう作業が必要な場合は、
新しい配列を作ってforで代入するか、
ArrayListのArrayList(ICollection)コンストラクタ、Insertメソッド、ToArrayメソッドを使うか。
0416デフォルトの名無しさんNGNG
System.Messaging名前空間を使いたいんですけど、
そんなものねえよ、と言われます。
System以下にMで始まるものすらない……。
C# Standardにはないとか? 一応、フルインストールしました。
0417デフォルトの名無しさんNGNG
>>416
System.Messaging.dllを参照に追加。

結構デフォルトでは参照されないDLL多いよ。
0418デフォルトの名無しさんNGNG
>>408
クラス以前に関数の基礎を勉強汁。

他のクラスに見せたくないのはpraivate。
見せてもいいのはpublic。

値を返さないのはvoid。
返すのはその型に合わせてintやstringやboolなど。


>>416
MSの解説をよく嫁。

「System.Messaging.DLL へのプロジェクト参照が必要なことに
 注意してください。 Visual Studio .NET でこの参照を追加するには、
 [参照] を右クリックして、 [参照の追加] をクリックします。 」
0419416NGNG
>>417-418
参照に追加が必要だったとは。知りませんでした。
ありがとうございます。
0420デフォルトの名無しさんNGNG
>>376
JITもコンパイルじゃん。
一発目だけ。
0421406NGNG
>>407,412
ありがとうございます。調べてみます。
0422デフォルトの名無しさんNGNG
>>420
JIT時に解決されるとでも?
0423デフォルトの名無しさんNGNG
>>422
オーバーロードとオーバーライドを混同してない?
コンパイル時にオーバーロードを解決できない理由が思いつかないんだけど。
実際は知らないけど、JIT以前に、ILになった時点で解決されてそうな気がする。
0424422NGNG
>>423
や、同じことを言うつもりで書いたんだけど、
>>420が「書いた」意味をよく分かってないだけなきがしてきた。
0425デフォルトの名無しさんNGNG
http://www.microsoft.com/downloads/details.aspx?FamilyId=9B3A2CA6-3647-4070-9F41-A333C6B9181D&displaylang=en
ここから.NET Framework SDK Version 1.1をダウンロードしてインストールしたんですが、csc.exeが入っていません。
名前変更でもあったのでしょうか?
0426デフォルトの名無しさんNGNG
>>425
まずC:\WINDOWS\Microsoft.NET\Framework\v1.1.4322ってフォルダは存在する?
存在したら中身はどうなってる?
0427デフォルトの名無しさんNGNG
>>426さん
ありました。Program Filesのほうばかり見ていてこっちにあるとは思いませんでした。
パス通したらうまくいきました。どうもありがとうございます。
0428デフォルトの名無しさんNGNG
PictureBoxのGraphicsオブジェクトを使ってPictureBoxに描画し、
描画したイメージを保存するためにPictureBoxのImageプロパティのSaveメソッドを呼び出すと、
エラーが出てしまいます
どうやって保存すればいいんでしょうか?
0429デフォルトの名無しさんNGNG
ToolBarの背景色ってどうやってかえればいいですか?
ToolBar.BackColorを設定しても変わりません・・・。
0430デフォルトの名無しさんNGNG
>>426
しっかし、なんでこんなフォルダに入っているんだろうね。
0431デフォルトの名無しさんNGNG
キーボードの矢印キーってどうやって差し止めるんですか?
KeyPressは文字系以外は駄目だし、他のKey系イベントってキャンセル行為できませんよね?

0432デフォルトの名無しさんNGNG
裁判所に差し押さえを申し立てれば何とかなるかと…
0433375,420NGNG
>>424
オレがなに?
0434デフォルトの名無しさんNGNG
>>430
再頒布パッケージにも csc.exe が入っているからだと思われ。
0435424NGNG
>>433
>JITもコンパイルじゃん。
>一発目だけ。
ごめん、これ書いた意味というか理由が良く分からんかったんだ…
0436デフォルトの名無しさんNGNG
HTMLで以下のように書かれて得られるページのソースを取得する方法はありますか?

<form action="http://www.jra.go.jp/JRADB/accessS" method="POST" target="_blank">
<input type="HIDDEN" name="CNAME" value="W01PS_D3/xW01">
<input type="HIDDEN" name="xW01" value="052004030211">
<input type="SUBMIT" value="結果">
</form>
0437デフォルトの名無しさんNGNG
>>428
使い方間違ってるんじゃないの?
Image img1 = pictureBox1.Image;
img1.Save(@"hoge.png" ,System.Drawing.Imaging.ImageFormat.Png);

>>429
@IT会議室で返事もらえなかったのか。

>>431
何をしてるときに止めたいのかがわからんぞ。

>>436
POSTでデータ発行したいのならまずはWebの仕組みから勉強しろ。
ググれば簡単に見つかる。つか、そういうことに使うな。糞が。
使うやつは便利だろうが、相手の鯖にしてみりゃ迷惑なだけだ。
0438デフォルトの名無しさんNGNG
グローバル変数はどこに書けばいいんですか?
0439デフォルトの名無しさんNGNG
どこにでも。
0440デフォルトの名無しさんNGNG
どこにかいてもメンバなんですが
0441デフォルトの名無しさんNGNG
ホンモノな貴方にお勧め
ttp://www.atmarkit.co.jp/fdotnet/csharp_abc2/index/index.html
ttp://www-ise2.ise.eng.osaka-u.ac.jp/~iwanaga/csharp/index.html#oop
ttp://black.sakura.ne.jp/~third/programming/cs/cs.html
0442デフォルトの名無しさんNGNG
初心者はウザイですよね。
しかしあまり目次的なところにリンクされても、初心者には探せません。
だからこそウザイですよね。
ですからどうぞ放置してください。
ウザイと思わない方、どうやったらいいか教えてください。
0443デフォルトの名無しさんNGNG
>>442は偽物です
0444デフォルトの名無しさんNGNG
別に初心者だからうざいとか言うことはないが、
438のような質問をする人はやはり一からC#的オブジェクト指向を勉強すべきだとは思うな。
0445デフォルトの名無しさんNGNG
GDIを使って画像サイズを変更して、PictureBoxに表示するのを作ったんですが、
その表示されている画像を保存しようとすると、
もとの画像サイズに戻されて保存されてしまうのですが、
どうすればいいですか?
0446デフォルトの名無しさんNGNG
445が提示する少ない情報から考えると、こんな感じ。

案1.PictureBoxに任意のサイズに変換した画像を展開しておく。
案2.保存する時に、PictureBoxにある画像から任意のサイズに変換する。
0447デフォルトの名無しさんNGNG
>>445
ググればすぐ見つかるだろ?
検索ワードが絞り込めなくて探しにくい内容ならともかく、
こんな1分もかからずに見つけられることを聞くな。

これくらい探す力がないなら、プログラムやる前に
検索のノウハウを先に勉強した方がいいぞ。
ここはテクニカルな相談をするところであって、
検索代行屋じゃないんだから。

「C# 画像 拡大 縮小 保存」
0448デフォルトの名無しさんNGNG
TABキーの押下だけがどうやっても取得できません。
KeyDown + KeyPreview、IsInputKey、ProcessKeyPreviewと試して、
他のキーはフォーム上でもコントロール上でも問題なく
イベントハンドラが呼ばれますが、TABだけ無反応。
TabIndexやTabStopの値は関係ありませんよね。

MSDNによると、KeyDownを文字以外のキーに反応させるには、
各コントロールにIsInputKeyをオーバーライドする必要があるとのことですが、
できないものもあります。
というか、TAB以外の非文字キーはIsInputKeyなしで動作するんですが。
0449ェ口ィYNGNG
PNG形式の画像ファイルを作成したいのですが、
Bitmap.Save(...)で画像を保存すると、
圧縮率が低いような気がします。

簡単に圧縮率を上げる方法があったら
知りたいのですが。
あるいは、独自にpngの圧縮ライブラリを
拾ってくるしかないのでしょうか。
0450デフォルトの名無しさんNGNG
>>449
試してないけどSystem.Drawing.Imaging.EncoderParameterのQualityいじってもダメかい?
0451デフォルトの名無しさんNGNG
>>450
> 試してないけどSystem.Drawing.Imaging.EncoderParameterのQualityいじってもダメかい?

このクラスの対象はjpeg/tiffのみだったはず。
0452デフォルトの名無しさんNGNG
初心者なんですが、モデルとビュー(&コントロール)を分けて作るとするじゃないですか?
で、今のとこモデルにアクセスするためのメインモデルみたいなのを作って基本的にそれ経由で他のモデルとアクセスしてるんですが
これってどうなんでしょう?個々のクラスがアクセスする個々のモデルのインスタンスを持たせてした方がいいんでしょうか?
GUI関係の本とか探してもコントロールの使い方ばっかりで、オブジェクト指向の本は問題領域に関する事ばっかりでGUIと絡めてる本が見つからなくて。
JAVAの本とかサイトでもいいんですが、この辺りのテクニックについてのサイトとか合ったら教えて欲しいです。
う〜、教えて君ですがよろしくです。
0453デフォルトの名無しさんNGNG
> 基本的にそれ経由で

保守管理を考えると結局のとこそこに落ち着くと思う
ハンドルでもIDでもいいけど結局「それ経由」ってことは同じ
(ハンドルやIDは生存・有効期間があいまいになりやすいから注意な)

モデル内の生ポインタを渡すのは、ほとんどの場合でイケてない

デザパタオタクが絡んできたら
プロクシでファサードなパターンですよとか言っとけばOK

よっぽど単純な構成ならまた話は別だけど、
だったら悩むこともないよな。

> この辺りのテクニックについてのサイト

俺も知らん。
助言させていただくとすれば、MVCはGUIアプリのためだけにあるんじゃないよ、
ってことぐらいかなあ。
0454デフォルトの名無しさんNGNG
>>453
ふむふむ・・・まずハンドルやIDが今一分かってないけどなるほど。
モデル内の生ポインタ(C#なら参照の事だよね?)なんだけど、たとえばあるクラスのコレクションがあったとして
それをメインモデル(ファサードみたいなものか)が持ってるとして、それのデータを使ってGUIのリストに出すとかする時は
参照を渡してGUIの方で中身を取得するよりもメインモデルからインデックスでコレクションの要素を取れるメソッドを使って取ったほうがいいって事かな?
それかコピーしてコレクションを返すとかかな・・・
なんにしろ、オブジェクト指向って最初は投げ出したけど少し分かってきたらかなり面白いね〜
俺も人の質問に答えれるよう色々と精進しよっと!
0455デフォルトの名無しさんNGNG
HttpWebRequestを使ってファイルの取得を行おうとしているのですが、
Accept-Encodingのヘッダを追加してリクエストを送ろうとしても
Accept-Encodingだけ抜け落ちます。
If-None-Matchなどは全く同じように追加しても問題なく送信されています。
Accept-Encodingを送るにはどうすりゃいいのでしょうか?

こんな感じ。
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://pc5.2ch.net/tech/subject.txt");
req.Headers.Add("Accept-Encoding", "gzip");
HttpWebResponse res = (HttpWebResponse)req.GetResponse();

送信する直前にHeadersの中身を確認してもAccept-Encoding:gzipは存在します。
でも、実際のリクエストのヘッダには無いのです。

無理ならHttpWebRequestを窓から投げ捨ててSocketで書き直します…
0456デフォルトの名無しさんNGNG
>>455
手元でやったらちゃんと有効だったよ?
0457454NGNG
>>456
Outpostがヘッダを削ってました…
これで先に進めそうです。
0458457NGNG
間違った、455でした。
0459デフォルトの名無しさんNGNG
勝手にresxファイルを作られて、ファイルサイズが増えて困ってます。
特にリソースは使ってないので、作らせないようにするにはどうしますか?
0460デフォルトの名無しさんNGNG
>>459
普通は作られない。
作らせるようなことしてるだけじゃないの?
0461デフォルトの名無しさんNGNG
VSですが、System.Windows.Formsのクラスを継承すると勝手に作られます。
フォームなどはコンポーネントを配置したりプロパティをいじるたびにどんどん肥大します。
cscでコンパイルした場合と比べたファイルサイズが大きくなります。
かといって削除するとビルド出来なくなります。
0462デフォルトの名無しさんNGNG
>>461
ならcscでコンパイルすれば?

ちなみにresxファイルは問答無用でリソースとして追加って訳じゃないよ。
下はresxファイル2つ、合計約15kほどのを含むプロジェクトで試した結果だ。
cscでresx含めずコンパイル>32k
VSでビルド >36k
cscで2つのresxを/resしてコンパイル>48k

大した増加でもあるまい。

//この増加をどうこう言うのなら.NET Frameworkに向いてないと思う。
0463デフォルトの名無しさんNGNG
C# 2.0 Specification (May 2004) ※doc
http://download.microsoft.com/download/8/1/6/81682478-4018-48fe-9e5e-f87a44af3db9/SpecificationVer2.doc
0464デフォルトの名無しさんNGNG
>>463
なにが変わったん?
0465デフォルトの名無しさんNGNG
>>464
Nullable types
Property accessor accessibility 他細々
0466デフォルトの名無しさんNGNG
WSE 2.0も出たよ。
http://www.microsoft.com/downloads/details.aspx?FamilyId=FC5F06C5-821F-41D3-A4FE-6C7B56423841&displaylang=en
0467デフォルトの名無しさんNGNG
WSE絡みでこんなのも。

BizTalk Server 2004 WSE Adapter Technology Preview
ttp://blogs.msdn.com/scottwoo/archive/2004/05/24/140500.aspx
0468デフォルトの名無しさんNGNG
>>465
さすがにこなれてるだけあって、Javaのように大幅には変わらんな。
0469デフォルトの名無しさんNGNG
Nullable Typesって何のことかと思ったら int? n = null; ってやつか。
0470459 461NGNG
つまり勝手に作らせないという解決方法はない、または知らないということですよね。
2005期待して待つことにします。
0471デフォルトの名無しさんNGNG
>>470
SDKのみでやってれば勝手に作られるなんてことないよ。
お勧め。
0472デフォルトの名無しさんNGNG
>>459-462
単にLocalizableプロパティがTrueになってるだけのような気がする。
0473デフォルトの名無しさんNGNG
逆にcscからresx指定してツールバーにアイコン読ませるのに四苦八苦してるが未だできない。
0474264 NGNG
条件付きコンパイル定数で TRACE が付いていると,
実行時のレスポンスに影響って出るのでしょうか?

Visual Studio 2.3 の Relese 構成でも TRACE は付いているのですが
これは外したほうが動作上のメリットは大きいですか?
0475デフォルトの名無しさんNGNG
>>474
もう少し脳みそ使おうよ。
首の上にあるのは、知識を詰め込むだけの入れ物か?

TRACEが何をやっているのかを考えれば、おのずと答えは見えてくるだろうに。
0476474NGNG
>>475
TRACE 定数を定義しないと, Trace クラスのメソッドはコンパイルされない
って事だと思うのですが,やはり TRACE がないほうがレスポンスは
あがるのでしょうか? Trace クラスは使用していないのですが.

おのずと見えてこねぇー,うわぁん.orz
0477デフォルトの名無しさんNGNG
最近、「俺は知ってるが何か?」的なレス多いね。
ストレス?
0478デフォルトの名無しさんNGNG
>>476
まぁ>>477みたいに言われてるのにまだ続けるのもなんなんだけどさ。

・Traceクラスは使用していない
・TRACE定数を定義しないとTraceクラスのメソッドはコンパイルされない

の二点が分かっていて、

・TRACE定数の定義の有無により動作上の違いが出るかどうか

は、さすがに明らかだと思うんだが…
0479デフォルトの名無しさんNGNG
Nullable Types略して「ぬるぷ」。
0480デフォルトの名無しさんNGNG
やっぱりわざわざ質問スレに答えに来る人ってそういう
0481デフォルトの名無しさんNGNG
>>473
VS.NETやC#Builder使えば簡単じゃないか?
0482デフォルトの名無しさんNGNG
>>478
違いが出るの?
0483デフォルトの名無しさんNGNG
>482
そこまで心配ならなぜバイナリを解析しない? まだMSILの段階なんだからなんとかなるだろ。
漏れはマンドクセからやらんが。
0484デフォルトの名無しさんNGNG
自分でベンチマークしてみれ。
もう、それしか解決方法は無い。質問者を満足させるには。
0485デフォルトの名無しさんNGNG
、NET frameworkが提供している中で
一番高分解能なタイマを教えてください
0486デフォルトの名無しさんNGNG
>>485
QueryPerformanceCounter かな。
http://www.microsoft.com/japan/msdn/mobility/prodtechinfo/devtools/netcf/FAQ/default.asp
0487デフォルトの名無しさんNGNG
>>486
>  >>485
>  QueryPerformanceCounter かな。
>  ttp://www.microsoft.com/japan/msdn/mobility/prodtechinfo/devtools/netcf/FAQ/default.asp

問題は485が「.NET Frameworkが提供している中で」と限定したことだな。
0488デフォルトの名無しさんNGNG
>>483
心配なんかしてないでしょ。出るか出ないか聞いてるだけで。ぐだぐだ引っ張るようなことじゃないと思うけど。
0489デフォルトの名無しさんNGNG
そうだな。ぐだぐだ引っ張ることじゃねぇな。こんなところで訊くような事でもないが。

・Traceクラスを使用している場合
 -> TRACE定数の有無により動作上の差が出る可能性がある
・Traceクラスを使用していない場合
 -> TRACE定数の有無に関わらず動作上の差は発生しない

これでいいか?
0490デフォルトの名無しさんNGNG
ファイル名を変更する事って出来ませんか?
0491デフォルトの名無しさんNGNG
>>490
File.Move, Directory.Move, FileInfo.MoveTo, DirectoryInfo.MoveToの各メソッドを
移動先ファイル・ディレクトリ名をPath.GetDirectoryNameで得られる部分を同じにして実行。
0492デフォルトの名無しさんNGNG
おおう
Thxっス
0493デフォルトの名無しさんNGNG
他人に認められたくて必死な様が共感できると思った
0494デフォルトの名無しさんNGNG
Ado.net使ってるのですが、100行以上の列が作成できないってのは
まじっすか?
おい等が使ってる環境が2002だからなのですかね?
0495デフォルトの名無しさんNGNG
>>494
現象としては報告されてる。
http://www.dotnet247.com/247reference/msgs/22/113552.aspx

2003で直ったのかは知らん。
0496デフォルトの名無しさんNGNG
何故スレタイはC#じゃなくてC♯なんですか?
0497デフォルトの名無しさんNGNG
#をスレタイに入れると消えるから。

それで「Cでネイティブアプリが作れたら最強じゃん」とかいうぱっと見意味不明なスレもあった。
0498デフォルトの名無しさんNGNG
>>497
サンクスコ

C#でスレタイ探しても見つからない訳だ(´・ω・`)ショボーン
0499デフォルトの名無しさんNGNG
>>494
VS.NET 2003なら、直ってる。
0500デフォルトの名無しさんNGNG
.NETのバグってどこかで一覧出来ないの?
2005で修正される予定のバグとかも。
0501デフォルトの名無しさんNGNG
users.gr.jpのMLで変なのが沸いているけど、
以前別のMLでも見かけた気がする。

と思ったら、1年以上前に同じところに沸いていたのか。
もっと別のとこにも沸いていなかったかしらん…?
0502デフォルトの名無しさんNGNG
>>501
http://www.lifecity.jp/pipermail/cpulife/2002-July/000594.html
どうやったらこんな Subject になるんだよ・・・
0503デフォルトの名無しさんNGNG
Visual C# 2005: Language Enhancements
ttp://www1.msteched.com/resources/documents/DEV321_Hejlsberg_v3.ppt
0504デフォルトの名無しさんNGNG
>502
多分醒剣ブレイラウザーを持ってるんだ、彼は。
オンドゥル(ry
0505デフォルトの名無しさんNGNG
メザコ語でぐぐれ。
0506デフォルトの名無しさんNGNG
TechEd 2004: A whiteboard with Anders (DEVC11)
http://www.theserverside.net/news/thread.tss?thread_id=26209
0507デフォルトの名無しさんNGNG
アプリケーションのメイン動作にXMLは絡まないけど、
XMLのデータも読み込めるという仕様なのですが、
本体EXE単品配布と、XML読み込み部DLL化と、どっちにすればいいか迷っています。
デバッグの容易さを考えると単品EXEにしたいのですが、
DLLに分離することで起動時のオーバーヘッドが減るならそうしたいです。
また、そうであれば、現在は分離したいDLL一個で、体感速度もよく分かりませんが、
将来的にはDLLいくつも分離して起動時高速化を考えています。
素人考えですが、こういった手法で速くなりますか?
0508デフォルトの名無しさんNGNG
>>507
そこまで考えることができてて、
なんで自分でテストをしてみようという気を起こさないのか。
世も末だな。
0509デフォルトの名無しさんNGNG
>>507
>DLLに分離することで起動時のオーバーヘッドが減るならそうしたいです。
減るの?
0510デフォルトの名無しさんNGNG
ああ、DLLを明示的リンクするってことか。↑は忘れてくれ。
0511デフォルトの名無しさんNGNG
長年C/C++を経て今C#お勉強中ですが、
似てるのに細部が違ったりとちょっと戸惑い気味。
C/C++、C# で同時期にコーディングすると混乱しそう。
やってる人どんな感じ?同じような道たどった人アドバイスお願い。
プロパティ/インデクサ/インターフェースいいねー。C++でも追加してくれ。
デリゲートは関数へのポインタと思っていいのかいな?<-俺こんなレベル。
0512511NGNG
あ。俺エンジン部分はこれまで作ってきたC++のライブラリをCでラップして
dllでexportして、C#からコールして使いたいと思ってます。<--ここまではできた。
tcl/tk 的にC#を使いたいんだけどそれじゃ志が低い?
0513デフォルトの名無しさんNGNG
>>511
1週間くらい前にはじめた。
VB6とJavaとC++を混ぜた感じで分かりやすいと思った。
0514デフォルトの名無しさんNGNG
>>511
フックの関係でWin32と.NETを同時に使うことがあったけれど、
結構、混乱しないんじゃないかね。

むしろずっとどっちか片方だけやってると
いざもう一方でやるときに逆に混乱したかな。
C++でthisのあとにドットでメンバを使おうとしたりとか。

>>513
混ぜた感じどころかそれぞれのいいとこ取りのような。
0515511NGNG
>結構、混乱しないんじゃないかね。
そんなもんスか?

>C++でthisのあとにドットでメンバを使おうとしたりとか。
これ間違いなくやってしまいそう。まだC#はまともなコード書いてないのでC#の
癖は出てないけど。

クラス継承とか見てるとなんかもうC++触るのやめたくなってくるような・・・
やっぱもう古いんだなぁ。純粋仮想関数の宣言見てると見てるとなんか虚しくなってきた。
C++のよさは実行速度、機能としてはtemplateとasm埋め込めるぐらい?
0516デフォルトの名無しさんNGNG
netstatのように現在 ESTABLISHED状態になってる
リモートホストを列挙する機能は
BASEクラスライブラリにはないでしょうか?
0517デフォルトの名無しさんNGNG
VC++/VC# 使ってコーディング作業してるんで、
VC++ 使ってて「this. まで打ったのにインテリセンス働かねー」とか言うことが多々。
他は構造体/クラスの後の ; 忘れがかなり多い。
↑もう C# にどっぷりつかっちゃってて。
0518デフォルトの名無しさんNGNG
this.ってうつのめんどくさい。
me.とか.だけにしてほしかった・・・
0519デフォルトの名無しさんNGNG
【国際】「資源独占の恐れ」日中境界海域にガス採掘施設、欧米企業も参加−中国★4
http://news13.2ch.net/test/read.cgi/newsplus/1085826910/

【中国】(資源独占の恐れ!) 日中境界海域に施設(日本は調査予定なし)★2 [05/28]
http://news17.2ch.net/test/read.cgi/news4plus/1085792271/

中国が尖閣諸島周辺の国境付近で資源採掘を開始ししだしました
ガス採掘施設となってますが、それだけではなく

ここにはなんと、 「世界2位の規模を誇る原油」 が眠っています

そしてほとんど日本の領土側に眠っている資源が
ジュースのストローで吸い上げられるように中国に持っていかれます。

 こっから採掘吸い上げ全部中国へ
       ‖
       ‖|   
       ■|■■■■■■■■石油■■■■■■■■■■
       ■|■■■■■■■■■■■■■■■■■■■■
中国領土← | →日本領土

これがあれば日本は強力な資源大国になれます。
今の不況や失業など一気に吹っ飛ば、安全なバブルが到来します
この暴挙をみすみす許している日本政府と外務省、
国家の一大事であるにもかかわらず一切放送しないマスコミ
今声を上げないと、この国は終わるかもしれません。
0520デフォルトの名無しさんNGNG
>>518
いや、this くらいのタイピングなら体が覚えるから this と me は大差ないと思う。
タイピングに使う指が同じ文字が並んでるならともかく、this は全部違う指だし。
0521511NGNG
>VC++/VC# 使ってコーディング作業してるんで、
今でもC++使うのはやっぱり過去の資産の有効利用ってことですか?それともC#では
実行速度に問題あるとか?

僕の場合は、これまでWindowsプログラマじゃなかったもんで、別プラットホーム上で
作ったエンジン部分のC++ソースにはできるだけ手をつけたくなかったことと、
Wn32やMFC使ったアプリ作りは難しくて面倒で、生産性がとっても低くなりそうに
思えたので、とりあえずWindowsに依存するややこしい部分を簡単に作るためにC#に
手を出したんですけど。
0522デフォルトの名無しさんNGNG
>>511
人と一緒に作業するときには自分の趣味だけで言語選べないし。
0523511NGNG
確かに。
でもそのプロジェクト立ち上げるときにグループ内で言語の得失考えて選択するでしょ。
クライアントから言語指定までされる場合は別ですが。
0524デフォルトの名無しさんNGNG
C#でもテンプレートが使えるといいのにな。
0525デフォルトの名無しさんNGNG
>>524
もう少しの辛抱だ。

Generics に限らず、C# 2.0 の新機能早く使いてぇ。
static クラスとかイテレータとか匿名メソッドとか。
0526デフォルトの名無しさんNGNG
C#を使っててC++に戻って出来なくなることつったら、
・アロー演算子(->)が打てなくなる
・構造体およびクラス宣言のセミコロンが打てなくなる
・スコープ解決演算子(::)が打てなくなる
くらいかな。
まぁアロー演算子だけはなんともならん…
ただそれ以外ではそう混乱したことはない気がする。
書き方が違うだけで基本的にやってることは同じだしなぁ。
0527デフォルトの名無しさんNGNG
やってることは同じでも、リスト構造なんか書いてるとC/C++のときと混同しない?
*thisと同じ話なんだけどさ。なんでC/C++がこんな書き方するのか不思議に思えてくるよ。
0528デフォルトの名無しさんNGNG
2.0は機能が増えるのか・・・
複雑で豊富な機能はD言語に任せてC#はVBとJavaのreplaceだけでもいいんだけどな。
0529デフォルトの名無しさんNGNG
ところがVBからもJavaからも移行してこないというワナ
0530デフォルトの名無しさんNGNG
確かに移行するとしたらC++からが一番多いかもしれない。
0531デフォルトの名無しさんNGNG
え、そうなの?じゃDelphiからは?
0532デフォルトの名無しさんNGNG
それだと改宗にあたるから厳しい
0533デフォルトの名無しさんNGNG
>>532
教祖は変わってないぞ。
0534デフォルトの名無しさんNGNG
>>533
Del厨はそんなこと知らないと思われ
0535デフォルトの名無しさんNGNG
>>534
ΣΣ(゚д゚lll)
0536デフォルトの名無しさんNGNG
>>534
結構悲しい生き物なのなDel厨って。
0537デフォルトの名無しさんNGNG
つうか、普通しらんな。
0538デフォルトの名無しさんNGNG
最近C♯を使うようになったんですが、新しくインスタンスを生成する時に使用する「new」の使い方がイマイチです。
例えば
Date dt = new Date();
などとした時に、()内に引数を入れる時と入れない時がありますよね?
引数を入れるのは、引数の数が分かっているときに入れるってことですか?
配列を使うときは ArrayList ary = new ArrayList(s.length); とかってやりますよね?
ただ単にインスタンスを生成したい時は()内は何も入れなくていいんですか??
初心者ですみませんが、詳しい方アドバイスをよろしくお願いします。
0539デフォルトの名無しさんNGNG
>>538
キーワードは「コンストラクタ」と「オーバーロード」の二つだ。
実はメソッド呼び出しと変わらなかったりするぞ。
0540デフォルトの名無しさんNGNG
改宗って?Delphiは宗教なのか?
教祖は
Kahn?
0541デフォルトの名無しさんNGNG
>最近C♯を使うようになったんですが、新しくインスタンスを生成する時に使用する「new」の使い方がイマイチです。
今一って、全部引数なしじゃないといやってこと?
それとも意味の同じ引数しかゆるせんとか?
まあ、>>539の書き込みを参考にしてくれ。
0542デフォルトの名無しさんNGNG
今、DOSのアプリケーションをシェルで実行して、
その出力をファイルにリダイレクトしようとしています。
環境はVS.NET 2003を使用しています。

System.Diagnostics.Process Exec2 = System.Diagnostics.Process.Start(exePath,arg);
Exec2.WaitForExit();

exePathにはDOSアプリの実行パスが入っています。
argには引数が入っています。

引数の最後に " > output.txt"として
リダイレクトしようととしたのですが、
プログラム自体が実行されません・・・
リダイレクトなしなら実行できます。

出力を得るにはどうしたらよいのでしょうか?
よろしくお願いいたします。

0543デフォルトの名無しさんNGNG
>>542
Process p = new Process();
p.StartupInfo.FileName = exePath;
p.StartupInfo.Arguments = arg;
p.StartupInfo.UseShellExecute = false;
p.StartupInfo.RedirectStandardOutput = true;
p.Start();
StreamWriter sw = new StreamWriter("output.txt");
sw.Write(p.StandardOutput.ReadToEnd());
sw.Close();
0544デフォルトの名無しさんNGNG
>>543
ありがとうございます!できました。

Process p = new Process();
p.StartInfo.FileName = exePath;
p.StartInfo.Arguments = arg;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
StreamWriter sw = new StreamWriter("output.txt");
sw.Write(p.StandardOutput.ReadToEnd());
sw.Close();

StartupInfoはStartInfoと誤りだったので
今後のためにかわりに訂正しておきます。
ほんとうにありがとうございました!
0545デフォルトの名無しさんNGNG
temporary problem
accessing database.

自作ソフトでメールを受信してみるとサーバーから上記のようなエラーが
帰ってきます。原因は何なんでしょうか?
それとメールは、ヤフーの無料のものです
0546デフォルトの名無しさんNGNG
知るか
0547349NGNG
>359
そこそこ動くようになってきたので晒してみます。
http://y74.net/co/so/No_0834.zip
まだ書き込みはできません…

WebBrowserObjectの制御がまだよくわかってない…
日本語ドキュメントが欲しくなる…

aximp c:\WINDOWS\system32\shdocvw.dll
とやったときSHDocVw.dllとAxSHDocVw.dllができたのですが、
いろんなサンプルなどを見るとファイル名は
AxInterop.SHDocVw.dllとInterop.SHDocVw.dll
になっています。
中身は同じようなのですが、なんでファイル名が違うのでしょうか?

MSHTML.TLBについて同じ事をやると
namespaceがMSHTMLになりました。
いろんなサンプルソースとか、twintail付属のmshtml.dllを見ると
namespaceは小文字でmshtmlとなっているみたいなのですが、
なんで違ってしまったのでしょうか?
元のmshtml.dllのバージョンでも違ってるのでしょうか?
これは、他の環境でも同じように動くのか心配になります。

>361
既に、認証鯖の方が対応したっぽい。
twintailが対応するのは時間の問題の様子。
0548デフォルトの名無しさんNGNG
言語はC#でなくてもかまいませんが、
XLS(MS-Excel)のファイルをプレーンなタブ区切りテキストファイルへと変換させることは可能ですか?
0549デフォルトの名無しさんNGNG
可能
0550デフォルトの名無しさんNGNG
どのようにして可能かヒントを頂けないでしょうか!?
0551デフォルトの名無しさんNGNG
>>550
http://www.google.com/search?num=50&lr=lang_ja&q=C%23+Excel
これと
"オブジェクト ブラウザ"
で、がんばれ。
0552デフォルトの名無しさんNGNG
>>550
COM
VSTO
OleDbConnection
306572 - [HOW TO] ASP.NET、ADO.NET、および Visual C# .NET を使用して Excel データをクエリし、表示する方法
http://support.microsoft.com/default.aspx?scid=kb;ja;306572
サードパーティのライブラリ
0553デフォルトの名無しさんNGNG
VBで unload me はC#ではどうやるの?
コントロールのボタンを押した時、Form_Closeingをして
アプリケーションを終了したいのだけど。
0554デフォルトの名無しさんNGNG
>>553
>  VBで unload me はC#ではどうやるの?
>  コントロールのボタンを押した時、Form_Closeingをして
>  アプリケーションを終了したいのだけど。

フォームを閉じたいならClose()メソッドを呼べば良かろう。
0555デフォルトの名無しさんNGNG
でも
public class Form1 : System.Windows.Forms.Form
何だけど
 Form1.Close()ってメソードがないんですけど。
0556デフォルトの名無しさんNGNG
>>555
ああうんそうだと思ったよオブジェクト指向を理解してなさそうだって。

Form1.Close()なんて書いたらstaticメソッドを意味するに決まってるじゃないか。
Form1内で書くなら自分自身を閉じるならthis.Close();だ。

だがしかししばらくコンソールアプリでオブジェクト指向の勉強をすることを勧めるぞ。
0557デフォルトの名無しさんNGNG
何? しかしthis.name をプリントすると "Form1"なのに
確かにthis.close()はできる。
 staticの違いですか? ありがと。

 
0558デフォルトの名無しさんNGNG
CのプログラムをC#で評価したいのですが、
#define P_h80 0x20
これをC#ではどう書いたらのでしょう

0559デフォルトの名無しさんNGNG
>>558
C/C++的なマクロはC#ではサポートされない。バグの温床だったから。

でも
> #define P_h80 0x20  
なら定数にしてやればいいよな。
0560デフォルトの名無しさんNGNG
アプリ終了ならApplication.Exit();じゃないのか?
0561デフォルトの名無しさんNGNG
>>557
Form1はクラスだけど、インスタンスじゃないから。

public class Form1 : System.Windows.Forms.Form

の場合、Form1ってのは、 System.Windows.Forms.Formを継承した
パブリックなクラスなのね。だもんでForm1から幾つもインスタンスを生成
出来る訳よ。

ときに、main()関数に

Application.Run(new Form1());

って書いてるでそ。Form1の新しいインスタンスを生成してる訳だ。
試しに、Application.Run(Form1());でコンパイルしてみそ。こけるから。

で、フォームを閉じるのは、生成されたインスタンスに対して行わなきゃ
ならんので、Form1内に書くのであれば、

×Form1.Close();
○this.Close();

となると。
0562デフォルトの名無しさんNGNG
553はVB6しか使ってなかったのだろうけど、VB6もちゃんと理解できてない。
VB6だとフォームとしてForm1を作成すると暗黙的にグローバル変数のForm1も作成される。
変数としてForm1を使用しようとしたら暗黙的にLoadされてしまう。

C#では暗黙的にForm1が宣言されているなんでことは無い。
0563550NGNG
>>551-552
サンクスコ!
0564デフォルトの名無しさんNGNG
だからアプリケーションを終了したいのなら、面倒なことせずに
Application.Exit();
だろうよ。

終了せずにフォームだけ閉じたいのなら
this.Close();
だけどな。
0565デフォルトの名無しさんNGNG
>>564
Application.Exit()だとForm.ClosedやForm.Closingが発生しないからちょっと注意が必要だし。
0566デフォルトの名無しさんNGNG
>>565
俺もそう思う。
0567デフォルトの名無しさんNGNG
>>565
俺はそうは思わない。
0568デフォルトの名無しさんNGNG
>>567
俺もそう思う。
0569デフォルトの名無しさんNGNG
俺はどうでもいい
0570デフォルトの名無しさんNGNG
そうは思わないってことは注意する必要はないってことか、そうか
0571デフォルトの名無しさんNGNG
あの〜、突然ですが、VSTi作ってるひといませんか?
0572デフォルトの名無しさんNGNG
.NETでやる作業ではないな
0573デフォルトの名無しさんNGNG
VST Plugins Development 1.0
http://pc5.2ch.net/test/read.cgi/dtm/1030621741/l50
0574557NGNG
>561
 ありがとう。いやー、よくわかりました。メチャすっきりしました。
 
 Form1 aForm = new Form1();
Application.Run(aForm);
  と書き換えると
Form1の中で aForm.close()なんて書き方をしちゃいけない(できない)わけですね。

>5xx
Application.Exit();
ではなんかマズイようです。Main()の終了までトレースできますが、
終了後、エディターに戻ってきません。
 
 Applicationはこのシステムの常駐インスタンスなんですかねー。
 Form1というクラスでグローバルのインスタンスを直接呼び出すのはよくないかも?
0575デフォルトの名無しさんNGNG
>>574
相変わらず頓珍漢だなオイ。

>Form1 aForm = new Form1();
>Application.Run(aForm);
> と書き換えると
>Form1の中で aForm.close()なんて書き方をしちゃいけない(できない)わけですね。

クラスとインスタンスの違いを理解してないのがバレバレ。

>Applicationはこのシステムの常駐インスタンスなんですかねー。
>Form1というクラスでグローバルのインスタンスを直接呼び出すのはよくないかも?

ApplicationはWindowsメッセージを処理するための静的(=static)なメソッドなどを集めたクラス。インスタンスなんか無い。
C#としてグローバルな変数もオブジェクトも存在しない。確かにstaticはそれに近い働きもあるが。
0576554NGNG
クラスが型でインスタンスが実体。
Applicationは実体ではないだろうか?
 なぜなら実体のないものは実行でけない。Applicationは実行できる。
もしApplicationが継承できたり、インスタンスを作れるとすれば
それはクラスでもある。
 では何なのだ。結論としては、今ちょっとわからない。

0577デフォルトの名無しさんNGNG
>>576
Applicationはクラスである。
しかし、publicなコンストラクタがない=インスタンスを作れないクラスである。
ちなみに継承もsealedで禁止されている(重要ではないが)。

さて、staticという概念がC#に存在する(別にC#に限ったことではないが)。
通常のメソッドやプロパティはクラスのインスタンスの中に存在するが、
staticなメソッドやプロパティはクラスそのものに存在する。
だからインスタンスを一つも作らなくとも扱えるし、逆にインスタンスを幾つ作っても一つしか扱えない。

プログラムのエントリポイントとなるMainメソッドはその典型だ。
プログラムを起動する際、初め「オブジェクトインスタンスは存在しない」。
オブジェクトが存在しないのにMainメソッドが呼び出せるのは、
Mainメソッドはstaticで定義されているためである。
0578デフォルトの名無しさんNGNG
あー、
>  しかし、publicなコンストラクタがない=インスタンスを作れないクラスである。
これはなんか激しく誤解を招く表現だった。というか間違ってる表現だ。
この部分は無し。
0579たすけて!!!NGNG
誰か問題といてくれますか??今なんですけど。
テスト中でせっぱつまってます
0580デフォルトの名無しさんNGNG
>>579
大学か?
おまえの所属する機関名を晒して、
とりあえず問題をうpしろ。
0581デフォルトの名無しさんNGNG
最近は学校でC#の演習なんてのもあるのか。
0582デフォルトの名無しさんNGNG
いい時代になったな。大学でC#か。でもいろんな言語をまわりまわってからC#の方が、よりありがたみがわかっていいと思うんだけどなぁ。
0583たすけて!!!NGNG
大学なんですけど、どうやってここに問題貼ればいいですか??何もわからなくてすいません。。。
0584たすけて!!!NGNG
問題

1. 整数型配列 data 内の, data[0] から data[n-1] までの総和を返す関数 int sum(int data[], int n) を作れ.

2. 整数型配列 data 内の data[0] から data[n-1] までの値の中で,最大の値を返す関数 int max(int data[], int n) を作れ.

3. 整数型配列 data 内の data[0] から data[n-1] までの中で,2番目に大きな値をもつ要素の添字を返す関数 int secondBiggestIndex(int data[], int n) を作れ.

ただし,同じ値の要素が複数個ある場合には,添字の順序で早い方の要素の値がより大きいと見なす.このことにより,2番目の大きい要素,というものが一意的に定まる.次の具体例を参照のこと(2番目に大きいと見なされる要素を赤くしている).
{1, 2, 3, 2, 3, 3}   (三つある3は 3 > 3 > 3 と見なされる)
{1, 3, 2, 1, 2, 1}   (二つある2は 2 > 2 と見なされる)

そして,作った関数を用いて次の計算をして,その結果を求めよ.
これです。。。
0585たすけて!!!NGNG
続きです。

#include <stdio.h>
#include <stdlib.h>
#define N 1000

main()
{
int i, s, m, sbi;

int data[N];
srand(1);
for (i = 0; i < N; i++) {
data[i] = rand() % 1000;
}
s = sum(data, N);
m = max(data, N);
sbi = secondBiggestIndex(data, N);
printf("%d %d %d\n", s, m, sbi);
}

答案は,課題提出システムにある 小テスト へメッセージとして提出.
答案には,関数定義と計算結果とを書くこと.
0586デフォルトの名無しさんNGNG
Cじゃねえかドアホ
0587デフォルトの名無しさんNGNG
ここはC#相談室だとわかってやっているのか?
それは C だろ。
0588デフォルトの名無しさんNGNG
つか他力本願って好きじゃない。まぁやってやれない事は無いが・・・。
あとどれぐらいの時間だい?
0589デフォルトの名無しさんNGNG
スレ違いもさることながら、
その問題のどこがわからないのかがわからない。
0590デフォルトの名無しさんNGNG
int sum(int data[], int n)
{
  int i;
  int sum = 0;
  for(i=0; i<n; i++) {
    sum += data[i];
  }
return (sum);
}

とりあえずsum関数。
0591デフォルトの名無しさんNGNG
楽勝だな。
0592デフォルトの名無しさんNGNG
脳内で解けるな。
0593たすけて!!!NGNG
すいません。わかってなくて、、、。
プログラムの作り方自体がわからないです。
11:40分までなんですが、、。
0594デフォルトの名無しさんNGNG
壮大なネタだな。w
0595デフォルトの名無しさんNGNG
max関数はこんな感じでいいか?

int max(int data[], int n)
{
  int i;
  int max = 0;
  for(i=0; i<n; i++) {
   if(max < data[i]) {
     max = data[i];
   }
  }
  return (max);
}
0596デフォルトの名無しさんNGNG
>>593
コンパイルの仕方がわからないのか?
それともC言語がわからないのか?

なんなんだおまえは?
0597デフォルトの名無しさんNGNG
さっきから関数を作っているのは無駄なのかそうでないのか、どっちなんだ?
0598たすけて!!!NGNG
c言語がわからない。。です。
0599デフォルトの名無しさんNGNG
System.Math使って答えてあげようか?
0600たすけて!!!NGNG
590,595ありがとうございます。
大丈夫だと思います。
0601デフォルトの名無しさんNGNG
               _, ‐ ' ゙ ゙̄ヽ,
  。 ゚,        , '゙          )
    。     ,ノ!,'         ◎/
  ゚ ゚,,.. --─- ノ゙!,/            ,'                  _
  て   ゙̄'i;  ノ゙!,!゙         ゙i, ノ               ∋oノハヽo∈_,.   ' ‐ .,_
  てて 。 ゙'゙ ,!V         ,゙゙ :,   。            ( ´・`) ^~         ゙)
 !.  ,゙      !!.,i         ノ゙,  .'.,   。            )⌒ヾ_.       ,.. ‐'゙
   .|      ! !_!_     ,'゙  i.,_ ゙,              .,_ノ .^フb'-'=y-‐ ' ゙
 i i |.       ! .!_!    ,゙   ゜ ゙!i,'              !゙k,\(
   .!.       i .i'i   ,゙                   ,べ,ヘへべ,_
 i  .i.      ゙, ',   !       。            Y(   〉 ヾ\
  ! i ',      '!,',   !,        。           〉 ヘ       ゞ\
 ヘ  ' ,      ' ,   ',                   (     ゝ Y   〉
    ヘ \.      \  ' ,        。゜        .ゝ 〉       ゞへ
 \ へ   \.       \,. ゙' ,      。 ゜。 。 ゜    「゙Y   く /   へ入
  へ  \ \        ゙ ' ‐゙ '_‐:,_   ゚)\ノヽ  _,, 〆、 ゝ゜ 。゚ヘ く  ヘ 〉、
     へ    ' .,          '! !  ゚ノ)\)\λ  \\\))\ル))\「    〉入
          へ   ' , へ ノ(ノ( '.,_' ノ )\λ )\ ) ) .) ) )) \∠~く  へ べ\
0602デフォルトの名無しさんNGNG
int secondBiggestIndex(int data[], int n)
{
  int i=0;
  int sbi = 0;
  int sec = 0;
  int max = max(data, n);
sec = max;
  do {
   
   if(max > data[i] && data[i] > sec) {
     sec = data[i];
     sbi = i;
   }

   i++;
  } while(i<n);
  return (max);
}
0603デフォルトの名無しさんNGNG
それほどまで分からない状態で、しかもC#との区別もつかないで、
テストに合格して人に認められるなんてうらやましい。
何しに学校はいったのか知らないけど、ずいぶん得な人生だな。
0604デフォルトの名無しさんNGNG
ちょっとギリギリだのぉ。
間に合うか。

>>585のプログラムの下に、
今書いた3つの関数を貼り付けろ。

んで、

>>585のmain()の前の行に

int sum(int data[], int n);
int max(int data[], int n);
int secondBiggestIndex(int data[], int n);

を追加な。で、コンパイル&実行。
0605たすけて!!!NGNG
604本当にありがとうございます。
0606デフォルトの名無しさんNGNG
あ、間違えたw
index値の優先度があったんだ。考慮してねぇや・・・。













ま、いいか。どうせネタだろうし。
0607デフォルトの名無しさんNGNG
これがネタじゃなかったら、たすけて君をどうやって苛めてやろうか。
0608デフォルトの名無しさんNGNG
&nbsp失敗したとことか、そうやって書くものだと思いこんでコピペ
0609デフォルトの名無しさんNGNG
近年まれに見る盛り上がりだったな。
0610デフォルトの名無しさんNGNG
たすけて君さぁ、助けてやったんだ。
今回のテストの準備不足に対する反省文と感謝の気持ちを
400字にまとめて貼り付けろや。

それから、さっきの問題に追加で、
4.中間値を返す関数int mean(int data[], int n) を作成せよ。
これ宿題な。やっとけよ。おまえこの程度の問題がさっぱりじゃ駄目だ。
就職で絶対苦労するタイプだ。現4年、大手IT企業内定のオレが言うんだから間違いない。
0611デフォルトの名無しさんNGNG
ネタでも楽しめたよ。さて飯でも食いに行くか。
0612デフォルトの名無しさんNGNG
なんか凄い盛り上がっていたみたいだね。
0613デフォルトの名無しさんNGNG
>559
> #define P_h80 0x20
>なら定数にしてやればいいよな。

では 
#define BIT(n) (1<<n)
はC#ではどうします?
0614デフォルトの名無しさんNGNG
そのくらいなら開いてやれ。
それなりに複雑なら関数作れ。
むしろCの逐語訳でC#のコードを書くな。
0615デフォルトの名無しさんNGNG
Cしか受け付けない環境ってのはありますから、
CをC#の便利な環境ででシュミレーションするのは意味があるんです。
 実際今まではVBでシュミレーションして、うまく行ったら、Cに
書き換えて、マイコンに移す。なんて作業をやってましたから。
 でもやっぱり、関数にするしか方法ないですか?
0616デフォルトの名無しさんNGNG
なんのためにMC++あると思ってんだ
0617デフォルトの名無しさんNGNG
> 大手IT企業内定のオレ
( ´,_ゝ`)プッ
0618615NGNG
>なんのためにMC++あると思ってんだ
 MC++は人の使う言語ではない。しいて言えば他人の使う言語である。

0619デフォルトの名無しさんNGNG
>>618
言い得て妙だな
0620デフォルトの名無しさんNGNG
データグリッドで選択されている複数の横の列のデータを取得するにはどうすれば?

0621デフォルトの名無しさんNGNG
>>620
まとめて取得するプロパティはないようなので、ループ回してIsSelectで一つずつチェックかな。
0622デフォルトの名無しさんNGNG
>>釣り
漏れだったら、全データをSQLにぶっこんでSQLに計算させるな。
0623デフォルトの名無しさんNGNG
ガーン。
色変わってるのに何のフラグも立たないのか。
でも最初にクリックされた場所から下か上にIsSelectループでいいのか。

サンクスコ!
0624デフォルトの名無しさんNGNG
デバドラはCでやるとして
WinアプリでC#だと問題になりそうなことってなんですかね?
例えばC#以上に実行速度稼ぎたくなったらC/C++でdll作れば
対応できると考えていいっすか?
0625デフォルトの名無しさんNGNG
>>624
最大の問題は.NET Frameworkを入れるのを嫌がる人が多い点だな。
0626デフォルトの名無しさんNGNG
TextBox.Textをプログラムから改行させるにはどうしたらいいでしょう?
なんかUnicodeでわたしてもどうしても改行されません。

string kaigyou="\n";
TextBox.Text=TextBox.Text+kaigyou; (これだと変な文字になる)

string kaigyou="\\n";
TextBox.Text=TextBox.Text+kaigyou; (これだと\nが表示される)

0627デフォルトの名無しさんNGNG
>>625
それは時間が解決してくれるからどうでも良いや。
現にXP SP2(?)ユーザは解決されてるし。
0628デフォルトの名無しさんNGNG
>>627
SP2でも.NET Frameworkはインストールされないぞ。
0629デフォルトの名無しさんNGNG
>>626
改行は\r\n

>>624
あとは起動が遅いとか?
//時間が解決って言うのならあらゆる問題がそうだと思うけど。
0630デフォルトの名無しさんNGNG
Win32API使わないとできないことって何ですか?
0631デフォルトの名無しさんNGNG
.NET Frameworkに関しては数年で
解決することが確定してるからね。
0632デフォルトの名無しさんNGNG
今はランタイム用の開発言語っていうかJavaモドキでしかないけど、
新しいWindowsではネイティブ実行されるんでしょ?
Win32APIより少ない工数でそれ以上の力が出るなら、
新規開発はC#でってことになるんでないのかね。
0633デフォルトの名無しさんNGNG
起動が遅いってよく言うけど、うちのマシンだとそんなに遅いと感じた事は
ないんだけどな。別にそんな最新スペックのものじゃないけど。
最近のそれなりに速いCPUとHDD積んだマシンだったらそんなに遅い事
はないと思うんだが(かといって速い訳では決してないけど)。
0634デフォルトの名無しさんNGNG
>>630
前スレかGDNJに「.NET Frameworkではグローバルフックはできない」とか見たな。
0635デフォルトの名無しさんNGNG
staticについて教えてください。
これはクラス内で定義したデータをクラス外でも使えるってことですか?

public class Class1 {
public static string Str;
//
}

public class Class2 {
Class1 c = new Class1();
System.Console.WriteLine(Class1.Str);
}

でも、こんなことしなくても使えると思うんですが。
0636デフォルトの名無しさんNGNG
>>635
>  public class Class2 {
>     Class1 c = new Class1();
>     System.Console.WriteLine(Class1.Str);
>  }

staticなものにインスタンスはいらんから、別にnew Class1()は書かなくてもClass1.Strは使えるぞ。
System.Console.WriteLine()がnew System.Console()しなくても使えるように。

>  でも、こんなことしなくても使えると思うんですが。

意味不明。
0637デフォルトの名無しさんNGNG
結構staticメンバの必要性がわからない人って多いみたいですね。
一度、クラスライブラリのヘルプを眺めて、staticなものと違うものを
見比べてみたらどうでしょう?

>>635
ハッキリ言って別にstaticは使わなくても同じことはできる。
手段じゃなく、意味が問題。
0638デフォルトの名無しさんNGNG
>>634
.NET Framework の土俵から外に出られないからグローバルフックできないって言う理解でいいの?
ネイティブで実行されるようになれば.NET Frameworkの土俵がOS完全ラップとはならないの?
フックは無理かなぁ?OSの想定外のこと無理やりやってるわけだしな。
0639デフォルトの名無しさんNGNG
少なくとも、.NET2005(?)では、MS-OFFICE2005(?)の構築に必要なものが揃うのではと。
そうすれば.NETだけで出来ることはかなり広がるんじゃないかな。
0640デフォルトの名無しさんNGNG
.NET Frameworkはこれ単体が完全なプラットフォームであり、Windows以外での
実行も前提にしているらしいから、OS依存する機能へのアクセスは提供されていない。
だから、フックとかも無い。

それともうひとつ、

.NET Frameworkは次期Windowsに直接アクセスするWinFXとはまったくの別物。
しかし、.NETそのものはWinFXのサブセットになっているから、
ネイティブアプリケーション開発へ移行や資源活用にはC#がもっとも適している。

……って風に見てるんだけどどうなんだろう?
0641デフォルトの名無しさんNGNG
.NET Frameworkは意味わかってるやつは入れないけど、
わかってないやつは知らない間に入れてる。
0642デフォルトの名無しさんNGNG
Windows Server 2003は標準で.NET Framework入ってるけどな…
0643デフォルトの名無しさんNGNG
どうしてMicrosoftはSPに含めないんだろうねぇ。
0644デフォルトの名無しさんNGNG
>>643
いちいち訴えてくる馬鹿企業があったから。
でももう下僕に成り下がったけどね。(ゲラ
0645デフォルトの名無しさんNGNG
System.Doubleの加算について教えてください。

double dd = 0d;
double d = 0.1d;
dd += d;
dd += d;
dd += d;

上のロジックで、変数dd結果が0.30000000000000004となるのはなんででしょう・・・
floatだと0.3となるんですが・・・
0646デフォルトの名無しさんNGNG
MSさん
foreach って値が変更できなくしてあるけど、なんか必然性はあるんかい?

0647デフォルトの名無しさんNGNG
>>645
浮動小数点とはそういうもん。
厳密な意味で、小数点以下の数値を表現できない。

C#だと、decimal型が小数点以下の表現に適してるみたいね。
0648645NGNG
>647
そうですか・・・浮動小数点を使う限り、誤差はでてしまうのですね・・・
浮動小数点自体をいまいち理解してないので勉強してみます。
ありがとうございました。
0649デフォルトの名無しさんNGNG
>>646
foreach がどういうILに展開されるのかを考えてみればわかると思われ。

  foreach (T obj in col) {
    obj = 〜;
  }

ができたとしても、実質↓の内容なので意味なしでしょ?

  IEnumerator<T> e = ((IEnumerator<T>) col).GetEnumerator();
  try {
    while (e.MoveNext()) {
      T obj = e.Current;

      // objの値を変えても e.Current には何の影響もなし
      obj = 〜;
    }
  }
  finally {
    IDisposable d = e as IDisposable;
    if (d != null) {
      d.Dispose();
    }
  }

ちなみに、objのプロパティを変えるなどはできるよ。
objそのものを変えるのはできないけど。
0650デフォルトの名無しさんNGNG
あ、IEnumerator<T> じゃなくて IEnumerable<T> の間違いだった。
0651デフォルトの名無しさんNGNG
Σ(゚д゚lll)ガーン
Javaの寅さんは値を変更しても何も文句言ってこない。

    List<Integer> list = new ArrayList<Integer>();
    list.add(1);
    list.add(2);
    list.add(3);

    for (int n : list) {
      System.out.println(n);
      n = 0;
    }

    for (int n : list) {
      // もちろん 0 になんかなるわけない
      System.out.println(n);
    }
0652デフォルトの名無しさんNGNG
>ちなみに、objのプロパティを変えるなどはできるよ。
>objそのものを変えるのはできないけど。

あ、そうなんですか?
本読んで勉強してるところですが、意味勘違いしてました。
的確なご指摘ありがとうございました。
 実は本の書き方が悪いのです。
「値を変更する必要がある場合は、代わりにforをつかう」
とあります。これじゃ勘違いします。

IEnumerable<T>以下の意味はまだ理解できません。
すごーい。
0653デフォルトの名無しさんNGNG
try
{
......
}
catch
{
......
}
finally
{
......
}

tryブロックを抜けたら自動的に下に抜けるわけでしょ。
なんでfinallyブロックで囲む必要があるんでしょう?
0654デフォルトの名無しさんNGNG
>>653
tryの途中で例外が起きて、tryの最後まで行かずに途中で打ち切られる時もある。
そういう場合でも確実に後処理を実行させるためにfinally句がある。
0655デフォルトの名無しさんNGNG
>>653
catchの中で例外をthrowしてもfinallyは実行されるから。

どんな例外が発生しても必ず開放しないといけないリソースの開放をfinallyでやるとか。
0656デフォルトの名無しさんNGNG
じゃtryの途中でreturnしてもfinallyは実行するわけですか? ですね。
ありがとうございました。
0657デフォルトの名無しさんNGNG
64bitのWindows2003Serverには乗らないとわかってるドトネトに闘志を燃やせなくなりますた。
http://www.microsoft.com/japan/windowsserver2003/evaluation/features/compareeditions.mspx
0658デフォルトの名無しさんNGNG
既出。64bit対応はWhidbey CLRから。
0659デフォルトの名無しさんNGNG
DataGridのTableStylesってクローンできん上に、使いまわしがきかんのですが、
コピーする方法って何かないですか?
0660デフォルトの名無しさんNGNG
>>657
CSはいまのところ、手軽に使えるWinアプリ作成の現実的な選択肢ってことでいーんじゃないの?
templateもないし、汚い言語仕様であってもC++じゃないと記述できない機能もあるんで
現時点でC/C++を捨てる気はないけど。かといってC++でWinアプリなんてもう書くの嫌なんだよねー。
ハードウェアの原理ならともかく、Windowsのソフト上の仕組み(原理)なんて別に理解
したいとは思わんし、俺にとって必要ないもんで。
D言語がよかったらそのうち乗り換えるかもしれないしね。
0661デフォルトの名無しさんNGNG
あー、やっぱメモ帳とコマンドラインだけじゃキツイよ。
かといってSharpDevelopは鬼のごとく重いし、やっぱVS.NET買うしかないんかなぁ・・・。
0662デフォルトの名無しさんNGNG
>>661
C#Builderを
0663デフォルトの名無しさんNGNG
C# 特有ではない部分もあるのでスレ違いぎみかもしれませんが,
いくつかの テキストファイルや画像ファイル(jpg, gif) を
なんらかの方法で1つにまとめて,独自ファイルを作成したい.
その,1つにまとめられた独自ファイルを,アプリケーションで利用する
際には,アプリケーションの内部で元のテキストファイル,画像ファイルに
戻して利用したい.

という事を C# + .NET Framework で行ないたいと考えています.

1つのファイルにまとめる,また,そのファイルをアプリケーション内部で
元に戻す部分をどのように実装すればよいのか検討がつきません.

何かいいアイデアはありませんでしょうか?
0664デフォルトの名無しさんNGNG
>>663
シリアライズするとか。



ふとCodeDomでアセンブリにしてリフレクションで取り出すというおかしなプランが脳裏をよぎる。
0665デフォルトの名無しさんNGNG
>>663
tiff
0666デフォルトの名無しさんNGNG
unlha32.dllとか。
0667661NGNG
>>662
どうも〜、ドトネト復帰は1年半ブリくらいなんで忘れてました。
で、今見たんですが、C#Builderって、ホントにまだ1.0なんですか?
0668デフォルトの名無しさんNGNG
DocuWorks
0669663 NGNG
ありがとうございます.

>> 664 シリアライズ調べてみます
>> 666 unlha32.ddl 調べてみます

>> 665 tiff って画像フォーマットの tiff ですか?
tiff に テキストファイルの内容や画像ファイルを
まとめる事ができるのでしょうか?
もう少しアドバイス頂けるとうれしいです.

0670デフォルトの名無しさんNGNG
ListViewItem lvi = new ListViewItem();
lvi.BackColor = Color.FromArgb(50,Color.Red);

とやっても背景色が反映されないのは仕様ですか?
0671デフォルトの名無しさんNGNG
>>670
試してみたけど、ちゃんと反映されたよ
0672デフォルトの名無しさんNGNG
>>661
xyzzyとコマンドラインだけでやってるよ。
結構頑張れる。
が、コード補完機能が付いてるcsharp-modeが欲しい…
0673デフォルトの名無しさんNGNG
フォームを閉じた際に、稼動しているスレッドを全てabortさせたいんですが、
どうすればいいんでしょう?

考えたのは、アクティブなスレッドを管理するクラスを作って、フォームのClosingイベントの中で
そのクラスに対して操作を加えるという方法です。
もっとマシな解決方法があると思うんですが・・・
0674デフォルトの名無しさんNGNG
>>673
VB使いだったりすると、フォームを閉じる=アプリケーションの終了だったりする場合があるけれど、
もしアプリケーションの終了についていってるならThread.IsBackgroundプロパティを変えるとか。

そうでなくてフォームとスレッドが関連付けられてるというのなら、
フォームの中で処理させたほうがいいんじゃね?
0675デフォルトの名無しさんNGNG
DOSの連立方程式を解くプログラムがあって、
これを実行すると
dimensions :
a[0][0] :
a[0][1] :
 ・
 ・
という具合に、一つ一つプロンプトがでて
データの入力を求められます。
このプログラムをC#のGUI上から一気にデータを
入力したいのですが、方法はあるでしょうか?
Shellで
Process pc = new Process();
pc.StartInfo.FileName = "tar";   // プログラム名です
pc.StartInfo.Arguments = "2 1 3 7 2 5 12";
pc.Start();
pc.WaitForExit();
としましたがだめでした。

上の例では
  { x + 3y = 7
  {2x + 5y = 12
を解いてくれるはずです。
要するに入力をリダイレクトするということなのでしょうか?
何かアドバイスをいただけると助かります。
どうかよろしくお願いいたします。
0676デフォルトの名無しさんNGNG
やはりリダイレクトする方法でいけました!
pc.StartInfo.RedirectStandardInput = true;
として、
String command = "2 1 3 7 2 5 12";
pc.StandardInput.WriteLine(command);
でOKでした。
話を聞いていただいてありがとうございました。
0677デフォルトの名無しさんNGNG
悪いな、聞いてなかった。
0678デフォルトの名無しさんNGNG
プロジェクトXみちょったから、聞いてなかったよ。
0679デフォルトの名無しさんNGNG
教えてください!

ブラウザのように、関連付けされたファイルからアプリケーションを
開いたとき、既にそのアプリケーションが開いている場合はそちらで
ファイルが開くようにしたいのですが、どのようにすればよいのでしょうか。
0680デフォルトの名無しさんNGNG
画面の解像度に合わせてフォントやコントロールのサイズを動的に変更する簡単な方法ってありませんでしたっけ?
0681670NGNG
>671
alphaの指定も有効でしょうか?
0682デフォルトの名無しさんNGNG
C# のプログラムで CAB ファイルを展開する方法が
わかりません。方法をご存知の方がいらっしゃいましたら
よろしくお願いします。
0683デフォルトの名無しさんNGNG
>>679
Mutexなどで二重起動のチェックを行い、既に起動されているのが確認できたら、
そっちのアプリに、DDEかSendMessageあたりを使ってファイルパスを送信する。

これはほんの一例なので、679に適した方法を自分で模索するといいでしょう。
0684あいタン ◆3QC.t4i5w6 NGNG

( ノ ̄∇ ̄)ノ みんなーーーーーーー、あいでーーす!!( ̄ー ̄)ニヤリッLOVE
0685名無しさん@LinuxザウルスNGNG
>682
統合アーカイバのcab32.dllをpinvokeで呼ぶ。

あるいはOS標準のcabinet.dll。
これのマニュアルはcabinet SDKに入っていて、
MSからダウンロードできた気がする

それとも誰かマネージラッパーを書いてくれて
いるかも?

0686デフォルトの名無しさんNGNG
Bitmap(Image)から指定範囲の画像を取り出すにはどうすればよいのでしょうか。

たとえば、200 x 200 の画像から
X = 0, Y = 0, Width = 20, Height = 20
の範囲を取り出すには・・・
0687デフォルトの名無しさんNGNG
Graphicsクラスについてヘルプで調べろ
0688デフォルトの名無しさんNGNG
>>686
Bitmap a, b;
a = new Bitmap(Application.StartupPath + "nullpo.jpg")
b = a.Clone(new Rectangle(0, 0, 200, 200), PixelFormat.Format32bppArgb);
これで良くない?試してないけど
0689デフォルトの名無しさんNGNG
あ、new Rectangle(0, 0, 20, 20)か
まぁ聞く前に調べる癖はつけないとな
0690686NGNG
すいません。
Bitmap.Clone() は丸ごとコピーするのかと思ってましたorz
0691デフォルトの名無しさんNGNG
>>679はかなり出るFAQだな。
しかし.NETで解決出来てないんだよな。
0692デフォルトの名無しさんNGNG
DllImport について教えてください。
C で書かれた(アンマネージド) DLL があります。

その中の関数を C# のマネージドコードから呼出したくて調べたところ
p/invoke という機能を使えばよさそうな事がわかりました。

で,わからないのが C で定義してある関数を C# で呼び出せるように
DllImport で使用する関数を定義しなければならないのですが,

Bool hogehoge (TCHAR * nantoka);
BOll hogehuga (DWORD kantoka);

などの TCHAR* DWORD を C# ではどのように変換したらよいのかが
わかりません。他にも BYTE * や unsigned long などもあります。

このあたりの対応表や,理解の助けになるサイト,説明があれば
教えていただけないでしょうか? C を知っていれば簡単な事なのかもしれ
ませんが...よろしくお願いします。
0693デフォルトの名無しさんNGNG
>>692
似たような構造のAPIを取り込んでるサンプルがたくさんありますので
それをまねしましょう。
0694デフォルトの名無しさんNGNG
Cの知識よりも.NET Frameworkのマーシャリングの知識だな。
宇宙仮面氏の所でも@ITの連載/.NET TIPSでも基礎を取り上げてる。
0695デフォルトの名無しさんNGNG
>>692
MSDNとか。

とりあえずベタにこのあたり。
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.html
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/166pinvoke/pinvoke.html
0696692NGNG
みなさんありがとうございます。
教えて頂いたサイトを参考にしました。

その中で1つわからないのですが

例えば
(DWORD hoge) -> (uint hoge) のようになると思うのですが,

(DWORD *hoge) の場合,どのようにすればよいのかよくわかりませんでした。

どうかよろしくお願いします。
0697デフォルトの名無しさんNGNG
IntPtr
0698デフォルトの名無しさんNGNG
>>696
>>695
0699692NGNG
教えて君状態になってすみません。
ポインタの場合はあらゆる IntPtr で定義して問題ないのでしょうか?

もっと精進します…。
0700デフォルトの名無しさんNGNG
引数が型名で戻り値がインスタンスという関数を作っているのですが、
うまいこと書けません。

試しに書いたコードですが、
string s = typeof(System.Windows.Forms.Form).ToString();
Type t = Type.GetType(s);
で、tはnullになってしまうのが問題のようです。
全然違う方法でもちょっとした修正でも構わないのですが、
どうやったらできますか?l
0701デフォルトの名無しさんNGNG
typeof(〜).FullName
0702デフォルトの名無しさんNGNG
>>699
その関数の引数をどう扱うかによる。

ハンドルやハンドルのように扱われるポインタならIntPtrでいいけれど、
その関数に引き渡す情報の入った構造体のポインタが要求されてる場合は
データの入った構造体の参照とか。


Win32使ったことないなら厳しいかもしれないので
素直に>>695に二番目のURLのアドインあたり使っといたほうがいいんでないの?
0703デフォルトの名無しさんNGNG
>>701
FullNameもToString()も同じstring返します。
0704デフォルトの名無しさんNGNG
>>700
> 全然違う方法でもちょっとした修正でも構わないのですが、
一番手っ取り早いのはTypeを引数に取ることだけど。

Type.GetTypeは、型名だけを指定した場合自分のアセンブリとmscorlib.dllにある型しか調べない。
完全限定名(Type.AssemblyQualifiedName)を指定してやればいけるけど、これって意味無いだろうし。
0705デフォルトの名無しさんNGNG
どっちみち、型名だけじゃなくてアセンブリ名もどこかで必要だね。
0706デフォルトの名無しさんNGNG
なるほど。
Formで試したからインスタンス作れなかったというわけですね。
できないものは仕方ないですね。
ありがとうございました。
0707デフォルトの名無しさんNGNG
>>706
何に使おうとしてるのか知らんが、アセンブリの情報も含めるのじゃ駄目なのか?
0708デフォルトの名無しさんNGNG
プロセスの終了コードの変わりに例外投げるとか出来ないの?
0709デフォルトの名無しさんNGNG
意味不明
0710デフォルトの名無しさんNGNG
意味不明その2
0711デフォルトの名無しさんNGNG
誰が受け取るんだ
0712デフォルトの名無しさんNGNG
おまえだ m9(・∀・)ビシッ!!
0713デフォルトの名無しさんNGNG
VSのビルド後のコマンドラインに失敗させるとかじゃないかな。
del hoge とか書くと、そのファイルがないときは失敗しましたとか言ってくるけど、
にコンソールアプリだと、失敗しましたというメッセージ出すぐらい。
例外で帰そうと思ったこともないし、おれはやり方知らん。
0714デフォルトの名無しさんNGNG
>>713
Mainメソッドで1を返せばいいんぢゃないの。
0715713NGNG
俺は試さないよ。>>706じゃないし。
0716デフォルトの名無しさんNGNG
タブコントロールで動的にタブページを増やすにはどうしたらいいんでしょうか?

tabControl1.TabPages.Add(AddRange)かと思ったんですが、ヘルプ見ると
「これは藻前らが勝手に使っちゃイカン!」みたいなことが書いてありました。

ググってTabTest.zipというのを見つけましたが、これはやってることにオマケが多すぎてダメでした。
タブの中身は空でいいので、一番単純にタブページを増やす方法を教えてください。
0717デフォルトの名無しさんNGNG
>>716
それでいいんだよ。

TabPage tab = new TabPage("Test");
tabControl1.TabPages.Add(tab);
0718デフォルトの名無しさんNGNG
>>711
子プロセスを呼び出した親プロセス。
いっぱい情報詰め込んで渡してやれば親子間のプロセス間通信が楽になるじゃん。
0719デフォルトの名無しさんNGNG
>>716
え〜?
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformstabcontrolclasstabpagestopic.asp
MSDNでも普通にTabPages.Add使ってるよ?
手元のVS.NET2002のヘルプでもTabPages、TabPageCollection.Addどっちも内部で使用とか書かれてないし。
0720デフォルトの名無しさんNGNG
>>718
標準出力じゃ駄目なのか……?
親子間のプロセス間通信ならアプリケーションドメインを使うほうがスマートじゃないか?
0721デフォルトの名無しさんNGNG
DLLってなんだよ
0722716NGNG
>>717>>719
「このメンバは、.NET Framework インフラストラクチャのサポートを目的としています。
 独自に作成したコード内で直接使用することはできません。」

…は無視していいんですね。
それでやってみまつ。ありがとん。
0723デフォルトの名無しさんNGNG
>>722
どのメンバ?
0724デフォルトの名無しさんNGNG
>>722
いやそれは無視しちゃいかん。
が、とりあえず手元の System.Windows.Forms.TabPageCollection.Add メソッドの説明には
その文句は含まれていない。どのクラスのどのメンバに書いてあるのか、もう一度見直してみては?
0725デフォルトの名無しさんNGNG
メールの受信を行いたいので、サーバへ接続したいんですが、
IPHostEntry lipa = Dns.Resolve("****.com");
IPEndPoint lep = new IPEndPoint(lipa.AddressList[0], 110);
Socket s = new Socket(lep.Address.AddressFamily,SocketType.Stream,ProtocolType.Tcp);
s.Connect(lep);

ってやるのと、
TcpClient client = new TcpClient("****.com",110);
NetworkStream stream = client.GetStream();
StreamReader reader = new StreamReader(stream,Encoding.Default);

ってやるのはどっちがいいんでしょうか?
0726デフォルトの名無しさんNGNG
>>723
稲垣メンバ
0727722NGNG
>>724
this.tabControl1.TabPages.Add(hoge);

…のAddのとこでF1したときに出てくるヘルプに書いてあった文句です。
0728デフォルトの名無しさんNGNG
>>727だからその文句の書いてあったAddメソッドは何クラスのメンバだったんだ?
0729デフォルトの名無しさんNGNG
あ〜、わかったわかった。確かにその手順だと直接使用することはできませんが出るわ。
TabPageCollectionのIListのAddメソッドの明示的実装ね。

IListのAddメソッドは引数をobjectで取るから、かならずTabPageクラスを受けるにはこのメソッドをそのまま実装するには都合が悪い。
無闇に例外とか出すのはまずいし。
そこで一種のAddメソッドのオーバーロードとして、引数をTabPageで取るAddメソッドをTabPageCollectionが独自に実装してるんだ。
インターフェイスのメソッドを実装するとき、
public int IList.Add(object value) {...}
と書くと、TabPageCollectionをIListにキャストしてやらない限り呼べなくなる。
そしてその上で
public void Add(TabPage value) {...}
を実装して、TabPageCollection型からAddを呼ぶとこっちが使われるというわけだ。
TabPageCollectionクラスのAddメソッドにはもちろん直接使用できないとは書かれてないよ。

で、なんでこっちのヘルプを出すんだろうねVS。
0730727NGNG
完全じゃないですが、なんとなくは理解できました。
コントロールの仕組みをもっと勉強しないとダメですね。
ありがとん。
0731デフォルトの名無しさんNGNG
VISUALC#初心者です。
データベースに入力するとき重複はメッセージだして、拒否したいんだけど
データベースにアクセスする仕方がよくわからないです。
グリッドに出したりはできるんですが。
SQLはSELECT COUNTでID数えて同じIDがあると拒否みたいにしたいです。
0732デフォルトの名無しさんNGNG
教えて君の伝家の宝刀がでたな
0733デフォルトの名無しさんNGNG
>>731
ttp://www.atmarkit.co.jp/fdotnet/basics/adonet_index/index.html
0734デフォルトの名無しさんNGNG
ComboBoxを持ったユーザーコントロールを作ろうとしているんだけど
Itemsプロパティがプロパティブラウザでうまく動作しない。

ヘルプにはないけど
[Editor("System.Windows.Forms.Design.ListControlStringCollectionEditor,
System.Design", typeof(System.Drawing.Design.UITypeEditor))]
public ComboBox.ObjectCollection Items
{
  get
  {
    returncomboBox.Items;
  }
}

でプロパティブラウザから文字列コレクション エディタを使って
初期値を設定できるけどコードには展開できずにItemsが空っぽになってしまうのは
なぜでししょうか。
ComboBoxだとItems.AddRangeメソッドで初期化するコードが生成されるんだけど。
0735デフォルトの名無しさんNGNG
C#でXindiceって使えます?
C#で使える無料のXML-DBエンジン
何かありましたら教えてください
0736デフォルトの名無しさんNGNG
>>735
取りあえずXprioriでも試してみれば?
COM用のクライアントライブラリ(API\C\lib\NeoCoreXMS.dll)が
用意されているんでTlbimp.exeでアセンブリに変換すればC#で
もいけるんじゃない?

ttp://www.xmldb.jp/
"Xpriori"は、商用製品"NeoCoreXMS"の無償版です。


無償のXMLDBというと有名なのはXindiceとeXistがあるけど
どっちもJava専用だしねぇ。
0737デフォルトの名無しさんNGNG
Ado.net経由でAccessMDBファイルに接続してるんですが、

OleDbCommand DbCmnd = new OleDbCommand(StrSql, pDbConnect);

select name from clientlist

などというQLを発行し、収集したあとに、収集されたレコード数を取得する方法ってありますでしょうか?

OleDbDataReader.ReadRecord()で一周まわして一度レコード数を数えるなんて事をいまやってるんですが、
どう考えても効率悪いような気がしまして・・・

うまい方法ありましたら、宜しくお願いします。

P.S.
 もしかしたら、SQLの問題ですか?
0738デフォルトの名無しさんNGNG
select count(*) from clientlist

って手はあるが、どっちみち全件なめるんなら数えてもいいんでわ。
0739デフォルトの名無しさんNGNG
select name, count(name) from clientlist
じゃダメなん?
0740デフォルトの名無しさんNGNG
>>739
そんなSQL文通るか?
0741デフォルトの名無しさんNGNG
>>740
ttp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_kj06.htm
0742735NGNG
>>736
無償版は容量上限1GBがちょっとツライですが
小さいものなら使えそうですね。
ありがとうございますた。
0743デフォルトの名無しさんNGNG
>>741
それは group by 品番だから通るのであってだな…まぁいいや、好きにしろや
0744デフォルトの名無しさんNGNG
ttp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_kj04.htm
こっちみるとできそうなことは書いてあるね。実際どうだか知らんけど。

・問い合わせ件数(照会件数)を引き取るには、次のようにする。
select
キー,
データ1,
データ2,
データ3,
count(*) 件数
from sak.テストm
where キー like 'a%'
order by キー
;
0745737NGNG
ども、皆様いろんな意見ありがとうございました。

とりあえず、select count(*) from ptlist
なんてのもやってみたんですが、counetをGetFieldした時点でエラ−になってしまいました。
PostgreSQLでは通るので、Accessの仕様なのかもしれませぬ。

とりあえず、ひとなめしてレコード数把握してから処理するようにいたします。

ありがとうございました>ALL

0746名無しさん@LinuxザウルスNGNG
>745
as指定してみたら?

select count(*) as recordcount from table

で、recordcountフィールドの数値型の値を取得する。
SQLの標準的な構文だから、Access JETでも動くよ




0747デフォルトの名無しさんNGNG
素直に DataAdapter を使えば、Fill メソッドの戻り値で取得したデータ件数が分かるよ。

DataReader なら、どのみち消化ホース戦法で読まなきゃならないんだから、ついでにカウントしていけばいいし。
0748デフォルトの名無しさんNGNG
Bitmap上にAnd演算で四角を描画したいのですが、
いまいちよくわかりません。
GraphicsとBrush周りを見ていたのですが発見でき
ませんでした。
どのようにすればよいのでしょうか。
どなたかお教えください。よろしくお願いいたします。
0749デフォルトの名無しさんNGNG
>>748
BitmapをDIBで構築して直接And演算する。

または、And演算する値を含んだBitmapを構築してBitBlt。

または……他にも色々。
0750デフォルトの名無しさんNGNG
エクスプローラのフォルダツリーを実現したいのですが、
なにか良い方法がありますでしょうか。

最初、System.Environment.GetFolderPathや、
DirectoryInfoを利用して、自力で書いていたのですが、
いまいち苦労が報われませんでした。
悲しい・・・
0751デフォルトの名無しさんNGNG
上の方法の挫折点は、
・ツリービュー上で、XPスタイルのアイコンを綺麗に表示し切れなかった。
・デスクトップ階層のマイドキュメント等のアイコンを取得出来なかった。
・マイコンピュータのフォルダ一覧を取得できなかった。
等などです。

OSはWinXPです。
0752デフォルトの名無しさんNGNG
>>751
標準でないフォルダのアイコンとかそういったフォルダの個別の情報は各フォルダのDesktop.iniに入っていたような気がする。
というかこのあたりは完全に.NET Frameworkではなく、
Win32の領域なのでここじゃなくて↓あたりで聞いたほうがいいんじゃね?

Win32API質問箱 Build19
http://pc5.2ch.net/test/read.cgi/tech/1084697545/
0753デフォルトの名無しさんNGNG
>>752

たしかに・・・

アイコンはテーマとか絡んでくるんですよね。
Shell32.dllあたりをつかってフォルダツリーをそのまま
簡単に貼り付けることが出来たらよいなとか思ったので
すが・・・
0754デフォルトの名無しさんNGNG
>>753
shell32.dllを使うとはどのような使い方をさしているかが疑問だが...

Interop.Shell32.dllから全てのItemを取得できるはずだが。
ただしアイコンはAPIを使わないと無理だけど。
0755デフォルトの名無しさんNGNG
アイコンを取得する場合、SHGetFileInfoあたりを使用することになると思うが、
Pathからでは、全てのアイコンを取得できるわけでないことに注意。
もしどうしてもITEMIDLISTを使用したいなら、自前でやらないと無理じゃないかな。

あとツリーコントロールを使うという話だけど、
SYSICONINDEXを使用することを考慮している?
0756デフォルトの名無しさんNGNG
もしDelphi持ってたらそこらへんのソース付のコンポーネントあるんだけどね。
0757デフォルトの名無しさんNGNG
Delphi持ってるんで、ちょっとそっち方面から調査してみます
感謝!
0758デフォルトの名無しさんNGNG
>>757
SamplesタブにあるShellTreeViewというコンポーネントだよ
0759デフォルトの名無しさんNGNG
C++を長いこと使ってたんですけど、
一週間ほど本読んで今日はじめてVisual Studio で C#コーディングしてみました。
こんなに簡単にWinアプリがかけることに感激。
でも、本読んでわかったつもりになってたのにいざコーディングしてみると
変数の初期化とかclass/structあたりのC++との違いに随分とまどいました。
でも、どう考えてもC++よりこちらの仕様の方がbetterですね。
ただsafeコードではポインタを明示的に使えないので、なんか、もどかしい。
ポインタが使えないことに慣れるのは相当時間がかかるかも?
0760デフォルトの名無しさんNGNG
>>759
何が言いたい??
0761デフォルトの名無しさんNGNG
感激。
もどかしい。
慣れるのに時間かかりそう。
0762デフォルトの名無しさんNGNG
ポインタマンセー
0763デフォルトの名無しさんNGNG
ポインタ最高
0764デフォルトの名無しさんNGNG
>>759と>>762-763を総合すると

ポインタを隠蔽しつつも、
必要に応じてunsafeでポインタを使えるC#最高でマンセー

ということか。


>>759
そのうちdeleteやdelete []を使う必要のないことが、ポインタを使用できないもどかしさを忘れさせるさ。
0765デフォルトの名無しさんNGNG
>>764
deleteをdelegateと読み間違えて え? と思ってしまった。
0766デフォルトの名無しさんNGNG
C#の話ではないんだが。
ListViewを先に作ってそのあとでPanelを作り、
Panel.Dock=Top、ListView.Dock=Fillにすると
カラムヘッダが表示されなくなる。
両者の作成後にTabIndexを変えてもだめ。
Panel以外のコントロールでは起こらない。
これって、作り直さずにどうにかする方法はないかい?
0767デフォルトの名無しさんNGNG
>>766
TabIndexではなくz-indexだとは思うが、
それでもうまくいかない場合があってダミーの別コントロールフォームに切り取り、貼り付け、
それを元のフォームにコピペでうまくいったことがあった。
ただしPanelではない。
0768デフォルトの名無しさんNGNG
TabIndexってタブストップの順番決めてるだけで、前面背面には関係ないんじゃ?
this.Controls.Addの順番で決まるから、それを入れ替えないとダメなのかも。
0769デフォルトの名無しさんNGNG
あ、VSのフォームデザイナの話なら、対象のコントロールで
右クリして「最前面に移動」とかで解決されない?
0770766NGNG
>>767-769
レスありがとう。>>769の方法で一発だった。
いろいろ試してもうまく行かないわ、全然関係ないクラスで
解決できるとかいうレスのつく夢を見るわ。助かった。
0771デフォルトの名無しさんNGNG
.NETでWebサービスを呼び出すときに関する質問なんだが、ここでいいのかな?

とある自作クラス(A)を返すWebサービスのメソッドがあり、クライアントから呼び出してみると
とりあえずきちんと戻ってくるように見えます。
しかし、返されたクラス(A')は実はパブリックプロパティがフィールドとして返されてしまっていて、
パブリックプロパティが必要なDataGridなどでそのまま表示できないのです。

こういうケースの場合、クライアント側で明示的にクラスAにキャストするなどの手順が
必要になってしまうのでしょうか?
それとも、何らの別の方法で回避できるのでしょうか?

どなたか、教えてくださーい!
0772デフォルトの名無しさんNGNG
複数のテキストボックスで内容を共有する事は出来ますか?
たとえば一つのテキストボックスで内容を変更したら他もそれに変わるとか。

それぞれのテキストボックスで変更のイベント拾って他にコピーとかは何かスマートじゃない気がして、
他にいい方法ないか知ってる方いましたら教えてください。
0773デフォルトの名無しさんNGNG
それより、なんでそんなことする必要があるのか気になる。
0774デフォルトの名無しさんNGNG
>>773
タブを使う関係で、複数タブページに同じ入力項目があるんです。
0775デフォルトの名無しさんNGNG
だったら、タブが変わる直前で、変わる前のタブにあるコントロールからデータを拾ってくるとか?
0776デフォルトの名無しさんNGNG
>>773
それより、なんでお前がこの世にいるのか気になる。
0777デフォルトの名無しさんNGNG
>>772
タブの外にテキストボックスを作成。
テキストボックスを最前面に移動。
Form_Loadでそのテキストボックスの座標を本来に位置に移動。

試してないからできるかどうかはシラネ。
0778デフォルトの名無しさんNGNG
>>772
それはあまり一般的なタスクとは言えないので
備え付けの機能でスマートには出来ないよ。

>>775のやり方かいっそテキストボックスの親を
すげ替えてテキストボックスを使いまわすとか。
0779777NGNG
試してみたら>>777この方法でできたぞ。
やってみ。
0780デフォルトの名無しさんNGNG
タブによって出したり出さなかったりしたいならVisible変えれば無問題。
0781772NGNG
>>775,777-780 即レスサンクス
やっぱ何かしらのイベントで拾うなり使い回すなりしなきゃなんないのね。

777の方法だけど、その方法だとドッキングはおそらく使えないよね?
だったら775みたいなやりかたになると思うんだけど。
0782772NGNG
>>777
色々実験してもらってありが�d
0783デフォルトの名無しさんNGNG
>772
おまいの理想は分かるが、それぐらいはデータコピーしとけ。人生は短い。
0784デフォルトの名無しさんNGNG
ドッキングできるよ。
0785デフォルトの名無しさんNGNG
同じであるものを複数用意するのはバグのもとだね。
0786デフォルトの名無しさんNGNG
内容を共有させたい複数のテキストボックスを、同一のソースにデータバインドすれば簡単。
ただ、データソースはDataTableか配列である必要があるけど。
0787772NGNG
>>786
DataTable(dt)を作って、それに列をたとえば"Body"って設定。
そのDataTableに行を追加したら、

TextBox.DataBindings.add("Text",dt"Body");
TextBox2.DataBindings.add("Text",dt"Body");

ってな流れになるのかな?
試しにやってみてるけど
TargetInvocationException
が出てしまう。

いまいちまだよく分からんからまだ途中だけど、
とりあえず貴重な情報をありが�d
0788デフォルトの名無しさんNGNG
エクセルに画像を貼り付けるのにはどうすればいいんでしょう?

((Excel.Pictures)xlsheet).Insert(@"C:\p.bmp",Type.FilterName);
これだとそのキャストは駄目だと言われるんですが。
わけわからん状態です(/-;
0789名無しさん@LinuxザウルスNGNG
>771
Webサービスで渡せるクラスは、WSDLで表現できる
ものに限られるはず。
ふつうは受け渡しするのはデータだけだね。
(受け取ってから、クライアント側でインスタンス化
したクラスのプロパティにsetするとか)

クラスの実装そのものをやりとりするなら
リモーティングかな? その場合.NET からしか呼べなく
なるので、意味合いが変わってくるけど。
0790788NGNG
できちゃった。
へげしく勘違い。
0791デフォルトの名無しさんNGNG
成功したソースくらい張れよヴォケ
0792デフォルトの名無しさんNGNG
PictureBoxを透明にする方法がわかりません。
BitmapにMakeTransParentで透明色を設定するのは分かったんですが、
PictureBoxが透明にならないせいで、後ろのコントロールが塗りつぶされてしまいます。

PictureBoxを透明にする方法を教えてください。
0793デフォルトの名無しさんNGNG
コントロールそのものって透明にできたっけ?
できたとしたら貼ってある画像まで見えなくなると思うんだけど。

PictureBoxにしないでPanelにしたらどう?
0794デフォルトの名無しさんNGNG
Panelを透明にする方法も見つからないのですが・・・
0795デフォルトの名無しさんNGNG
.NET系はソースレベルで逆コンパイルできるから
EXE配布==ソース公開 と思ったほうがいいぞ。

せっかくC#にもなれてC#まんせーって感じだったのに
まともなリバースエンジニアリング対策ができない事がわかってやる気なくした。

難読化ぐらいはできるがデバッグ情報付で再コンパイルできるんだぞ
署名機能とかあるけど間単にはずせる。

ようはオープンソース派以外は.NET系は使わないほうがいい。
もしくはMSにどうにかしろとメールだすなりして対策されるまで使わないか、
せめて誰かエロい人が.NetFrameworkのコール隠すツールが作られて公開されるまで.NET系は使わない方がいい。
0796デフォルトの名無しさんNGNG
コピペ乙
0797デフォルトの名無しさんNGNG
>>794
Panelは最初から透過。
0798デフォルトの名無しさんNGNG
めためた塗りつぶされるんですが、コンパイル時に何か設定が必要なのですか?
0799デフォルトの名無しさんNGNG
>>797
そそそそーなの???
0800デフォルトの名無しさんNGNG
>>795
http://www.remotesoft.com/salamander/protector.html
とか
0801デフォルトの名無しさんNGNG
datagridコントロールのスクロールの挙動が変なんです。
実行時にマウスホイールでスクロールしていくと、選択された
行がビューから外れた瞬間にフォーカスがほかのコントロール
に飛んで、スクロールが効かなくなってしまいます。
いまのところ DataGridのScrollイベントでDataGrid.Select()
を入れて回避していますが、なんだか気持ち悪いです。
これって自分の環境だけでしょうか?
0802デフォルトの名無しさんNGNG
Bitmap内の内容を内部でスクロールさせたいんですが、どうすればいいでしょうか。

Graphics.FromImage(bitmap).DrawImage(bitmap, 10, 10);

では例外は投げられないものの何も変化が見られず、上手く行きませんでした。
0803デフォルトの名無しさんNGNG
RichTextBoxで、現在位置より後ろの改行位置を取得しようと思い

RichTextBox1.Find("\n",currentPos,RichTextBoxFinds.None);

と記述したのですが、"\n"と検索しても改行にかからないようです。
(currentPosは現在のカーソル位置です)
" "のようにスペースなら見つかります。
どのようにすれば改行位置を取得できるか教えて頂ければうれしいです。
どうかよろしくお願いいたします。
0804デフォルトの名無しさんNGNG
>>802
スクロールってのは、見えなくなった部分は削除してもいいってこと?
それとも、行ったり来たりするようなものにしたい?(RPGのマップみたいな)

前者なら、スクロールしたい量ぶんだけ他のバッファにコピーして、それから元に戻す。
後者なら、別に大きなBitmapを作って、表示したい部分だけを描画したりする。
0805デフォルトの名無しさんNGNG
つかさ、>>792ってもしかしてwinampのスキンみたいなことしたいわけ?
それならPictureBoxを再背面にするだけでいいと思うんだけど。
0806デフォルトの名無しさんNGNG
複数のコントロールを一括管理しようと思うのですが、テキストボックスや
ボタンオブジェクトではできたのですが、ピクチャーボックスがうまくいきません。

何かよい方法はありませんか?

// ArrayList l_picturefile = new ArrayList();
// l_picturefileに画像ファイル名

// テキストボックスはできる
ArrayList l_text = new ArrayList();
l_text.Add(this.Controls.IndexOf(this.textBox1));
l_text.Add(this.Controls.IndexOf(this.textBox2));
l_text.Add(this.Controls.IndexOf(this.textBox3));
for(int i=0; i<l_text.Count; i++) {
  this.Controls[(int)l_text[i]].Text = l_picturefile[i].ToString();
}

// ピクチャーボックスができない
ArrayList l_picture = new ArrayList();
l_picture.Add(this.Controls.IndexOf(this.pictureBox1));
l_picture.Add(this.Controls.IndexOf(this.pictureBox2));
l_picture.Add(this.Controls.IndexOf(this.pictureBox3));
for(int i=0; i<l_picture.Count; i++) {
  if(l_picturefile[i].ToString() != "")
    this.Controls[(int)l_picture[i]].Image = Image.FromFile(l_picturefile[i].ToString());
                    // ~~~~~~~ これが無い
}
0807デフォルトの名無しさんNGNG
>>806
> this.Controls[(int)l_picture[i]].Image = Image.FromFile(l_picturefile[i].ToString());

ControlsはControl型の配列だからImageなんてプロパティはないよ。
PictureBoxにキャストしてやらないと。

上ができたのはTextプロパティがControlクラスにもあるから。
0808デフォルトの名無しさんNGNG
>>807
こんな早朝に即レスサンクスです。
ヒント頂いたお陰でこれでうまく動きました。ほんとにありがとう。

System.Windows.Forms.PictureBox pb = (System.Windows.Forms.PictureBox)this.Controls[(int)l_picture[i]];
pb.Image = Image.FromFile(l_picturefile[i].ToString());

0809デフォルトの名無しさんNGNG
TextBoxってフォントサイズの変更はできないんですか?
あとメニューのフォントの変更方法もできれば教えてください。
0810デフォルトの名無しさんNGNG
>>809
>  TextBoxってフォントサイズの変更はできないんですか?
Fontプロパティがあるだろ。
Fontクラスはパラメータを変える場合はnewし直し。

>  あとメニューのフォントの変更方法もできれば教えてください。
MenuItemを継承したクラスを作ってオーナードロー。
0811771NGNG
>>789
うーん、やっぱりそうか...。クラスのシリアライズは簡単にできるのに
なんか面倒なんだな。


インターネット上でデータのやり取りが発生してしまうので、Remotingは
残念ながら難しいのです...。ご回答ありが�d。
0812803NGNG
いろいろやったのですが、やはりうまくいきません・・・
現在の行を取得するメソッドもないし
どうなってるんでしょう・・・
0813デフォルトの名無しさんNGNG
>>812
回避策として\rでFind。
0814デフォルトの名無しさんNGNG
>>789
同じようなネタでなやんでますた
thx!

別所で質問したが、レスなしなので
こちらに引っ越します。
って、他愛もない疑問ですが。。。

インターフェースの抽象メソッドを
クラスメソッドとして実装できないのは
なんででしょう。

継承の場合、クラスメソッドを
インスタンスメソッドでオーバーライドするのは
Javaでは言語仕様で禁止されてるらしいですが。。

初心者質問スマソ
0815デフォルトの名無しさんNGNG
>>814
インターフェースのメソッドをstaticメソッドとして実装する利点を聞こうか。
0816デフォルトの名無しさんNGNG
>>814
おかしな話ですが、インタフェースの方が
あとづけなので、メリットという認識はないです。

もともと1つしかなかった機能に
追加が入ったので、新しくクラスを作り
呼び出し元もパラメータも同一なので
インタフェースを作ろうとしたんです。
(STRATEGY。。。でいいのかな)

が、元のクラスも新規クラスも
クラスメソッドを実装していて
インタフェースを作れなかった。。と。

まぁでも、メリットと聞かれて考えてみると
ポリモーフィズムもできそうにないし
やっぱりおかしな話なのかも。
0817802NGNG
>>804
やりたいのは前者です。

なるほどやはり、一回の操作での実現は不可能で、
一度バッファを介さないと無理なようですね。
0818デフォルトの名無しさんNGNG
C# (.NET Framework) で動的リンク (DLL) を呼ぶ時は
DllImport あたりでできますが,

静的リンクな DLL を使う事はできるのでしょうか?
使えるのであればどのようにすればよいのでしょうか?

DLL 作成時にできるインポートライブラリ(.lib) をリンクする
必要があると思うのですが,それらが C# + .NET Framework で
でどのように実現したらよいのかわかりません.

ご存知の方,よろしくお願いします.
0819デフォルトの名無しさんNGNG
>>818
現状、ライブラリの静的リンクはむりぽ。
ライブラリは外部に、が.NET Frameworkの方向性だし。
0820デフォルトの名無しさんNGNG
>>819
静的リンクが無理,という事は現状の静的リンク DLL を使いたい場合は
それを呼ぶ動的リンク DLL をラッパとして書いて,それを
C# 側で DllImport する,という方法を取る,っていうのが
唯一の解になるのでしょうか?
0821デフォルトの名無しさんNGNG
>>820
言いたいことがいまいち分からないんだけど
DLLがあるなら直接dllimport書けばいいし、それが普通だと思うけど
なんでラッパが必要?
0822818 NGNG
>>821
>>820 は書き間違えました.すみません.

DLL はなくて,.lib(静的リンク形式な DLL) のみあり,
この .lib に存在する関数を C# から呼びたいのです.
VC++ だと .lib をリンクすれば呼べますよね?

これが C# からはできない,という事なので .lib にある関数を
呼ぶ DLL を VC で作って(ラッパ),そのラッパを C# から DllImport
するしか方法はないのかな,と思ったんです.

ちなみに,上記の .lib のソースはないので,これを,
dll にする事ができません.

私もよくわかっていない所があるので,ご指摘下さると
たすかります.
0823デフォルトの名無しさんNGNG
教えて君で申し訳ないですが、
テキストファイルで、
データ コメントの状態から、
データの部分だけを取り出すにはどうすればいいのですか?
教えてください。

例)
0.1   周期
500   周波数
10000  データ数

という、感じなのです。
よろしくオネガイシマス。   
0824デフォルトの名無しさんNGNG
>>823
質問が曖昧。
正規表現使うなりSplit使うなりSubstring使うなり。
それともStreamReaderからか。

>>822
ま、そういう流れになるだろうね。
//LIBしかないってどんなだろ。
0825822 NGNG
>> 824
.lib しか存在しないって事はありえない事なのでしょうか?
0826デフォルトの名無しさんNGNG
>>813
これってなんで\rで検索なのかにゃ。
同じようなことをやろうとして、\r\nで失敗、\nも失敗、\rだとうまく
いって、ん?と思ったんだけど。
0827デフォルトの名無しさんNGNG
>>826
ヘルプのFindの項目に
>メモ   文字列をパラメータとして受け入れる Find メソッドでは、
>    RichTextBox 内の複数行に含まれるテキストは検索できません。
>    このような検索を実行すると、値 -1 が返されます。
って書いてあるのが怪しいとにらんでる。
//んだが一文字の検索に複数行もないよなぁ。
//パラメータがchar[]でもやっぱ\nは見つからないし。

>>825
珍しい事ではあるだろね。
0828デフォルトの名無しさんNGNG
>>826
内部で\nでSplitかなんかしてる模様。
"aa\r\naa"に対して、"a\ra"でFindできた。
0829デフォルトの名無しさんNGNG
>>822
「静的リンクなDLL」とか言ってるから話がワケわからなくなってますよ。
しかもインポートライブラリとか話に挙がってるし。
それぞれの用語の意味が分かってないと思うんだけど。

単なるスタティックライブラリなら、ラッパしか無い。
DLL無しでインポートライブラリしかないなら、そんなの逆立ちしても動かしようが無い。
0830803NGNG
>>813
>>826
>>828
(・∀・)ムッハー!
できました!!本当にありがとうございます!
まさか復帰のエスケープシーケンスとは・・・
10年も前にCを覚えたときに見て依頼でした。
よかった!
本当に助かりました!
私もここでアドバイスできるように精進して頑張ります!
0831デフォルトの名無しさんNGNG
>>822
そういうときのための Managed C++ なのではないかと。
MC++ でラッパー作るの、簡単よ。
0832デフォルトの名無しさんNGNG
ブール型の変数の値をひっくり返すのに

a ~= a;

っていうやり方を見かけるけど、! 演算子を使うよりも効率良いのかな?
0833デフォルトの名無しさんNGNG
>>832
かわらん。書く人の癖。
0834デフォルトの名無しさんNGNG
というか~は単項演算子だから~=なんて書き方できないし、
それ以前に~はboolでは使えないし。
どの言語の話だか。
0835832NGNG
~ じゃなくて ^ だた
0836デフォルトの名無しさんNGNG
おちゃめさんめ。
0837デフォルトの名無しさんNGNG
false^falseはfalseだからa=falseのときa^=aしてもfalseなんだが。
0838デフォルトの名無しさんNGNG
どうでもいいが今時通常のコンパイル言語で、
効率考えて演算子変えるのは大抵あほだろ。
0839802NGNG
>>835
君ってチンカスだね
0840デフォルトの名無しさんNGNG
Perl# かとおもた。
0841デフォルトの名無しさんNGNG
コンパイル言語ってなに?
0842デフォルトの名無しさんNGNG
現在プログラム板にはHSP関連スレに凶悪な荒らしどもが住みついています。

・HSPに関係の無い話題でスレッドを上げまくる
・HSPオフィシャルサイトの住人を名指しで誹謗中傷する
・重複スレを乱立させる

などの荒らし行為を行っています。
みんなで団結してム板のゴミどもを追い出しませんか?

【HSP関連スレ】
【皆のレイプ魔】HSP初質P25【WWEヲタ=ハゲ】
http://pc5.2ch.net/test/read.cgi/tech/1086878505/
HSP>>>>>>>>>>>>>C=糞w
http://pc5.2ch.net/test/read.cgi/tech/1071899663/
今日もどこかでHSP初心者が質問ですP19
http://pc5.2ch.net/test/read.cgi/tech/1084089079/
HSPについて
http://pc5.2ch.net/test/read.cgi/tech/1085149790/
0843デフォルトの名無しさんNGNG
PaintEventArgs でフォームに描写した絵を
Bitmapクラス形式に保存することは可能でしょうか
0844デフォルトの名無しさんNGNG
不可能です|
0845843NGNG
ではGraphics.DrawLineとかで図を書いた後
保存するにはどうすればいいのでしょうか?
ヒントだけでもおしえてちょうだい

GraphicsState gs=g.Save();
を探すところでせいいっぱいです
0846デフォルトの名無しさんNGNG
うろ覚えだが、BitMapよりGraphicsつくってそれにかいてほんらいのGraphicsに転送
そのVitmapとすきかってに。
0847デフォルトの名無しさんNGNG
私にはこんなんしかおもいつけん。.NET Frameworkでいけるっけ?

void CopyForm() {
   const uint srccopy = 0xCC0020;
   Graphics fg = this.CreateGraphics();
   int w = (int)fg.VisibleClipBounds.Width, h = (int)fg.VisibleClipBounds.Height;
   Bitmap bitmap = new Bitmap(w, h);
   Graphics bg = Graphics.FromImage(bitmap);
   IntPtr bdc = bg.GetHdc();
   IntPtr fdc = fg.GetHdc();
   BitBlt(bdc, 0, 0, w, h, fdc, 0, 0, srccopy);
   bg.ReleaseHdc(bdc);
   fg.ReleaseHdc(fdc);
   bg.Dispose();
   fg.Dispose();
   bitmap.Save("hoge.png", ImageFormat.Png);
   bitmap.Dispose();
}
[DllImport("gdi32.dll")]
public static extern bool BitBlt(IntPtr destDC, int destX, int destY, int width, int height, IntPtr srcDC, int srcX, int srcY, uint rasterOp);
0848デフォルトの名無しさんNGNG
面白そうなの発見
http://mifki.ru/pcsharp/index.html
0849デフォルトの名無しさんNGNG
スプリッタをドラッグしてサイズを変えるとき、
コントロールの持つスクロールバーよりも
小さくできるようにするにはどうすればいい?
0850デフォルトの名無しさんNGNG
>スプリッタをドラッグしてサイズを変えるとき、
これはわかる。

>コントロールの持つスクロールバーよりも
ここで意味がわからん
0851デフォルトの名無しさんNGNG
構造体の配列を使うためにどう書いたらいいか教えてください。
C++だと
struct test{
int a[100];
int b[100];
int c
};
struct abc[100];
でよかったと思うのですが。
C♯だとどうかけばいいのでしょうか?
よろしくお願いします。
0852デフォルトの名無しさんNGNG
>>851

public struct Test
{
int[] a;
int[] b;
int c;
}

Test[] tests = new Test[]{};

この状態で a と b は null、c は 0 になるんだっけ




0853デフォルトの名無しさんNGNG
私の思い込みかもしれませんが、なにかC#からMicrosoft.VisualBasic以下の名前空間の
メソッド等にアクセスするのはタブーみたいな雰囲気があるような気がするんですが、
(C#でわざわざ苦労して書かなくても済むような便利なメソッドとか結構あるのに、使ってる人
私以外に見たことないから)C#からVBランタイム(もちろんVB.NETの)の機能使った場合に
何か弊害って考えられますか?
0854デフォルトの名無しさんNGNG
>>853
使い方と使用例を教えて
0855デフォルトの名無しさんNGNG
>>853
いまやってみたけど、VBCodeProviderとかいうのしか
でてこないけど。
サンプルコードきぼん
0856デフォルトの名無しさんNGNG
>>855
漏れも。もしかしてVC#じゃVBインスコされていないからダメとか?
0857853NGNG
>>854-855
あ、書き忘れた、というかこんなことわざわざ書くと
馬鹿にされるかなと思って書かなかったのですが、プロジェクトに
Microsoft Visual Basic .NET Runtimeの参照を追加しないと
VB.NETランタイムの機能へはアクセスできません。

どんな機能が使えるか、ってのはMSDNの
「Visual Basic ランタイム ライブラリのメンバ」って項目を
参照してもらうと概観がつかめるんじゃないかと思います。
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/vblr7/html/vaoriVBRuntimeLibraryKeywords.htm
0858デフォルトの名無しさんNGNG
C#の機能(というより標準のライブラリ範囲じゃない)と言う意味で、
あまりり依存するべきではないと言う感覚は分かるが、だから自分でわざわざ
同じような物を作るべきかと言うと、あまりそうは思わない(ま、場合に依るが)。

今後サポートされてる保証はないとか、CLR以外ではサポートされてないだろうとか
もあるが、そうなったときは依存しないように作ればいいし、今使えると分かっている
ものを使うのが特に悪いとは思わない。
※J#の機能を使うとかとはわけが違う。

標準のライブラリで同じことができるのなら無論そちらを使うべきだと思うが…
0859デフォルトの名無しさんNGNG
あ、書き忘れたけど後は好みの問題で、使うのが美しくないと思えば使わなければいい。
結局はそれだけの話。
多分俺は仕事でなら使うが、趣味のプログラムとかだったら使わない。
0860デフォルトの名無しさんNGNG
あと、ちょっとしたプログラムで簡単に書けることなら、あえて使ったりはしない。
そのためにごちゃごちゃ長いプログラムを書くぐらいなら、使う可能性はある。
0861デフォルトの名無しさんNGNG
Class1 というクラスの大きさ3の配列を作るとします。

Class1[] hoge = new Class1[3];

とやればいいのですが、それだとこの時点で Class1 の
インスタンスが生成されますよね?インスタンスを後から
生成したい、もしくはすでにあるインスタンスを参照させたいとき、
とりあえず配列を生成した時点ではすべての要素が
null を指すようにしておきたいのですが、

Class1[] hoge = {null, null, null};

のように null を3回書く必要があるのでしょうか?
これだと大きさ 100 の配列の時に激しくウザイです。
何かいい方法ありませんでしょうか?
0862デフォルトの名無しさんNGNG
そういう理由なら、なぜ配列変数を作成する段階で
配列のインスタンスまで作成する必要があるのか…

だいたい、上のコードと下のコードの結果が同じだと言う事、わかってる?
0863デフォルトの名無しさんNGNG
>>861
とやればいいのですが、それだとこの時点で Class1 の
インスタンスが生成されますよね?

されません。
0864デフォルトの名無しさんNGNG
>>853
854に同意。なにが便利なのか謎。
0865デフォルトの名無しさんNGNG
> Class1[] hoge = new Class1[3];
> とやればいいのですが、それだとこの時点で Class1 の
> インスタンスが生成されますよね?

されない。
C++とごっちゃにしてないかい?
0866デフォルトの名無しさんNGNG
>>865 え?されない?されないんですか?
俺、すごく勘違いしてました。

配列宣言するとインスタンス生成されるから
引数なしコンストラクタ必須なんだな、とか思ってた。

おっしゃるとおりずっとC++でした。
C++ で COM 書くのが仕事だったんですが、
今後は C# かなぁ、と思って、
昔作った COM コンポーネントを C# から参照して
遊んでいる最中です。
0867デフォルトの名無しさんNGNG
それくらい実際に動かしてみればわかるだろ。
0868デフォルトの名無しさんNGNG
>>866
確かにインスタンスが作られる。
しかし君は何をnewした?
クラスそのものではなく、そのクラスの「配列」(Arrayの派生クラス)をnewしたんだ。
つまりClass1[]型という「配列のインスタンス」が生成されたのさ。

構造体だとまたちょっと違うんだけどな。
0869853NGNG
>>858
レスどうも。
やっぱり取り合えず将来VSがバージョンアップしたときのソースコードの
流用(?)ってことを考えなければ現時点で特に問題はないわけですよね。

>>868
よけいなお世話かも知れないけど、それってそんなにもったいを付けて
書くほどのことではないんじゃ?VB厨の私がみてもちょっと。。それに
>「構造体だとちょっと違う」
これは間違っているような。。
0870デフォルトの名無しさんNGNG
確か全角カナを半角カナに変換する関数とかはVB.NETにはあるが
C#では自作しないとなかったりしたような。
0871851NGNG
>852
レスありがと〜

定義はできたみたいですが、値を入れることができないです_| ̄|○|||

tests[0].a[0]=0;とかできないみたいで(つДT)

値の入れかたもできれば教えてください。
初心者でゴメンナサイ
0872デフォルトの名無しさんNGNG
>>871
tests[0] がヌルリ
0873デフォルトの名無しさんNGNG
>>871
ついでに、aがpublicじゃない。
0874デフォルトの名無しさんNGNG
>>871

public struct Test {
int a[100];
int b[100];
int c;
}


Test[] tests=new Test[100];

for(i=0;i<100;i++)
tests[i]= new Test;
0875デフォルトの名無しさんNGNG
盛り上がってるとこ悪いが、言っちゃっていい?


            そんな構造体使わずにDataSet使え。



その方が楽。
0876デフォルトの名無しさんNGNG
>>875
構造体はC#の基本事項だからまずこれを覚えないと意味無いだろ?
お前は九九を覚えずして大学の数学でもするつもりか?
0877デフォルトの名無しさんNGNG
「DataSet=DataGridのためだけのもの」ではない。
内部でDBみたいなデータ管理するなら使わなきゃ損。


public DataSet ds;   // データセット
public DataTable dt;  // テーブル
public DataRow[] dr;  // 検索結果

private void Form1_Load(object sender, System.EventArgs e) {
  ds = new DataSet("DT_TEST");
  // テーブル作成
  ds.Tables.Add("TEST_1");
  dt = ds.Tables["TEST_1"];
  dt.Columns.Add("COL_1", typeof(string));
  dt.Columns.Add("COL_2", typeof(int));
  // データ追加
  dt.Rows.Add(new Object[] { "hoge", 12345 });
  dt.Rows.Add(new Object[] { "moge", -9876 });
  // データ書き換え
  dt.Rows[0][@"COL_1"] = "hage";
  // データ検索
  dr = dt.Select("COL_1='hage' AND COL_2>=100", "COL_1 ASC"); // 検索条件,ソート条件
  // dr.Length = ヒット件数
  // 検索結果 dr[n][m] または dr[n]["name"]
}
0878デフォルトの名無しさんNGNG
まぁToStringをオーバーライドしたくなるときもあるだろうし?
0879デフォルトの名無しさんNGNG
>>869
何言ってんだかさっぱり分からないんだが…構造体を理解してないのでは…
まあ、構造体を自分で使う機会は少ないかもしれないが、
インスタンスの生成とかその辺の動作に関してはきちんと理解しとくべきだろう。
VB厨とかいってるが、VB.NETでも同じだぞ。
VB.NETでインスタンスとか全然理解せずにプログラムを書くやつがいるが、
はっきり言って大迷惑だ。
0880デフォルトの名無しさんNGNG
>>877
勉強になった。thx

> 「DataSet=DataGridのためだけのもの」
ずっとこう思ってたよorz
0881デフォルトの名無しさんNGNG
>>877
ふーんすごいね
0882デフォルトの名無しさんNGNG
>>875 = >>877 = >>880

自作自演してまで優位になりたいのか…
0883849NGNG
>>850
>>コントロールの持つスクロールバーよりも
>ここで意味がわからん

やっぱわかりにくかったな。
たとえばフォームの左右にテキストボックスを2つ配置して、
スプリッタで区切る。
Dockは片方を左(or右)、もう片方をFillに設定。
この場合、スプリッタを左右のどちらかにめいっぱい移動させても、
いずれのテキストボックスの幅は、それぞれの持っている
スクロールバーより小さくならない。
ほかのソフトだとこんなふうにならないんだけど。
0884デフォルトの名無しさんNGNG
動的にカラムを追加するような場合はDataTableも
便利だけど、型にあいまいさが残るのが嫌だな。

まあそれならArrayListも気持ち悪いわけで、
ArrayListのソースをパクりつつ型付けした動的配列を
作っちゃったよ。。。

0885デフォルトの名無しさんNGNG
>>883
Splitter.MinSize, Splitter.MinExtra
0886デフォルトの名無しさんNGNG
わざわざ全部自作しなくてもCollectionBase継承して作ればいいんでないの?
DataTableにしたってスキーマ定義して型指定されたDataSet使えばいいんだけど。
0887849NGNG
>>885
できた。ありがとうよ。
スプリッタ自体にメンバがあったとは盲点だった。
0888デフォルトの名無しさんNGNG
VS.NET2003でC#を使っているんですけど
ちょっと困った現象に当たっています。

System.Windows.Forms.DataGridのインスタンスで
Itemプロパティだけ使えません。
インテリセンスにもこのプロパティだけ候補に出ませんし
無理やり書いてもビルドエラーになります。

なにかマトモな原因がありそうでしょうか?
0889デフォルトの名無しさんNGNG
インデクサって書いてあるだろ…
0890888NGNG
>>889
了解。しょうもないことでスマソ
0891デフォルトの名無しさんNGNG
>>876
なに必死になってんだw プログラムと数学は関係ない。
プログラムは基礎よりも結果が大事。
要するに、楽ができて動いたらOKなのさ。
応用から遡って基礎を学ぶ。そんぐらい大人なら分かれよ
0892851NGNG
レスありがと〜
なんか、別の情報もあるようで、感謝感謝です。
そっちの方も使ってみますね〜
0893888NGNG
またまたですいませんが、
WindowsフォームのDataGridにセル単位で
値を(コードで)代入するのは無理なのでしょうか?
DataSetなどを使用してデータバインドするしか
ありませんか。

 m_dataGrid[i, 0] = strName;

のようにするとエラーで落ちてしまいます。
0894デフォルトの名無しさんNGNG
>やくざ
使い方を調べてから試そうよ…
0895デフォルトの名無しさんNGNG
ほれ、875ちゃんと答えてやれ。
0896デフォルトの名無しさんNGNG
>>876
第1文には激しく同意するが、第2文は…「大学の数学に九九は必要ない」と思う。
0897デフォルトの名無しさんNGNG
ウィンドウタイトルのX(閉じる)をdisableにする方法ってありますでしょうか?
minimize,maximizeはできるんですが、Closeだけってのが無くてなやんでおります。
0898デフォルトの名無しさんNGNG
ImageList 内の任意のIndexで表される画像を書き換える、または他の画像と差し替えることはできますか?
0899デフォルトの名無しさんNGNG
>>897
xボタンだけなくして、最小化・最大化ボタンは残したいって事なら無理。
そんなウィンドウ見たことないし。
ボタンを無効化するならClosingイベントでCancelプロパティを操作する。

>>898
普通にできるけど。
0900デフォルトの名無しさんNGNG
>886
CollectionBaseで型チェックすれば、たしかに型保証
された動的配列になるね。
でも実行時じゃないとバグが分からないし、値型なら
ボクシングコストがかかるのが嫌だ

0901897NGNG

>899
 やっぱしそでつか。
 ControlBox = Falseにするとことごとく消えちゃうもんで悩んでたりもするんですが。
 とりあえず、別の方法考えてみます。

 ありがとうございました。
0902デフォルトの名無しさんNGNG
>>897
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/142closebtn/closebtn.html
0903897NGNG
>902

 サンクスです。
 APIからやるんですね。裏技クサ〜〜

 もう、ここ数年32APIなんてたたいた事ないや・・・・・SDKの頃がなつかしひ
0904851NGNG
すみません、教えてもらった方法でやってみたのですが、エラーがでます(つДT)
public struct Test {
int a[100];
int b[100];
int c;
}
Test[] tests=new Test[100];

for(i=0;i<100;i++)
tests[i]= new Test;

↑だと、コンパイル通らないです。構造体の宣言で、サイズは無理なのでしょうか?
で、↓の様に変更すると、
public struct Test{
public int [] x;
public float [] y;
public int l;
}
group[i]= new Group;←の部分で、下のようなエラーがでます。
新しい式は型の後に丸かっこ ()、または、角かっこ [] を必要とします。
さらに、エラー部分を下のように変えると、
group[i]= new Group[512];
型 'winapp.Group[]' を型 'winapp.Group' に暗黙的に変換できません。 というエラーがでます。

何処がだめなんでしょうか?教えてください。
オネガイシマス
0905デフォルトの名無しさんNGNG
指数演算の方法がわかりません
^ は違うみたいだし
Math にもなかった
どうすればいいのでしょうか?
0906851NGNG
あ、型とか変数名が変わってるのは気にしないでください_| ̄|○|||
変更したのそのまま書いちゃった(つДT)
0907デフォルトの名無しさんNGNG
>>904
コンストラクタはメソッドのように()をつける。
0908デフォルトの名無しさんNGNG
>>905
Math.Pow
0909デフォルトの名無しさんNGNG
>>904
Groupなの? Testじゃないの?
まあ、Testでいくとして、

>構造体の宣言で、サイズは無理なのでしょうか?
無理。

で、下の例の場合、

Test[] tests = new Test[100];

↑これだけだと、Testの配列が出来ただけ。
まだ、それぞれのメンバx,y とかはnullなわけ。
で、それを埋めてやる必要がある。

for(int i=0; i <100; i++){
tests[i].x = new int[100];
tests[i].y = new float[100];
}

とかやって。
0910デフォルトの名無しさんNGNG
>>998
ありましたかorz
すいませんでした
0911デフォルトの名無しさんNGNG
>>904
そのくらい本読むなりWebちょっと調べりゃあわかるだろ。
世の中ほんとにどーしょーもない人間がいるんだな
0912851NGNG
ども、みなさんありがとです。
C♯で検索しても全然HITしないのは私だけなのかなー
参考書は買いましたが、構造体の配列の仕方は載ってないですし、
structの中でnewしたらだめ→じゃあ何処でどうやってーってのはなかなか出てこないですよ。
初めてやる人はわからんと思うけどなー
改めて感謝です〜
であ、ノシ
0913デフォルトの名無しさんNGNG
>>912
>  C♯で検索しても全然HITしないのは私だけなのかなー
googleなら、半角でC#。
C♯だと全半角が分けられて、かつ♯は記号として無視されてしまう。

>  参考書は買いましたが、構造体の配列の仕方は載ってないですし、
>  structの中でnewしたらだめ→じゃあ何処でどうやってーってのはなかなか出てこないですよ。
個人的に、structはnewするときに必ずパラメータを伴って初期化すべきだと思うんだよな。
x, yを指定しないPoint構造体に意味はない、と。
0914デフォルトの名無しさんNGNG
>>904
group[i]= new Group();
じゃないの?

あんた、四則演算習わないうちに因数分解やろうとしてる感じ。
早く上達したい気持ちは分かるが、プログラム言語は基礎からゆっくりと覚えていくつもりで
かかったほうが身につきやすい。そもそも学校の授業だってその日一日で全部覚えるのは
無理なんだからさ。

ま、時間が無いというのなら、今すぐキッパリあきらめろ。
偉そうだが現実は厳しいのよ
0915デフォルトの名無しさんNGNG
>>912
まず、JavaやC#で扱われる「オブジェクト(インスタンス)」「new」「参照」「ヒープ」「スタック」「GC」
この6つの絡み合いについて徹底的に調べてみ。参考書にも載ってるやろう。
俺も相当苦労したから、お前の気持ちは分かる。
0916デフォルトの名無しさんNGNG
Java慣れした俺にとってアクセサメソッドは無用の長物。
どうもフィールドを直接扱う感じが抜けきれないから、生理的にダメ
0917デフォルトの名無しさんNGNG
そうか、大変だな。
0918デフォルトの名無しさんNGNG
VBやMacromediaのような感じのMDIタイプ?のアプリケーションを作ってみようと思っているのですが
絵を子フォームに描画するようにかいても実行したときにちゃんと表示されません
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g = e.Graphics;
Pen p = new Pen(Color.Red);
Brush b = new SolidBrush(Color.Blue);
g.FillRectangle(b,50,50,50,50);
g.DrawEllipse(p,75,75,50,50);
}
このコードとまったく同じものを単一フォームのものに追加すると楕円と四角が表示されます
MDIタイプのほうでは,フォームは複数個表示されているのですが,絵が描画されません
なぜでしょうか・・?
ご教授いただけましたら幸いです.
0919デフォルトの名無しさんNGNG
>>918
>  private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)

のForm1インスタンスが不明だから何とも言えんが、これ親フォームじゃないのか?
0920デフォルトの名無しさんNGNG
>>919
すみません,その”Form1_paint"というのは子フォームのpaintイベントで自動的に追加したもので
子フォームの名前になっています.
今は親フォームは便宜的にFormParentという名前にしていて,その下にForm1,Form2,Form3,Form4という
子フォームを追加しております.
で,今回はForm1のコードに先ほどのpaintイベントの部分のコードを追加しました
分かりにくくて申し訳ありません
0921デフォルトの名無しさんNGNG
こんにちは。

ファイルのドラッグアンドドロップをアプリ-Explorer間で自由に
行いたいと考えています。
ファイルを受け取る側は、Tips等も多く、簡単に出来たのですが
逆が全くわかりませんでした。

どなたかお教えください。よろしくお願いいたします。

0922デフォルトの名無しさんNGNG
>>921
ttp://dobon.net/vb/bbs/log3-4/2064.html
簡単な……と思いきやファイル名がstring[]である必要があったか。
0923デフォルトの名無しさんNGNG
>>920 以下のコードで真っ当に動いたな。mdi2をForm1のインスタンスにしても問題なし。
public class Form1 : Form {
   public Form1() {Paint += new PaintEventHandler(Form1_Paint);}
   public void Form1_Paint(object sender, PaintEventArgs e) {
      e.Graphics.FillRectangle(new SolidBrush(Color.Blue),50,50,50,50);
   }
}
public class Form2 : Form {
   public Form2() {Paint += new PaintEventHandler(Form2_Paint);}
   public void Form2_Paint(object sender, PaintEventArgs e) {
      e.Graphics.FillEllipse(new SolidBrush(Color.Blue),75,75,50,50);
   }
}
public class ParentForm : Form {
   MainMenu m = new MainMenu();
   Form1 mdi1 = new Form1();
   Form2 mdi2 = new Form2();
   public  F() {
      m.MenuItems.Add(new MenuItem("&C", new EventHandler(C)));
      Menu = m;
      IsMdiContainer = true;
      mdi1.MdiParent = this;
      mdi1.Show();
      mdi2.MdiParent = this;
   }
   void C(object o, EventArgs e) {
      if (mdi1.Visible) mdi1.Visible = !(mdi2.Visible = true);
      else mdi1.Visible = !(mdi2.Visible = false);
   }
   public static void Main(string[] args) {Application.Run(new ParentForm());}
}
0924デフォルトの名無しさんNGNG
>>923
ありがとうございます.
頂いたサンプルでは動作するのを確認させていただきました.

が,同様にプログラムしても自分のものでは動かない・・.
すみません,もう少し試してみます.
parentの下に4つのFormが同時に表示されて,そのうちのひとつに絵を描画したいだけなんですが・・T_T
0925デフォルトの名無しさんNGNG
>924
画面系は慣れるまでそんなもんだ。
描画されるはずなのに、なぜか描画しない。ウィンドウの親子関係とかとか、WindowModeとか。画面の端っこに描画したり関係ないと思われるウィンドウに描画してみたり体で覚えるべし。
0926デフォルトの名無しさんNGNG
メールの送受信を行いたいんですが、参考になるプログラムはありませんか?
0927●NGNG
>926
ttp://www.hi-ho.ne.jp/babaq/basp21.html
0928デフォルトの名無しさんNGNG
>>925
ありがとうございます.
たった今原因が分かりました.
他のサイトのヒントを見て,PictureBoxを使わないとだめだろうと思って
FormいっぱいにPictureBoxをはりつけていたため,描画した絵が見えなくなっていたようです.
というか,PictureBoxいらないんですね・・.
0929デフォルトの名無しさんNGNG
>>928
PictureBoxのImageに描画するのも手だ。
保存が楽だし。
0930デフォルトの名無しさんNGNG
>>924
http://dobon.net/vb/dotnet/graphics/drawimage.html
0931デフォルトの名無しさんNGNG
>>930
最初はそこを見てやっていたんですが,表示されなくて詰まってしまったんです.
でも,もう一度試してみますね.

ありがとうございます.
0932デフォルトの名無しさんNGNG
csc /target:module foo.cs /doc:foo
でドキュメント作っても読めませんがどうすればいいんですか?
0933デフォルトの名無しさんNGNG
            _,;-"__l⌒l_゛'‐-;,
           /  (___  ___) ヽ
           ./     ノ 人 ヽ    ヽ
    __    ./    //  ヽ ヽ    .ヽ   / ̄\
  ./ ○ ヽ、 /    (__)  (_)    ヽ/  ○  \
/      \,,,--―――''''''''''''''''''''――-/        ヽ
..⌒‐-,,,,_  /:/ヽー―――-、,,__,,,,-―――:||  _,,;-‐''"⌒~~~
     .ヽ/::||::::::::::   (●)    (●)   ||/ヽ
      く ::||:::::::::::::::::   \___/    ||:::::::::ヽ
       ヽヽ:::::::::::::::::::.  \/     ノ_/
【ゴールデンレス】
このレスを見た人はコピペでもいいので
10分以内に3つのスレへ貼り付けてください。
そうすれば14日後好きな人から告白されるわ宝くじは当たるわ
出世しまくるわ体の悪い所全部治るわでえらい事です
0934デフォルトの名無しさんNGNG
>>932
> csc /target:module foo.cs /doc:foo
/out:foo.netmodule /doc:foo.xml

……なんでmoduleなんだろ……。
0935デフォルトの名無しさんNGNG
アプリケーションの設定ファイルをSettingというクラスにまとめ、
XMLにシリアライズしようとしたのですが、Fontが含まれていると
「型 Setting を反映中にエラーが発生しました。」
という旨のメッセージがでてシリアライズできません。

調べてみると、どうやらSoapというのを使うとシリアライズできる
みたいなんですが、単独のXMLファイルができてしまうようです。
Settingの他のメンバと同じファイルに書き出したいのですが
どうすればよいでしょうか?
アドバイスがいただけましたら、どうかよろしくお願いいたします。
0936デフォルトの名無しさんNGNG
J#ってキモいな
JAVAっぽく見せといてJAVAじゃないし
0937935NGNG
あっ、Fontが含まれている、というのは
SettingのパブリックフィールドにFont型のメンバがある
という意味です。
わかりにくくてすみません。
0938デフォルトの名無しさんNGNG
>937 簡潔なコードとエラーの種類書け。それだけじゃわからn
0939デフォルトの名無しさんNGNG
Fontは内部でstring形式で保持して、出し入れにFontConverterを使うと良いらしいよ。
0940名無しさん♯NGNG
最近流れが速いんで、早めに立てときますた。

次スレ
http://pc5.2ch.net/test/read.cgi/tech/1087297504/l50
0941デフォルトの名無しさんNGNG
interfaceの中に
delegateは入れられないのに、
eventは入れられるのはなんでですか????

用途に応じたdelegateとeventの使い分けは出来ているつもりだけど
いまいち本質的な仕組みの違いが飲み込めません。
0942デフォルトの名無しさんNGNG
>>941
>  interfaceの中に
>  delegateは入れられないのに、
>  eventは入れられるのはなんでですか????

おい、delegate宣言はclass宣言とレベル的に同じだぞ。
//駄目な例
interface Hoge {
   class Foo {...}
   delegate void Bar(); // class Bar : MulticastDelegate {...}を暗黙に宣言
}

//これなら問題ない
delegate void Bar();
interface Hoge{
   event Bar foo;
   Bar bar {get; set;} // デリゲートのプロパティなら問題なし。普通やらないが
}

基本的にイベントは通知のために使うわけだが。
意味的にはイベントはデリゲートのラッパ(プロパティに近い。+=と-=しか受け付けないという制限はあるが)。
0943851NGNG
すみません、またつまずいてしまいました_| ̄|○|||

構造体自体はめでたく、使用することができるようになったのですが、
関数別にコードファイルを分けたときに、構造体のデータを受け渡したいのですが、
できないです。

別のコードファイルのクラスをcodefile1としてます。
codefile1 cf1 = new codefile1();
cf1.function1(tests);

構造体は下のようになってます。
Test [] tests =new Test[100];
struct Test{
public int [] a;
public int [] b;
}
フォームからボタンを押したら、別のファイルに書いた関数に構造体のデータを受け渡したいのですが、
何がだめなんでしょうか?教えてください。
同じファイルなら、普通に、function1(tests);で渡せるんですが(つДT)
関数はpublicで宣言してます。
0944デフォルトの名無しさんNGNG
>>943
何の事やら本気でさっぱり分からないんだが。

取り敢えずクラスの分割はC#2.0(次のバージョン)まではサポートしてないぞ。

それ以外なら取り敢えずさぼらずコード出せ。
0945デフォルトの名無しさんNGNG
なんつーかクラスそのものを理解できてなさそうな……。
0946デフォルトの名無しさんNGNG
>>943
いい加減に基本から勉強しなさい。
いくらなんでもそんなレベルの質問に答えるのアホくさいよ。
0947デフォルトの名無しさんNGNG
>>943
少しくらい自分で勉強しろよ。1から10まで教わろうってのか?
0948デフォルトの名無しさんNGNG
>関数別にコードファイルを分けたときに

クラス別にコードファイルをわけるべきなんじゃないの?あと別ファイルでは
正しく構造体の宣言をしてるのか?
0949851NGNG
C♯だと、別ファイルだとクラスを作らないとダメですよね?
で、仕方なくクラスを定義しました。
ソースはFormとcodefile1の2つだけで、
formからcodefile1に構造体のデータを渡すことがしたいのですが・・・。

クラスを分割しているわけではないはず。

やりたいのは、関数ごとに別ファイルにしたいということで、
現在はFormからcodefile1に構造体のデータを渡せない状態です。

プログラム自体初めてなので、かなり初歩でつまずいている状態です。
いい参考書や、webサイトなど紹介していただけると幸いです。

↑の文も見当ちがいなのかなあ
0950851NGNG
フォームのコードは
public struct Test
{
public int [] a;
public int [] b;
}

Test[] tests = new Test[100];
private void button1_Click(object sender, System.EventArgs e)
{
for(int i=0;i<100;i++)
{
tests[i].a = new int[100];
tests[i].b = new int[100];
}
codefile1 cf1 = new codefile();
cf1.function1(tests);
}
です。
0951851NGNG
コードファイルは
呼び出してるだけです。
using System;

class codefile1
{
public struct Test
{
public int [] a;
public int [] b;
}

Test[] tests = new Test[100];
public void function1(Test[] tests){

}
}
0952デフォルトの名無しさんNGNG
>>949
とりあえずこれだけ助言な。

> やりたいのは、関数ごとに別ファイルにしたいということで、

そういうことはしないんだ。しなきゃいいから。
0953デフォルトの名無しさんNGNG
class codefile1
{
public void function1(Formのクラス名.Test[] tests) {
}
}

だけでよい。まあ悪いこと言わないから一から全部勉強しなおせ。
0954デフォルトの名無しさんNGNG
初心者スレなかったっけ?
0955デフォルトの名無しさんNGNG
そうだね。すれ違い。
0956デフォルトの名無しさんNGNG
>>952
やたら的確だな。なんか面白い。
0957851NGNG
レス、どうもありがとです。
勉強しなおすほど、勉強してないのでこれからがんばろうと思います。

初心者スレがあったんですね・・・
すれ違いだったようで、申し訳ないです。
0958デフォルトの名無しさんNGNG
appreciate⇔appliciate??
0959デフォルトの名無しさんNGNG
>>942
> おい、delegate宣言はclass宣言とレベル的に同じだぞ。

誰もdelegate「宣言」とは言っていないと思われ。


0960デフォルトの名無しさんNGNG
>>959
言ってないが、delegate宣言(というよりevent宣言)の意味を
勘違いしてると思われ。
0961デフォルトの名無しさんNGNG
クラスは「関数を入れるためのモジュール」って認識なんだろな…
0962デフォルトの名無しさんNGNG
なんでもかんでもdelegate使いたがるdelegate厨を何とかしてくれ。
0963デフォルトの名無しさんNGNG
degelate
0964デフォルトの名無しさんNGNG
delegateはおなか壊してる語感ですね
0965デフォルトの名無しさんNGNG
derogate
0966デフォルトの名無しさんNGNG
gerodate
0967デフォルトの名無しさんNGNG
JavaやC#のイベントモデル(ていうか詳細な仕様)が書かれた書籍・サイトとかあります?
イベントが発生したときどのような処理がJava、C#で行なわれているか知りたいです。

Javaの場合
リスナーとはComponentに存在するのか、それともどこかにリスナオブジェクトが存在するのか、
またはスレッドのようにnativeメソッドなのか等など。

どのような存在なのか知りたい!
0968967NGNG
すいません、上の内容は意味不明みたいですので放置でもいいです。
後は自分で調べます。
0969デフォルトの名無しさんNGNG
949は自動プログラミングとかCodeGeneratorのような
ものを実現しようとしていたんじゃないだろうか
それゆえクラス名がcodefile1であったり、
関数をあらわすクラスごとにファイルを
分けるという発想が生まれたのだろう

といってみるテスト
0970デフォルトの名無しさんNGNG
>969
いやBoostのような言語トリックを利用したメタプログラミングへの布石
0971デフォルトの名無しさんNGNG
どなたかご教授おながいします。

C#でメインEXE、それにcomでocxを乗せて、DBとのアクセス用にDLLが存在してます。
EXEからDLLのエクスポート関数GetHoge()をdllImportプロトタイプ宣言し、GetHoge()から可変長文字配列をマーシャリングしてます。
ここまでは良いんですが、その文字配列の内容をocxのAddHoge()に渡したいんですが、どのような手法がありますか?

ocxなんでプロトタイプ宣言してマーシャリングなんてできないし・・・。
クラスを渡す場合ならMarshal.PtrToStructure()を利用して、アンマネージコード用のポインタを取得しちゃえばよかったんですが。

エロイ人、助けてください。
0972デフォルトの名無しさんNGNG
>>967
どちらも本家にありますよ。
しかも日本語になってます。
0973971NGNG
細くです。
要はString[]の内容をocx側に渡したいんです。
配列の各要素String単体でしたら、Marshal.StringToHGlobalUni()を用いて、アンマネージコード用のポインタ値を取得できるので、
それをocx側のAddHogeに渡し、キャストすれば良いんですが・・・。
0974941NGNG
>>942
>>959-966

お答えいただきありがごうございます。
私の説明が足りなかったかも知れません。
「delegateは入れられないのに、 eventは入れられる」とは、

interface F { EventHandler h; }

はだめなのに、

interface F { event EventHandler h; }

はOKだということです。

>>942さんの言ってることは分かっているつもりなのですが、
なぜ上の例のような違いが起こるのか分かりません。
0975デフォルトの名無しさんNGNG
>>974
> >>942さんの言ってることは分かっているつもりなのですが、

分かってない
0976デフォルトの名無しさんNGNG
>>974
なぜどうしてもデリゲートのフィールドとイベントを同じレベルのものとして扱いたがるのか。

とりあえず>>942の最後の2行をどう解釈したのか語ってみてくれ。
0977デフォルトの名無しさんNGNG
ArrayListにClass(変数a,b,c)をAddしており、
そのArrayListから、a=A,b=Bが入っているものを見つけ
その変数cにCを代入するにはどうすればよいですか?
0978デフォルトの名無しさんNGNG
>>974
だからevent宣言の意味を勘違いしてるんだろ。

event宣言で重要なのはフィールド定義ではなくイベントの定義。
インターフェイスではフィールドは自動定義されず、イベントの定義のみになる。
イベントとはaddとremoveという、デリゲートを引数に取るメソッドの組を意味する。
0979デフォルトの名無しさんNGNG
>>977
Class(変数a,b,c)の意味が良く分からんがフィールドってことか?
そのとおりに書けばいいんじゃないのか?
何が分からんのか分からん。
0980デフォルトの名無しさんNGNG
質問の文章に第三者が問題を理解するのに十分な情報が含まれていないとことがしばしばあります.
このような状況で求められる極限的な推理を,私はしばしば「メタ推理」と読んでいます.
>>977
もうとてもとてもいい感じに足りてません.
0981デフォルトの名無しさんNGNG
俺は、「質問に質問しないと解決できない状況」と呼んでる。
0982デフォルトの名無しさんNGNG
メタ質問
0983デフォルトの名無しさんNGNG
膣悶
0984デフォルトの名無しさんNGNG
>>980
というか質問の中に回答が含まれているパターンだと思うが。

「そのArrayListから、a=A,b=Bが入っているものを見つけ
その変数cにCを代入すればよろしい。」
0985デフォルトの名無しさんNGNG
あ、ようやく理解できた。
class Class1 {
   public int a;
   public int b;
   public int c;
}
Class1 hoge = new Class1();
hoge.a = 10;
hoge.b = 20;
ArrayList list = new ArrayList();
list.Add(hoge);
list.Add(以下略);
int A = 10, B = 20, C = 30;
のlistの中からhogeを見つけ出してhoge.cに30を代入したいって事か。

……ありがとう984。その書き込みがなければ理解を放棄してた。
0986977NGNG
説明足らずで、すいません

class Class1 {
public string a;
public string b;
public string c;

Class1(string x, string y)
{
a=x;
b=y;
}

Class1(string x, string y, string z)
{
a=x;
b=y;
c=z;
}
}

ArrayList list = new ArrayList();

list.Add(new Class1(,"1","2"));
list.Add(new Class1(,"A","B"));
list.Add(new Class1(,"あ","い"));


こういう状況で、ここからlistに入っているClass1インスタンスのなかでa=A,b=Bのものを見つけて
そのインスタンスのcにCを代入するには、具体的にはどうすればよいですか?
0987デフォルトの名無しさんNGNG
>>986
foreachとif。
0988977NGNG
やっぱりそれしかないですか…
0989デフォルトの名無しさんNGNG
……どんなウルトラな手法があると思ったんだろう……?
0990デフォルトの名無しさんNGNG
あると思ったんじゃなくて、
自分の頭で「無い」と決め付けるのは
よくないと思ったんだろう。
0991971NGNG
自己解決できました。
スレ汚しスマソ。
0992デフォルトの名無しさんNGNG
埋めついでに解決策もかいといてほしーなー
0993デフォルトの名無しさんNGNG
C#.NETで開発しています。exeからdllを呼んでいてdllもC#で作っています。
dll内にステップインで入ってデバッグしたいのですが、入れるときと入れないとき
があります。何が原因でしょうか?
dllはグローバル アセンブリ キャッシュにインストールして使っています。
0994993NGNG
すいません。こちらは埋め立てのようなので他所へ行くことにします。
失礼しました。
0995デフォルトの名無しさんNGNG
埋め
0996デフォルトの名無しさんNGNG
うめとくか
0997デフォルトの名無しさんNGNG
宇目
0998デフォルトの名無しさんNGNG
このレス数にしちゃー、えらくじわりじわりと埋まっていくなここ
0999デフォルトの名無しさんNGNG
埋め
1000デフォルトの名無しさんNGNG
C#は不滅です!


……あと数年は。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。