ふらっとC♯, C#(初心者用) Part10
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/10/30(月) 16:30:52「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
0002デフォルトの名無しさん
2006/10/30(月) 16:32:40ふらっとC♯, C#(初心者用) Part9
http://pc8.2ch.net/test/read.cgi/tech/1157855247/
関連スレ
C♯, C#相談室 Part34
http://pc8.2ch.net/test/read.cgi/tech/1157549657/
0003デフォルトの名無しさん
2006/10/30(月) 16:33:12http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/
.NET Framework SDK (2.0)
http://msdn2.microsoft.com/ja-jp/library/ms310244.aspx
MSDN Visual C# Express Edition フォーラム
http://forums.microsoft.com/msdn-ja/ShowForum.aspx?ForumID=187&SiteID=7
Visual Studio ユーザーグループ
http://vsug.jp/
@IT Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
Insider.NET 会議室 ディレクトリ
http://www.atmarkit.co.jp/fdotnet/index/bbs/index.html
宇宙仮面の C# プログラミング / C# Programming
http://ukamen.hp.infoseek.co.jp/
WisdomSoft C#入門
http://wisdom.sakura.ne.jp/programming/cs/index.html
WisdomSoft Microsoft .NET入門
http://black.sakura.ne.jp/~third/system/msnet/msnet.html
どっとねっとふぁん
http://dotnetfan.org/
緑のバイク 初めてのC# 〜 覚え書き 〜
http://homepage3.nifty.com/midori_no_bike/CS/
どぼん!の .NET Tips
http://dobon.net/vb/dotnet/
.NET のつぼ
http://park16.wakwak.com/~mimi/dotnet/top.html
0004デフォルトの名無しさん
2006/10/30(月) 16:33:50http://www.borland.com/jp/products/csharpbuilder/index.html
Turbo C#
http://www.turboexplorer.com/csharp
.NET Framework 1.1 製品ドキュメント
http://www.microsoft.com/japan/msdn/library/ja/netstart/html/sdkstart.asp
0005デフォルトの名無しさん
2006/10/30(月) 16:44:51乙
0006デフォルトの名無しさん
2006/10/30(月) 22:04:00おつ
で、早速質問なんですけど、
ループ文の中で変数を宣言するとループするたびに変数を宣言することになりますが、
これってC#的にはアリなんでしょうか?
それともあまりよろしくないのでしょうか?
0007デフォルトの名無しさん
2006/10/30(月) 22:05:17プログラミング的に無し
0008デフォルトの名無しさん
2006/10/30(月) 22:17:36それぐらい最適化してくれるだろ
0009デフォルトの名無しさん
2006/10/30(月) 22:29:500010デフォルトの名無しさん
2006/10/30(月) 22:30:350011デフォルトの名無しさん
2006/10/30(月) 22:43:40IEのようにマウスのXButton1・XButton2を戻る・進むに対応させる方法ってないですか?
public webBrowser()
{
this.webBrowser1.Document.Click += new HtmlElementEventHandler(Document_Click);
}
private void Document_Click(object sender, HtmlElementEventArgs e)
{
if (e.MouseButtonsPressed == MouseButtons.XButton1)
webBrowser1.GoForward();
else if (e.MouseButtonsPressed == MouseButtons.XButton2)
webBrowser1.GoBack();
}
このようにしてみたのですが、どうもうまくいきません。
中ボタンで試すとうまくいくのですが、第4・5ボタンだと無反応になります。
他にもControl.MouseButtonsで試してみたのですが同じ状況です。
何か方法あれば教えてください。
0012デフォルトの名無しさん
2006/10/30(月) 22:48:47http://homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserMouseDownEvent.htm
0013デフォルトの名無しさん
2006/10/30(月) 23:10:28意図どおりに中央に表示されるんだけど
Show(IWin32Window) では中央に表示されない
モーダレスで中央に表示させるには自分でコード書かないといけないの?
001411
2006/10/31(火) 00:06:57リンク先のコードをC#で書き直したところうまくいきました。
VBは全くわからないのでちょっと怪しいコードになってるかもしれませんが
様子を見ながら必要があれば修正していきます。
ありがとうございました。
0015デフォルトの名無しさん
2006/10/31(火) 05:47:07そのようです。
http://dobon.net/vb/dotnet/form/startposition.html
0016デフォルトの名無しさん
2006/10/31(火) 08:01:30DLL関数のようにいくつも作ることは、DLLプロジェクトにしても無理ですか?
0017デフォルトの名無しさん
2006/10/31(火) 08:10:26その際は /main かプロジェクトのプロパティでエントリポイントを指定する。
0018デフォルトの名無しさん
2006/10/31(火) 08:16:13機能別に実行ファイルを分けると、そのたびにアプリケーションの初期化をするのは負担がかかると思い、
dllの一部の機能をコマンドラインから呼べるようなものにすればスムーズかなと。
スクリプトから繰り返し呼び続けるのが目的なので。
0019デフォルトの名無しさん
2006/10/31(火) 08:21:210020デフォルトの名無しさん
2006/10/31(火) 11:19:420021デフォルトの名無しさん
2006/10/31(火) 12:02:490022デフォルトの名無しさん
2006/10/31(火) 13:12:00で終わり?
0023デフォルトの名無しさん
2006/10/31(火) 20:17:01質問1:
事前チェックに以下を行ったところ期待と異なる動作をしました。
フォームを白色でBackColorを指定し、
その上にパネルを置きパネルを透明色で矩形塗りをしたところ、
矩形部分が完全に透けてデスクトップが見えてしまいます。
パネル下のフォームの白が見えると思ったのですが違ってました。
これは、仕様なんでしょうか?それとも自分の作ったソフトのバグ???
質問2:
やりたかったのは、ドロー系ソフトのようにグリッドを下のレイヤーにおいて、
上の別レイヤでワーク作業を行っても、グリッドの書き換えを行わなくても
済むようにしたかったのです。グリッドは書き換えるしか無いのでしょうか?
0024デフォルトの名無しさん
2006/10/31(火) 20:23:30もちろんグリッドは消えるたびに書き直す
0025デフォルトの名無しさん
2006/10/31(火) 20:33:36おすすめの入門書ってありますか?
ASP.NETと.NET FRAMEWORKも一緒に勉強すると良いと言われたのですが、
プログラミングに触れるのは初めてなんで、先に文法を抑えたいです。
テンプレにも解説サイトがいくつかありますが、
本から入ったほうが分かりやすいですかね?
0027デフォルトの名無しさん
2006/10/31(火) 20:42:11再描画時にはそれをそっくりそのままDrawImageするだけ
0028デフォルトの名無しさん
2006/10/31(火) 21:06:55WSHからCreateObjectで呼びたいのです。
002923
2006/10/31(火) 21:13:13Thx.
レスポンスチェックが必要そうだけど、一般には手軽で速そうだね。
>>25
連載 C#入門 (同内容の書籍有り)
http://www.atmarkit.co.jp/fdotnet/csharp_abc/index/index.html
その他ADOとASP
http://www.atmarkit.co.jp/fdotnet/basics/adonet_index/
http://www.atmarkit.co.jp/fdotnet/aspnet/index/index.html
ASPの書籍なら、↓かな。おれは2巻だけしか読んでないけど、
非常にわかりやすかった。
業務なら、2巻以降全部よんでもいいんじゃないかと。
.NETエンタープライズWebアプリケーション開発技術大全
http://www.amazon.co.jp/NET0a80f30bf0fc0d70e90a40baWeb0a20d70ea0b10fc0b70e70f3%C2%958bv7ab80%C2%8853Y27Q68008Vol-2009ASP-NETWfay0e-e8/dp/4891004282/sr=1-4/qid=1162296249/ref=sr_1_4/250-0519789-6848202?ie=UTF8&s=books
フォームプログラミングなら、↓かな。(2.0未対応)
C#によるプログラミングWindows 上下
http://www.amazon.co.jp/C-06b08808b0d70ed0b00e90df0f30b0Windows-N0a-Charles-Petzold/dp/4891002921/sr=1-2/qid=1162296357/ref=sr_1_2/250-0519789-6848202?ie=UTF8&s=books
書籍は一般的にお勧めできるタイプ。
ただ、文法書をのぞけばプログラミング初心者にはどれも荷がおもいかも。
0030デフォルトの名無しさん
2006/10/31(火) 22:09:00ありがとうございます
連載 C#入門 (同内容の書籍有り)
http://www.atmarkit.co.jp/fdotnet/csharp_abc/index/index.html
は自分も読んでました。
文法書は↓の購入を考えてます。
http://www.amazon.co.jp/067Ycb08108b0d70ed0b00e90df0f30b0-0eQ65-e8-%E3%82%AF%E3%83%A9%E3%82%A6%E3%82%B9-%E3%83%9F%E3%83%81%E3%82%A7%E3%83%AB%E3%82%BB%E3%83%B3/dp/4756141781/ref=pd_bxgy_b_text_b/503-5661729-4527923
4年前の本ですが、最近の本と比べると内容的に遅れますかね??
0031デフォルトの名無しさん
2006/10/31(火) 22:15:20それで何をしたいのかにもよるが、
取りあえず MSDN/ヘルプで COM との相互運用だかそんな感じの記事を嫁。
0032デフォルトの名無しさん
2006/10/31(火) 22:34:33>文法書は↓の購入を考えてます。
んー、読んだことが無いので正確にはなんとも言えないけど。
連載 C#入門 (同内容の書籍有り)をきちんと理解しているのなら、
次に進んだ方がいいと思うけど(Windowsプログラミングとか)。
読まなければいけない本はいくらでもあると思うので、文法にしがみついるのも
なんだと思うけど。
有る程度、文法が判ったなら、別の分野に進んで、どうしても判らなかったら、
またそれに適した本を探した方がいいとおもう(オブジェクト指向とかは文法書では判らないし)。
2.0の拡張部分は↓らしいので、記事から実践ってのも有りだと思うけど。
大きな変更はジェネリックぐらい?
http://www.atmarkit.co.jp/fdotnet/special/cs20review01/cs20review01_01.html
http://www.atmarkit.co.jp/fdotnet/special/cs20review02/cs20review02_01.html
http://www.atmarkit.co.jp/fdotnet/special/vs2005_02/vs2005_02_01.html
0033デフォルトの名無しさん
2006/10/31(火) 22:40:18003425
2006/10/31(火) 23:38:27いえ、文法に関してもまだ始めたばかりなんです。
microsoft visual studio.net 2003はインスコしてありますが、
アプリ開発なんてできるわけもなく宝の持ち腐れ状態です。
とにかく文法の基礎というか基本を学びたいんですが、
連載 C#入門
http://www.atmarkit.co.jp/fdotnet/csharp_abc/index/index.html
等のサイトを徹底すれば、基本的な文法書と同じような知識は習得できますか?
なんとなく書籍の方が、細かな説明が書いてありそうで内容のクオリティが高いって先入観があるんですけど。
0035デフォルトの名無しさん
2006/10/31(火) 23:45:41コマンドラインでコンパイルして遊んでたけど、
そのくらい好きでやってるうちに文法なんて習得できないか?
0036デフォルトの名無しさん
2006/11/01(水) 00:00:28Form1とは別に、別の外部クラスを作って、その中に通信やらバックエンドの処理をメソッド化して、GUIからそいつらを呼んで動かそうと思うんですが、
その場合、通信結果の取得等は外部クラス側が行ない、そこから直接Form1のrichTextBox等のプロパティを書き加えるようなコードになってしまうので、
部品化という意味では不自然なのではないかと…。
で、delegateやeventあたりがキーワードになってくるような気がしてるものの、
この場合、独自のeventを作って使うのかdelegateを使うのかで迷ってます。
0037デフォルトの名無しさん
2006/11/01(水) 00:15:43どっちもやることは変わらないような。。。
イベントつくっちゃってeventargでデータわたしたら?
0038デフォルトの名無しさん
2006/11/01(水) 00:49:00文法書にとらわれると、先に進めないよ。
あの内容は、上級者に取っては物足りないかもしれないが、
初心者なら十分すぎる内容というか、通常の業務なら問題ないレベル。
あの内容で物足りなく感じるのは、有る程度コーディングになれたあとじゃなかな?
まずは、あれをマスターして(実際に動かしみる)、次に行くことを勧める。
多分、他の文法書に戻ることは無いと思う。
プログラミングは、本では学べないので、実際に動かすことが大事。
だから、文法書ではなくて色々サンプルを動かすとか、
自分でコーディングするのが一番(そういう意味ではスポーツと似てるかも)。
とにかくさわってなれるのがまずは大事。
有る程度、コーディング出来るようになったら、Windowsプログラミングに移る。
色々どんなことが出来るか知るために、Tips集で動かしてみるのもいいと思うよ。
多分、↓は買って損はしない。
Visual C#.NET逆引き大全 500の極意
http://www.amazon.co.jp/gp/product/4798008133
そこで、疑問点が出たら、下を読み返す(あるいは並行して読む)。多分これが近道。
C#によるプログラミングWindows 上下
ASPはその後かな。
0039デフォルトの名無しさん
2006/11/01(水) 01:03:06いまいちはっきりしないなぁ。
他の人はどのようなときには、イベントを使って、
どのような時にはデリゲートを使ってるの?
0040デフォルトの名無しさん
2006/11/01(水) 01:49:36デリゲートメンバを公開する事は普通無いな
0041デフォルトの名無しさん
2006/11/01(水) 02:45:20なるほどです。では、今回はとりあえずeventを使ってやってみる事にします。
有り難う御座いました。
0042デフォルトの名無しさん
2006/11/01(水) 08:07:55.NETを使ったちょっと大きめなWinアプリの設計について最近疑問が生じてまして、
小さいプログラムなら、コントロール貼り付けてちょこちょこっと書いておkですよね。
そういうプログラム多いと思います。
でももう少し複雑化してくると、コントロールごとに同じような処理が分散して見にくいコードになるんじゃないかなーと。
MFCのころのドキュメント・ビューみたいな大きな括りの設計思想って.NETには無いんですかね?
それともこれからはコントロールごとに括るのがヨイ?
0043デフォルトの名無しさん
2006/11/01(水) 10:29:08>大きな括りの設計思想って.NETには無いんですかね
MFCはゴミですが、なにか?
0044デフォルトの名無しさん
2006/11/01(水) 16:45:210045デフォルトの名無しさん
2006/11/01(水) 19:50:32イベントハンドラに直接本質的な処理を書かなければいいだけ
0046デフォルトの名無しさん
2006/11/01(水) 21:06:200047どん
2006/11/01(水) 21:10:11IEが立ち上がっているとしてその(現在)アクティブなIE上の
データを全てコピー(Ctrl + A)しテキストファイルに出力するという
アプリを考えています。
ここでどうしても分からない点がありまして、それはその現在アクティブな
IE上に対してキーボードから(Ctrl + A)を押下したのと同等の
処理を行い、メモリ内に全てコピーする方法です。
(テキストファイルに出力する部分は分かります。)
ご存知の方がいらっしゃいましたらお教え願います。
0048デフォルトの名無しさん
2006/11/01(水) 21:54:410049デフォルトの名無しさん
2006/11/01(水) 23:31:40書かれている事以外に何をするのかによるけど、
それだけならUWSCとかのマクロで十分な気もする。
0050どん
2006/11/01(水) 23:39:33SendKeysですか。確認してみます。
>>49
極力マクロは使わずにC#で実装したいと考えています。
とりあえず、SendKeysを使用してみたいと思います。
0051デフォルトの名無しさん
2006/11/01(水) 23:43:58俺もそう思う。
ポトペタ環境って初心者がとっつきやすいだけ。
0052デフォルトの名無しさん
2006/11/01(水) 23:46:50本当にC#使ってるのかと疑問に思う内容だぞ?>>42は
>>45が正しい
0053デフォルトの名無しさん
2006/11/02(木) 00:08:401件データをとってきて、画面で加工し(この時点でrowstateがmoifyになる)
それをdataadapterのupdateメソッドで更新しています。排他処理は楽観的ロックです。
この方法でUPDATEすると、データ取得時の状態とDBの状態がかわると
エラーがおきてしまいます。
adapterのsqlコマンドにはその時点のデータを再度取得するように
取得時と同じsqlを設定しているのですが
いわゆる後勝処理にできません。
A端末で データをリード
B端末で データをリード
B端末で データを更新
A端末で データを更新 ←ここでエラーがおこる
これを、最終的にはAの更新結果がDBに反映されるようにしたいのですが、
dataadapterを使ってこのようなことはできますか?
0055デフォルトの名無しさん
2006/11/02(木) 00:58:40Windows アプリケーションを作っているんですが、
どうやら、競合によると思われるバグに悩まされています。
とりあえず、原因追及のため、Timer 側のスレッドが動いている
間、Windows アプリケーション側のスレッドを止めたいんですが、
そんなことは可能でしょうか?
もともと、マルチスレッドにする必要はなく、単に1/60秒ごとに
処理をしたくてタイマーを使ってるだけなので、マルチスレッドに
ならないタイマーがあればそれに替える方法でもいいんですが。
よろしくお願いします。
0056デフォルトの名無しさん
2006/11/02(木) 01:00:10まずはエラー内容を書いてみよう
0057デフォルトの名無しさん
2006/11/02(木) 01:01:250058デフォルトの名無しさん
2006/11/02(木) 02:10:17中途半端な知識振りかざしてんなよ
0059デフォルトの名無しさん
2006/11/02(木) 08:53:56・・・。ここは初心者用だからいいかなと思ったのですが。
0060デフォルトの名無しさん
2006/11/02(木) 09:31:09大丈夫、ここは初心者スレだよ
0061デフォルトの名無しさん
2006/11/02(木) 13:05:55updateコマンドを見直してみたら?
ちゃんとwhere条件はPrimaryKeyだけで更新してる?
0062デフォルトの名無しさん
2006/11/02(木) 13:45:33でもそういう危険があるっしょ。
そうならないためのオブジェクト指向なんだが、VSの作り方だとコントロール構成がそのまま
クラス構成になるようなパターンが多そうだ。w
0063デフォルトの名無しさん
2006/11/02(木) 16:41:12排他制御有効にしてんのよ?
0064デフォルトの名無しさん
2006/11/02(木) 17:39:31http://game10.2ch.net/test/read.cgi/gameama/1162148782/
0065デフォルトの名無しさん
2006/11/02(木) 17:44:28ホスト規制で立てられません・・・
0066デフォルトの名無しさん
2006/11/02(木) 18:03:55System.Windows.Forms.Timerの方を使えば、良いのでは?
0067デフォルトの名無しさん
2006/11/02(木) 18:45:260068デフォルトの名無しさん
2006/11/02(木) 18:51:18同じく規制で立てられんかった
0069デフォルトの名無しさん
2006/11/02(木) 18:52:18つmono
0070デフォルトの名無しさん
2006/11/02(木) 20:49:36C♯, C#相談室 Part34
http://pc8.2ch.net/test/read.cgi/tech/1162467959/
すまんスレタイ間違った
007254
2006/11/02(木) 23:22:28where句はプライマリーキーだけで更新しています。
>つうか何で後書き優先にしたいのに
排他制御有効にしてんのよ?
とは!?
データ取得時の状態と、DBが変わっていた場合
dataadapterのUpdateコマンドではエラーがおきるのではないですか?
一応、取得時のデータとDBのデータの状態が変わっていた場合は
再度取得しなおしてデータをセットしなおして、更新
以外の方法がみあたりません。
排他制御有効にしないプロパティみたいなものをdataadapterはもっているのでしょうか?
すいません、初心者な質問で・・・。
とても困っているので親切な方、教えていただけたらと思います。
dataadapterのUpdateメソッドを発行すると自動的に楽観的ロックである、と
ヘルプで読んだのですが、気のせいでしょうか。
0073デフォルトの名無しさん
2006/11/02(木) 23:30:03ttp://uchukamen.com/Programming3/Conflict/index.htm
007454
2006/11/02(木) 23:39:23ありがとうございます。
あー、やっぱり基本的に
>一応、取得時のデータとDBのデータの状態が変わっていた場合は
>再度取得しなおしてデータをセットしなおして、更新
てことやんなきゃ駄目なんですよね。
一応悲観的ロックは考慮に入れていません。
スマートに後勝処理をするにはどうしたらいいのかなっ、とか思ったのですが
結局単純にupdate文をexecuteするか、再度取得しなおしてデータをセットしなおして、更新しなくちゃいけないのか
どっちかなんですよね?
後者の場合はそれなりの作りこみが発生しますよね。
了解です。
ありがとうございました。
そのほか良い方法がありましたら教えてください。
賞もないしつもんですが、よろしくおねがいします。
0075デフォルトの名無しさん
2006/11/03(金) 00:32:26Graphics.MeasureString メソッド を用いようとしたんですけど、
ストリング全体の長さ(たぶん、DrawStringの長さ?)と、
一文字一文字の長さの和が異なって正確な位置を求められません。
なにか解決方法を知らないでしょうか。
007675
2006/11/03(金) 01:14:32ぐぐってみたら、こんなんあった。
// grfx.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
StringFormat strformat = StringFormat.GenericTypographic;
strformat.FormatFlags |= StringFormatFlags.MeasureTrailingSpaces;
コメントアウトは必要と書いてあるところもあったけど、消しても同様の結果を
得たので消した。
他の方法を知ってたら教えてください。
0077デフォルトの名無しさん
2006/11/03(金) 01:50:18>排他処理は楽観的ロックです。
これは、自分で設定してるわけじゃないんだな。
もしかしてCommandBuilderでUpdateCommand作ってる?
なら、自動生成やめて、自前でUpdateCommand作らないとだめ。
007854
2006/11/03(金) 02:35:02>もしかしてCommandBuilderでUpdateCommand作ってる?
はい。そうです。
>自前でUpdateCommand作らないとだめ
自前で作るっていうのは・・・
データ更新時にDBからデータを再取得し、
結局データテーブル内のRowをなめて
rowstateを見ながらinsert、update、deleteを
そのデータテーブルにかけて、
そいつをUpdateメソッドでdb更新へいく、というやり方でしょうか?
それとももっと簡単に自前でUpdateCommand作れるものなんでしょうか。
しつこく聞いてしまってすいません。
0079デフォルトの名無しさん
2006/11/03(金) 10:45:290080デフォルトの名無しさん
2006/11/03(金) 10:48:590081デフォルトの名無しさん
2006/11/03(金) 11:18:57rows[0]["列名"]
じゃなくて
rows[0].列名
みたいにフィールドとして使えることや、null判定をしてくれること、、なんだけど、
物理テーブルが変更されたら型付データセットも変更して、なおかつソースも全部変更しなくちゃいけないっていうのが
なんだかとても面倒な気がするんだけれど・・・・
しかもどこにおこうか迷ってしまう。
ほかに型付使う絶大な理由ってあるんでしょうか?
0082デフォルトの名無しさん
2006/11/03(金) 23:42:08結局は、DataReaderで呼び出して画面表示→Insertやupdateで1行ずつ更新という流れに・・・。
DataTableはワークテーブルみたいな使い方では便利だと思うんだけどね。
0083デフォルトの名無しさん
2006/11/04(土) 00:40:190084デフォルトの名無しさん
2006/11/04(土) 02:18:32request.Cookie = "**=**";
でやってみたのですが、できませんでした。
よろしくお願いします
0085デフォルトの名無しさん
2006/11/04(土) 02:38:520087デフォルトの名無しさん
2006/11/04(土) 21:09:16ソース変えたくなかったら、DataAdapterのTableMappingとColumnMappingを
書き換えるとかすると書き換える場所が減る。
そしてDBとコードで列名が食い違ってこんがらがる。
あれ?型付きを支持するつもりが・・・
あとは文字列アクセスだと打ち間違えに気づかないとか、遅いとか
(かなりの回数繰り返さないと気になる差にならないけど)
グリッドにデザイン時にバインドできないとか、あとなんだろう。
0088デフォルトの名無しさん
2006/11/04(土) 22:02:31型付DataSetの使い方が詳しく載っているサイトを
ご存知の方いたら教えて下さい。
0089デフォルトの名無しさん
2006/11/04(土) 22:08:43XML書いて
XSD.EXE使ってXSDに変換して
XSD調整して
XSD.EXE使ってDataSetに変換ってだけじゃないの?
0090デフォルトの名無しさん
2006/11/05(日) 04:32:03配列に格納してそれをaddrangeで入れればいいと思うのですが、
ソースがsqlCommandでひっぱってきたデータなので、件数がわからず配列が
作れなくて困ってます。
素直に2つのコンボボックス両方に1件ずつaddしていったほうが早いのでしょうか
0091デフォルトの名無しさん
2006/11/05(日) 04:53:20comboBox2.Items.AddRange(new ArrayList(comboBox1.Items).ToArray());
で出来る事は出来ないか?
いいかどうかは別にして・・・
009290
2006/11/05(日) 05:27:31ToArrayというメソッドを見落としていました。これがあればListに格納して
それを直接いれてやれますね。
ありがとうございました。
0093デフォルトの名無しさん
2006/11/05(日) 20:48:11一定の終了処理を施したいのですが、どのようにすれば出来ますか?
ウイルスみたいに強制終了しても何度も復活するのがあるから、それと
同じようにして終了処理が出来ないかなと思ったんですが…
0094デフォルトの名無しさん
2006/11/05(日) 20:56:550095デフォルトの名無しさん
2006/11/05(日) 21:06:06プロセスごと刈り取られたら終了処理を行う余裕はないよ。
ウイルスみたいに別のプロセスを走らせて監視するしかない。
0096デフォルトの名無しさん
2006/11/05(日) 21:16:01さらにそのプロセスを監視するプロセスを走らせて(ry
009793
2006/11/05(日) 21:28:24マジすか…orz
GetProcessesByName重いからあんまり連続して呼び出したくないんだよなぁ
これ以外にメインプログラムの生存を確認する方法無いですかね?
0098デフォルトの名無しさん
2006/11/05(日) 21:37:47毎回探さなくても、HasExitedをみてればいいんじゃなかろうか。
0100デフォルトの名無しさん
2006/11/05(日) 22:20:13>グリッドにデザイン時にバインドできないとか
うそ。
普通のdatasetでもkeyかdatafieldに列名書き込めばバインドできるよ。
0101デフォルトの名無しさん
2006/11/05(日) 22:22:30コンボボックスのリストを別コンボにコピー?
Arraylistなんてことしなくても
DataSourceにぶち込んだデータがたとえばDataTableなら
DataTable dt =(DataTable)cmb1.DataSource;
cmb2.DataSource =dt;
でいけるんじゃないの?
キャスト内容は何をDataSourceにブチこんだかによるけどね。
0102デフォルトの名無しさん
2006/11/06(月) 00:49:080103デフォルトの名無しさん
2006/11/06(月) 00:57:01System.Net名前空間にいろいろあるからヘルプ眺めれ。
0104デフォルトの名無しさん
2006/11/06(月) 00:57:36Javaではpropertiesファイルを使って、
情報を設定していましたが、
C#だとXMLを使うのが一般的なのでしょうか。
単にテキストで設定値を定義したいだけなのに、
些か大仰な気がします。
もちろんテキストファイルを読み込むようにも出来るのは分かりますが、
それが一般的でないのならあまりやりたくないところです。
0105デフォルトの名無しさん
2006/11/06(月) 01:35:37C#という時点で十分大げさだと思うが、いまさらその程度ケチってどうする?
0106デフォルトの名無しさん
2006/11/06(月) 02:02:30自分は仕方ないのでテキストファイルを読み書きするクラスを自前で定義している。
0107デフォルトの名無しさん
2006/11/06(月) 02:45:58XmlSerializer が“重い”原因の一つは、
実行時に csc を呼び出してアセンブリをコンパイルするプロセスが走る事にあると思う。
.NET 2.0 には sgen というツールがあって、
シリアライズ処理を行うアセンブリ(.dll)をプリコンパイルできるようになっている。
これでいくらかパフォーマンスを改善できるらしい。
010890
2006/11/06(月) 13:38:13DataTableは考えませんでしたが、DataTableに格納するのに時間がかかってしまいますね。
もちろん、そこまで大量のデータをコンボボックスにつっこんでどうするんだという
問題もあるかもしれませんがw
テストしてみたところ、DataTableにFillするのとsqlCommandとDataReaderで読み込んだ物を
ループで1件ずつList<string>に突っ込むのでは、Listを使った物の方が速いみたいです。
とりあえず今回はToArrayでやってみようと思います。
0109デフォルトの名無しさん
2006/11/06(月) 15:57:48パフォーマンスがあがったという実感は感じない
0110104
2006/11/06(月) 22:05:59まあ、それでいこうかなあ・・・。
シーケンシャルに読み込むだけだから、遅いと噂のXMLを使う必要性もあまりないし・・・。
0111デフォルトの名無しさん
2006/11/06(月) 22:17:50直接、構造体をファイルに吐き出し、読み込みをやってくれるから。
便利だとは思うんだけどね。
実際、大量のXMLファイルを扱うアプリを書いた時は。
その処理にかかる時間の多くが、ファイルのオープン、クローズ処理であって。
XMLのパース処理なんて大したことなかった。
0112デフォルトの名無しさん
2006/11/06(月) 23:19:06どうでもいいけど、昨今のPCじゃそんな程度で早い遅いなんてわからんよ
可読性の良いほうを選ぶがよろし。
普通にDataReaderで読み込んだDatasetなりDatatableを
コンボボックスのDataSourceにつっこんで
ViewカラムとDataカラム設定するほうがソースも見やすいし(3行)
可読性もいい。
いまさらArrayListでぐるぐるなんて、ちょっとおかしくね?
0113デフォルトの名無しさん
2006/11/07(火) 02:06:34あるいはセッティング使うだろ。
なんでわざわざ独自方式に走る。
0114デフォルトの名無しさん
2006/11/07(火) 02:55:210115デフォルトの名無しさん
2006/11/07(火) 08:46:38実行時にcscは働かないはずだが
0116デフォルトの名無しさん
2006/11/07(火) 08:49:31動いてますが
011790
2006/11/07(火) 09:01:11遅いっていってもあくまでも数字で比較したときの話で
実用上は差はないようなのであなたのおっしゃるとおりです。
次回からはそっちを使ってみます。
0118デフォルトの名無しさん
2006/11/07(火) 10:28:23しまったあぁ
Console.Write("Σ or2=====●");
0119デフォルトの名無しさん
2006/11/07(火) 11:30:11BinaryFormatterだとか使って読み書きって出来る?
どっちかというと、クラス主体のシリアライズ用で、任意のフォーマットを
読んだりするのには使えないのかなと思うんだが。
0120デフォルトの名無しさん
2006/11/07(火) 11:56:47そのバイナリフォーマットをサポートするクラスがISerializableを実装して
いればいいだけでは?
0121デフォルトの名無しさん
2006/11/07(火) 12:23:20どちらにしてもエンディアン変換は自前でやるしかなさそうだが。
0122デフォルトの名無しさん
2006/11/07(火) 21:33:240123デフォルトの名無しさん
2006/11/07(火) 21:58:21構造体を用意さえすれば、別に自前で読み書き処理を用意しなくても済む仕組みがあるのであれば、
それを使いたいってだけなんだけどね。
0124デフォルトの名無しさん
2006/11/07(火) 23:48:50例えば
別スレッドからtextBox1.Text = ""hoge;
なんてNG
コントロール.Invoke(デリゲード)
とする場合
別スレッドで実行されているメソッドがFormのメンバだとすると
Invoke(デリゲード)か
textBox1.Invoke(デリゲード)か
どちらが正しいのでしょうか?
どちらでも良さげなんてですが・・・
0125デフォルトの名無しさん
2006/11/07(火) 23:51:58Invoke するコントロールが属するスレッド、が問題だから。
0126デフォルトの名無しさん
2006/11/08(水) 00:41:43は
this.Invoke( ...
の略だからね
0127デフォルトの名無しさん
2006/11/08(水) 03:20:21じゃあMSILってなんだ?
0128デフォルトの名無しさん
2006/11/08(水) 03:45:01XmlSerializer はシリアライズを行うアセンブリを動的に生成してる。
Reflector で XmlSerializer.XmlSerializer(Type, String) あたりから辿ってごらん。
0129デフォルトの名無しさん
2006/11/08(水) 16:16:300130デフォルトの名無しさん
2006/11/08(水) 20:03:58ControlのTagプロパティの型はobjectなのに、デザイナ上ではstringのようにふるまう。
DataGridView.DataSourceでも然りです。
このように本来は違う型なのに、デザイナ上では限定的に型を指定できるようにするには
どうすれば良いのでしょうか?
0131デフォルトの名無しさん
2006/11/08(水) 21:01:15[SRCategory("CatData"), Localizable(false), Bindable(true), DefaultValue((string) null), TypeConverter(typeof(StringConverter)), SRDescription("ControlTagDescr")]
[SRDescription("DataGridViewDataSourceDescr"), RefreshProperties(RefreshProperties.Repaint), SRCategory("CatData"), DefaultValue((string) null), AttributeProvider(typeof(IListSource))]
0132デフォルトの名無しさん
2006/11/08(水) 23:31:31FileSystemWatcher にドライブのルートを登録、配下の全サブディレクトリを監視対象にする。
この状態で Renamed のイベントハンドラ内で TreeView のノード名を変更すると
InvalidOperationException が発生。「有効ではないスレッド間の操作」だと言われる。
どうしたら解決できるか教えてほしい。
これだけで原因が特定できるとは思えないが、何を書いたら手がかりになるかわからない。
開発環境は VC# 2005 Express + Windows XP。
0133デフォルトの名無しさん
2006/11/08(水) 23:33:06取りあえず、SR何々無しで目標は達成できましたが、
そもそもSRCategory ,SRDescription というのは何処のアセンブリにあるのでしょうか?
度々申し訳ないです。
0134デフォルトの名無しさん
2006/11/08(水) 23:34:32// コンポーネントをデザイナにD&Dなら自動設定のはずだけど
0135デフォルトの名無しさん
2006/11/08(水) 23:57:09System.Windows.Formsのinternal classだから外からは使えないよ。
0136デフォルトの名無しさん
2006/11/09(木) 00:15:000137デフォルトの名無しさん
2006/11/09(木) 14:02:35Renamedイベントハンドラ内から、TreeViewのノード名を変える時に、
その処理をDelegateに包んで、TreeViewのインスタンスでInvoke()。
0138デフォルトの名無しさん
2006/11/10(金) 09:49:20そのせいでこうなるの?
http://support.microsoft.com/kb/899153
0139デフォルトの名無しさん
2006/11/10(金) 14:50:330140デフォルトの名無しさん
2006/11/10(金) 15:04:580142デフォルトの名無しさん
2006/11/10(金) 16:16:510144132
2006/11/10(金) 21:05:39これで解決できた。回答どうもありがとう。
FileSystemWatcherについて調べていたとき@ITでも見ていたのにすっかり忘れていたよ。
>>137も丁寧なレスをありがとう。こちらも動きを確かめてみる。
0145デフォルトの名無しさん
2006/11/10(金) 23:13:05@ITってこれだよね
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/287winfilewatch/winfilewatch.html
0146デフォルトの名無しさん
2006/11/11(土) 05:23:41ある座標から、有る座標まで絵が勝手に動く関数って有りますでしょうか?
例えば
有るフォームの(0,0)座標から、(100,100)座標まで勝手に絵が動いて欲しいんですけれども・・・
0147デフォルトの名無しさん
2006/11/11(土) 07:19:55TimerとPictureBox組み合わせて作れば。
0148デフォルトの名無しさん
2006/11/11(土) 12:22:19まさしく。
よくお世話になってる。
0149デフォルトの名無しさん
2006/11/11(土) 13:29:52http://pc8.2ch.net/test/read.cgi/tech/1162490865/
↑で回答してくれずからかわれただけなので優しい皆さん、教えてください。
で、質問の内容は
フォームのキーダウンイベント発生しないけどなんでー
private void Form1_KeyDown( object sender, KeyEventArgs e )
{
switch ( e.KeyCode ) {
case Keys.Left:
rects[0].X -= 25;
rects[1].X -= 25;
rects[2].X -= 25;
rects[3].X -= 25;
break;
case Keys.Right:
rects[0].X += 25;
rects[1].X += 25;
rects[2].X += 25;
rects[3].X += 25;
break;
}
}
}
すいっちのとこにブレーク張ってるのにキーボードのキー入力しても
イベントハンドラに�dで来ないお
これだから馬具だらけのC#はきらいだ!!!
0150149の続き
2006/11/11(土) 13:31:23コントロールの方に飛んでるだけだろ
215 名前:デフォルトの名無しさん[sage] 投稿日:2006/11/11(土) 12:27:49
>>213
違いますよ^^;
ちゃんとフォームにフォーカス当ててる
217 名前:デフォルトの名無しさん[sage] 投稿日:2006/11/11(土) 12:53:12
>>216
Form.KeyPreview
218 名前:デフォルトの名無しさん[sage] 投稿日:2006/11/11(土) 12:59:18
そんなスレッドはないようですが・・・
できればurlをお願いいたします(ぺこりー
220 名前:デフォルトの名無しさん[sage] 投稿日:2006/11/11(土) 13:16:08
>>219
どーも。
ボタンを押したときのイベントで>>217の
Form.KeyPreview = true;
というのを追加したけどコンパイルエラーになる。
変数はForm1という名前だから
Form1.KeyPreview = true;
とやっても怒られる。
this.KeyPreview = true;
でコンパイルが通った!
でもやっぱりだめなんだな、これが。
やっぱり>>211のイベントに�dで来ないお
試しにみんなもやってみてくれ、
もしバグだったら誰か舞糞に連絡ヨロ
0151デフォルトの名無しさん
2006/11/11(土) 13:31:560152デフォルトの名無しさん
2006/11/11(土) 13:33:30いきなりバグとか言うやつは頭沸いてる
0153デフォルトの名無しさん
2006/11/11(土) 13:33:40Console.Write("BABEL ");
}
0154デフォルトの名無しさん
2006/11/11(土) 13:45:202行目の失礼な言い方は許すが
イベント競っていって何ですか?
もしかしてイベントデザイナでフォームを選択して
Form1のイベント一覧のとこにある「KeyDown」というとこを
ダブルクリックしてコードとして勝手に生成された雛形
private void Form1_KeyDown( object sender, KeyEventArgs e )
{
}
の中に>>149の処理を書いたのだが
それ以外にイベント設定というものが必要なのですか?
0155デフォルトの名無しさん
2006/11/11(土) 13:49:580156デフォルトの名無しさん
2006/11/11(土) 13:50:530157デフォルトの名無しさん
2006/11/11(土) 13:51:16http://www.linux.or.jp/beginners/question.html
0158デフォルトの名無しさん
2006/11/11(土) 13:52:21こっちのスレに来てまだ繰り返すのか。
Form.KeyPreview
を検索してみたのか?
馬鹿じゃないのか。
0159デフォルトの名無しさん
2006/11/11(土) 13:53:05イベントハンドラというかbutton1_Click()イベントでこの中の
最後の行で設定してる
そうしないとボタン押したときにボタンにフォーカス奪われちゃうべ?
0160デフォルトの名無しさん
2006/11/11(土) 13:54:08Form.KeyPreviewのせつめいよめよあほ。
0161デフォルトの名無しさん
2006/11/11(土) 13:54:47private void btnStart_Click( object sender, EventArgs e )
{
///途中省略
timer.Enabled = true;
timer.Start();
this.KeyPreview = true;
}
0162デフォルトの名無しさん
2006/11/11(土) 13:57:57プロパティの性質から言って初期化時に設定しないとだめな気がする。
まあClickしてなくて設定されてないのかも試練が。
ていうかあほだろ。
なんでClickイベントで設定なんだよ。
意味分かってねーのかよ。
分かってねーならヘルプ嫁よ。
ヘルプ読んでこうしたならもうやめとけ
0163デフォルトの名無しさん
2006/11/11(土) 13:58:45それだとそのボタンを押すまではKeyPreviewが有効にならないから
ほかのコントロールにフォーカスがある時にKeyPressにイベントがこないのは自然。
ていうかKeyPreviewの(ry
0164デフォルトの名無しさん
2006/11/11(土) 14:02:26でやってみたんだがやっぱだめだったよ
>>161からKeyPreviewはずしてもだめだ
ものは試しだ、みんなも試してみてくれ
0165デフォルトの名無しさん
2006/11/11(土) 14:03:31いや、それには意味があるんだよ
ボタンを押したときに制御したいからさ
それくらい読み取ってくれ頼む
0166デフォルトの名無しさん
2006/11/11(土) 14:07:27最初に押すまではキーを拾わないようにしたいのか?うんうん
もうさ、コード全部書いちまえよ。
どっか間違ってるからさ、
だれも見ないと思うけどね。
ああ、あとさ、あほだってことはばればれだから、
考えてる振りしなくてもいいんだよ。
0167デフォルトの名無しさん
2006/11/11(土) 14:08:52{
this.KeyPreview = !this.KeyPreview;
}
private void Form1_KeyDown( object sender, KeyEventArgs e )
{
if( e.KeyCode == Keys.A )
System.Media.SystemSounds.Asterisk.Play();
}
これだけで、ボタンでトグルできたぞ。
環境がおかしいか、頭がおかしいかのどちらかだろう。
0168デフォルトの名無しさん
2006/11/11(土) 14:09:400169デフォルトの名無しさん
2006/11/11(土) 14:13:52オマイのやさしさに感動
だが理解できないだろうから豚に真珠だな
0170デフォルトの名無しさん
2006/11/11(土) 14:15:34実験してくれてありがとう(´;ω;`)
すごいヒントになったよ!
で、解決しました(だが動作が意味不明のままだけど)。
1.駄目なケース
timer.Enabled = true;
timer.Start();
this.KeyPreview = true;
2.OKのケース
this.KeyPreview = true;
timer.Enabled = true;
timer.Start();
タイマーイベントを有効に(スタート?)するまえに
KeyPreviewをもってこないとだめぽらしい。
C#って不思議だ
ここで質問して良かった、>>167サンクス!
0171デフォルトの名無しさん
2006/11/11(土) 14:21:321.のケースも2.のケースもOKだった。。。
なんかね、Keys.LeftとKeys.Rightはキー入力イベントとして
拾って紅っぽい、おいらのPCじゃ。
スペースキー押したらイベントハンドラに飛んできたよ。。。。。。。。。orz
お騒がせしました。マンスー、マンスーです。。。
0172デフォルトの名無しさん
2006/11/11(土) 14:24:06>なんかね、Keys.LeftとKeys.Rightはキー入力イベントとして
ではなくおいらのパソコンのカーソルキーを押してもイベントとして
カーソルキー自体は特に問題なく動くんだけどね、、、
もしかしてのーとPCと一体のキーボードだからキーコードが
一般的なキーコードと違うのかな、
まあこれはここで質問することじゃないからいいや、
本当に本当にお騒がせしました
0173デフォルトの名無しさん
2006/11/11(土) 14:33:41キーボード入力のしくみてところがいいよ
ProcessDialogKey とかね
みんなこたえおしえてくれてるんだから
ひとのせいにしたらだめなんだよ
0174デフォルトの名無しさん
2006/11/11(土) 14:36:250175デフォルトの名無しさん
2006/11/11(土) 14:58:00何事も上達するには謙虚さが大切だよ!
>Form.KeyPreview = true;
>Form1.KeyPreview = true;
これがダメな理由分からないと、今後何やっても上手くいかない。
がんばってね。
0176デフォルトの名無しさん
2006/11/11(土) 15:06:150177デフォルトの名無しさん
2006/11/11(土) 15:07:570178デフォルトの名無しさん
2006/11/11(土) 15:08:470179デフォルトの名無しさん
2006/11/11(土) 15:09:03元のスレで毒づいてるんじゃねーよ。
0180デフォルトの名無しさん
2006/11/11(土) 15:10:26何事も勉強が大切ですよ。
0181デフォルトの名無しさん
2006/11/11(土) 19:53:00Form1 Form1 = new Form1();
Form1.KeyPreview = true;
とか言ってみたり。
0182デフォルトの名無しさん
2006/11/11(土) 19:58:350183デフォルトの名無しさん
2006/11/11(土) 23:20:44でWaveを鳴らしていますが、たまに雑音が入ります。
対処法を教えてください
0184デフォルトの名無しさん
2006/11/11(土) 23:32:090185デフォルトの名無しさん
2006/11/11(土) 23:32:33ハードの問題じゃないの?
内容詳しく。
0186デフォルトの名無しさん
2006/11/11(土) 23:50:26設計はどのように行えば良いのでしょうか。
画面をデザインしてイベント毎の処理を書いていくわけですが、
思うがままにやればスパゲッティになるのは目に見えてます。
やはり、クラス図、シーケンス図、アクティビティ図などを書いていくべきなのでしょうか?
UML以外のお奨めなどはあるでしょうか?
0187デフォルトの名無しさん
2006/11/11(土) 23:55:12UMLなんて必要ない。こだわってたらやる気なくすことになると思う。
自分に都合のいい図を描け。
0188デフォルトの名無しさん
2006/11/11(土) 23:57:45http://fluid.run.buttobi.net/cgi-bin/src/ns0545.wav
音を鳴らす部分だけを持ってきて新規アプリケーションで実験しても
発生しませんでした。なぜだろう…
0189デフォルトの名無しさん
2006/11/11(土) 23:59:510190デフォルトの名無しさん
2006/11/12(日) 00:03:04チームで開発するならともかく、一人で作るなら何とでもなるでしょ。
脳内であれば超3次元な図を書くことだって出来るんだし。
まあ、ヒントとすればイベントハンドラの中には3行以上書かないことかな。
0191デフォルトの名無しさん
2006/11/12(日) 00:05:04どこらへんが雑音なのかわからんかった
0192デフォルトの名無しさん
2006/11/12(日) 00:17:39過負荷になってるとか、エスパーじゃないからわからないよ。
まあ多分書いても分からんけど。
0193デフォルトの名無しさん
2006/11/12(日) 00:27:22どんなきっかけでどのように再生させてるのか?
ループさせてるのか?
同時に別の音再生させてないか?
詳しい状況はいくらでも書けるだろ?
出し惜しみするなよ。
0194デフォルトの名無しさん
2006/11/12(日) 00:29:220195デフォルトの名無しさん
2006/11/12(日) 00:29:300196デフォルトの名無しさん
2006/11/12(日) 00:32:090197186
2006/11/12(日) 00:45:03なるほど、UMLにこだわる必要はないんですね。
イベントハンドラを簡潔にするということは、
処理は別のクラスに外だしするなど、
工夫が必要になるんですね。
色々試してみます。ありがとうございました。
0198デフォルトの名無しさん
2006/11/12(日) 01:59:50出し惜しみ はするつもりありませんが、どのように書いたら良いのか分からなくて・・・
再生の状況は、たとえば[ボタンを押したら再生する]で、
リソースに格納したファイルからの再生です。ループはしません。
同時に別の音再生させているかもしれません。(下記ソース、再生前に一応Stopをつけているのですが)
具体的なソースは
System.Media.SoundPlayer sp = new System.Media.SoundPlayer(HimatubusiG.Properties.Resources.se01);
と
private void WAVEsaisei(string FILENAME)
{
sp.Stop();
if (FILENAME == "se01") sp.Stream = HimatubusiG.Properties.Resources.wav1;
if (FILENAME == "se02") sp.Stream = HimatubusiG.Properties.Resources.wav2;
if (FILENAME == "se03") sp.Stream = HimatubusiG.Properties.Resources.wav3;
if (FILENAME == "se04") sp.Stream = HimatubusiG.Properties.Resources.wav4;
if (FILENAME == "se05") sp.Stream = HimatubusiG.Properties.Resources.wav5;
sp.Play();
}
でして、いくかのファイルを使い分けています。
WAVEFILE("se01"); で、再生です。
0199デフォルトの名無しさん
2006/11/12(日) 02:07:25再生は
WAVEsaisei("se01");
です。
0200HitumabusiG
2006/11/12(日) 08:32:210201149
2006/11/12(日) 09:42:26実は違うみたいれつよ(藁
後学のためにきみたちのもおいらが調べた結果をまとめたので教えてあげよう
「Windowsアプリケーションで方向キーなどの特殊キーを処理するには?」 by 149
1.Buttonコントロールで方向キーが処理できない理由
Buttonコントロールでの方向キーの入力が、通常のKeyDownなどのキー・イベントで処理できないということは、
「方向キーが通常の入力キー(以降、普通入力キー)とは異なる」ことを意味する。Buttonコントロールの方向キーは
「プリプロセス(=前処理)を必要とする特殊な入力キー」(以降、特殊入力キー)である。
これは、すでにプリプロセスで何らかの処理を実行済みなので、さらにその後でキー処理を行う必要がないからだ。
例えば、Buttonコントロールで[↓]キーを押すと、Windowsアプリケーションはプリプロセス工程で自動的にフォーカス移動の
処理を実行する。よって、その後でKeyDownイベントを処理する必要はなくなる。
しかし、実際のアプリケーションでは、そのような通常のアプリケーション動作をカスタマイズしたい場合がある。例えば、
通常のアプリケーション動作では[↓]キーでフォーカス移動すると、そのフォーカス移動先がGroupBoxコントロールなどにより
設定されたグループ内でループするようになっているが、それをカスタマイズして、グループを越えてフォーカス移動するように
したい場合などが挙げられる。
a) プリプロセス工程における処理をカスタマイズする
b) 特殊入力キーを普通入力キーに変更する
ここではa)について解説する。
2.プリプロセス工程における処理をカスタマイズする
プリプロセスをカスタマイズするには、フォームのProcessDialogKeyメソッドをオーバーライドして、そのメソッド内でキー処理を
行えばよい。もちろんフォームではなく、コントロールのProcessDialogKeyメソッドをオーバーライドしても同様の結果が得られる。
次のコードは、実際に、フォームのProcessDialogKeyメソッドをオーバーライドした例である。この例では、方向キーでグループを
越えたフォーカス移動を行うように、処理をカスタマイズしている。
続く
0202149
2006/11/12(日) 09:43:31{
switch (keyData)
{
case Keys.Down:
case Keys.Right:
this.SelectNextControl(
this.ActiveControl, true, true, true, true);
break;
case Keys.Up:
case Keys.Left:
this.SelectNextControl(
this.ActiveControl, false, true, true, true);
break;
default:
return base.ProcessDialogKey(keyData);
break;
}
return true;
}
ProcessDialogKeyメソッドをオーバーライドしたサンプル・プログラム(C#)
なお、ProcessDialogKeyメソッドはコントロール→フォームの順で呼ばれる。ProcessDialogKeyメソッドでは、
独自にキーを処理した場合には、それを示すために戻り値でTrueを返すようにする。
また、コントロールのProcessDialogKeyメソッドは、コントロールのPreProcessMessageメソッドから暗黙的に
呼び出される。そのため、プリプロセス工程の最初のメソッドであるコントロールのPreProcessMessageメソッドを
オーバーライドしても、同様にプリプロセス工程でのキー処理をカスタマイズできる。しかし、コントロールの
ProcessDialogKeyメソッドやPreProcessMessageメソッドをオーバーライドする方法を採用する場合、当然、
コントロールの継承が必要になる。
0203149
2006/11/12(日) 09:44:43少しは勉強しろよな(禿藁
0204デフォルトの名無しさん
2006/11/12(日) 10:25:43>だからまにゅあるよんでね
>キーボード入力のしくみてところがいいよ
>ProcessDialogKey とかね
>みんなこたえおしえてくれてるんだから
>ひとのせいにしたらだめなんだよ
方向キーという情報がはじめて出た直後には教えている
よかったね。
0205デフォルトの名無しさん
2006/11/12(日) 10:36:560206デフォルトの名無しさん
2006/11/12(日) 12:12:42>イベントハンドラの中には3行以上書かないこと
イベントハンドラ内では、3行を超えるコードは全部メソッドにして呼び出すべき、ということ?
0207デフォルトの名無しさん
2006/11/12(日) 12:16:07GUIとその他の処理を分けろ、ということじゃなかろうか。
フォームのprivateメソッドにしちゃったら同じだけどな。
0208デフォルトの名無しさん
2006/11/12(日) 13:59:291行にいくらでも書けるけど・・・
0209デフォルトの名無しさん
2006/11/12(日) 14:03:470210デフォルトの名無しさん
2006/11/12(日) 15:16:050211デフォルトの名無しさん
2006/11/12(日) 15:36:05まあ、privateになってるだけでもだいぶマシだけどな・・・
どっからどういう仕様で呼び出されてるのかわからんメソッド・メンバ変数山盛りだと本当に泣きたくなる。
0212デフォルトの名無しさん
2006/11/12(日) 16:34:23'hogehoge.Index' を ref または out として渡すことはできません。
コンパイルエラーでこういうのが出てしまいます。
元のコードは、こんな感じです。
↓
class hogebase
{
public int Index = 0
}
class hogeInherit : hogebase
{
private void Close()
{
base.Index = 100;
}
}
void main()
{
hogebase hb = new HogeInherit();
Console.WriteLine("{0}\n", hogeInherit.Index.ToString());
}
0213デフォルトの名無しさん
2006/11/12(日) 16:36:580214デフォルトの名無しさん
2006/11/12(日) 16:37:46すんません。そうですね。
void main()
{
hogebase hb = new HogeInherit();
Console.WriteLine("{0}\n", hb.Index.ToString());
}
の間違いです。
0215デフォルトの名無しさん
2006/11/12(日) 16:42:26main メソッドが大文字から始まらないのは目をつぶるとしても、
それだけじゃコンパイルエラーにならないよ。
ついでにエラーコードは正しく。CS0197 だろ。
でまあ原因はヘルプに書いてある。そう言うもんだと諦めろ。
0216デフォルトの名無しさん
2006/11/12(日) 17:16:45店員何とかしろよおい!
0217デフォルトの名無しさん
2006/11/12(日) 17:17:300218デフォルトの名無しさん
2006/11/12(日) 17:20:14/ \
/ ─ ─\ らっしゃい! 何にしましょう
/ (●) (●) \
| (__人__) | ________
\ ` ⌒´ ,/ .| | |
ノ \ | | |
/´ | | |
| l | | |
ヽ -一ー_~、⌒)^),-、 | |_________|
ヽ ____,ノγ⌒ヽ)ニニ- ̄ | | | ____
____
/ \
/ ─ ─ \ これ程つまらない合いの手は
/ (●) (●) \ 久々だお
| (__人__) | ________
\ ` ⌒´ ,/ .| | |
ノ \ | | |
/´ | | |
| l | | |
ヽ -一ー_~、⌒)^),-、 | |_________|
ヽ ____,ノγ⌒ヽ)ニニ- ̄ | | | ____
0219デフォルトの名無しさん
2006/11/12(日) 17:35:540220デフォルトの名無しさん
2006/11/12(日) 17:38:13ベンチマークに意味はないと思うよ。
0221デフォルトの名無しさん
2006/11/12(日) 23:45:49メモリリークするから true にするのはヤメレ
0222デフォルトの名無しさん
2006/11/12(日) 23:47:59なんの問題も無い
0223デフォルトの名無しさん
2006/11/13(月) 22:20:14今、テキストファイルから一行一行読み込んで
データグリッドに一行一行、表示させるプログラムを書いているのですが
処理していくうちにどんどん遅くなり、
3日間で1200行がやっとです。
一行読み込み→データベース更新→一行表示 の手順でやってます。
一気に表示させたほうが速いかもしれませんが、ユーザに
今やってる処理を知らせるために、一行一行表示したいのですが
とても遅くてメモリの処理が問題だと思うのですが、、、
C#初心者でよくわかりません。ちなみにunsafe とかは使ってません。
よろしくお願いしますm(__)m
0224デフォルトの名無しさん
2006/11/13(月) 22:23:43VirtualModeは使ってる?直接突っ込むと死ねるよ。
0225デフォルトの名無しさん
2006/11/14(火) 01:02:55速度も遅くならないんだけどな。
0226デフォルトの名無しさん
2006/11/14(火) 03:48:46VirtualModeとか、DataGridView とかあるんですね。
ショックなことに使ってるのは1.1なので、使えないみたいですorz
でもレスありがとうございました。
0227デフォルトの名無しさん
2006/11/14(火) 11:14:37GetAppDirはどのUsingディレクティブに属してるかを調べる方法を教えて下さい。
0228デフォルトの名無しさん
2006/11/14(火) 11:28:14GetAppDirって何?
名前からするとメソッドっぽいが.NET Frameworkにはそんなのないぞ。
0229デフォルトの名無しさん
2006/11/14(火) 14:06:06string path = Application.StartupPath;
or
using System.IO;
using System.Reflection;
string path = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
0230227
2006/11/14(火) 14:44:260231デフォルトの名無しさん
2006/11/15(水) 02:18:330232デフォルトの名無しさん
2006/11/15(水) 02:27:560233デフォルトの名無しさん
2006/11/15(水) 03:11:47SQL Express 2005を入れてDataGridViewをする事にした。
0234デフォルトの名無しさん
2006/11/15(水) 08:45:29CやCppの実行ファイル上(アンマネージドコード)から、C#で作ったマネージドDLLは叩けるのでしょうか?
0235デフォルトの名無しさん
2006/11/15(水) 09:08:040236デフォルトの名無しさん
2006/11/15(水) 09:32:58うおおお。激しくありがとうです。
0237デフォルトの名無しさん
2006/11/15(水) 20:06:050238デフォルトの名無しさん
2006/11/15(水) 20:59:300239デフォルトの名無しさん
2006/11/15(水) 21:42:28発生しません。
はりつけた側のフォームから何かしてあげないと
イベントは発生しないのでしょうか
0240デフォルトの名無しさん
2006/11/15(水) 22:12:58その内部のコントロールのイベントを公開する事はあるだろうけど。
0241デフォルトの名無しさん
2006/11/15(水) 22:45:02(゚д゚)ハァ?
0242デフォルトの名無しさん
2006/11/15(水) 23:30:50え、そうなんですか?
0243デフォルトの名無しさん
2006/11/15(水) 23:36:290244デフォルトの名無しさん
2006/11/15(水) 23:45:53〜イベントがおきません……とかいう質問の場合、
・質問者が本当にタコでイベントコードを書いてない場合
・ちょっと前のKeyPreviewのような場合
・キーフォーカスがほかにある等の技術的問題の場合
などいろいろあって面倒だからコードあげないと答えが帰って来ないよ
0245デフォルトの名無しさん
2006/11/16(木) 00:29:22・質問者が本当にタコでイベントコードを書いてない場合
それはないです
・ちょっと前のKeyPreviewのような場合
ちがう気がします。
・キーフォーカスがほかにある等の技術的問題の場合
キーフォーカス!でもユーザコントロール内のコントロールにカーソルがある時に
ユーザコントロールのイベントをとりたいのですが
0246デフォルトの名無しさん
2006/11/16(木) 00:56:15ユーザーコントロール内のコントロールのKeyDownイベントハンドラでOnKeyDownは呼んでるの?
0247デフォルトの名無しさん
2006/11/16(木) 10:35:41ブリーのライブラリってないでしょうか?
0248デフォルトの名無しさん
2006/11/16(木) 12:03:38まあ、C# でかかれたものはなかなかないけど、
C とかのライブラリ拾ってきて、C++/CLR でラッパー買いて、
C# から利用とかできる。
0249デフォルトの名無しさん
2006/11/16(木) 14:43:00ありがとうございます
(素で打ち間違えてるwハズカシー)
C++でDLLつくってC#から関数を呼び出すことはできました
でも、引数の渡し方とかよくわかんない
噂に聞くマーシャルとかいうやつを使うんでしょうか?
ぐぐりまくってみます
では
0250デフォルトの名無しさん
2006/11/16(木) 16:44:43C++/CLIってC#でつかってる変数、(List<>とか)引数でわたせるんですね
んで、C++/CLIであっち側の変数(double x[]とか)に変換してやれば
マーシャル(?)いらないんですね
これでなんとかできそうです
ありがとうございました
0251デフォルトの名無しさん
2006/11/16(木) 22:14:46onLeyDownよんでいません・・・
特別に何かしないと駄目なのでしょうか?
0252デフォルトの名無しさん
2006/11/16(木) 22:45:440253デフォルトの名無しさん
2006/11/16(木) 23:15:45中のコントロールにフォーカスがあるとユーザーコントロールのKeyDownイベントは自動では起きないから
コントロールのKeyDownイベントハンドラでthis.OnKeyDownを呼ばないと駄目
0254デフォルトの名無しさん
2006/11/16(木) 23:19:380255デフォルトの名無しさん
2006/11/16(木) 23:21:53ありがたく使わせてもらう
0256デフォルトの名無しさん
2006/11/17(金) 00:22:44意味不明
0257デフォルトの名無しさん
2006/11/17(金) 00:50:25private Queue q = new Queue();
private Queue synQ = Queue.Synchronized(q);
という方法で使用するというのが作法(?)だったと思います。
Framework 2.0 になって、ジェネリックが追加されたため、 Queue を
private Queue<string> q = new Queue<string>();
として使用しています。マルチスレッドでこの変数にアクセスするとき、
以前と同じように行おうと思ったのですが、
System.Collections.Generic.Queue
には Synchronized メソッドがありませんでした。以前と同じように行
うことはできないのでしょうか? lock を使用する方法しかないのかな
?と考えています。
こんな感じでしょうか?
lock (((System.Collections.ICollection)q).SyncRoot)
{
q.Enqueue("aiueo");
string s = q.Dequeue;
}
ちなみに
private Queue<string> synQ =
(Queue<string>)Queue.Synchronized((Queue)q);
はコンパイルエラーとなりました。
エラー 1 型 'System.Collections.Generic.Queue<string>' を型 'System.Collections.Queue' に変換できません。
エラー 2 型 'System.Collections.Queue' を型 'System.Collections.Generic.Queue<string>' に変換できません。
このジェネリックをマルチスレッドで扱うための手段をご存知の方いら
っしゃいましたらご教授願えませんでしょうか?よろしくお願いいたし
ます。
0258デフォルトの名無しさん
2006/11/17(金) 01:20:19ちゃんと自分で lock しろってことかね。
0259デフォルトの名無しさん
2006/11/17(金) 07:32:04QueueとQueue<t>は無関係だからキャストするのはさすがに無理。
自分でlockするしかないけど、数が多くて面倒なら、
Queue.SynchronizedQueueに相当するラッパクラスを書けばいい。
0260デフォルトの名無しさん
2006/11/17(金) 13:33:560261デフォルトの名無しさん
2006/11/17(金) 14:51:49SystemInformation.MouseHoverTime
の値どうなってます?
10になってるんですが、みんなこうなんでしょうか。
速すぎて困ってるんですが
0262デフォルトの名無しさん
2006/11/17(金) 16:24:15これで十分
lock (q) {
q.Enqueue("hoge");
}
0263261
2006/11/17(金) 23:09:34SystemInformation.MouseHoverTime のデフォルト値っていくつなんだよぅ
0264デフォルトの名無しさん
2006/11/17(金) 23:23:220265デフォルトの名無しさん
2006/11/17(金) 23:25:340266デフォルトの名無しさん
2006/11/18(土) 00:59:09{
class foo{}
class bar{}
class foobar{}
}
上記のように名前空間hogeには3つのクラスfoo,bar,foobarがある場合
すべて1ファイルに書くのが普通?
それとも1ファイルに1クラスとして書くのが普通?
0267デフォルトの名無しさん
2006/11/18(土) 01:01:26名前空間程度ならアセンブリを超える事も良くある話
EventArgs 派生クラスとか列挙体寄せ集めとかは一つに纏める事が多いな
0268デフォルトの名無しさん
2006/11/18(土) 01:06:471ファイルに1クラスなんて決まってたら質問するわけ無いでしょ?
0269デフォルトの名無しさん
2006/11/18(土) 01:23:350270デフォルトの名無しさん
2006/11/18(土) 01:31:29好きに出来るってことは、好きに出来るってことでは?
それらがどういうクラスで、それらがどういう関係で、今後どういう運用をしていくかとか
おまえがどういう設計をするかによって変わってくるってことだ。おまえにしか分からんことだよ。
0271デフォルトの名無しさん
2006/11/18(土) 01:35:410272デフォルトの名無しさん
2006/11/18(土) 03:24:070273デフォルトの名無しさん
2006/11/18(土) 03:30:38テキストエディタを作るという事自体が
相当なもんですよ
0274デフォルトの名無しさん
2006/11/18(土) 08:43:350275デフォルトの名無しさん
2006/11/18(土) 09:00:090276デフォルトの名無しさん
2006/11/18(土) 11:04:51フリーでも市販でも腐るほどでてるので
それらに無い機能が欲しいのか
マクロやPlug inで対応できないほどの機能で
0277デフォルトの名無しさん
2006/11/18(土) 11:37:28だったらC++で(ry
0278デフォルトの名無しさん
2006/11/18(土) 13:18:160279デフォルトの名無しさん
2006/11/18(土) 13:45:34今やってる。
思ったよりレスポンスはいい。
行数もたいしたこと無い(テキストボックス代替部に限った話しでは、
Undoと細々したこと未対応で1300行程度。最終的にも2000行はいかないと思われ)。
一つレスポンスで注意したほうがいいのが、Font.Heightの取得は
結構レスポンスに響くので、ループ中なら別の変数に代入したほうがいい。
後は、フォント(とMeasureString)はよく勉強しとかないとはまるよ。
他に、SVG対応とMathMLの機能限定対応もやってるけど、C#ってよくできてることを実感してる。
0280デフォルトの名無しさん
2006/11/18(土) 16:30:390281デフォルトの名無しさん
2006/11/18(土) 17:37:05おかしいと思うが…
0282デフォルトの名無しさん
2006/11/18(土) 18:08:55全部見るのは辛いな。
emacsはもっとすごかったが、今考えるとオブジェクト指向だと、
もう少し楽になるんじゃないかな。
0283デフォルトの名無しさん
2006/11/18(土) 18:14:17コアな部分以外はけっこうelispで書かれていたりする。
0284デフォルトの名無しさん
2006/11/18(土) 18:35:17.NETではおそらく勝負にならん。
0285デフォルトの名無しさん
2006/11/18(土) 18:38:020286デフォルトの名無しさん
2006/11/18(土) 18:41:34とも思えんよなぁ
0287デフォルトの名無しさん
2006/11/18(土) 18:41:34確かに!
正規表現のMatchの遅さも定評だしたなw
自前でC++で実装したほうが早かったのはマジびびった
さすがにBoostには勝てなかったが・・・
0288デフォルトの名無しさん
2006/11/18(土) 18:47:160289デフォルトの名無しさん
2006/11/18(土) 19:11:14色々高機能で良さげなんだけど、中でエディタ使ってコードとか書き始めたら
反応がタイプに全然ついて来なかったから泣く泣く捨てた。
0290デフォルトの名無しさん
2006/11/18(土) 19:17:42C++MFC/ATL > JAVA > .net
でおk?
0291デフォルトの名無しさん
2006/11/18(土) 19:41:180292デフォルトの名無しさん
2006/11/18(土) 19:41:23pictureBoxにDrawLine関数で描画をさせてpictureBoxから
はみ出した部分をスクロールバーで表示できるようにしたのですが、
バーをスクロールさせると隠れている部分の画像が消えてしまいます。
どうすれば正常に描画結果を表示させることができるでしょうか?ご教授ください。
0293デフォルトの名無しさん
2006/11/18(土) 19:54:23PictureBox の Image に自前で用意した Bitmap を設定してその Bitmap の Graphics に描画するようにすれ。
0294デフォルトの名無しさん
2006/11/18(土) 20:11:54ありがとうございました。
早速参考にさせていただきます。
0295デフォルトの名無しさん
2006/11/18(土) 23:43:07DF使ったってやっぱり覗けるし・・・
趣味でプログラム書いてるようなヲタクは答えなくて結構です。
0296デフォルトの名無しさん
2006/11/18(土) 23:45:20* .NETは使わない。
0297デフォルトの名無しさん
2006/11/18(土) 23:45:490298デフォルトの名無しさん
2006/11/18(土) 23:48:130299デフォルトの名無しさん
2006/11/18(土) 23:58:03EXE本体はソースが覗けないんだよな。あれはどうやってるんだ?
0300デフォルトの名無しさん
2006/11/19(日) 00:03:190301デフォルトの名無しさん
2006/11/19(日) 00:04:200302デフォルトの名無しさん
2006/11/19(日) 00:05:550303デフォルトの名無しさん
2006/11/19(日) 00:09:150304デフォルトの名無しさん
2006/11/19(日) 00:11:27VC+++MFC6はVC+++MFC6で作られてるよ
0305デフォルトの名無しさん
2006/11/19(日) 03:15:00バイナリに適当に無駄なコードを挿入するソフトを使う
存在するかどうかは知らない
0306デフォルトの名無しさん
2006/11/19(日) 04:40:41アプリケーション内で使用するさまざまなデータはどこに配置していますか?
Formのメンバとして宣言するのが普通ですか?
0307デフォルトの名無しさん
2006/11/19(日) 08:00:170308デフォルトの名無しさん
2006/11/19(日) 09:07:470309デフォルトの名無しさん
2006/11/19(日) 09:32:51┐(´ー`)┌
0310デフォルトの名無しさん
2006/11/19(日) 09:39:180311デフォルトの名無しさん
2006/11/19(日) 09:40:16普通なんてないんだよ。
おまえの設計次第。
0312デフォルトの名無しさん
2006/11/19(日) 12:08:47MVCのMをどこに置くかって話だろ。
俺は、ModelのRootになるクラスを作って、Mainでそのインスタンスを作成し、View (Form)と結合させてる。
Model model = new Model();
MyForm form = new MyForm();
form.Model = model;
Application.Run(form);
みたいな感じ。
0313デフォルトの名無しさん
2006/11/19(日) 13:16:12XML(DOM)が良
データ管理がすごく楽(データのバージョンもあんまり気にしなくていいし)。
オブジェクト指向にも合致した作りが簡単。
やってみる価値大。
0314デフォルトの名無しさん
2006/11/19(日) 13:26:210315デフォルトの名無しさん
2006/11/19(日) 13:37:100316デフォルトの名無しさん
2006/11/19(日) 14:33:450317デフォルトの名無しさん
2006/11/19(日) 15:31:49おいおい、そんなんじゃViewがModelのこと知りすぎてなんの意味も無いじゃんw
単なるマスタベ?
0318デフォルトの名無しさん
2006/11/19(日) 17:48:59釣りはやめときましょう。
あまりおもしろくありませんよ。
0319デフォルトの名無しさん
2006/11/19(日) 17:53:07>>317じゃないけど>>312は酷いだろ
0320デフォルトの名無しさん
2006/11/19(日) 18:14:57VC+++MFC6は何で作られてますか?
0321デフォルトの名無しさん
2006/11/19(日) 18:16:540322デフォルトの名無しさん
2006/11/19(日) 18:19:590323デフォルトの名無しさん
2006/11/19(日) 19:51:45でも何もない素の状態なら
ハンドアセンブラで書くしかねえんじゃねえの?
0324デフォルトの名無しさん
2006/11/19(日) 20:07:52ハンドアセンブルで簡単なアセンブラ書いて、
それで BASIC インタプリタ書いて、
それで簡単な言語コンパイラ書いて・・・
って昔はやってた。
今は、優秀な C コンパイラがあるんだからそれで次のコンパイラ書いたり、
YACC とかのコンパイラ作成用ツール(コンパイラコンパイラ)がある。
0325デフォルトの名無しさん
2006/11/19(日) 20:08:110326デフォルトの名無しさん
2006/11/19(日) 20:08:19listViewの項目をプログラム側から選択させたいのですが、どうすれば良いのでしょうか?
0327デフォルトの名無しさん
2006/11/19(日) 20:13:01それはちょっと違うんじゃないかと思った。
0328デフォルトの名無しさん
2006/11/19(日) 20:22:42SelectedItems とか SelectedIndices とかあるっしょ
0329デフォルトの名無しさん
2006/11/19(日) 20:57:230330デフォルトの名無しさん
2006/11/19(日) 20:59:19ListViewItem.Selected
0331デフォルトの名無しさん
2006/11/19(日) 21:08:49ListView.SelectedIndicesだろうが。
0332デフォルトの名無しさん
2006/11/19(日) 21:25:04Datas
Index
Indexes
だろ
常識だろ。
0333デフォルトの名無しさん
2006/11/19(日) 21:26:090334デフォルトの名無しさん
2006/11/19(日) 21:27:04回ってきたソースにそういう変数名があったら泣けるよな。
0335デフォルトの名無しさん
2006/11/19(日) 21:28:110336デフォルトの名無しさん
2006/11/19(日) 21:28:57dataを持ちだしてるところからネタだと判断できると思う。
0337デフォルトの名無しさん
2006/11/19(日) 21:29:240338デフォルトの名無しさん
2006/11/19(日) 21:29:28ってメソッドがあったんだ……。
0339デフォルトの名無しさん
2006/11/19(日) 21:30:47ごめんなさい。
一回スペルミスったまま納品しちゃいました。
0340デフォルトの名無しさん
2006/11/19(日) 21:50:40Saati()
Kensaku()
検索()
どれがいい?
0341デフォルトの名無しさん
2006/11/19(日) 22:01:240342デフォルトの名無しさん
2006/11/19(日) 22:21:18つづり間違いと区別付きにくいが。Serchは絶対無いが
0343デフォルトの名無しさん
2006/11/19(日) 23:16:59両方ともDockプロパティをTopに設定したするとListViewの方が上に配置されてしまいます。
TextBoxの方が上に配置されるようにするにはどうすればいいのですか?
0344デフォルトの名無しさん
2006/11/19(日) 23:25:11ListViewを切り取って貼り付け
0345デフォルトの名無しさん
2006/11/19(日) 23:29:13ZOrder変更
0346デフォルトの名無しさん
2006/11/19(日) 23:30:28「もう一度、UNIXを作り直すとしたら?」
デニス・リッチー曰く
「creat()にeをつけます」
0347デフォルトの名無しさん
2006/11/19(日) 23:38:54あんなcharベースのOSなんて今なら誰だって書ける
linxなんてその典型
0348デフォルトの名無しさん
2006/11/19(日) 23:41:28自作OS
自作コンパイラ
自作言語
0349デフォルトの名無しさん
2006/11/19(日) 23:42:14何が言いたいのかよくわからんなあ。
現代の技術では容易く作れるってことが、もともとの発明の価値を下げるわけでもないし。
0351デフォルトの名無しさん
2006/11/19(日) 23:47:510352デフォルトの名無しさん
2006/11/19(日) 23:57:49大体は最初は古いバージョンで新しいバージョンのソースをコンパイルする。
そして今度はコンパイルで出来たものでまた新しいバージョンのソースをコンパイルする。
pascalは昔自分で自分のコンパイラ生成が出来なかったためCより劣っているとされた。
後に仕様を追加してコンパイルできるようになった。
0353デフォルトの名無しさん
2006/11/20(月) 00:04:53『本物のプログラマーはパスカルを使わない』
で本物のプログラマは…との賜ってる人は
今で言うとC++MFC/ATLじゃないと…といってる人だな。
0354デフォルトの名無しさん
2006/11/20(月) 02:48:18gccのビルドはまさにそんな手順だよね。
0355323
2006/11/20(月) 12:17:03YACCをググってみたけど良くわからんですねorz
高級言語ばっかり使ってるから……
C#+.NETなんて超高級だよなあ
>>352
それはわかるんですけど、その最初のバージョンはどうやって
つくるのかがイメージ出来ないんです
例えば今全く新しいCPU向けに gccを移植したいとすると
x86用のgccから新CPU用のgcc(バイナリ)が
つくれるってことですか
アセンブラでシコシコ書かなくても?
c#とは関係ない話題ですが……
0356デフォルトの名無しさん
2006/11/20(月) 12:35:59yaccは文法定義から構文解析するCの関数を吐くツールだよ。
新しいCPUでは最初にgccのコード生成部分だけ置き換えてクロスコンパイラを作るんだよ。
コンパイラは必ずしもターゲット上で動かす必要はないだろ。
0358デフォルトの名無しさん
2006/11/21(火) 00:11:33すべてのファイルが容量が増えていますがなぜどしょうか。
0359デフォルトの名無しさん
2006/11/21(火) 00:43:08GZipStreamはじめて使ってみたけど、圧縮率悪いね。
中身のファイル名に変な拡張子つくし
0360デフォルトの名無しさん
2006/11/21(火) 01:00:56コードがおかしいのかと思ってMSDNのサンプルコードそのまま使っても
2/3くらい元のファイルより容量が増えてます。なんでだろ・・
0361デフォルトの名無しさん
2006/11/21(火) 01:58:38冗長なファイル("a" x 16400000)を圧縮したら158275バイトになったよ。
0362デフォルトの名無しさん
2006/11/21(火) 04:44:220363デフォルトの名無しさん
2006/11/21(火) 10:26:340364デフォルトの名無しさん
2006/11/21(火) 19:26:58デフォルトではDebugモードになってるらしいですが
Releaseモードにはどうやって切り替えるんですか?
それらしい設定が見当たらないよー(ノД`)
VC#2005Expressです。
0365デフォルトの名無しさん
2006/11/21(火) 19:44:010366デフォルトの名無しさん
2006/11/21(火) 19:52:21標準ツールバーのソリューション構成ボックス
0367デフォルトの名無しさん
2006/11/21(火) 20:41:330368デフォルトの名無しさん
2006/11/21(火) 21:19:20,一-、
/ ̄ l | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
■■-っ < んなーこたーない
´∀`/ \__________
__/|Y/\
Ё|__ | / |
| У |
0369デフォルトの名無しさん
2006/11/21(火) 21:41:510370デフォルトの名無しさん
2006/11/21(火) 21:48:480371デフォルトの名無しさん
2006/11/21(火) 21:50:02あるよ?
0372デフォルトの名無しさん
2006/11/21(火) 21:52:25プロジェクト→プロパティ→ビルド→出力パス
0373デフォルトの名無しさん
2006/11/21(火) 21:55:38>プロジェクトおよびソリューション>ビルド構成の詳細を表示
0375デフォルトの名無しさん
2006/11/22(水) 15:29:02フォーム上の色を取得する関数って有りますでしょうか?
例えば、フォームの右半分が赤色で左半分が青色だったとして、
色を取得して、青色だったら何々、赤色だったら何々と処理を分けたいのですけれども・・・
0376デフォルトの名無しさん
2006/11/22(水) 15:46:110377デフォルトの名無しさん
2006/11/22(水) 16:36:00自分です。
例えば、青色の線のところだけ動く亀みたいなプログラムを組む場合、
フォーム上の青色のところだけ取得したいんです。
0378デフォルトの名無しさん
2006/11/22(水) 16:38:33塗った領域を保存しておいた方がいいんじゃね?
0379デフォルトの名無しさん
2006/11/22(水) 16:46:06例えば、亀さんが動くコースをデータとして持っておいて、定期的に:
1、そのデータに従ってコースを描画する。
2、亀さんの現在位置に亀さんを描画
みたいなことをする。
ダブルバッファリングするなり、必要最小限の位置を描きかえるなりしないと
フリッカーが出るよ。
0380デフォルトの名無しさん
2006/11/22(水) 16:49:20塗った領域を保存すると、例えばフォームが黄色で中に青い円が書いてある場合、
青い円の上だけ亀が動くプログラムが作れるのでしょうか?
0381デフォルトの名無しさん
2006/11/22(水) 16:51:03円の座標と半径を覚えておけばいいだけだろうw
0382デフォルトの名無しさん
2006/11/22(水) 16:51:480383デフォルトの名無しさん
2006/11/22(水) 17:11:35それでコースはどこに描いてるんだよ。
0384デフォルトの名無しさん
2006/11/22(水) 17:14:42そのBitmapの色ならGetPixelで取得可能
0385デフォルトの名無しさん
2006/11/22(水) 17:35:16Conterol.CreateGraphicsでGraphicsを作って、それをBitmap(Int32, Int32, Graphics)に食わせてGetPixelすりゃいいんじゃなかろうか。
0386デフォルトの名無しさん
2006/11/22(水) 19:48:36ソフトを作っています。
Start ボタンを押すと、受信開始、Stop で受信終了という単純なものです。
で、serialPort_DataReceived イベントメソッドを使用して受信は問題なく行えるように
なりましたが、データ受信中 ( 表示中 ) は Stop ボタンを押しても Button_Click
イベントが起動しません。
232C の送信を止めると、データ受信も終わり Stop ボタンも効くようになります。
serialPort_DataReceived イベントが発生し続けるので、Button_Click イベントに
割り込みが行かないようです。
Button_Click を効くようにするには、何かコツがあるのでしょうか?
0387デフォルトの名無しさん
2006/11/22(水) 19:57:530388デフォルトの名無しさん
2006/11/22(水) 20:00:08すんません。分かりました。テキストボックスをスクロールさせるために、TextChanged イベントメソッドの中で
this.Text.SelectionStart = this.Text.Text.Length;
this.Text.Focus();
this.Text.ScrollToCaret();
としていたため、ボタンにフォーカスが行ってなかったようです。
this.Text.SelectionStart = this.Text.Text.Length;
this.Text.ScrollToCaret();
に変更したら問題がなくなりました。
0389デフォルトの名無しさん
2006/11/22(水) 20:10:44TEXTBOXとかに入力された数値ってstring型(object)になりますよね。
これをdouble型にキャストするのってどうやるの?
0390デフォルトの名無しさん
2006/11/22(水) 20:11:530391デフォルトの名無しさん
2006/11/22(水) 20:14:25早いなー!!
ありがとうございました。
もしよかったらもう少しおしえて下さい
string hoge = textbox1.text;
みたいには使えないんですよね?
いや、いいんですよ。罵倒しても
0392デフォルトの名無しさん
2006/11/22(水) 20:17:230393デフォルトの名無しさん
2006/11/22(水) 20:17:54double.TryParse()
0394デフォルトの名無しさん
2006/11/22(水) 20:20:07ごめんなさい。家のPCではVSが重くてまともに動かないんですよ(言い訳)
>>393
重ね重ね感謝します。
ありがとうございました
0395394
2006/11/22(水) 20:54:11{
string v = textBox1.Text;
double.TryParse(v);
MessageBox.Show(v);
}
じゃないんですよね。引数の使い方がわかりません。
0396デフォルトの名無しさん
2006/11/22(水) 20:55:15何がしたいんだ?
0397デフォルトの名無しさん
2006/11/22(水) 20:56:39textboxに入力された数値に係数を掛けたいんです・・・・
あと数値かどうかの判定とかも
0398デフォルトの名無しさん
2006/11/22(水) 20:56:40センスなさ杉。
MSDNライブラリを百遍ほど読んで来い。
0399デフォルトの名無しさん
2006/11/22(水) 20:57:15string v = textBox1.Text;
double d;
if (double.TryParse(v, out d)) {
MessageBox("double にキャストした値は" + d.ToString());
}
0400デフォルトの名無しさん
2006/11/22(水) 20:57:30double d;
if(double.TryParse(v, out d)){
MessageBox.Show(d);
}else{
MessageBox.Show("パーズできねえ");
}
0401デフォルトの名無しさん
2006/11/22(水) 21:03:460402デフォルトの名無しさん
2006/11/22(水) 21:12:13Double d = Double.Parse(textBox1.Text);
MessageBox.Show(d.ToString());
}
catch{
MessageBox.Show("数値でない");
}
0403デフォルトの名無しさん
2006/11/22(水) 21:14:57フレームワークも何かつうと例外投げてくるし。
0404デフォルトの名無しさん
2006/11/22(水) 21:16:24>>400
>>401
>>402
ありがとうございましたぁっ!!!!!!!!!
明日会社で早速使わせてもらいます!!
では失礼しました
0405デフォルトの名無しさん
2006/11/22(水) 21:17:39パーズw
0406デフォルトの名無しさん
2006/11/22(水) 21:19:39parseの発音は[-s]でも[-z]でもかまわんよ。
0407デフォルトの名無しさん
2006/11/22(水) 21:22:550408デフォルトの名無しさん
2006/11/22(水) 21:23:19一人のニートが今戦慄を憶えた。
0409デフォルトの名無しさん
2006/11/22(水) 21:25:550410デフォルトの名無しさん
2006/11/22(水) 21:29:170411デフォルトの名無しさん
2006/11/22(水) 21:48:33意外とC++使いとかw
0412デフォルトの名無しさん
2006/11/22(水) 22:26:430413デフォルトの名無しさん
2006/11/22(水) 22:27:140414デフォルトの名無しさん
2006/11/22(水) 22:38:18MFC使いには絶対に思い浮かばない発想。
0415デフォルトの名無しさん
2006/11/22(水) 23:01:59その行だけなら、正常な頭をもつ C# 学習者なら誰が
思いついてもおかしくないような気がしなくもないけど・・・
MFC 使いだった人はC#でも textBox1.GetText(str) とか書くの?
コンパイル通る?
0416デフォルトの名無しさん
2006/11/22(水) 23:56:520417デフォルトの名無しさん
2006/11/23(木) 00:04:12むう?
0418デフォルトの名無しさん
2006/11/23(木) 00:13:380419デフォルトの名無しさん
2006/11/23(木) 00:14:45だってなんちゃってだもん
0420デフォルトの名無しさん
2006/11/23(木) 00:18:300421デフォルトの名無しさん
2006/11/23(木) 06:24:25GZipStreamとDeflateStreamで圧縮するときはBufferedStreamなどでバッファリングしないと圧縮率が悪いようだ。
StreamWriterはそれ自身がバッファリングしてるからいいがBinaryWriterやらTextWriterを使った場合は必要となる。
サンプルは独自にbyte[]でバッファリングをしているようだ。
ただ既に圧縮済みのデータやランダムなデータはそれでも大きくなってしまう。
0422デフォルトの名無しさん
2006/11/23(木) 08:59:42回答大変有難うございます。
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Bitmap bitmap = null;
bitmap = new Bitmap(@"C:\backcolor.jpg");
pictureBox1.Image = bitmap;
int sizeX = bitmap.Width;
int sizeY = bitmap.Height;
for (int Y = 0; Y < sizeY; Y++)
{
for (int X = 0; X < sizeX; X++)
{
int P = bitmap.GetPixel(X, Y).ToArgb() ;
string s = P.ToString("X");
textBox1.Text += (s);
}
}
}
見たいな感じで、画像の色が何色か文字列に表示しようとしているのですが、
textBox1 = {Text = ネイティブ フレームが呼び出し履歴の最初にあるため、式を評価できません}
とでて、文字を表示できません。
どなたか、ヒントをいただけないでしょうか?
変数にはs"FF0000FE"string
とうまく代入されているみたいなのですが・・・
0423デフォルトの名無しさん
2006/11/23(木) 09:52:36>>386 で書き込みしたものです。
あれから色々と試しているのですが、serialPort_DataReceived で受信をしている途中で
stop を掛ける( serialPort_DataReceived イベントメソッドのアンバインド、シリアル
ポートのクローズ ) をすると、時々とまってしまいます。
例外が出るわけではなく、ブロック ( GUI の表示がとまる ) してしまいます。
問題なく stop がかかり GUI も普通に表示されるときもありますが、時々とまります。
このソフトを動かしているマシンが遅く、他の処理が始まるとこの止まってしまうのが
顕著になります。
serialPort_DataReceived が複数呼ばれ、処理が終わらないうちに stop を掛けると
止まってしまうようです。
どうすれば良いでしょうか。
0424デフォルトの名無しさん
2006/11/23(木) 10:30:38う〜ん。
たぶんだけど、textBox1.Textってstringそのものじゃなく、
プロパティでしょ。だから”+=”がうまくいかないんじゃないの?
一旦ワークのストリング変数で”+=”を行ってからtextBox1.Textに代入
すればうまくいくような気もするが。
あと、sizeX,sizeYがどの程度か判らないけど、レスポンスを気にするのなら、
StringBuilderを使った方がいいカモね。
0425デフォルトの名無しさん
2006/11/23(木) 11:17:0650x50のjpgで試したら、時間はかかったけど問題なく表示されたよ。
0426デフォルトの名無しさん
2006/11/23(木) 11:50:43>>387
0427デフォルトの名無しさん
2006/11/23(木) 12:12:33まあ、TextBoxのTextを内部でどのように保持しているかだけど、
エディタとしての機能を考えると、改行毎のストリング列に変換してるぽいから、
get,setするたびにすごい変換がかかるし、
ストリングそのものが遅いって話しもあるしね。
時間がかかるのは仕方がない。
0428デフォルトの名無しさん
2006/11/23(木) 12:20:560429デフォルトの名無しさん
2006/11/23(木) 12:31:07もうちょっと詳しく書けよ。
俺も試したけど、どう問題なのか分からんかった。
どっかから例外が飛んでくるのか?
0430デフォルトの名無しさん
2006/11/23(木) 12:35:58しかし、遅くなるだけで完全に動かなくなるわけじゃないだろ。
0431デフォルトの名無しさん
2006/11/23(木) 12:49:12LockBitsで先頭ポインタを取得してMarshal.Copyか。
0432デフォルトの名無しさん
2006/11/23(木) 13:21:250433422
2006/11/23(木) 13:39:12ウワーン、皆さん本当にやさしいレスありがとうございます。
どんなプログラム書きたいかというと、フォームの色を取得して青色のところだけ
絵が進むみたいなプログラムなんです。
色を取得して、16進数に直してwhile(色=0x青)なら、pictureBoxが動くみたいなのを
想像しています。
で、Cはそこそこ分かるんですが、C#は今回初めて使うんです。
とりあえず、トライアンドエラーで覚えていこうと。
IDEはVisual C# Express EditionでマシンはThink Pad s30です。
で、何がいけなかったかというとマシンが遅すぎなのと、背景が500*500だったので
表示に時間がかかりすぎて自分がコンパイルに失敗したと勘違いしたことです。
50*50ならいけました。
なんとかこれを高速化すること出来ないでしょうか?
かなり正解に近づきつつあるとおもうので。
0434デフォルトの名無しさん
2006/11/23(木) 13:43:10>>432
GetPixel/SetPixel は全体を走査するには重すぎる
0435デフォルトの名無しさん
2006/11/23(木) 14:43:19ほい、直接じゃないが、やりたいことのサンプルになると思うよ(スピードアップ)。
http://www.codeproject.com/cs/media/csharpgraphicfilters11.asp
0436435
2006/11/23(木) 15:27:59ごめん勘違いしてるかな?(高速化)
435の高速化は、画面走査に効くけど、テキストボックスには効かない。
テキストボックスに関してなら、StringBuilderでテキスト操作後
テキストボックスに入れればよい。
それから、レスポンスを測りたかったらStopwatchクラスを使うとよい。
StopwatchもStringBuilderも簡単だからヘルプを見てね。
0437デフォルトの名無しさん
2006/11/23(木) 16:14:24テキストボックスも高速化しなきゃいけないのですか?
Bitmap bitmap = null;
bitmap = new Bitmap(@"C:\hoge.jpg");
pictureBox1.Image = bitmap;
int sizeX = bitmap.Width;
int sizeY = bitmap.Height;
BitmapData bitmapData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height),
ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
int stride = bitmapData.Stride;
System.IntPtr Scan0 = bitmapData.Scan0;
unsafe
{
byte* p = (byte*)(void*)Scan0;
byte green;
byte red;
byte blue;
for (int Y = 0; Y < sizeY; Y++)
{
for (int X = 0; X < sizeX; X++)
{
green = p[0];
blue = p[1];
red = p[2];
p += 3;
string s = green.ToString("X");
textBox1.Text += (s);
0438デフォルトの名無しさん
2006/11/23(木) 16:15:07}
}
bitmap.UnlockBits(bitmapData);
}
とりあえず、
RGBのGだけ表示させようと思うんですけれど(うまくいけば後で連結させればよいかなと思って)
文法的に大丈夫でしょうか?
参考を例に適当にでっち上げてみたんですけれど・・・
何をどうすればよいのか分け分からなくなってきました・・・
0439デフォルトの名無しさん
2006/11/23(木) 16:18:46>文法的に大丈夫でしょうか?
コンパイラに聞けよボケ
0440デフォルトの名無しさん
2006/11/23(木) 16:19:010441デフォルトの名無しさん
2006/11/23(木) 16:21:430442デフォルトの名無しさん
2006/11/23(木) 17:09:34さしあたって、RGBの順番が違ってそうだね。
と、>>441が指摘してるように、yのループでのオフセットを進めないとね(参考例と違ってる)。
>テキストボックスも高速化しなきゃいけないのですか?
う〜ん、それだと、絶対テキストボックスへのテキストの代入がネックになるから
高速化は期待できない。
テキストボックスに代入して何がしたいのかがわからない。
必要?それともデバッグ用?
デバッグ用と仮定しての話し。
下の文は外すべきでしょ。
string s = green.ToString("X");
textBox1.Text += (s);
そうでなければ、さしあたり、
string s+ = green.ToString("X");
にして、
textBox1.Text = (s);
をループの外に出したら。
出来れば、「string s+ = green.ToString("X");」をStringBuilderにした方がいいと思うけど。
ちなみに、StringBuilderなら、newして、AppendしてToStringすればいいだけなんだけど。
レスポンスは、テキストボックスへのテキストの代入、次にstringへの代入、StringBuilderの
順で速くなるから、これだけのループなら通常StringBuilderを使うと思うけど。
デバッグ用にしても、StringBuilderを使う。
0443デフォルトの名無しさん
2006/11/23(木) 17:29:47もうちょっと、フォローしておくと、
>>422が遅い原因が2つ考えられる。
・画面全域をGetPixelするにはつらいこと
・テキストボックスへの直接のテキストの代入。
自分のカレント位置が有って、その周囲8ポイント程度を見るのなら、
GetPixcelでOK。画面全域チェックならサンプルの方法を行う必要がある。
(以前自分が、写真の鮮鋭かを行ったときサンプルの手法でレスポンスが、
コンマ数秒程度で出来た。)
テキストボックスは、上にも書いたけど単純なstringの代入と思わない方がよい。
プロパティ(内部で複雑な処理が可能)のため、代入以外処理を行っている可能性大。
このため、非常にレスポンスが遅くなる可能性が有る(これは未チェック)。
ただし、数十万回のループなら、stringへの代入でも遅いはずだから、
スピードアップ用に用意された、StringBuilderを使うべき。
0444デフォルトの名無しさん
2006/11/23(木) 18:29:11お返事いっぱい頂いたのですが、
文字列を表示するのが本来の目的でなく、背景色が何色か調べるのが目的なので
unsafe
{
int* p = (int*)(void*)Scan0;
int color;
for (int Y = 0; Y < sizeY; Y++)
{
for (int X = 0; X < sizeX; X++)
{
color = p[0];
string s = color.ToString("x");
int Compare = string.Compare(s, "fe0000fe");
if (Compare == 0)
{
MessageBox.Show("背景は青です");
}
p += 4;
textBox1.Text += (s);
}
これで、等しいが出るようになりました。
あとはifをwhileに変えてtrueの間だけpictureboxを動かせば良さそうです。
ここスレの皆様のご恩はわすれません。
どうもありがとうございました!
0445デフォルトの名無しさん
2006/11/23(木) 18:33:34ここにあるコントロールのインストール法が分かりません。ツールバーってどこですか?
誰か教えてください。
To use this control from the Visual Studio designer,
simply right click on the tool bar and choose "Add/Remove Items" and then click "
Browse" and browse to the AlphaBlendTextBox.dll file.
After doing this, the AlphaBlendTextBox control should appear in your tool bar (under "My User Controls" if you have VS2003). Now you can drag the control to a form and use it just like the original TextBox control.
The control has a new property named BackAlpha that will allow you to set the control's background alphablend value.
The range is 0 for transparent, 255 for opaque, or in between for translucent.
0446デフォルトの名無しさん
2006/11/23(木) 18:35:26tool boxの間違いじゃね?
0447デフォルトの名無しさん
2006/11/23(木) 18:49:59できました。ありがとうございます。
ツールボックス上でアイテムの選択というのを押したらできました。
0448デフォルトの名無しさん
2006/11/23(木) 19:05:50↓あぶなくないか?
p += 4;
Strideは4バイト境界用のパディングぽいから、送るのは
4未満のどの値が入るか分からないと思うけど。
サンプル通りにつくりたほうがよい。
多分、バグってると思われ。
0449デフォルトの名無しさん
2006/11/23(木) 19:15:480450デフォルトの名無しさん
2006/11/23(木) 19:28:09この程度のコントロールなら自前で用意したほうが早い
0451デフォルトの名無しさん
2006/11/23(木) 20:22:52色が等しいかどうかなのになんで文字列同士の比較してんの?
intで比較しろよ
0452デフォルトの名無しさん
2006/11/23(木) 20:29:28んなわけねえだろボケ
0453デフォルトの名無しさん
2006/11/23(木) 20:33:35俺はこんなの簡単に作れるんだぞって言いたいだけだから相手スンナ
どーせリアルでは何も出来ない奴さ
0454デフォルトの名無しさん
2006/11/23(木) 20:33:520455デフォルトの名無しさん
2006/11/23(木) 21:52:55画像を指定座標に表示するためにはどうすればよいのでしょうか?
Bitmap icon = new Bitmap(@"C:\icon.jpg"); 画像の読み込み
unsafe
{
int* p = (int*)(void*)Scan0;
int color;
for (int Y = 0; Y < sizeY; Y++)
{
for (int X = 0; X < sizeX; X++)
{
color = p[0];
string s = color.ToString("x");
int Compare = string.Compare(s, "fe0000fe");
while (Compare == 0)
{
Graphics g = pictureBox2.CreateGraphics();
g.DrawImage(icon, X, Y);
p += 4;
}
}
}
}
みたいなことは出来ないのでしょうか?
自分のイメージでは画像が走査線のように違う色まで走っていって欲しいのですけど。
0456デフォルトの名無しさん
2006/11/23(木) 22:06:500457デフォルトの名無しさん
2006/11/23(木) 22:17:28もうおなかいっぱい。釣りなら他所でやってくれ。
0458デフォルトの名無しさん
2006/11/23(木) 22:18:59レベル低っ
0459デフォルトの名無しさん
2006/11/23(木) 22:21:38間のレスは無視だろ?信じらんねえ
0460デフォルトの名無しさん
2006/11/23(木) 23:42:28いやさ、そのレベルなら画像処理なんてやめといたほうがいいと思うよ。
もうhello worldからやり直してください。ほんと頼みます。
0461デフォルトの名無しさん
2006/11/24(金) 00:15:47最近、こういうのが流行ってるの?
すぐに答えをもらえないと悪態をつくっていうの。
0462デフォルトの名無しさん
2006/11/24(金) 00:23:510463デフォルトの名無しさん
2006/11/24(金) 00:24:10結論から先にいいますと解決しました。
serialPort_DataReceived イベント自体がセカンダリスレッドで動作しますので
別スレッドで動作していることになっています。
でこのイベントメソッドの中で受信したデータをフォームに貼り付けていますが
この貼り付けも Delegate を使用し、
this.Invoke(Delegate, receivedData);
としていました。
これを、
this.BeginInvoke(Delegate, receivedData);
とすることで問題を回避できました。
マルチスレッドを扱ったのが初めてでしたので、ちょっとスレッドの勉強になりました。
0464デフォルトの名無しさん
2006/11/24(金) 00:34:180465444
2006/11/24(金) 00:45:42やっぱり自分には出来そうにないのであきらめます。
最後にお返事だけ。
>>448
windowsは色が32ビットで表されると書いてあったので、
p+=4にしました。
>>449
自分では、何をおっしゃっているか理解できません。
ただ、黒0x00000000と赤では上手くいきませんでした。
青0xfe0000feと白0xffffffffの時は規則正しく同じ値の繰り返しだったので、
隣のピクセルは喰っていないと判断しました。
>>451
まず、16進数で判断したかったんです。
で、文字列にしないと自分の力では比較方法が分かりませんでした。
>>458
自分じゃないです。
___________________________________________
もしこれがC#とWindowsじゃなかったら、
パレット設定して直接VRAM0xa0000に書き込むんですが・・・
今回は有難うございました。
自分にはWindowsは難しすぎです。
0466デフォルトの名無しさん
2006/11/24(金) 00:48:49>int stride = bitmapData.Stride;
つってんだろうがよぼけ!
0467デフォルトの名無しさん
2006/11/24(金) 00:50:520468デフォルトの名無しさん
2006/11/24(金) 01:04:36数字と数値の区別も付いてないし
0469デフォルトの名無しさん
2006/11/24(金) 03:21:12webのItemDataBoundみたいなイベント、windowsフォームにはりつける
datagridコントロールにありませんか?
0470444
2006/11/24(金) 08:13:53これって調べましたけれど何に使うのですか?
BitmapData bitmapData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height),
ImageLockMode.ReadWrite, PixelFormat.Format32bppRgb);
って指定して、
color = p[0];
intで4バイト読みこんで、(RGBと使わないビット)
p += 4;
じゃ駄目なんでしょうか?
>>467
いろに種類があったなんて知らなかったです。
勉強になりました。ここは参考コードのコピペです。
Format32bppRgbが求めているものになるのでこれに直しました。
>>468
そうですね、プログラミング向いてないです。
でも、今までメモリアドレスと数字しか使わないプログラミングしかしてこなかったので。
文字列型とか始めて知りました。
でも、C#2日目ですから、大目に見てください。
0471デフォルトの名無しさん
2006/11/24(金) 08:52:47よければGoogleでVC++を除いてVC#を検索に引っ掛ける方法があれば教えてください
0472デフォルトの名無しさん
2006/11/24(金) 08:59:14static readonly にでもしとけ
Web Search なら main filetype:cs
Code Search なら main lang:C#
0473デフォルトの名無しさん
2006/11/24(金) 09:01:14hoge[0] = "something"; が可能になる罠
0474デフォルトの名無しさん
2006/11/24(金) 09:47:23繰り返すのってどうやればいいでしょうか?VB.NETの互換ライブラリはなしで。
ありがちっぽいんですが探せなくて。いまループで処理してます。
0475デフォルトの名無しさん
2006/11/24(金) 11:23:340476デフォルトの名無しさん
2006/11/24(金) 12:11:20御指摘ありがとうございます。
IAsyncResult ar = this.BeginInvoke(Delegate, receivedData);
this.EndInvoke(ar);
という風にしてみました。
0477デフォルトの名無しさん
2006/11/24(金) 14:37:33スレ違いならばご指摘ください。
UI層、コントロール層、データアクセス層、エンティティ層の構造です。
そのエンティティ層のクラスの考えなのですが、
1.DBのテーブルに依存するのか
テーブルと1対1に定義する。
2.データアクセス層のSQL処理に依存するのか
Select したいテーブル(結合含む)に定義する。
つまり、Select別に同じようなエンティティクラスを定義する
なんだかよくわかりません。
どなたか考え方のご教授願えませんでしょうか・・・orz
0478デフォルトの名無しさん
2006/11/24(金) 14:53:28スキャンライン [ピクセル | ピクセル | ピク・・・・・・・・・・・・・・・・・ | パディング ]
|--------width×ピクセルのサイズ----------|
|-----------------------stride----------------------|
別にC#に限った事ではなくて一般的な話。
0479477
2006/11/24(金) 16:21:06意味がよくわからないですね・・・orz
ようは
1.DBのテーブルに依存する。
テーブルカラムと1対1に定義する。
Aテーブルのaカラム : A.a
Bテーブルのbカラム : B.b
2.データアクセス層のSQL処理に依存する。
Select したいテーブル(結合含む)ごとに定義する。
つまり、Select別に同じようなエンティティクラスを定義する
Aテーブルのaカラム : A.a
Bテーブルのbカラム : B.b
Cテーブルのa,bカラム : C.a C.b
a と b は同じ内容です。
テーブルのちがうカラムを
いっぺんでSelect するときは?
どのようにあればってことなんです。
0480デフォルトの名無しさん
2006/11/24(金) 17:34:59どういう答えを欲してるのか分からん。
もしアーキテクチャ理論の話がしたいんならスレ違いじゃないかな。
0481477
2006/11/24(金) 17:46:51そうですね・・・
すません
エンティティクラスの実装のしかたなんですが
1.テーブル依存なのか
2.処理依存なのか
ってことなんです・・・・
0482デフォルトの名無しさん
2006/11/24(金) 18:00:09String以外の参照型は定数にできない。
配列要素も変更不能にしたければReadOnlyCollectionを使う。
static readonly ReadOnlyCollection<String> strings =
new ReadOnlyCollection<String>(new String[] { "foo", "bar" });
0483477
2006/11/24(金) 18:26:36リレーションシップを管理する
こんな感じなんですかね?
これだと
1.テーブル依存
で
処理に併せてストアド作成 で?
0484デフォルトの名無しさん
2006/11/24(金) 20:44:18俺のパソでそのURLを表示させると
ASP.NET に熟練する: カス...
とタスクバーに出て笑った。
0485デフォルトの名無しさん
2006/11/24(金) 22:29:19DBに実装を載せるお兄ちゃんなんかキライッ!
0486デフォルトの名無しさん
2006/11/24(金) 23:48:370487デフォルトの名無しさん
2006/11/24(金) 23:52:20>>1
0488デフォルトの名無しさん
2006/11/25(土) 12:39:36ピクチャボックスには画像(白を透過)を貼ってあります。
ピクチャーボックスの透過部分がテキストボックスと重なったときに
テキストボックスが見えるようにしたいんですが
パネルの背景色でテキストボックスが隠れてしまいます。
どうすればいいのか教えてください。
0489デフォルトの名無しさん
2006/11/25(土) 14:25:510490488
2006/11/25(土) 14:51:56なんとなくそんな感じがしてましたがやっぱり無理ですか。
もう一つ質問させてください
今アイデアプロセッサみたいなのを作ろうとしてるんですが、
丸や四角、文字などはピクチャーボックスに直接書き込むようにしたほうがいいんでしょうか?
それともパネルにコントロールを配置していくようにするべきなんでしょうか?
よく分からないので教えてください。
http://www.forest.impress.co.jp/lib/offc/document/ideaprocsr/image/planningflow_r.html
0491デフォルトの名無しさん
2006/11/25(土) 15:11:14図形にいちいちウィンドウハンドル割り当てるのも馬鹿らしいから、
普通はControlあたりを継承して自作のコントロールを作る。
0492デフォルトの名無しさん
2006/11/25(土) 15:24:07ありがとうございます。
自分で作ったコントロールをフォームなどに配置していくような感じでしょうか?
まだ自分には難しくて無理そうですが自作コントロールを作ってみたいと思います。
0493デフォルトの名無しさん
2006/11/25(土) 16:49:090494デフォルトの名無しさん
2006/11/25(土) 16:52:19隅っこつまんで引っ張ってとか、触れる辺毎にカーソル変えてとか、
あれこれ細かい操作するなら自前で描画するのが結局いちばん楽だし動きも速い。
0495デフォルトの名無しさん
2006/11/25(土) 18:59:08VS2005ExporessでC#を勉強しています。
ディレクトリ単位でzip形式に圧縮するための
方法、サンプルなどありましたらお教えください
0496デフォルトの名無しさん
2006/11/25(土) 19:12:20> VS2005Exporess
エクスポレスでつか。そうでつか。
zip形式に圧縮するのは自前でやるならzipヘッダ吐き出してDeflateStreamを使ってやるんだけど
初心者には大変だろうから、SharpZipLibを使うのがお勧め。
0497デフォルトの名無しさん
2006/11/25(土) 19:19:31.net2.0からzip用のライブラリ追加になったはずだが???
0498デフォルトの名無しさん
2006/11/25(土) 19:20:580499デフォルトの名無しさん
2006/11/25(土) 19:34:35ありがとうございます
このご恩は10秒間忘れません
0500デフォルトの名無しさん
2006/11/25(土) 19:35:450501デフォルトの名無しさん
2006/11/25(土) 19:43:46追加されたのはGZipStreamだった…
0502デフォルトの名無しさん
2006/11/25(土) 19:45:19GZip/Deflate なので複数のファイルを纏めるのは無理
3.0 で追加されたとか何とかどっかで聞いたような気もするが
0503デフォルトの名無しさん
2006/11/25(土) 20:50:12どうもありがとう。参考になります。
0504デフォルトの名無しさん
2006/11/25(土) 22:56:30どうしてマイクロソフトはそれを標準にしないんだろう。
cabってzipより大幅に劣ってる?
0505デフォルトの名無しさん
2006/11/25(土) 23:13:13cabはアーカイブに署名できたりしてけっこう面白いんだけどね。
0506デフォルトの名無しさん
2006/11/25(土) 23:33:39こいしの基準っていったい・・・w
0507デフォルトの名無しさん
2006/11/25(土) 23:54:27要は、
CancelEventを持つ、あるUserControlを保持するFormが、
イベントをキャンセルするかまず決め(e.Cancelをtureにするとか)、
その上でUserControlで処理を行いたいのです。
しかしUserControl側から順にイベントを呼び出されてしまい、
どうしようもありません。御教授お願いします。
0508デフォルトの名無しさん
2006/11/26(日) 00:02:44ごめん。何が言いたいのかよく分からない。
0509507
2006/11/26(日) 01:15:52UserControl1はCancelEventHandlerを持ち、
メソッド1をCancelイベントに登録した。
Form1はUserControl1を保持している。
そして同じくCancelイベントにメソッド2を登録した。
UserControl1上でCancelイベントが起きた。
-ここから希望-
Form1が登録したメソッド2が呼び出され、CancelEventArgs.Cancel値をいじる。
次にUserControl1もメソッド1が呼び出されCancelEventArgs.Cancel値がどうなったか知り、
それに応じて処理を行う。
-ここまで-
しかしイベント呼び出しは、当然というかUserControl1から行われるため、
Form1側でいじった値をUserControl1が知ることは出来ない。
じゃあどうすれば、UserControl1の方で値がどうなったのか分かるのよといった話で、
どうも文章も本当に下手で申し訳ないです。
0510デフォルトの名無しさん
2006/11/26(日) 01:24:59FormClosing FormClosed みたいにふたつに分けたらどうだろう?
ちなみにイベントに登録されたデリゲートが呼ばれる順序は規定されてないのでどんな仮定もしてはだめ。
0511デフォルトの名無しさん
2006/11/26(日) 01:30:14いや根本的にイベントの使い方を間違ってると思われ。
UserControl1自身はいつイベントが発生するか知ってるんだから、
わざわざイベントハンドラを登録する必要なんてない。
private CancelEventHandler foo;
public event CancelEventHandler Foo { add; remove; }
void OnFoo()
{
CancelEventArgs e = new CancelEventArgs();
foo(this, e);
MessageBox.Show(e.Cancel? "canceled" : "not canceled" );
}
0512デフォルトの名無しさん
2006/11/26(日) 01:33:20OnFoo は protected virtual void OnFoo(HogeEventArgs e) がお約束だぜぇ
0513デフォルトの名無しさん
2006/11/26(日) 01:35:15分かってるが、そうすると例示するコードの段階が増えるじゃんけ。
0514デフォルトの名無しさん
2006/11/26(日) 01:39:57UserControl1.CancelEvent(CancelEventArgs e){
parent.CancelEvent(e);
if (...){}
}
じゃだめなん?
0515デフォルトの名無しさん
2006/11/26(日) 01:44:120516デフォルトの名無しさん
2006/11/26(日) 01:48:53UserControl1の親Form
0517デフォルトの名無しさん
2006/11/26(日) 01:54:420518デフォルトの名無しさん
2006/11/26(日) 02:03:41そういやそうだった・・・orz
0519デフォルトの名無しさん
2006/11/26(日) 02:19:35そこでfooのnullチェックってしなくても大丈夫だっけ?
0520507
2006/11/26(日) 02:35:42どうもありがとうございます!胸のつかえが下りました。
なんというか、イベント呼び出しの順序が決まってない、
というのは正直雷が落ちたような気分です。
0521デフォルトの名無しさん
2006/11/26(日) 11:16:350522デフォルトの名無しさん
2006/11/26(日) 13:17:43使えやゴルァって理解で桶?
0523デフォルトの名無しさん
2006/11/26(日) 13:22:09別に継承しなくても使えるでしょ。
0524デフォルトの名無しさん
2006/11/26(日) 14:57:35亀レスだが、不可能ではないと思われ
ただその手のことはJavaのほうが向いていると思う(JXTAという専門API群があるので)
0525デフォルトの名無しさん
2006/11/26(日) 16:44:15構造体の中に構造体を入れることはできるんでしょうか?
0526デフォルトの名無しさん
2006/11/26(日) 16:49:070527デフォルトの名無しさん
2006/11/26(日) 16:49:430528デフォルトの名無しさん
2006/11/26(日) 16:50:41多分やったが出来なくて、出来る方法があるのか知りたいのだろう。
0529デフォルトの名無しさん
2006/11/26(日) 16:53:020530デフォルトの名無しさん
2006/11/26(日) 17:01:43int も 構造体ですよ
0531デフォルトの名無しさん
2006/11/26(日) 17:07:090532デフォルトの名無しさん
2006/11/26(日) 17:09:040533デフォルトの名無しさん
2006/11/26(日) 17:20:550534デフォルトの名無しさん
2006/11/26(日) 17:50:42うまくいかない方法なんてあるの?
0535デフォルトの名無しさん
2006/11/26(日) 17:51:500536デフォルトの名無しさん
2006/11/26(日) 17:51:540537デフォルトの名無しさん
2006/11/26(日) 17:54:25循環参照じゃね?
0538デフォルトの名無しさん
2006/11/26(日) 17:55:05たぶんねー
apiから受け取る構造体の要素に可変長の構造体があるんだよ。
むりぽ。
0539デフォルトの名無しさん
2006/11/26(日) 18:18:210540デフォルトの名無しさん
2006/11/26(日) 18:28:38そういうことです。
0541デフォルトの名無しさん
2006/11/26(日) 18:40:00循環参照になっててコンパイラに怒られてるだけだろ?
無関係な構造体なら入れ子にできる。
0542デフォルトの名無しさん
2006/11/26(日) 18:42:550543デフォルトの名無しさん
2006/11/26(日) 18:50:46どうもありがとうございました。
0544デフォルトの名無しさん
2006/11/26(日) 21:59:00struct MyStructA
{
MyStructB B;
}
struct MyStructB
{
MyStructA A;
}
0545デフォルトの名無しさん
2006/11/26(日) 22:12:17struct MyStructA
{
MyStructA A;
}
0546デフォルトの名無しさん
2006/11/26(日) 22:13:58unsafe struct MyStructA
{
MyStructA * A;
}
0547デフォルトの名無しさん
2006/11/27(月) 10:43:24ポインタの勉強もしないとだめですね。
ご丁寧にありがとうございました。
0548デフォルトの名無しさん
2006/11/27(月) 13:15:44(これを継承してOracleやらPostgreSQLにする)
コネクションを生成するメソッドは抽象クラス側で実装したいのですが、使用するデータベースごとにConnectionオブジェクトの型が違うことで躓いてます。
(IConnectionインターフェイスのようなものがあるかと思っていた。)ジェネリックなどを使えば、型の違いは隠蔽できるのかと思ったのですが、どうにもうまくいきません。
ちなみに↓のようなコードを一般化したいです。何かアドバイスを頂ければと思います。
private NpgsqlConnection con;
void ConnectionOpen(){
con = new NpgsqlConnection(〜);
con.open();
}
0549デフォルトの名無しさん
2006/11/27(月) 13:44:092.0ならプロバイダファクトリ使いな。
0550548
2006/11/27(月) 14:23:04よくよくSystem.Data名前空間を探してみると「IDbConnection」インターフェイスが見つかりました。
お騒がせしました...。
ちなみにプロバイダファクトリでググると下記の資料がひっかかりました。
なんだかよくわからないけどこちらの方がいいのかな…?
10 行でズバリ !! プロバイダ ファクトリの利用 (C#)
http://www.microsoft.com/japan/msdn/thisweek/300x10/Phase3/fact/cs.aspx
0551デフォルトの名無しさん
2006/11/27(月) 14:40:563次元画像を作成したいのですがどうすればいいのでしょうか?
お願いします。
0552デフォルトの名無しさん
2006/11/27(月) 15:31:190553デフォルトの名無しさん
2006/11/27(月) 15:40:01で、それが用意できたら?
0554デフォルトの名無しさん
2006/11/27(月) 16:41:55自分はコンソールやファイルに直に書き出しているのですが、もっとスマートにできる方法を求めてます。
log4netなどはどうでしょうか?
0555デフォルトの名無しさん
2006/11/27(月) 16:45:31子供の頃、雑誌の付録でなかった?
映画でも有ったはず。
0556デフォルトの名無しさん
2006/11/27(月) 17:11:00EnterpriseLibrary使うなら、これに入っているLoggingの機能
log4netつかっていいならlog4net
みんな気に入らないなら自作
0557デフォルトの名無しさん
2006/11/27(月) 17:14:19多くの場合は、構成ファイルの接続文字列設定からとってくる。
この設定にはプロバイダ名を指定できるようになっているので、
ここからとってきたプロバイダ名からプロバイダファクトリを取得して
各種オブジェクトを作成するようにすればいい。
0558デフォルトの名無しさん
2006/11/27(月) 18:34:01.net標準のもあるが使いにくいらしい。
ttp://densanshokunin.at.webry.info/200609/article_2.html
0559デフォルトの名無しさん
2006/11/27(月) 18:47:04>>558
なるほどなるほど。やっぱり外部ツールを使ったほうがよさそうですね。
log4netを扱った日本語サイトが軒並み更新してなさげだったので、廃れてしまったのかと思ってました。
そういやEnterprise Libraryの利用もあまり聞かないけど自分だけなのかな?
0560デフォルトの名無しさん
2006/11/27(月) 19:46:450561デフォルトの名無しさん
2006/11/27(月) 20:30:17Log4net is available for several frameworks. For each supported framework an assembly targeting that framework is built:
Microsoft .NET Framework 1.0 (1.0.3705)
Microsoft .NET Framework 1.1 (1.1.4322)
Microsoft .NET Compact Framework 1.0 (1.0.5000)
Mono 1.0
Microsoft Shared Source CLI 1.0
CLI 1.0 Compatible
http://logging.apache.org/log4net/release/manual/introduction.html
ダメっぽ(;ω;)ヴワッ
0562デフォルトの名無しさん
2006/11/27(月) 21:31:550563デフォルトの名無しさん
2006/11/27(月) 22:08:01下のサイトを参考にTestDriven2.0 Personal Editionを入れてみましたが、特にコンテキストメニューが追加される様子もないです。
どなたか試みた方おられませんか?
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=252692&SiteID=7
0564デフォルトの名無しさん
2006/11/27(月) 22:57:01どうすれば分かりますか?
0565デフォルトの名無しさん
2006/11/27(月) 23:02:350566デフォルトの名無しさん
2006/11/27(月) 23:22:45みたいな事なんですが
何とか工夫してやってみたいと思います。
0567デフォルトの名無しさん
2006/11/27(月) 23:25:39TextRenderer.MeasureText
0568デフォルトの名無しさん
2006/11/27(月) 23:26:270569デフォルトの名無しさん
2006/11/27(月) 23:29:45ありがとうございます。ほんとに助かりました^^
0570デフォルトの名無しさん
2006/11/27(月) 23:47:51Sizeプロパティで帰ってきた数値をlong型とか(計算出来る型)に変換したいんだけれど
どうすれば良いですか?
とりあえずできあがったのがこんな感じで、
public static void Main()
{
string path = @"C:\Program Files";
Scripting.FileSystemObject foj = new Scripting.FileSystemObject();
Scripting.FolderClass FSobj;
FSobj = (Scripting.FolderClass)foj.GetFolder(path);
Console.WriteLine("{0}byte", FSobj.Size);
} ^^^^^^^^^
^^^^^^^^^部分のFSobj.Sizeの戻り値をlong型とかuint型にしたいです・・・。
0571デフォルトの名無しさん
2006/11/27(月) 23:56:44public static long GetDirectoryFileSize(string stDirPath) {
return GetDirectoryFileSize(new System.IO.DirectoryInfo(stDirPath));
}
http://jeanne.wankuma.com/tips/directory/totalfilesize.html
0572デフォルトの名無しさん
2006/11/27(月) 23:58:080573デフォルトの名無しさん
2006/11/28(火) 00:09:09System.IO使って再帰的になんとかって方法も考えました。でもFSOを使いたいのです。
>>572
まじで?int型の変数に代入できないんだけど?
0574デフォルトの名無しさん
2006/11/28(火) 00:11:28WSHのランタイムライブラリをtlbimp?
0575デフォルトの名無しさん
2006/11/28(火) 00:14:46とりあえず、OpenFileDialogを継承してみたのですが、プレビューさせるコントロールをはる
ところがわかりません。
0576デフォルトの名無しさん
2006/11/28(火) 00:17:550577デフォルトの名無しさん
2006/11/28(火) 00:19:14Microsoft Scripting Runtimeを参照設定しました。
0578デフォルトの名無しさん
2006/11/28(火) 00:19:40となると、要望の多い業務アプリにはやはり不向きなんですね
0579デフォルトの名無しさん
2006/11/28(火) 00:20:340580デフォルトの名無しさん
2006/11/28(火) 00:21:22いい加減粘着はやめたらどうだ?
初心者用の内容じゃないだろ。
馬鹿の一つ覚え。
0581デフォルトの名無しさん
2006/11/28(火) 00:24:43ちょっと枠からはみ出したアプリを書こうとするとMFCのほうが簡単だよ
0582574
2006/11/28(火) 00:25:33どうやらマーシャリングの設定がうまくいってないみたいで、
Int32をボックス化したのが返ってきてるけど、そのままunboxしてしまえば元に戻せる。
0583デフォルトの名無しさん
2006/11/28(火) 00:27:490584デフォルトの名無しさん
2006/11/28(火) 00:28:240585デフォルトの名無しさん
2006/11/28(火) 00:30:38そもそも IFolder::Size は VARIANT なんで object にされるのは必然。
0586デフォルトの名無しさん
2006/11/28(火) 00:32:31誰も出来ないといってませんが???
普通にform作ってダイアログにも出来るし…
0587デフォルトの名無しさん
2006/11/28(火) 00:33:57ttp://msdn2.microsoft.com/en-us/library/ms996463.aspx
0588デフォルトの名無しさん
2006/11/28(火) 00:36:090589デフォルトの名無しさん
2006/11/28(火) 00:37:36その論争はあまりにも非建設的だから他所でやってくれ。
0590デフォルトの名無しさん
2006/11/28(火) 00:38:530591デフォルトの名無しさん
2006/11/28(火) 01:34:34namespaceを省略出来ると思いますが、
ウィザードが生成したWindowsアプリケーションのソースは
private変数定義時に、"System.Windows.Forms"のnamespaceを省略していません。
これは何故なのでしょうか?
また、こうすべきなのでしょうか?
0592デフォルトの名無しさん
2006/11/28(火) 01:38:420593デフォルトの名無しさん
2006/11/28(火) 01:53:09usingしたほうがいいっしょ。インテリセンスの意味なくなるし。
またかぶるべきでもない
0594デフォルトの名無しさん
2006/11/28(火) 02:00:49「わざわざ」省略形にするメリットがない。
デメリットと危険はいっぱいあるが。
0595591
2006/11/28(火) 02:13:07なるほど。汎用的なコード生成の為、安全を図ってるわけですね。
確かに自分で作るアプリケーションであれば、
同じ名前のクラスなんて基本的に作らないでしょうから、
usingを記述して、安心してnamespaceを省略しようと思います。
0596デフォルトの名無しさん
2006/11/28(火) 09:48:570597デフォルトの名無しさん
2006/11/28(火) 11:33:04簡易版でいいならVC#Expressで一緒に入る
0598デフォルトの名無しさん
2006/11/28(火) 16:15:48データ表示用のグリッドを持つ類似した画面が10個程度あるのですが、基盤となるデザインを共通化するのにフォームの継承を使うのは拙い考え方でしょうか?
0599デフォルトの名無しさん
2006/11/28(火) 16:23:030600デフォルトの名無しさん
2006/11/28(火) 16:35:06using (BinaryWriter bw = new BinaryWriter(new BufferedStream(saveFileDialog1.OpenFile(), 1024*16))) {
bw.Close();
}
それともひとつひとつClose, Disposeしていったほうがいいのか教えてください。
using (Stream fs = saveFileDialog1.OpenFile()) {
using (BufferedStream bf = new BufferedStream(fs, 1024*16)) {
using (BinaryWriter bw = new BinaryWriter(bf)) {
bw.Close();
}
bf.Close();
}
fs.Close();
}
0601デフォルトの名無しさん
2006/11/28(火) 16:38:44BufferedStreamを使う必要はないと考えていいのでしょうか?
またBufferedStreamと組み合わせて使ってもいいものなのでしょうか?
0602デフォルトの名無しさん
2006/11/28(火) 16:44:05BufferedStreamとBinaryWriterは、もともとのStreamをまき沿いにして閉じるからそっちも考慮不要。
>>601
BinaryWriterはStreamWriterを継承してない。バッファも持ってない。
using (BinaryWriter bw = new BinaryWriter(new BufferedStream(saveFileDialog1.OpenFile(), 1024*16))) {
//処理
}
0603デフォルトの名無しさん
2006/11/28(火) 17:19:22安直に検索してみると下記のようなページが見つかったので。。
返って面倒になるような典型的な問題があるのかな、と思いました。
http://blogs.wankuma.com/naka/archive/2004/05/30/2941.aspx
0604デフォルトの名無しさん
2006/11/28(火) 17:29:37普通そんな組み方しないだろ。
0605デフォルトの名無しさん
2006/11/28(火) 17:32:19クラス内ではイベントをOn〜で実装しないか?
0606デフォルトの名無しさん
2006/11/28(火) 18:14:07ありがとうございます。連鎖的にClose/Disposeしてくれるわけですね。
601は質問の仕方が悪かったようで、少し訂正します。
普通はこれでいいとして
StramWriter sw = new StreamWriter(saveFileDialog1.OpenFile())
大き目のバッファをとりたい場合に次のような書き方をすると、
StramWriter sw = new StreamWriter(new BufferedStream(saveFileDialog1.OpenFile(), 1024*16))
StramWriterのバッファとBufferedStreamのバッファが2重になって効率が悪いのではないかと思いまして、
StramWriteとBufferedStreamの組み合わせは普通するのかどうか聞きたかったのです。
0607デフォルトの名無しさん
2006/11/28(火) 18:19:10StreamWriterのコンストラクタでバッファサイズ決めるんじゃいかんの?
二重にバッファリングすることでどの程度遅くなるかは分からんけど、無駄でしかないのは確か。
0608 ちょっと
2006/11/28(火) 20:39:49ユーザID
パスワード
を入力しますよね。その入力するのを自動化するソフトを作りたいと考えて
います。どの様にすれば良いでしょうか?
※Web何とかメソッドを使用してWEBページに使われているHTML
スクリプトを解析するという仕方は自力で調べて分ったのですが、ただ、
ターゲットとする特定URLのブラウザの項目にフォーカスを充て入力を行うという
方法が分りません。
誰かご存知の方がいらっしゃいましたらお教え下さい。
0609デフォルトの名無しさん
2006/11/28(火) 20:50:230610デフォルトの名無しさん
2006/11/28(火) 21:30:30listbox等を二つ横に並べて繋げ、その間隔をスライドさせ変化させるのって
できますか?
0611デフォルトの名無しさん
2006/11/28(火) 21:46:110612デフォルトの名無しさん
2006/11/28(火) 22:15:56漏れは、ログインしてガンスト起動するのを作った。
参考になると思う。
http://www.filebank.co.jp/guest/gtk2k/gunst
pass:gunst
こいつは、APIでマウス操作してボタンをクリックしているが、(ボタンがFlashを使用しているためプログラム上でのクリックができないので)
yahooなどは
ボタン(HTMLButtonElement)やサブミットボタン(HTMLInputButton)を取得し、
Clickメソッドを実行するとそのエレメントのクリック動作をプログラム上で行う。
また、フォームを使用している場合、HTMLFormElementでフォームエレメントを取得し、Submitメソッドを実行すると
フォームのサブミットをプログラム上で行える。
これらを使用してログインできると思われる。
0613デフォルトの名無しさん
2006/11/28(火) 23:23:530614612
2006/11/28(火) 23:29:200615デフォルトの名無しさん
2006/11/29(水) 01:47:31あと、皆さんはどちらを使いますか?
0617デフォルトの名無しさん
2006/11/29(水) 02:18:42キャストはC#の機能でConvertクラスは.NETの機能なんじゃね?
漏れはConvertクラスは使ったこと無いかも。
0618デフォルトの名無しさん
2006/11/29(水) 10:26:38hogeのDB項目がNULLの場合、キャストだと例外が発生するが、Convert.ToStringだと
空文字列にしてくれる。みたいな〜。
0619デフォルトの名無しさん
2006/11/29(水) 10:37:460620デフォルトの名無しさん
2006/11/29(水) 12:26:060621デフォルトの名無しさん
2006/11/29(水) 12:33:16昨日フォームの継承について伺ったものです。
下記のサイトを参考にして、継承されたコントロールを派生フォームよりいじくろうとしました。
ボタンやテキストボックスについては滞りなく編集できたのですが、DataGridViewや、MenuStrip,StatusStrip(そのitemも含む)はデザイナより変更ができないままです。
これはこういうものなのでしょうか?
@IT:.NET TIPS 基本フォームから継承された内容を派生フォームでカスタマイズするには? - C# VB.NET VS.NET Windowsフォーム
http://www.atmarkit.co.jp/fdotnet/dotnettips/325winderivedform/winderivedform.html
0622デフォルトの名無しさん
2006/11/29(水) 12:52:03[VB2005] DataGridView を貼った Form を継承できない - Insider.NET
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=29407&forum=7&0&ref=rss
フォーム継承で IDE で編集できなくなるコントロールがある - MSDNフォーラム
http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=314700&SiteID=7
0624デフォルトの名無しさん
2006/11/30(木) 00:54:48Convert.ToInt32(false)→ 0
が便利。
0625デフォルトの名無しさん
2006/11/30(木) 00:59:06それくらいだったら三項演算子使おうぜ・・・
0626デフォルトの名無しさん
2006/11/30(木) 01:05:28これををクリックすると、このイベントメソッド内で NumericUpDown.Value の値を変更。
( Click イベントか CheckedChanged イベント )
↓
この値変更につれて、NumericUpDown.ValueChanged メソッドである処理が行われる。
というものをやっているのですが、ラジオボタンの 1つめを押すとちゃんと値が変更されますが
他のラジオボタンを押しても NumericUpDown の Value に 0 が入ってしまいます。
どうしてでしょう?
0627デフォルトの名無しさん
2006/11/30(木) 01:07:16お前さんが何か困っているんだということはよく伝わってきたが、それ以外はさっぱりだ。
0628デフォルトの名無しさん
2006/11/30(木) 01:08:31答えはソースコードにあるってばっちゃが言ってた
0629デフォルトの名無しさん
2006/11/30(木) 01:15:480630デフォルトの名無しさん
2006/11/30(木) 01:36:54変だな?俺のところではちゃんと動いたぞ。
0631デフォルトの名無しさん
2006/11/30(木) 01:37:58変かもしれません。こちらは .NET CF なので。
0632デフォルトの名無しさん
2006/11/30(木) 01:45:510633デフォルトの名無しさん
2006/11/30(木) 11:01:22NumericUpDown.Value に 32768 以上の値を入れようとしていたのですが、
PPC での NumericUpDown.Value は Int16 までしか受け付けない仕様でした。orz
0634デフォルトの名無しさん
2006/11/30(木) 11:11:53どうやって分かるのでしょうか?
0635デフォルトの名無しさん
2006/11/30(木) 13:45:05System.Diagnostics.Processクラスを使おう
0636デフォルトの名無しさん
2006/11/30(木) 14:41:31ボタンのイベントなどでGraphicsオブジェクトを作成し図形を書いたあと
他のプログラムのフォームが重なったりするとグラフィックオブジェクトで描いた図形だけが消えますが
これをコードで行う事は出来ますか?
0637636
2006/11/30(木) 14:52:060638デフォルトの名無しさん
2006/11/30(木) 15:21:21でちらつかなくて便利なのですが; 異様に遅いです。
Vista で Aero 対応のビデオボードになったら早くなるのでしょうか?
C での ダブルバッファより大分遅いです。C で自分でダブルバッファしているのも
Aero で早くなるのかな?
結局 DirectGraphic で書くしかないのかな。。2DのCADなんですけど
0639デフォルトの名無しさん
2006/11/30(木) 20:04:58.netを直に使わないほうがいいんじゃない?
0640638
2006/11/30(木) 21:13:13.net は Aero 対応でも遅いのかな。。こっそり DirectGraohis に変わってくれていないんでしょうか?
C で自前で ダブルバッファにしていたのでは Aero も効かないでしょうけど。。
我が家のビデオカードでは Aero が動かないので。。。。
0641デフォルトの名無しさん
2006/11/30(木) 21:36:09ボタンのクリックイベントでプライベートフィールドなBitmapに描画
PaintでそのBitmap描画
0642デフォルトの名無しさん
2006/11/30(木) 23:05:17その逆、msht(ryからSyst(ryの変換は可能でしょうか?
0643デフォルトの名無しさん
2006/11/30(木) 23:21:52コンストラクタ公開されてないから無理じゃないかな。
どういう必要に迫られてそういう変換が必要になったのか分からないからこれ以上アドバイスできないけど。
0644デフォルトの名無しさん
2006/11/30(木) 23:23:41ま、普通に IHTMLDocument 使った方がてっとりばやかろ
0645642
2006/11/30(木) 23:58:07>どういう必要に迫られて
WebBrowser.NewWindowイベントでURLを知りたいと思いまして。
で、URLはAxWebBrowser.NewWindow3なら大丈夫なのでラッパクラスを作ろうか、
けどHtmlDocumentの便利さを失うのは嫌だし、自作は無理だろうと。何あのmshtml暗黒世界('A`)
ただ、指針を頂いたのでなんとかなりそうな感じ。IHTMLDocumentで頑張ってみます。
>>643さん、>>644さんありがとうございました。
0646デフォルトの名無しさん
2006/12/01(金) 00:05:150647デフォルトの名無しさん
2006/12/01(金) 10:38:11ありがとうございます。
0648デフォルトの名無しさん
2006/12/01(金) 10:40:29ありがとうございます。
0649デフォルトの名無しさん
2006/12/01(金) 20:09:45(高速な)画像描画、キーボード入力など
ゲーム作成に使える情報が載ってるサイトはありますか?
ttp://clks.sakura.ne.jp/csg/index.html
↑は見つかったんですがDirectXを使わずに上記の事をしたいです。
0650デフォルトの名無しさん
2006/12/01(金) 20:13:100651デフォルトの名無しさん
2006/12/01(金) 20:16:570652デフォルトの名無しさん
2006/12/01(金) 20:17:390653デフォルトの名無しさん
2006/12/01(金) 20:32:470654649
2006/12/01(金) 20:51:06DirectX無しならBitblt呼び出すのが一番高速ですか?
0655デフォルトの名無しさん
2006/12/01(金) 22:05:18LockBitsで、scan0でMarshal.Copyでx2(512x480)までなら60fpsだせるが、
これ以上になると60fpsだせない。
0656デフォルトの名無しさん
2006/12/02(土) 08:56:38win32apiのかな。だったらうん。
ちゃんとダブルバッファリング使いましょうね。
0657デフォルトの名無しさん
2006/12/02(土) 09:05:12こういうインチキサイトは不特定多数の人に悪影響を与えるから
さっさと潰れて欲しい。最初に目についたのはこれ。
型名 ビット数 意味 値の形式
bool 1 bit trueもしくは false の値を返す 真偽値型(なんて呼び方するのかな?)
これ以外にもつっこみどころ満載ですね・・・。
0658デフォルトの名無しさん
2006/12/02(土) 09:34:18kwsk
0659デフォルトの名無しさん
2006/12/02(土) 09:35:360660デフォルトの名無しさん
2006/12/02(土) 09:54:340661デフォルトの名無しさん
2006/12/02(土) 10:37:13痛いっすね
0662デフォルトの名無しさん
2006/12/02(土) 10:38:29ピープ領域って……
これのことか?
http://images.google.co.jp/images?sourceid=navclient&ie=UTF-8&q=%E3%83%94%E3%83%BC%E3%83%9C%E5%90%9B&oe=UTF-8&sa=N&tab=wi&nojs=1
0663デフォルトの名無しさん
2006/12/02(土) 10:39:10http://images.google.co.jp/images?num=20&hl=ja&safe=off&q=%E3%83%94%E3%83%BC%E3%83%9D%E5%90%9B&lr=lang_ja&ie=UTF-8&oe=UTF-8&sa=N&tab=wi&nojs=1
0664デフォルトの名無しさん
2006/12/02(土) 10:51:48しかしピープ、ピープ連呼してるねw
0665デフォルトの名無しさん
2006/12/02(土) 12:01:59VS2003を使ってますが、フォームのControlBoxをfalseにしたらフォーム全体のサイズが高さのみ若干小さく表示されてしまいます。
調べてみたら「ControlBox=false」「Text=""」の場合にキャプションバーが無くなるらしいので、
サイズ計算時にキャプションバーの部分だけ小さく計算されているように思います。
実際のサイズもデザイナで637、実行時617と、丁度20ピクセル(?)小さくなってます。
これを正常に表示する方法はないでしょうか。
0666デフォルトの名無しさん
2006/12/02(土) 12:51:55キャプションの高さ足せばいいんじゃね?
0667デフォルトの名無しさん
2006/12/02(土) 13:10:430668デフォルトの名無しさん
2006/12/02(土) 13:13:34何か問題あるの?
0669665
2006/12/02(土) 13:55:29自分が作っているフォームはTextに文字列が入っています。
でもサイズ計算はTextに文字列が入っていないものでされているようなのです。
結果、フォーム内の一番下のコントロールが途切れて表示されます。
>>666
ただしい解決策が見当たらなければ、最悪そうしようと思います。
0670649
2006/12/02(土) 14:27:32Bitbltでやってみますね。
0671デフォルトの名無しさん
2006/12/02(土) 14:39:48普通子コントロールの配置とか考えるなら ClientSize つかわね?
0672665
2006/12/02(土) 15:16:42コントロールの配置はすべてデザイナ上でやっており、移動やサイズ変更は一切していません
0673デフォルトの名無しさん
2006/12/02(土) 17:34:27なにかが間違ってると思われ
0674デフォルトの名無しさん
2006/12/02(土) 23:47:14粘着さん次はどう来る?
0675デフォルトの名無しさん
2006/12/03(日) 05:53:20作ったの?見てみたい。
0676デフォルトの名無しさん
2006/12/03(日) 07:42:08JAVAはパブリッククラス単位なのでわかりやすかったのですが。
あと、名前空間の分け方は、JAVAのパッケージ同様で良いのでしょうか?
0677デフォルトの名無しさん
2006/12/03(日) 08:25:54> ソースファイルはどういう規準でわけるべきでしょうか。
> JAVAはパブリッククラス単位なのでわかりやすかったのですが。
C# でも基本はクラス単位で良いんじゃない?
> あと、名前空間の分け方は、JAVAのパッケージ同様で良いのでしょうか?
パッケージと名前空間は別物だからな。パッケージにはアセンブリの方が近い。
ガイドラインによるとテクノロジ単位で分けるそうだが。
まあ .NET Framework の各名前空間見渡してみればある程度理解できる。
0678676
2006/12/03(日) 14:18:25なるほど。名前空間はパッケージとは別物なんですね。
テクノロジーですか。趣味の開発だと、フレームワークなんか特にないですから
プロジェクト名かソリューション名にすればいいのかな。
ちょっと勉強してみます。ありがとうございました。
0679デフォルトの名無しさん
2006/12/03(日) 14:24:44ttp://www.melma.com/backnumber_120830_237606/
static void Main(){
int[] nums = new int[] {1, 2, 3, 4, 5};
IncAll(nums);
foreach (int x in nums)
Console.Write("{0} ", x);
}
static void IncAll(int[] nums){
for ( int i = 0; i < nums.Length; i++ )
nums[i] += 1;
}
結果は、2 3 4 5 6
配列は参照型?(参照渡し?)ということで何となく理解ができましたが、
string型も参照型?って聞いたので
配列の部分を string s = "12345";
IncAllメソッドで s = "abcde";
にしても変化がありませんでした。(ref を付けるとうまくいきましたが)
string型は参照型じゃないってこと???
0680デフォルトの名無しさん
2006/12/03(日) 14:36:45参照型・値型と参照渡し・値渡しは別物。
参照渡しには ref または out キーワードを使う。
参照型:呼び出し先でメンバを変更したら呼び出し元でも変更される(参照しているのは同じインスタンス)
値型 :呼び出し先でメンバを変更しても呼び出し元では変更されない(呼び出し時にコピーが作られるので別インスタンス)
参照渡し:呼び出し元で new したら呼び出し元でもインスタンスが変わっている(参照しているのは同じ変数)
値渡し :呼び出し元で new しても呼び出し元でもインスタンスは変わらない(呼び出し時に変数のコピーが作られる)
で、String 型にはメンバを変更するメソッド・プロパティがない。
0681679
2006/12/03(日) 15:40:03サンクス
>参照型・値型と参照渡し・値渡しは別物。
おお、ごっちゃになってました。
>参照型:呼び出し先でメンバを変更したら
>値型 :呼び出し先でメンバを変更しても
これは「値を直か、参照するか」ってことでなんとなくわかりました。
>参照渡し:呼び出し元で new したら呼び出し元でも
>値渡し :呼び出し元で new しても呼び出し元でも
「呼び出し元で new しても」ってこれ、呼び出し「元」であってる?
イマイチ参照渡しと値渡しが理解できていない。
値渡しはコピーして渡すから呼び出し元は無関係って言うのがわかる
ttp://ufcpp.net/study/csharp/sp_ref.html#byref
参照渡しで呼び出し先で new したら何で元が変わらないんだ?
0682679
2006/12/03(日) 15:41:30{
int[] ar = new int[] { 0, 1, 2, 3 };
Henkan(ar);
foreach (int i in ar){System.Console.WriteLine(i);}
}
static void Henkan(int[] ar)
{ar = new int[] { 5, 4, 3, 2 };}
結果 0123
これだと元が変わらないのに
static void Henkan(int[] ar)
{ar[0] = 5;}
だとかわる。
ええええ???
0683デフォルトの名無しさん
2006/12/03(日) 16:07:47当たり前、だろ。
0684デフォルトの名無しさん
2006/12/03(日) 16:11:26つまり参照先のオブジェクト自体を操作したら当然呼び出し側でも影響を受ける。
っていうか、同じもの見てんだから当たり前。
変数が参照してるオブジェクト入れ替えても、
元のオブジェクト自身は操作してないんだから変わらないのは当たり前。
ar= new 〜
変数の指してる先を入れ替えてるだけ、元のオブジェクトに対しては何も操作してない
ar[0]= 〜
元のオブジェクト自体の中身を操作してるんだから変わって当たり前。
0685679
2006/12/03(日) 16:27:00仰るとおり、勉強中です。
>ar= new 〜
>変数の指してる先を入れ替えてるだけ、元のオブジェクトに対しては何も操作してない
>ar[0]= 〜
>元のオブジェクト自体の中身を操作してるんだから変わって当たり前。
あ〜、分かり易い答えをありがとうございます。
(ar = アドレス参照)= new
だから「参照元が変わる」と考えてました。
たしかに変数に入れ替えているだけで元にはさわってませんよね。
ar[0]= 〜
これは元にさわってますよね。
ども助かりました。
0686デフォルトの名無しさん
2006/12/03(日) 20:12:52C#2.0をVS2005で勉強し始めたのですが
いまいち
匿名メソッド
が理解出来ません。
何か良い解説サイト等をご存知の方がいましたらお願い致します。
※VS2003にてC#はずっと使っておりましたので一通りの文法は
分かっていますが、C#2.0については
Partial
generics
位しか理解していません。。。
0687デフォルトの名無しさん
2006/12/03(日) 20:21:30// 変数のスコープとか色々面白い側面はあるが
取りあえず @IT の記事でも見たらどうだ
0688デフォルトの名無しさん
2006/12/03(日) 20:27:52> メソッド内メソッド
メソッド内メソッドはアクセス制限のある普通のメソッド以上ではないのだから、
匿名メソッドの本質を言い表してない気がするぞ。
0689デフォルトの名無しさん
2006/12/03(日) 20:33:43匿名メソッド (C# プログラミング ガイド)
http://msdn2.microsoft.com/ja-jp/library/0yw3tz5k(VS.80).aspx
0690デフォルトの名無しさん
2006/12/03(日) 20:39:05どうもありがとうございます。
早速 >>689さんに教えて頂いたURLを見て勉強します。
※今月になってからVS2005を使い始めたのですが、現在の
プロジェクトではバリバリC#2.0のテクニックが盛り込まれておりまして
勉強せねばと必死になっています(-Д-)つ
0691デフォルトの名無しさん
2006/12/03(日) 20:51:540692690
2006/12/03(日) 23:34:34使い始めの頃はVS03と結構使い方が変わっていたので戸惑いましたが
慣れるとやっぱり生産性がVS05の方が良いと思いました。
0693デフォルトの名無しさん
2006/12/04(月) 00:08:360694デフォルトの名無しさん
2006/12/04(月) 00:10:340695デフォルトの名無しさん
2006/12/04(月) 00:11:540696デフォルトの名無しさん
2006/12/04(月) 00:53:43現実を見なきゃ。
0697デフォルトの名無しさん
2006/12/04(月) 00:57:570698デフォルトの名無しさん
2006/12/04(月) 01:10:56Javaデビューのオレはそう思う。
そして金輪際Javaを使う事は無いだろう。
0699デフォルトの名無しさん
2006/12/04(月) 01:12:09これをC#で可視できるようにするのにはどうしたらいいんでしょうorz
C#のプロジェクトの参照設定を右クリックして
参照追加>参照タブ選択>作成したDLLを選択 ってやったんですけど
「〜への参照を追加できませんでした。アクセスできて、有効なアセンブリであること、またはCOMコンポーネントであることを確認してください。」
と、言われて蹴られてしまいまいた><;
0700デフォルトの名無しさん
2006/12/04(月) 01:13:160701デフォルトの名無しさん
2006/12/04(月) 01:17:01自分はC#から始めて途中CやC++やって最近はJAVAもやってる。
C#は自分の中でも最高だな。
0702デフォルトの名無しさん
2006/12/04(月) 01:17:46漏れの場合は、
1.COMにする。
2.System.Reflection.Emitあたりでナニする。
みたいなことをしたけど、2番目のはけっこうめんどい。
0703デフォルトの名無しさん
2006/12/04(月) 01:20:59どれひとつ満足できないんでしょ?
0705デフォルトの名無しさん
2006/12/04(月) 01:26:48あう。>>702のはLoadLibraryみたいにやる話で、
ダイナミックリンクしちゃうならAPI使うときと同じようにDllImportできるよ。
0706699
2006/12/04(月) 01:32:13おお。やっぱりdllimportできるんですね!
でも、dllimortしたいんですけど、なにも考えずにDllimportを記述してもきっと自分の作成したDLLを発見できないんじゃないかと思うんですよ・・・。
自分の作成したDLLって何処に置けばよいのか全然わからなくて・・・。(言っていてなんか恥ずかしい><
0707デフォルトの名無しさん
2006/12/04(月) 01:36:42メンバ関数は呼び出せないし。
DLL はまあ exe と同じとこにおいとけばいいけど。
0708699
2006/12/04(月) 01:46:040709デフォルトの名無しさん
2006/12/04(月) 01:50:280710デフォルトの名無しさん
2006/12/04(月) 01:51:25extern "C" で __stdcall とかつけたグローバルな関数なら普通に呼べる。
dllはexeと同じ場所か%path%の通ってる場所。
0711デフォルトの名無しさん
2006/12/04(月) 01:53:290712デフォルトの名無しさん
2006/12/04(月) 01:57:300713699
2006/12/04(月) 02:14:09みなさまに感謝です!
0714デフォルトの名無しさん
2006/12/04(月) 02:37:51こんな深夜に何をしてるんだか。
流石オタクらオタクですねw
0715デフォルトの名無しさん
2006/12/04(月) 05:31:190716デフォルトの名無しさん
2006/12/04(月) 08:32:06君には無理
0717デフォルトの名無しさん
2006/12/04(月) 10:31:260718デフォルトの名無しさん
2006/12/04(月) 10:54:29.Net Compact Framework?
とりあえず聞いてみようか。
0719デフォルトの名無しさん
2006/12/04(月) 11:08:13例えばTextBoxにフォーカスがある場合、あるキー入力をTextBoxコントロールに渡るのを阻止したいのですが
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if(e.KeyCode == Keys.Left || e.KeyCode == Keys.Right)
e.Handled = true;
}
とe.Handled = true;
をつかっても阻止できません、なにか良い方法がないでしょうか?
ちなみに、.NET Framework 1.1です
0720デフォルトの名無しさん
2006/12/04(月) 11:30:24キーによっては IsInputKey() をオーバーライドしないとイベントが発生せずに前処理されちゃう。
0721デフォルトの名無しさん
2006/12/04(月) 12:01:400722デフォルトの名無しさん
2006/12/04(月) 12:11:360723719
2006/12/04(月) 12:57:46レス無くてすみません、今色々と試し中です
0724719
2006/12/04(月) 13:16:00IsInputKey(Keys keyData)のオーバーライドは参照先のメソッドがないと嫌われ
WndProc (ref Message m)のはオーバーライドはMessageなんて名前ないよと嫌われる
WindowsCE最強・・・・_| ̄|○
0725デフォルトの名無しさん
2006/12/04(月) 14:46:01WindowsCEで.NetFrameworkは動かないでしょ?
.NetCompactFrameworkじゃないの?
Microsoft .NET Framework Version 1.1 再頒布可能パッケージ
http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&DisplayLang=ja
サポートされているオペレーティング システム : Windows 2000; Windows 98; Windows 98 Second Edition; Windows ME;
Windows NT; Windows Server 2003 Service Pack 1 for Itanium-based Systems; Windows Server 2003 x64 editions;
Windows Vista Business; Windows Vista Enterprise; Windows Vista Home Basic; Windows Vista Home Premium;
Windows Vista Starter; Windows Vista Ultimate; Windows XP; Windows XP Professional x64 Edition
0726719
2006/12/04(月) 15:15:43textBox1 System.Windows.Forms.TextBox
を造った場合
派生クラス
public class MyTextBox : System.Windows.Forms.TextBox{
}
をtextBox1に割り当てたい場合どうしたらいいでしょう?
0727デフォルトの名無しさん
2006/12/04(月) 15:30:13.NetCompactFrameworkならMessage構造体は
Microsoft.WindowsCE.Forms名前空間にある。
System.Windows.Forms名前空間のは使えないよ。
0728デフォルトの名無しさん
2006/12/04(月) 16:03:58一度コンパイルすると、そのMyTextBox がツールボックスに表示されるので
ぽとぺた。
一応参考に
class TextBoxEx : TextBox
{
protected override void WndProc( ref Message m )
{
if( m.Msg == 0x100 )
{
if( (Keys)m.WParam == Keys.Left )
{
m = new Message();
}
}
base.WndProc( ref m );
}
}
0729デフォルトの名無しさん
2006/12/04(月) 16:14:32C#ではどのように書けば良いのでしょうか?
どの型を指定すればいいのか解りません。
また、long qModifyId[2]とかやってみたのですが、サイズ指定できないと怒られたのですがワケワカメです
struct NDdeShareInfo_tag {
LONG lRevision;
LPTSTR lpszShareName;
LONG lShareType;
LPTSTR lpszAppTopicList;
LONG fSharedFlag;
LONG fService;
LONG fStartAppFlag;
LONG nCmdShow;
LONG qModifyId[2];
LONG cNumItems;
LPTSTR lpszItemList;
};
0730デフォルトの名無しさん
2006/12/04(月) 16:19:56LONG → 32bit → int or uint ( 64bitのlongではない )
LPTSTR → stringにマーシャリング or IntPtrで読んでMarshal.PtrToStringAuto
qModifyId[2]→ short×2
と適当なことを書いてみる
0731デフォルトの名無しさん
2006/12/04(月) 16:32:18using Microsoft.WindowsCE.Forms;
で
public class myMessageWindowClass :Microsoft.WindowsCE.Forms.MessageWindow
{
protected override void WndProc(ref Message msg)
{
}
}
ってやればエラーにならない
さてこれからどうするか・・
0732デフォルトの名無しさん
2006/12/04(月) 16:35:59これでどうよ。しらんけど。
[StructLayout( LayoutKind.Sequential, CharSet = CharSet.Auto )]
struct NDDESHAREINFO
{
public int lRevision;
[MarshalAs( UnmanagedType.LPTStr )]
string lpszShareName;
public int lShareType;
[MarshalAs( UnmanagedType.LPTStr )]
string lpszAppTopicList;
public int fSharedFlag;
public int fService;
public int fStartAppFlag;
public int nCmdShow;
public int qModifyId;
public int cNumItems;
[MarshalAs( UnmanagedType.LPTStr )]
string lpszItemList;
}
0733デフォルトの名無しさん
2006/12/04(月) 16:36:530734デフォルトの名無しさん
2006/12/04(月) 21:13:30構造体のサンプル
ttp://msdn2.microsoft.com/ja-jp/library/eadtsekz(VS.80).aspx
0735デフォルトの名無しさん
2006/12/05(火) 17:35:42単純に
dg.DataSource = dt
とすると、予め追加しておいた列の横に新たな列が追加されてしまいます。
DataTableの列と、DataGridViewの列をコードで対応付けるにはどのように書けばよいでしょうか。
0736デフォルトの名無しさん
2006/12/05(火) 21:19:59教えてください。もう2、3時間調べてるけど分かりません。。。
0737デフォルトの名無しさん
2006/12/05(火) 21:25:040738デフォルトの名無しさん
2006/12/05(火) 21:26:21「開く」ってなんだよ開くって。
意味通じないよ。フォトショップで開くのか?
ピクチャボックスが全体にFillされたフォームのインスタンを new して Show するとか、
ちゃんと仕様を自分で決めろよ。質問するときはその脳内の仕様をちゃんと提示しろよ。
そんな姿勢でプログラムが書けるわけないだろ。
0739デフォルトの名無しさん
2006/12/05(火) 21:27:21ttp://www.atmarkit.co.jp/fdotnet/easyvs/index/index.html
0740デフォルトの名無しさん
2006/12/05(火) 21:28:440741デフォルトの名無しさん
2006/12/05(火) 21:29:39まあ落ち着け
もう持ってるのかも知れんが何か適当な入門書を買ったほうがいいと思うぞ。
ホントに入門のやつ。
0742デフォルトの名無しさん
2006/12/05(火) 21:44:27{
Process.Start( @"C:\hoge\bar.jpg" );
}
0743デフォルトの名無しさん
2006/12/05(火) 23:45:46やりたいことは、
MessageBoxを、他のアプリ含めたすべてのウィンドウの最上位に表示したい、です。
親となれるFormがあれば、それをTopMost=Trueにすればよいことは判りました。
実はMessageBoxを表示したいときにFormは存在しないのですが、
今は空のFormを作ってTompMostだけ設定して、それを親にするという
頭の悪いやり方でしのいでいます。
あと、Win APIを使えば何とかなる、ということも判りました。
お聞きしたいのは、Win APIを使わずにもっとスマートなやり方はないものでしょうか、
ということです。
何卒、よろしくお願いします。
0744デフォルトの名無しさん
2006/12/06(水) 00:10:44http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/dialogboxes/dialogboxreference/dialogboxfunctions/messagebox.asp
をMB_TOPMOSTで呼ぶのが一番スマートかも。
0745デフォルトの名無しさん
2006/12/06(水) 00:20:44MessageBox.Show("Hoge", "Hoge", MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0x40000);
0746743
2006/12/06(水) 01:14:57Win APIという表現が間違ってたかもしれませんが
ご紹介いただいた方法が、まさに私のいう第二のやり方です。
やはりこれが一番ですか。
>>745
すみません、試してみましたが、私が意図している動作とは違いました。
参考までに第六引数の意図を教えていただけないでしょうか。
0747デフォルトの名無しさん
2006/12/06(水) 01:30:11>>744と>>745は結局同じわけだが
MessageBox.Show()が内部で>>744を呼んでて
MB_TOPMOST(0x40000)を裏技的に設定してる。
DllImportしないで済むぶんだけ楽っちゃ楽
だが将来どうなるか分からない。
なんでMSがMB_TOPMOSTをMessageBoxOptionsに入れなかったのか
わからない。
0748デフォルトの名無しさん
2006/12/06(水) 01:41:10あなたが意図している動作とは何?
>>745でMessageBox.Showでできることはすべてできるし
しかもTopMostにもなるはずだが
0749デフォルトの名無しさん
2006/12/06(水) 11:29:38> DataTableの列と、DataGridViewの列をコードで対応付けるにはどのように書けばよいでしょうか。
dg.DataSource = dtより前に、dg.Columns[n].DataPropertyNameへDBの列名をセットしておく。
0750名無し
2006/12/06(水) 12:28:33現在課題でプログラムを作成しているのですが仕様書がこちらになります。
閉じるボタンを押下すると「閉じてもよろしいですか?」というメッセージ
ボックス「はい」「いいえ」
を表示する。「はい」が押下された場合画面を閉じる
「いいえ」が押下された場合は画面を閉じない。というプログラムを
作っていますがうまくできません、どなたかご教授願えないでしょうか・・・
0751デフォルトの名無しさん
2006/12/06(水) 12:31:480752デフォルトの名無しさん
2006/12/06(水) 13:02:36Form.Closingイベントがきたらダイアログ開いて、その結果によって、
イベントのCancelプロパティをtrue/falseにするとかそのあたり?
0753名無し
2006/12/06(水) 13:09:33VBなんですがFormClosingからではないと閉じることは不可能なので
しょうか?私がやろうとしているのはButtonで閉じるボタンを作り
そのボタンを押すと閉じる有無を聞かれ、はいを押せば閉じいいえを
押せば閉じないというプログラムをやっているのですが、まったくでき
ませんでした。現在のプログラムはこのようになっております。
private void button3_Click(object sender, EventArgs e)
{
DialogResult myResult;
myResult = MessageBox.Show("閉じてもよろしいですか?",
"終了確認",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
if (myResult == DialogResult.Cancel)
という状態です。
0754デフォルトの名無しさん
2006/12/06(水) 13:12:200755デフォルトの名無しさん
2006/12/06(水) 13:13:500756デフォルトの名無しさん
2006/12/06(水) 14:10:250757デフォルトの名無しさん
2006/12/06(水) 16:29:010758デフォルトの名無しさん
2006/12/06(水) 20:25:18100*100のBitmapを作成してそこに直接FillRectAngleで50*50の四角を描画したとき、
四角以外のところは何もかかれていない透明の状態になっているようですが、
ここにはデータが入っていないんでしょうか?それとも透明色が描かれているんでしょうか?
0759デフォルトの名無しさん
2006/12/06(水) 20:37:090760デフォルトの名無しさん
2006/12/06(水) 20:43:30やり方教えてください
0761デフォルトの名無しさん
2006/12/06(水) 20:49:140762デフォルトの名無しさん
2006/12/06(水) 21:01:28ありがとう
0763デフォルトの名無しさん
2006/12/06(水) 21:07:27VCとかならわりと簡単にできるみたいなんですけど、C#でないですかね。
外人さんの作ったsnmp.dllとかあるのは見たんですけど、できればソースの形で簡潔に書かれているものが知りたいです。
0764デフォルトの名無しさん
2006/12/06(水) 21:18:37http://www.google.com/codesearch?q=SNMP+lang%3AC%23
0765デフォルトの名無しさん
2006/12/06(水) 21:23:16ありがとうございました。
0766デフォルトの名無しさん
2006/12/06(水) 21:37:35throw new NotImplementedException();じゃなくて
throw new Exception("The method or operation is not implemented.");が追加されるの?
0767デフォルトの名無しさん
2006/12/06(水) 21:46:340768デフォルトの名無しさん
2006/12/06(水) 21:46:44ADO .NETでテーブル内にデータを追加しようとするとき、
もしテーブルに存在しなかったらデータをinsertし
存在していたらupdateするといった処理はどのようにやればいいのでしょうか
したのソースだと次回主キーが存在しているものを指定したらキー制約にひっかかりますよね…
// 接続用オブジェクトの作成
SqlConnection conn = new SqlConnection();
conn.ConnectionString = connStr.ToString();
// select用コマンド・オブジェクトの作成
SqlCommand selectCmd = new SqlCommand();
selectCmd.Connection = conn;
selectCmd.CommandText = selectStr;
// データアダプタの作成
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = selectCmd;
// データセットへの読み込み
DataSet ds = new DataSet();
da.Fill(ds, "table1");
DataTable dt = ds.Tables["table1"];
// 行の追加
DataRow newRow = dt.NewRow();
newRow["a"] = 1;
newRow["b"] = "い";
dt.Rows.Add(newRow);
// コマンド自動作成
SqlCommandBuilder cb = new SqlCommandBuilder(da);
// データベースの更新
int j = da.Update(ds, "table1");
0769デフォルトの名無しさん
2006/12/06(水) 21:47:57MSDN フォーラムの VS フィードバックあたりに
と MSDN forum 漁ったら MSFT の人のこんな発言があった
> I believe that the change was made from throwing
> an NotImplementedException to an Exception as the former
> is not included in the Compact Framework,
> therefore generating code that wouldn't actually compile.
> However, in saying that I do wish this was better.
0771デフォルトの名無しさん
2006/12/06(水) 22:12:09ありがとうございます。Google Code Searchなるものができてるなんて知りませんでした。
目的のものはみつかりませんでしたが、これは使えそうです。
本当にありがとうございます。
0772766
2006/12/06(水) 22:20:39なるほど。Compact Framework 1.0をサポートするためだったのか。
調べてみたら変更する方法も見つかった
http://blogs.msdn.com/ansonh/archive/2005/12/08/501763.aspx
0773743
2006/12/06(水) 22:54:26MessageBoxOptions列挙体の説明を読んで、仰っていることが理解できました。
昨日試したときはなぜかTOPMOSTにならなかったのですが、
もう一度試したらちゃんとTOPMOSTになりました。
昨日は簡単に試したくて、コンソールアプリテンプレートを使ったのがいけなかったのでしょうか。。
ちなみにMessageBoxOptions.DefaultDesktopOnlyを使ってもTOPMOSTになるようです。
MessageBoxはWindows2000以前風でしょぼいですが。
0774743
2006/12/06(水) 22:57:20すみません、お詫びと御礼を忘れました。
充分検証せずに746のようなレスしていまい、申し訳ありませんでした。
また、ありがとうございました。勉強になりました。
0775デフォルトの名無しさん
2006/12/07(木) 00:17:00こっちも十分に検証してないから
気にすんな
0776デフォルトの名無しさん
2006/12/07(木) 01:50:19テーブルに複数のキーが設定されている場合のSelect方法が分からずに困っています。
たとえば、Column1がstring、Column2がint16の場合、下記のような感じかと思ってチャレンジしたのですが
あっさり失敗しました。
table.Select("Column1 = 'test1', Column2 = 123", "Column1 DESC");
どなたかご教授お願いしますorz
0777デフォルトの名無しさん
2006/12/07(木) 01:56:42試してないが
Column1 = 'test1' AND Column2 = 123
じゃねーの?
0778デフォルトの名無しさん
2006/12/07(木) 01:57:53http://msdn2.microsoft.com/ja-jp/library/system.data.datacolumn.expression.aspx
http://www.tt.rim.or.jp/~rudyard/torii009.html
0780デフォルトの名無しさん
2006/12/07(木) 12:44:170781デフォルトの名無しさん
2006/12/07(木) 12:46:380782デフォルトの名無しさん
2006/12/07(木) 12:49:390783デフォルトの名無しさん
2006/12/07(木) 12:51:350784デフォルトの名無しさん
2006/12/07(木) 12:58:35いろいろと用途が広いけど、POPは用途限られてるしね。
0785デフォルトの名無しさん
2006/12/07(木) 14:59:47DataGridViewのDataSourceに指定したデータテーブルの中にintのカラムがあるとします。
通常何も手を加えなければDataGridViewには数字が表示されますが、
数字に対応した文字列を表示する方法はないのでしょうか?
(1なら”処理中”と表示。2なら"処理終了"と表示。みたいなイメージです。)
0786デフォルトの名無しさん
2006/12/07(木) 15:36:47一番簡単。Oracleならdecodeかますとか。
表示だけいじるのなら、DataGridViewのCellFormattingイベントで置き換えるとか、
いろいろ。
0788デフォルトの名無しさん
2006/12/07(木) 17:19:41Bitmap中の同一の色を全てまとめて変更することは出来ないでしょうか?
やっぱりforで地道にブン回すしかないですかね?
0789デフォルトの名無しさん
2006/12/07(木) 17:27:450790デフォルトの名無しさん
2006/12/07(木) 17:29:170791デフォルトの名無しさん
2006/12/07(木) 18:03:13http://msdn2.microsoft.com/ja-jp/library/4b4dc1kz(VS.80).aspx
0792デフォルトの名無しさん
2006/12/07(木) 18:09:02空文字禁止のデーターベースに更新を掛けるとエラーが出てしまいます
データーベースを空文字許可にする以外に方法はありますか?
0793デフォルトの名無しさん
2006/12/07(木) 18:20:47データベースに渡す前に""ならnullに変えればいいんじゃないの
0794デフォルトの名無しさん
2006/12/07(木) 18:49:070795デフォルトの名無しさん
2006/12/07(木) 20:59:400797デフォルトの名無しさん
2006/12/07(木) 21:18:54ありがとうございます
nullに出来ないのですね・・・
0798デフォルトの名無しさん
2006/12/08(金) 10:02:11アプリケーションでシステムモーダル(Win95以降はただの常に手前)は
使うなというガイドラインを守ったのだと思われ。
0799デフォルトの名無しさん
2006/12/08(金) 17:55:36上手く認証されずに「もう一度入力してください」の旨を示すhtmlが返却されてきてしまいます。
プログラムが悪いのか、パラメータ不足なのかを切り分けたいのですが
下記のコードに何か根本的な間違いはありますでしょうか?
Hashtable ht = new Hashtable();
ht["username"] = textBox_LoginName.Text;
ht["password"] = textBox_LoginPassword.Text;
string param = "";
foreach (string k in ht.Keys) {
param += String.Format("{0}={1}&", k, ht[k]);
}
byte[] postDataBytes = Encoding.ASCII.GetBytes(param);
string url = textBox_LoginUrl.Text;
System.Net.WebRequest req = System.Net.WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "text/html; charset=shift_jis";
req.ContentLength = postDataBytes.Length;
System.IO.Stream reqStream = req.GetRequestStream();
reqStream.Write(postDataBytes, 0, postDataBytes.Length);
reqStream.Close();
System.Net.WebResponse res = req.GetResponse();
System.IO.Stream resStream = res.GetResponseStream();
Encoding enc = Encoding.GetEncoding("shift_jis");
System.IO.StreamReader sr = new System.IO.StreamReader(resStream, enc);
Console.WriteLine(sr.ReadToEnd());
sr.Close();
0800デフォルトの名無しさん
2006/12/08(金) 18:12:33Content-Type: text/html; charset=shift_jis
Content-Length: nnn
username=xxx&password=yyy
0801799
2006/12/08(金) 18:18:21イメージ的にはそうです。
ただし、そのイメージがあってるかどうか自分でも自信がもてません。
> username=xxx&password=yyy
この部分は間違いない気がしますが、
Content-Typeについては、ログイン画面のHTMLに書いてあったものをそのまま使用すればよいのかと思い
> Content-Type: text/html; charset=shift_jis
と、しています。
また、Content-LengthについてはC#でのHTTP通信関連の情報をWEBで漁り、
パラメータ部の長さを入れているつもりです。
0802デフォルトの名無しさん
2006/12/08(金) 18:27:06multipart/form-data で送るんじゃないの??
0803デフォルトの名無しさん
2006/12/08(金) 18:33:43ASCIIに変換してるのに、charset=shift_jisと送ちゃってるのも間違い。
URIエンコードの処理が入ってないのも気になるが、その辺は簡略化したせいだろうか。
0804799
2006/12/08(金) 18:42:47ご指摘色々ありがとうございます。
まずは、Content-Typeとエンコード部分について見直してみます。
0805799
2006/12/08(金) 20:07:19MIMEタイプがいけなかったっぽいです。
(実は一個程必須パラメータが抜けてたりしましたが・・・w)
0806デフォルトの名無しさん
2006/12/09(土) 10:37:31言語としてのC#を深く学べるオススメの書籍を教えてください。
とりあえず今の候補はこの二つです。
プログラミング Microsoft Visual C# 2005 言語編
ttp://bpstore.nikkeibp.co.jp/nsp/book/05173/05173.html
プログラミング C# 第4版
ttp://www.oreilly.co.jp/books/4873112648/toc.html
よろしくお願いします。
0807デフォルトの名無しさん
2006/12/09(土) 10:40:230809デフォルトの名無しさん
2006/12/09(土) 11:15:50これ読破すれば完璧だよ
C#2.0の新機能には触れられてないから、それだけは他の記事で
0811デフォルトの名無しさん
2006/12/09(土) 11:21:56GUIまわりはいろんなコントロールを使ったり作ったりして
覚えた方がはやいよね
0812デフォルトの名無しさん
2006/12/09(土) 11:26:05このスレで出てくる質問も載ってる本があるし。
0813デフォルトの名無しさん
2006/12/09(土) 11:34:10日本語版は初心者用ばっか。
0814デフォルトの名無しさん
2006/12/09(土) 11:43:240815806
2006/12/09(土) 11:57:09匿名メソッドやC#3.0のvarに親近感がわきますねw
とりあえず@ITだけでOKみたいなのでしっかり制覇して、
なれたころに洋書でも読もうと思います。
みなさんありがとうございました!
0816デフォルトの名無しさん
2006/12/09(土) 11:59:30普通の初心者のようにコントロールの使い方だけでも
勉強したほうがいいんじゃないのかな
0817デフォルトの名無しさん
2006/12/09(土) 12:10:07型が明らかなときにいちいち型名を書かなくてもいいようにするだけじゃなかった?
0818799
2006/12/09(土) 15:31:01SSLログインは上手く行き、ログイン後のHTMLを取得することが出来たのですが
次のページを表示させるべく改めてGET又はPOSTを行うと、「セッションが無効」の旨のページに飛んでしまいます。
セッションを維持すれば良いと思うのですが、セッションを継続しつつアクセスできる手段が探し当てられません。
(本物のブラウザーではクッキーを切っても動くのでクッキー関連ではないと思っています。)
クラス名等、ヒント程度でもよいので宜しくお願いします。
0819デフォルトの名無しさん
2006/12/09(土) 15:39:50だいたいSSLログインてなんだ?
改めてGET又はPOSTって具体的にどう改めてなの?
0820デフォルトの名無しさん
2006/12/09(土) 15:40:48そこは鯖側アプリケーションの実装次第だからなんとも言えん。
セッションの保持にクッキーを使ってなければ、次に考えられるのはURIにセッションIDを付けて回るタイプ
0821デフォルトの名無しさん
2006/12/09(土) 20:19:430822デフォルトの名無しさん
2006/12/09(土) 20:24:19じゃあ説明してくれ
0823デフォルトの名無しさん
2006/12/09(土) 21:59:41SSLログインとでも言ってるのかな?
0824デフォルトの名無しさん
2006/12/10(日) 01:03:44コントロールの使い方なんて覚えても何の意味も無い
人様に見せることが出来るアプリケーションを書こうとすると
ほとんどのコントロールは自前で用意することになるんだから
0825デフォルトの名無しさん
2006/12/10(日) 01:20:00少しは空気読め&人の話を聞け
0826デフォルトの名無しさん
2006/12/10(日) 01:22:41百歩譲ってそうだとしても,気違いじみた俺様設計コントロールにならないように
標準のコントロールの使い方ぐらい知っておくべきだろ
0827デフォルトの名無しさん
2006/12/10(日) 01:23:010828デフォルトの名無しさん
2006/12/10(日) 01:23:470829デフォルトの名無しさん
2006/12/10(日) 02:13:150830デフォルトの名無しさん
2006/12/10(日) 04:40:39------------------------
Aクラス 普通のクラス
Bクラス 普通のクラス
Cメソッド Bクラス内で呼ばれるスレッドプールメソッド
------------------------
この条件で、AでB内部に定義されている構造体をnewしてBクラスのメソッドへ引数で渡し、
その渡されたメソッド内でスレッドプールCにその構造体を渡した場合、構造体の内部データは保障されるのでしょうか?
【イメージ図】
1. Aクラスにて構造体をnew
↓
2. newした構造体をBクラス内のメソッドへ引数で渡す
↓
3. 呼ばれたBクラスのメソッドは引数で受け取った構造体をスレッドプールメソッドCへ引数として渡し実行。
0831デフォルトの名無しさん
2006/12/10(日) 04:44:45どの観点から見てのどういう保証なのかも分からん
0832830
2006/12/10(日) 04:51:32保障というのは、最終的にCクラス内でスレッドプールが実行されますが、
このスレッドプール処理が終了する前に構造体をnewしたAクラスのメソッドの処理が終わってしまう可能性があります。
その場合、Aクラスのメソッドが終了した時点で構造体内部のデータはガベージコレクションの対象になってしまうのでしょうか?
それとも、スレッドプール処理が終了するまでガベージコレクションの対象にはならないのでしょうか?
0833デフォルトの名無しさん
2006/12/10(日) 05:06:45構造体は値渡しだから、Bクラスに渡した時点とCメソッドに渡した時点で
それぞれコピーされるよ。
従ってもとの構造体は消えてなくなるかもしれないが渡した構造体は存続する。
構造体でなかった場合もGC対象になるのはすべての参照が断たれたオブジェクトだから
そのオブジェクトにアクセスする手段がある限りGCされることはない。
0835デフォルトの名無しさん
2006/12/10(日) 05:47:480836デフォルトの名無しさん
2006/12/10(日) 06:57:05> 構造体は値渡しだから、
初心者スレなんだしそこはきっちり用語を使い分けようぜ。
値型、な。
なにを構造体(値型)にするべきか、については MSDN のガイドラインで触れられてるから
一度目を通した方が良い。
C と同じ感覚で使うのはあんまり良くない。
0837デフォルトの名無しさん
2006/12/10(日) 07:15:18いや間違ってないでしょ。構造体は値型、だから引数にすると値渡しになる。ってこと。
0838デフォルトの名無しさん
2006/12/10(日) 07:26:07refやoutは?
0839デフォルトの名無しさん
2006/12/10(日) 07:34:520840デフォルトの名無しさん
2006/12/10(日) 09:34:29参照型/値型と参照渡し/値渡しはまるっきり別物だっつの。
0841デフォルトの名無しさん
2006/12/10(日) 09:51:19初心者用スレなんだから。
0842デフォルトの名無しさん
2006/12/10(日) 09:56:24何が違うのかよくわからない。もしかして処理速度とかですか?
0843デフォルトの名無しさん
2006/12/10(日) 10:03:35DataGridViewはDataGridの後継って書いてあった。
漏れはどっちも使ったことないけどね!
ttp://msdn2.microsoft.com/ja-jp/library/ms171628(VS.80).aspx
0844デフォルトの名無しさん
2006/12/10(日) 10:13:06うわー難しいこといっぱい書いてある。
高機能になったんだから何も考えずにDataGridView使っとけってことですね?
ありがとん
0845デフォルトの名無しさん
2006/12/10(日) 19:07:43これはForm2をつくってやらないといけないんでしょうか?
良いやり方教えてください。
あとForm1とForm2を作った時にタイトルバーの状態を同じにする事は出来ますか?
例えばForm1がアクティブになった時、Form2のタイトルバーの色は薄くなってしまいますが
Form1と同じように濃くしたいんです。
0846デフォルトの名無しさん
2006/12/10(日) 20:57:51・良いやり方もなにも。
・タイトルバー消して自前で描画。
・普通はそんなこと考えませんが。
0847デフォルトの名無しさん
2006/12/10(日) 21:33:100848デフォルトの名無しさん
2006/12/11(月) 00:34:24string st = textBox1.Text;
で変数に複数行あるテキストデータを入れたのはいいのですが、
この中身を一行ずつ処理するにはどうするんだろ?
テキストファイルならReadLineメソッドで一行ずつ処理できますけど、
改行コード¥r¥nで区切って??
あれれ?でもどうやって繰り返して変数の最後まで判断するんだ?
0849デフォルトの名無しさん
2006/12/11(月) 00:40:09StringReader 使う手もある
0850848
2006/12/11(月) 01:05:47StringReaderのほうはテキストファイルの読込と似た感じになるのかな、ちょっとわからん。
Lines プロパティなんてものがあったのね。
参考になりました。
0852デフォルトの名無しさん
2006/12/11(月) 09:46:40ボタンの縦幅一杯まで文字を表示する方法はありますか?
0853デフォルトの名無しさん
2006/12/11(月) 10:31:200854852
2006/12/11(月) 11:27:340855デフォルトの名無しさん
2006/12/11(月) 12:18:080856852
2006/12/11(月) 12:25:440857デフォルトの名無しさん
2006/12/11(月) 20:27:36>キャプション文字の下側が上下に余裕がある
とあるが良く見てみると無いと思う。
多分、余裕があると思ってる部分はボタンの斜面だよ。
どうしてもあわせたいならfontを微妙に(.5ポイントほど)小さくしてみたら?
0858
2006/12/11(月) 23:53:47勉強します。
0859デフォルトの名無しさん
2006/12/11(月) 23:59:16ポップアップメニューが出ますよね?
それに項目を加えたいんですけどやり方がのってるサイトとかありませんか?
あと、ブラウザにツールバー(Yahoo!ツールバーのようなもの)などを登録する
やり方も教えてください。
0860デフォルトの名無しさん
2006/12/12(火) 00:06:26C#2.0の新機能という意味ならジェネリック
その他は大体糖衣構文だからあんまり大事じゃない
0861
2006/12/12(火) 00:10:16>>860
ありがとうございます。
勉強します。
※業務中にですがw
0862デフォルトの名無しさん
2006/12/12(火) 00:12:20匿名メソッドを糖衣構文で済ますつもりか。
// いやまあ確かに使わずともほぼ等価のコードは書けるけどさ。
0863デフォルトの名無しさん
2006/12/12(火) 01:03:26http://msdn.microsoft.com/msdnmag/issues/04/01/WindowsShell/
後者は
http://www.codeproject.com/csharp/dotnetbandobjects.asp
0865デフォルトの名無しさん
2006/12/12(火) 01:49:46strに半角と全角がまざるとどうしてもずれてしまいます
なんとかぴったり合わせる方法ありませんか?
0866デフォルトの名無しさん
2006/12/12(火) 06:53:280867デフォルトの名無しさん
2006/12/12(火) 10:40:19自分で書くものなんでしょうか?
どこかで設定すれば可能になったりしませんか?
0868デフォルトの名無しさん
2006/12/12(火) 15:17:480870デフォルトの名無しさん
2006/12/12(火) 19:00:49int[] dat;
でとしておいて
ある関数で
dat = new int[5];
とします。
別の関数で
dat = new int[3];
とか配列を再割り当てしたい場合、dat = new int[3];の前にメモリーの解放関数or宣言みたいなものを呼ばなくても大丈夫でしょうか?
もし必要があるならば、その関数or宣言も教えてください
0871デフォルトの名無しさん
2006/12/12(火) 19:06:08それがりてん
0872デフォルトの名無しさん
2006/12/12(火) 19:08:08ありがとう
0873デフォルトの名無しさん
2006/12/12(火) 22:22:17class Arrからa個のオブジェクト配列がほしいとき
Arr[] arr = new Arr[a];
arr[n] = new Arr(); //n = 0 〜 arr.Length
というように必要な要素ごとにインスタンスを作るという感覚でいいのでしょうか
0874デフォルトの名無しさん
2006/12/12(火) 22:26:38ただし n の最大値は arr.Length - 1 な。
0875デフォルトの名無しさん
2006/12/12(火) 22:28:24カスタムコントロールの作り方がわからないので教えてください。
コントロールを継承して描画などは独自でやりたいんですが
Windowsコントロールライブラリを作成した後
public partial class UserControl1 : System.Windows.Forms.Control
でコントロールを継承させた後に何をすればいいのでしょうか
とりあえず下準備?をしたいのですが
この段階ではUserControl1' に 'AutoScaleMode' の定義がありません。というエラーが出ます。
0876デフォルトの名無しさん
2006/12/12(火) 22:35:58MSDNじっくり見てみな。
0877デフォルトの名無しさん
2006/12/12(火) 22:37:210878デフォルトの名無しさん
2006/12/12(火) 22:39:11それからプロジェクトにカスタムコントロールを追加する
あとは↑を参照しながらOnPaintをオーバーライドするなりお好きにどうぞ
0879デフォルトの名無しさん
2006/12/12(火) 22:50:58カスタムコントロールって新規作成→プロジェクトからは作れないんですか?
0880デフォルトの名無しさん
2006/12/12(火) 22:54:440881デフォルトの名無しさん
2006/12/12(火) 22:58:40○public partial class UserControl1 : System.Windows.Forms.UserControl
'AutoScaleModeプロパティ' はContainerControlクラスにしかない。
UserControlクラスはContainerControl を継承してる。
ContainerControl は ScrollableControl その他を継承してて、
ScrollableControl が Controlその他を継承してる。
0882デフォルトの名無しさん
2006/12/12(火) 23:01:36UserControlから始めたほうがいいよ
0883デフォルトの名無しさん
2006/12/12(火) 23:06:26継承の事も含め勉強不足のようなのでまず上のサイトを調べてきます。
0884デフォルトの名無しさん
2006/12/13(水) 00:02:06ってのがあるんだけど、
System.IO.Directory.GetFiles()の説明で
3番目の引数にtrueかfalseでサブフォルダも検索するかを
指定するって書いてあるんだけど、これって「SearchOption.AllDirectories」または
「SearchOption.TopDirectoryOnly」で指定しないと駄目なんだよね?
本に書いてあるように、trueまたはfalse入れてもエラーになるんですけど?
0885デフォルトの名無しさん
2006/12/13(水) 00:11:46>「SearchOption.TopDirectoryOnly」で指定しないと駄目なんだよね?
うん。MSDNにはそう書いてる。
boolも取るGetFilesメソッドのオーバーロードは無いね。
0886デフォルトの名無しさん
2006/12/13(水) 00:18:38結構ベータからでも変わったところがあるからな
0887884
2006/12/13(水) 00:27:470888デフォルトの名無しさん
2006/12/13(水) 04:25:14インデクサからアクセスすることで応急処置したんですが・・・
0889デフォルトの名無しさん
2006/12/13(水) 06:54:45こんなのやりたいという擬似コードだけでも書けんか
0890888
2006/12/13(水) 07:23:28仰るとおりのことだと思います
フィールドに2つ以上の1次配列メンバがあって個別にアクセスできるプロパティがほしいと思ったんです
しかしそれのために引数が2個以上のインデクサを作るのは忍びないと感じつつ
その変数ごとにインデクサからアクセスできるクラスを作ってしまった。といった感じです
0891デフォルトの名無しさん
2006/12/13(水) 07:30:53C# 的にはそれで正解。
.NET のクラスライブラリも C# にあわせてそう言う構造になってるしな。
0892デフォルトの名無しさん
2006/12/13(水) 07:30:550894デフォルトの名無しさん
2006/12/13(水) 08:31:11の意味から分からない俺は頭悪いのか?
0895デフォルトの名無しさん
2006/12/13(水) 08:34:34yes
0896デフォルトの名無しさん
2006/12/13(水) 11:44:13public int this[int index, int index2]
{
get
{
if( index == 0 )
return arr1[index2];
else if( index == 1 )
return arr2[index2];
else
return -1;
}
}
こんなかんじ?
インデクサに複数の引数いけるって知らんかった
0897デフォルトの名無しさん
2006/12/13(水) 13:04:200898デフォルトの名無しさん
2006/12/13(水) 13:38:44配列なら普通にプロパティとして公開すればインデクサで要素にアクセスできるが、それじゃ不満なんだろうか
public int[] Arr1{ get{ return arr1; } } //とか。
0899デフォルトの名無しさん
2006/12/13(水) 15:13:53文字列をクリップボード経由で
エクセル2003のワークシート
に貼り付けたいのですが
エラーが発生してしまいます
Clipboard.Clear();
Clipboard.SetText("貼り付ける文字列");
Excel.Application exl = new Excel.Application();
exl.Visible=true;
exl.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
exl.ActiveCell.PasteSpecial(Excel.XlPasteType.xlPasteValues, Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false);
↑ここで
「Range クラスの _PasteSpecial メソッドが失敗しました。」
とエラーが出ます
エラーの原因がわかりません・・・
どうやれば貼り付けできるのでしょうか?
0900デフォルトの名無しさん
2006/12/13(水) 17:00:54リードオンリーにできないとか値チェックができないとか
インデクサの代用にはならなそう
0901デフォルトの名無しさん
2006/12/13(水) 17:09:08複雑なことをやろうとすると、やはりラッパクラスを作るしかないわな
リードオンリーだけならReadonlyCollection<>が使えそう
0902デフォルトの名無しさん
2006/12/13(水) 17:41:18引数つきプロパティぽくコーディングできるかも
public class CallbackIndexer<TIndex, TValue>
{
private GetCallback getter;
private SetCallback setter;
public CallbackIndexer(GetCallback getter, SetCallback setter)
{
this.getter = getter;
this.setter = setter;
}
public TValue this[TIndex index]
{
get { return this.getter != null ? this.getter(index) : default(TValue); }
set { if (this.setter != null) this.setter(index, value); }
}
public delegate TValue GetCallback(TIndex key);
public delegate void SetCallback(TIndex key, TValue value);
}
0903デフォルトの名無しさん
2006/12/13(水) 17:58:29いいかもね。
ただ個人的にはデリゲートがnullならゲッタでもセッタでも例外を投げてほしい
0904デフォルトの名無しさん
2006/12/13(水) 18:04:470905デフォルトの名無しさん
2006/12/13(水) 18:08:07set や get が無いのはそれぞれ ReadOnlyCallbackIndexer とか別の実装にするべきだと思う。
コンパイル時にチェックしてもらえるから。
0906デフォルトの名無しさん
2006/12/13(水) 18:11:490907デフォルトの名無しさん
2006/12/13(水) 18:28:20そこまでするならインターフェースに分けて,
public interface IGetIndexer<TIndex, TValue>{TValue this[TIndex index]{get;}}
public interface ISetIndexer<TIndex, TValue>{TValue this[TIndex index]{set;}}
public interface IGetAndSetIndexer<TIndex, TValue> :
IGetIndexer<int, string>, ISetIndexer<int, string>{}
public class Sample{
public IGetAndSetIndexer Item{get{return new CallbackIndexer...}}
private class CallbackIndexer<TIndex, TValue> : IGetAndSetIndexer<TIndex, TValue>{
public TValue this[TIndex index]{get{...}set{...}}
}
}
0908デフォルトの名無しさん
2006/12/13(水) 18:51:05クラスオブジェクトを配列に入れて、どんな目的で使うのか分からない
Cで言う関数配列なら分かるんだけど、同じもんの配列でしょ・・・・
0909デフォルトの名無しさん
2006/12/13(水) 18:54:410910デフォルトの名無しさん
2006/12/13(水) 18:56:310911デフォルトの名無しさん
2006/12/13(水) 18:59:41セッタとゲッタを別々にインターフェイスにできるんだな。ちょっと感動した。
しかしそれだと読み取り専用にしてもコンストラクタでsetterを要求されるのが美しくない。
0912デフォルトの名無しさん
2006/12/13(水) 19:05:19Stringもクラスだが?
Cの関数配列ってのはC#でいうとデリゲート配列みたいなものか。
マルチキャストできるから配列にする意味はなさそうだけど
0913デフォルトの名無しさん
2006/12/13(水) 19:15:520914デフォルトの名無しさん
2006/12/13(水) 19:37:01フィールドも死語?
0915デフォルトの名無しさん
2006/12/13(水) 19:44:45クラスオブジェクトってのはTypeクラスのインスタンスオブジェクトのことなのか?
0916デフォルトの名無しさん
2006/12/13(水) 19:47:01staticでも渡されるオブジェクト
0917デフォルトの名無しさん
2006/12/13(水) 19:51:59フィールドはある
msdnより
>このトピックでは、フィールドについて説明します。
>フィールドとは、クラスまたは構造体に含まれるオブジェクトや値のことです。
>フィールドを使用すると、クラスおよび構造体でデータをカプセル化できます。
0918デフォルトの名無しさん
2006/12/13(水) 19:59:03C#ではクラスオブジェクトという呼び方はしないな
他の型宣言をあらわすのも同じTypeだから、Typeオブジェクトとか言う
0919デフォルトの名無しさん
2006/12/13(水) 20:02:560920デフォルトの名無しさん
2006/12/13(水) 20:06:150921デフォルトの名無しさん
2006/12/13(水) 20:10:06>>888 の言ってることがわかんにゃー
メソッドじゃダメなの?
0922デフォルトの名無しさん
2006/12/13(水) 20:19:25foo.Bar[baz] += qux;
foo.set_Bar(baz, foo.get_Bar(baz) + qux);
0923VC2005
2006/12/13(水) 20:23:38aaa = yyy.getxxx();
getxxx()はobjectの配列を返すのですが、
この場合、aaa[0]というような参照ができません。
・・というかコンパイルで怒られます。
aaaを配列にするとaaa[0]に配列が代入されます。
配列の要素を参照するにはいかがいたしましょう。?
0924デフォルトの名無しさん
2006/12/13(水) 20:26:060925デフォルトの名無しさん
2006/12/13(水) 20:26:29そんだけの略記のために複雑な仕掛けをあれこれ考えるなら、
単に
foo.set_Bar(baz, foo.get_Bar(baz) + qux);
を一発で実行するメソッドを容易すりゃいいと思うけど。
0926デフォルトの名無しさん
2006/12/13(水) 20:29:390927デフォルトの名無しさん
2006/12/13(水) 20:31:16プロパティはBarのほかにも何個もあるわけだし、
加減だけでなく、乗除やビット演算をしたくなるかもしれない
複雑な仕掛けを使わないで一発で実行できるメソッドを考えてみれ。
0928デフォルトの名無しさん
2006/12/13(水) 20:32:11つか何でobject型で受けるの?
object[] bbb = yyy.getxxx();でいいのに
使いまわしはややこしくなるだけだよ
0929デフォルトの名無しさん
2006/12/13(水) 20:32:37object[] aaa;
aaa = yyy.getxxx();
0930デフォルトの名無しさん
2006/12/13(水) 20:35:17いやだから、そういうそのクラスにとって必要な演算子を直接実装すればいいんじゃないの?
将来必要かもしれないっていう理由であれこれ作りこむのは無駄に太ってく原因だよ。
0931デフォルトの名無しさん
2006/12/13(水) 20:37:26もう俺にはお手上げだ。
foo.Bar[baz] += qux;
と同等の機能をメソッドと演算子で具体的にどう実装するのか教えてくれ。
0932デフォルトの名無しさん
2006/12/13(水) 20:39:240933デフォルトの名無しさん
2006/12/13(水) 20:41:21クラスに実際に必要なのは foo.Bar[baz] += qux; そのものじゃなくて、
それを使って表現するなんかしらの機能なんでしょ?
0934デフォルトの名無しさん
2006/12/13(水) 20:41:43それは結局、上で論じてきたことと一緒でしょうが
0935デフォルトの名無しさん
2006/12/13(水) 20:42:07もういいよ
0936デフォルトの名無しさん
2006/12/13(水) 20:44:17分からんけど
ActiveCell指定してないとかそのあたりじゃないのか?
0937デフォルトの名無しさん
2006/12/13(水) 20:44:52俺らが貰ったのは引数付きプロパティで配列にアクセスするって言うお題だったわけよ
それ以上つっこまれても困る
0938デフォルトの名無しさん
2006/12/13(水) 20:45:38なんか水を差しちゃったみたいだ。
0939デフォルトの名無しさん
2006/12/13(水) 20:47:49少ない仲間同士仲良くしようw
0940デフォルトの名無しさん
2006/12/13(水) 21:36:19//メールの設定
message.To = "[email protected]";
message.From = "[email protected]";
message.Subject = "ほげほげ";
message.BodyEncoding = System.Text.Encoding.GetEncoding("iso-2022-jp");
message.BodyFormat = System.Web.Mail.MailFormat.Text;
message.Priority = MailPriority.Normal;
message.Body = "ほげほげほげほげ";
//添付ファイル
MailAttachment attach1 = new MailAttachment(imagefileName, MailEncoding.Base64);
message.Attachments.Add(attach1); ←←←←←←←←←←この一行
//SMTPサーバ
System.Web.Mail.SmtpMail.SmtpServer = "mail.hogehoge.jp";
//送る
System.Web.Mail.SmtpMail.Send(message);
メールを送信する処理があるので、上記の様なコードを書いているのですが
「'CDO.Message' オブジェクトにアクセスできませんでした。」
と言うエラーが出てメールが送れてません。
どうも添付ファイルに問題があるらしく、「この一行」の部分をコメントアウトすると
問題なく送信されてます。
対象のサーバがsmtpの前にpop3ですの。事前にpop3認証はしてあります。
よろしくお願いします。
0941デフォルトの名無しさん
2006/12/13(水) 21:49:11OSは?
System.Web.Mailは環境依存のCOMのラッパだから使わんほうが身のため。
System.Net.Mailを代わりに
0942デフォルトの名無しさん
2006/12/13(水) 21:55:26MSDNに非推奨って書いてあるものをどうして使うかな。
0943デフォルトの名無しさん
2006/12/13(水) 22:05:26bool型ってtrueじゃなくていい場合でも初期化したほうがいい?
0944デフォルトの名無しさん
2006/12/13(水) 22:09:510945デフォルトの名無しさん
2006/12/13(水) 22:11:15default(Boolean)==falseだが、気になるなら初期化しとけ。
0946デフォルトの名無しさん
2006/12/13(水) 22:11:170947デフォルトの名無しさん
2006/12/13(水) 22:19:51thx。とりあえず初期化しないでおきます
0948899
2006/12/14(木) 08:01:04Activecellの指定はちゃんと出来てると思う
PasteSpecialの部分を
Value="ああああ"とかに置き換えると、
エラーにならずちゃんと動くんです
もうだめぽ・・・
0949デフォルトの名無しさん
2006/12/14(木) 08:58:16(exl.ActiveSheet as _Worksheet).Paste(Type.Missing, Type.Missing);
PasteSpecialはExcelでCopyした後でしか使えないと思う。
0950899
2006/12/14(木) 09:26:04おぉおおおおお、出来ましたぁああああああ
ありがとうございます!!!!
0951デフォルトの名無しさん
2006/12/14(木) 12:53:36この初心者スレ良いよ
0952デフォルトの名無しさん
2006/12/14(木) 17:14:35わかりました。変えてみます。OSはWinXPHomeでした。
>>942
すいません。まだ初めてから三日目でしたのでそう言うところまでは
調べてませんでした。
0953デフォルトの名無しさん
2006/12/15(金) 01:50:58VC# Express 上から自作したプログラムを起動すると
「ファイル 'Microsoft.Windows.CommonLanguageRuntime, Version=2.0.50727.0' が見つかりませんでした。」
と、エラーがでるようになってしまいました。
対処方法がまったく分からない状況です。どなたか解決方法しらないでしょうか;
0954953
2006/12/15(金) 01:59:21http://support.microsoft.com/kb/907757/ja
0955953
2006/12/15(金) 02:09:41プロジェクト参照をやめてファイル参照にしたら無事復旧しました。
手塩に掛けたプログラムだったので取り乱してしまい申し訳ない。
0956デフォルトの名無しさん
2006/12/15(金) 19:21:03なんでだろ?
0957デフォルトの名無しさん
2006/12/15(金) 19:54:220958デフォルトの名無しさん
2006/12/15(金) 20:20:16c#は3年くらい触ってます。
0959デフォルトの名無しさん
2006/12/15(金) 20:24:520960デフォルトの名無しさん
2006/12/15(金) 20:37:430961デフォルトの名無しさん
2006/12/15(金) 20:47:55C#からスタートって人は少ないだろうね。
俺はBASIC→アセンブラ→C→C++→JAVAだったから違和感なかった。
FORTRANやPASCALも学校で習ったがまったく覚えていない。
0962デフォルトの名無しさん
2006/12/15(金) 21:23:43当時は流行らずに消える言語だろうとか言われてて
選択を誤ったかと心配してた。
最近は結構流行ってきてるからうれしい。
C# -> C -> C++ -> JAVA
0963デフォルトの名無しさん
2006/12/15(金) 22:49:25おれ自身は C とアセンブラがほぼ同時で最初で、その後、C++ → C#。
でも、今からプログラミング始めるなら C# ではじめるのが最良だと思ってる。
0964デフォルトの名無しさん
2006/12/15(金) 23:07:30アセンブラ→C→C++→C#だろ
C#から始めたらVBプログラマーみたいに狭い中でしか使えない奴になる
0965デフォルトの名無しさん
2006/12/15(金) 23:09:25BASIC -> アセンブラ -> Lisp -> C -> C++ -> C#
だったな。
アセンブラから始めたら、「自分が考えた通りに動くものを作れる」っていう
プログラミングの魅力に触れる前に嫌になると思う。
0966デフォルトの名無しさん
2006/12/15(金) 23:13:37ま、何から始めようが本人次第
0967デフォルトの名無しさん
2006/12/15(金) 23:15:52それはあるなぁ
でもハードを含めてプログラムの真髄を知るのならアセンブラやってた方がいいな
まぁ今だと組み込みなんかやらなければアセンブラなんてふれる事もないだろうが
と言う漏れももうアセンブラなんて面倒くさくて組めない
0968デフォルトの名無しさん
2006/12/15(金) 23:18:20現状で↓を勧めるオマイの見る目の無さに感服
アセンブラ→C→C++→C#
0969デフォルトの名無しさん
2006/12/15(金) 23:21:50なんで?
0970デフォルトの名無しさん
2006/12/15(金) 23:22:32C→C+→C++→C+++→C#
0971デフォルトの名無しさん
2006/12/15(金) 23:28:050972デフォルトの名無しさん
2006/12/16(土) 00:03:12まずやる気が起きん。
0973デフォルトの名無しさん
2006/12/16(土) 00:22:10今でもロボコンなんかでH8なんかのコードをCやアセンブラでしこしこ書いてる香具師
はいるわな
将来PGで飯食ってくのならVBかC#しかできんのなら偉く安く使われるだろうし
C#から低級言語に行くのは難しいし若い内しかできん
0974デフォルトの名無しさん
2006/12/16(土) 00:36:27ファイル開いてテキストで読み込んで文字列の加工処理やるのが、
こんなに簡単に出来るとは。
C++でAPIとか呼んでやってたのがバカバカしく思える。
0975デフォルトの名無しさん
2006/12/16(土) 00:50:23ポインタとかの使い方を覚えてからCに行った。
0976デフォルトの名無しさん
2006/12/16(土) 00:52:290977デフォルトの名無しさん
2006/12/16(土) 00:53:40ようやくMSも徐々に出はあるがBorlandの統合開発環境のような
使い勝手に近付いてきたかと感じた。
まあそのBorlandも'02で見限ったが
0978デフォルトの名無しさん
2006/12/16(土) 01:09:53C#使ったら簡単に色んなものが組めてしまうので逆に怖い
C#良くできてるよ
0979デフォルトの名無しさん
2006/12/16(土) 01:10:550980デフォルトの名無しさん
2006/12/16(土) 01:13:41しかし、それがゆえに仕事にならん
中学生でも使いこなせるだろう
0981デフォルトの名無しさん
2006/12/16(土) 01:16:42開発効率高くて仕事にならないって・・・
バカな俺にわかるように説明してくれ
0982デフォルトの名無しさん
2006/12/16(土) 01:17:29標準的な事をやらせるならC#だけど
重箱の隅を突っつくような細かい事やるならVC++だと思う
まぁVC++ってボタンの色変えるだけでものすごい苦労するが・・・
0983デフォルトの名無しさん
2006/12/16(土) 01:18:33結局人件費勝負になるってことだろ
0984デフォルトの名無しさん
2006/12/16(土) 01:20:56それこそアルバイトでもできそうな仕事に、好き好んで大金を払うやつなんぞおらん
0985デフォルトの名無しさん
2006/12/16(土) 01:35:470986デフォルトの名無しさん
2006/12/16(土) 01:50:35ダブルバッファリングもしても遅いし。。。参ってます
0987デフォルトの名無しさん
2006/12/16(土) 01:52:080988デフォルトの名無しさん
2006/12/16(土) 02:04:28Win32APIを呼び出して使うかポインタ操作するか
DirectX使いましょうね
0989デフォルトの名無しさん
2006/12/16(土) 02:06:240990デフォルトの名無しさん
2006/12/16(土) 02:09:150991デフォルトの名無しさん
2006/12/16(土) 02:16:240992デフォルトの名無しさん
2006/12/16(土) 05:51:150993デフォルトの名無しさん
2006/12/16(土) 08:44:260994デフォルトの名無しさん
2006/12/16(土) 09:41:25用途に応じておいしいとこだけ使えばいいの
0995デフォルトの名無しさん
2006/12/16(土) 10:48:400996デフォルトの名無しさん
2006/12/16(土) 10:50:01???????????????
0997デフォルトの名無しさん
2006/12/16(土) 11:12:12突然どうしたんだ?
0998デフォルトの名無しさん
2006/12/16(土) 11:12:510999デフォルトの名無しさん
2006/12/16(土) 11:13:251000ぼるじょあ ◆yBEncckFOU
2006/12/16(土) 11:14:0010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。