ふらっとC#,C♯,C#( ..
[2ch|▼Menu]
369:デフォルトの名無しさん
09/02/12 14:26:53
>>368
ありがとう〜!

370:デフォルトの名無しさん
09/02/12 14:51:07
>>362
つドリエル

371:デフォルトの名無しさん
09/02/12 15:42:09
固定メッセージをソース内で宣言して、グローバルで使い回したいのですが
何かいい方法はないでしょうか?

#define TEST_MESSAGE "テスト"

みたいな書き方をしたかったのですが、上手くいきません
どこからでも参照できるグローバルのような方法はないんでしょうか?


372:デフォルトの名無しさん
09/02/12 15:44:22
>>371
リソース

373:デフォルトの名無しさん
09/02/12 15:44:58
363が「さっぱりわからないから教えてくれ」ってなりそうな予感

374:デフォルトの名無しさん
09/02/12 16:00:42
プロセッサ数を取得するにはAPI使わないと無理?


375:デフォルトの名無しさん
09/02/12 16:06:22
System.Environmentにあった気がする。調べてみて

376:374
09/02/12 16:09:12
>>375
ありがとう
Environment.ProcessorCount
でできました。


377:デフォルトの名無しさん
09/02/12 16:16:00
VisualStudio2008、.Net Framework3.5を使ってます。

FormにDataGridViewを表示しています。
セルの中に改行があるときに改行されて表示させるために、WrapModeをDataGridViewTriState.Trueにしました。
すると、改行が含まれているセルは改行位置で改行されるようになったんですが、
改行が含まれていないセルや、表示しきれない行まで、折り返し改行されるようになりました。

改行コードでのみ改行して表示させることは不可能なのでしょうか?

378:デフォルトの名無しさん
09/02/12 16:23:36
falseにすればいいんじゃ?

379:377
09/02/12 16:30:48
>>378
WrapModeにDataGridViewTriState.Falseを設定すると、
折り返されなくなりますが、改行コード(\r\n)での改行もされなくなってしまうんです。



380:デフォルトの名無しさん
09/02/12 17:15:51
>>372
ありがとうございます。できました

381:デフォルトの名無しさん
09/02/12 17:36:54
>>379
「何の」WrapModeをDataGridViewTriState.Trueにしたんだよ

382:デフォルトの名無しさん
09/02/12 19:25:26
配置する文字列内の改行コードの有無をみて、改行コードがあった場合は WrapModeを trueにして、 なければfalse とか。
wrapmodeに関わらず改行すればいいのに、変な仕様だね。

383:デフォルトの名無しさん
09/02/12 20:22:21
質問です。
VS2005で作成した自作クラスのドキュメントを作りたいのですが、
クラスのメソッドやプロパティや、可能ならコメントを抽出して
一覧表示してくれるような機能、アドイン等はありますか?
よろしくお願いします。

384:デフォルトの名無しさん
09/02/12 20:29:21
>>383
NDOC

385:デフォルトの名無しさん
09/02/12 21:11:08
あるいは、sandcastle + それ使うツール
sandcastle 単体はカスタマイザビリティはすごいから
慣れればいいんだけどまぁ取っ掛かりはあれなので

386:デフォルトの名無しさん
09/02/12 21:59:13
WindowsのGUIのまともなアプリを作るのに
向いてるのって、

(1)VB2007
(2)VB.NET
(3)VC
(4)VC++
(5)C#

この5つ?

JAVAもいいかと思ったんだけど、Windowsアプリを
作るには向いてないの?V2Cみたいのでも
いいと思ったんだけど。

387:359
09/02/12 22:00:26
>>360
ブラウザで叩くとUTF8って出るからEncoding.UTF8って指定したんだが、
それだと文字化けしてしまいます。で、341の言うように
Encoding.GetEncoding( "Shift_JIS" )とすると読めるんだが、他国の住所は
文字化けしてしまう。UTF8のままでとってくる方法はない?


388:デフォルトの名無しさん
09/02/12 22:01:42
>>387
>>361 は調べた?

389:デフォルトの名無しさん
09/02/12 22:05:11
>>386
WPF

390:デフォルトの名無しさん
09/02/12 22:06:46
WPFは重い・・・

391:デフォルトの名無しさん
09/02/12 22:08:29
WPFって結局C# or VBじゃね。
ところでVB 2007だとウィルスバスター2007なんだが。

392:デフォルトの名無しさん
09/02/12 22:11:45
>>386
Delphi

393:387
09/02/12 23:03:05
>>388
POSTやPUTでAccept-Charsetとかを指定する例はぐぐれたのだが、GETで指定する方法がわからない。
どうすればいい?


394:デフォルトの名無しさん
09/02/12 23:06:55
>>393
msdnよめカス

395:デフォルトの名無しさん
09/02/12 23:17:41
文字列の前にある@ってなんですか?

396:デフォルトの名無しさん
09/02/12 23:25:52
>>394
msdnのどこ読んだらいい

397:デフォルトの名無しさん
09/02/12 23:27:25
>>395
\がそのままか、エスケープ文字になるか。

398:デフォルトの名無しさん
09/02/12 23:28:27
>>396
HttpWebRequest

399:デフォルトの名無しさん
09/02/12 23:55:24
読んでいろいろ試してみたがよくわからんかった。
req.Accept="utf-8" とか?
今日はあきらめてもう寝ます。


400:デフォルトの名無しさん
09/02/13 00:02:06
あたまわるすぎる

401:デフォルトの名無しさん
09/02/13 00:13:52
試しにググったら一発でサンプルコード出てきたけど
自分で解決しようって気概は感じられないなw

402:デフォルトの名無しさん
09/02/13 00:14:44
まあ、そんなのがあったらここで聞く前にググっている罠。

403:デフォルトの名無しさん
09/02/13 00:42:51
>>399
HttpWebRequest.Headers プロパティ
WebHeaderCollection クラス

404:デフォルトの名無しさん
09/02/13 01:15:48
HttpWebRequest.UserAgent = "Mozilla/5.0";
でいけたよ

405:デフォルトの名無しさん
09/02/13 01:47:56
グループボックス内の座標を押したクリックイベントはどうやって作ればいいですか?

406:デフォルトの名無しさん
09/02/13 01:56:34
>>405
1.デザイナでグループボックスを選択
2.プロパティウィンドウのイベントタブをクリック
3.イベント一覧からMouseDownをダブルクリック

407:デフォルトの名無しさん
09/02/13 02:02:30
グループボックスにマウスダウンがないんです!

408:デフォルトの名無しさん
09/02/13 02:09:41
たぶんBrowsableがfalseになってるから表示されない
groupBox1.MouseClick += (sender, e) => { Console.WriteLine(e.Location); };
こんな感じでいけるよん

409:デフォルトの名無しさん
09/02/13 02:18:15
senderっていうのはcontrolが格納されていて、eはクリックイベントがわかるような物が入ってるんですか?
クリックイベントに既に飛んでるのにその引数にイベントが渡されててもメソッドの中で使う機会なくないですか?


410:デフォルトの名無しさん
09/02/13 02:22:34
ToString時に書式を変更するにはどうすればいいんでしょうか
int a = 1;
string str = a.Tostring();
でstrの中身が常に2桁にしたいんです、この場合"01"にしたいんです

411:デフォルトの名無しさん
09/02/13 02:33:23
>>410
string str = a.ToString("D2"); 


412:デフォルトの名無しさん
09/02/13 02:34:25
>>409
日本語でおk

413:デフォルトの名無しさん
09/02/13 02:39:20
ありがとう!

414:デフォルトの名無しさん
09/02/13 02:50:42
>>407
ああ、ごめん

private void groupBox1_MouseDown(object sender, MouseEventArgs e)
{
処理
}

適当に↑のようなイベントハンドラ作ってFormのLoadイベントかどっかに

groupBox1.MouseDown += new EventHandler (groupBox1_MousDown(sender,e);

って書いとけば追加される

415:デフォルトの名無しさん
09/02/13 03:00:57
>>414
なるほどありがとうございました

416:デフォルトの名無しさん
09/02/13 05:52:15
Device()の行でメソッドは戻り値の型を持たなければなりませんとエラーが出るんですがどうすればいいですか?

public class DirectSound : Form
{
 Device dsDevice = null;
 SecondaryBuffer secBuff = null;
 dsDevice = new Device();
}

417:デフォルトの名無しさん
09/02/13 05:56:27
すいません、関数に入れるのを忘れました。

418:デフォルトの名無しさん
09/02/13 06:28:44
今度こそわからないです。コメントの行が両方ともエラーが出てしまいます。
上コメントは静的でないフィールドメソッドでオブジェクト参照が必要ですとでてしまします。
下コメントは最も適しているオーバーロードメソッドには無効な引数が含まれています。と出ます。
これはなにがいけないんですか?

public class DirectSound {
  Device dsDevice = null;
  SecondaryBuffer secBuff = null;
  BufferDescription desc = new BufferDescription();
  public void PlaySound(string strPath) {
   dsDevice = new Device();
   //desc.Flags = BufferCaps.ControlPan | BufferCaps.ControlVolume | BufferCaps.ControlFrequency;
   //dsDevice.SetCooperativeLevel(this, CooperativeLevel.Normal);
   secBuff = new SecondaryBuffer(strPath, desc, dsDevice);
   secBuff.Play(0, 0);
  }
  public void StopSound() {
   secBuff.Stop();
  }
}

419:デフォルトの名無しさん
09/02/13 07:39:28
アプリケーションのアイコンは替えられたんですが
フォームの左上にあるアイコンはどうやってかえればいいんですか?
リソースの追加はしました。

420:デフォルトの名無しさん
09/02/13 08:34:56
>>404
ありがとうございます。いけました。
UserAgentをブラウザと同じにすればいいんですね。
勉強になります。

ちなみにurlに与える引数を output=xml から output=kml でも回避できました。
kmlならshift_jis許さないみたいです。


421:デフォルトの名無しさん
09/02/13 12:01:41
>>418
↑ BufferDescription.Flagsでググると
↓ thisはちゃんとControlになってる?
>>419
フォームのプロパティグリッドにIconって無い?

422:デフォルトの名無しさん
09/02/13 15:07:42
C#Expressで勉強中です。

現在時刻を返す関数って
名前空間 Microsoft.VisualBasic モジュール DateAndTime の Now()
しか見当たらないのですが・・・
なんかMicrosoft.VisualBasicをusingするのが嫌なんですけど
他にありますか?


423:デフォルトの名無しさん
09/02/13 15:09:07
System.DateTime.Now

424:デフォルトの名無しさん
09/02/13 15:11:04
>>422
まずググレ
話はそれからだ

425:デフォルトの名無しさん
09/02/13 15:19:01
みなさんありがとうございます。
HELPでSystem.DateTime.NowがHitしないのは何故なんですかね??


DelphiのHelpも酷い酷いといわれていたが、それ以下かも。
次からはググってから質問します。


426:デフォルトの名無しさん
09/02/13 15:19:54
検索にはGoogleを使うといいよ

427:デフォルトの名無しさん
09/02/13 15:23:57
最近のはf1押しても見当違いのメンバのが出てくるの多いな

428:デフォルトの名無しさん
09/02/13 15:56:58
>>409
例えば、複数のコントロールのクリックイベントを1つのハンドラで処理できる。
そういうとき、どいつがクリックされたのか区別するという使い方ができる。

429:デフォルトの名無しさん
09/02/13 17:47:48
>>428
答えになってない

430:デフォルトの名無しさん
09/02/13 17:50:34
つーか、質問がおかしいし。

> senderっていうのはcontrolが格納されていて、eはクリックイベントがわかるような物が入ってるんですか?

前者はその通り。後者はイベントの引数。

> クリックイベントに既に飛んでるのにその引数にイベントが渡されててもメソッドの中で使う機会なくないですか?

イベントが渡されるわけではないので、その質問は成り立たない。

431:デフォルトの名無しさん
09/02/13 17:54:04
C#をやり始めてログの出力処理を作成しました
処理自体はできたのですが、ログに出力メソッドやイベントを埋め込みたいと思っています
System.Reflection.MethodBase.GetCurrentMethod().Nameを使えば取得できるようなのですが
ログの出力メソッド内で、呼び出し元のメソッドを取得する方法なんてあるでしょうか?

呼び出し元の方で引数に入れて出力・・・というのはできたのですが
ログ出力関数内に、呼び出し元メソッドの取得処理を入れておけば便利だと思いまして
宜しくお願いします



432:デフォルトの名無しさん
09/02/13 17:55:48
スタックトレース

433:デフォルトの名無しさん
09/02/13 17:58:13
      _______                     __
    // ̄~`i ゝ                    `l |
    / /        ,______   ,_____    ________  | |  ____ TM
   | |     ___ // ̄ヽヽ // ̄ヽヽ (( ̄))   | | // ̄_>>
   \ヽ、   |l | |    | | | |    | |  ``( (.  .| | | | ~~
      `、二===-'  ` ===' '  ` ===' '  // ̄ヽヽ |__ゝ ヽ二=''
                         ヽヽ___//   日本
  _____ _____  ______  _______
  |  ウェブ  | | イメージ | | グループ | | ディレクトリ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       .___________________
      |help site:msdn.microsoft.com/ja-jp/library │・検索オプション
      └─────────┘・表示設定
         | Google検索 | I'm Feeling Lucky |  ・言語ツール
          ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ○ウェブ全体から検索 ◎日本語のページを検索

これが最強の検索方法な

434:デフォルトの名無しさん
09/02/13 17:59:56
今の Google には IFL ボタンなんてありませんが?

435:デフォルトの名無しさん
09/02/13 18:01:10
eには使う機械があるものが入ってる
senderはあまり使う機会がない

436:デフォルトの名無しさん
09/02/13 18:04:14
GoogleのTopページなんて見る機会まずないから知らんかったw

437:デフォルトの名無しさん
09/02/13 18:14:37
>>409
OnClickのeは確かに意味がないよ。
一方たとえばKeyDownイベントなら、eがなければどのキーが押されたか分からない。

あとは、EventArgsに意味があるイベントと意味のないイベントのときに、
EventArgsのありなしで区別したほうがいいかどうかを、
public delegate void EventHandler<TEventArgs>(
Object sender,
TEventArgs e
)
where TEventArgs : EventArgs
というジェネリックなdelegateの存在を踏まえつつ考えればいいのではないか。


438:デフォルトの名無しさん
09/02/13 18:33:03
>>436
ツールバーにインクリメントサーチが付いてないブラウザなんていっぱいあるからいつもトップから検索してるよ

439:デフォルトの名無しさん
09/02/13 20:37:19
internalキーワードを実感するために紹介されている記事をみてデバッグすると
エラーが表示されるらしいのですが何故か自分ではエラーが再現出来ません
普通にプログラムが立ち上がってしまいます
> URLリンク(www.atmarkit.co.jp)
> このソースをビルドすると、11行目で「'Sample003DLL.Class2.sample1()' はアクセスできない
> 保護レベルになっています。」というエラーになる。
他にもvisual studio 2008 ドキュメントのC# リファレンスにあるinternal キーワードの説明にある使用例も
エラーにならないんですがどういうことなのかよく分かりません 
> この例には、Assembly1.cs および Assembly2.cs という 2 つのファイルがあります。1 つ目のファイルには、
> 内部基本クラス BaseClass があります。2 つ目のファイルでは、BaseClass のインスタンス化が試行されますが
> エラーになります。
-----------------------------------------------
// Assembly1.cs
// Compile with: /target:library
internal class BaseClass
{
public static int intM = 0;
}
-----------------------------------------------
// Assembly1_a.cs
// Compile with: /reference:Assembly1.dll
class TestAccess
{
static void Main()
{
BaseClass myBase = new BaseClass(); // CS0122
}
}
-------------------------------------------------
エラーが出る方が普通なんですか?

440:デフォルトの名無しさん
09/02/13 20:44:20
>>439
DLLにしてる?

441:デフォルトの名無しさん
09/02/13 20:45:15
UdpClientのラッパ作ってみたんですが、添削おねぎします

URLリンク(www3.uploda.org)

442:デフォルトの名無しさん
09/02/13 20:51:22
勝手に文字列にされたらこまるとか
このクラスの利用者がエラー処理できないとか
バインドするインターフェイスが選べないとか

443:デフォルトの名無しさん
09/02/13 20:55:14
自作の通信ソフトのサーバとクライアントにに組み込む目的で作りました
Receive用スレッドの終了方法がこれでよいかどうかわかりません

444:439
09/02/13 21:54:52
>>440
DLLにしたらエラーでました。
csファイルだとエラーが出なくてDLLにするとエラーが出るのか
勉強になりました。ありがとう

445:デフォルトの名無しさん
09/02/13 22:27:31
c#でグローバルIPアドレスを取得したいのですがわからないです。
どなたか方法わかる方いませんか?

446:デフォルトの名無しさん
09/02/13 22:38:25
わざわざ「グローバル」なんて言ってるから意味違うのかもしれないけど、
自分のIPアドレスを取得したいと素直に解釈するなら
URLリンク(msdn.microsoft.com)

447:デフォルトの名無しさん
09/02/13 22:53:13
モジュール起動中は電源オプションを変更する方法を探してるんだけど
↓以外に良い方法知ってる人いませんかね?
URLリンク(msdn.microsoft.com)

448:デフォルトの名無しさん
09/02/13 23:01:53
>>445
URLリンク(www.dyndns.org)
こういうのを見に行くとか。

449:デフォルトの名無しさん
09/02/13 23:49:14
>>447
2000/98以降
SetThreadExecutionState( state )


450:デフォルトの名無しさん
09/02/14 00:59:55
>>445
UPnPが有効ならSOAPで取りに行く方法もある

451:450
09/02/14 01:01:02
ちなみにNATの場合ね

452:デフォルトの名無しさん
09/02/14 02:43:48
>>449
ありがと

453:デフォルトの名無しさん
09/02/14 14:33:09
ファイル移動について質問です。
File.Move(from, to);
するときに、同名のファイルが空ったら上書きしたいです。
File.Copyなら、
File.Copy(from, to, true);
で上書きできますけど、Moveには、trueがないみたい。
こういう場合には、どうするんですか?
コピーして削除? 削除してからコピー?
なにかスマートな解決方法があったら教えてください。

454:デフォルトの名無しさん
09/02/14 15:15:15
2.0以降ならReplaceでいいんじゃないの?
1.xの場合はdestinationのファイルのディレクトリでファイル作成が禁止されている
場合に備えて、

(1) 一旦destと同じディレクトリにdestと別名tempでsrcをmove
(2) destを削除
(3) tempをdestにリネーム


455:447
09/02/14 16:29:18
APIってあんまり使う機会無いんだけどAPIクラス作って置いた方が便利だよね?

456:デフォルトの名無しさん
09/02/14 16:39:35
そういえばVistaでWin32APIに置き換わる新しいAPIを作るって話はどうなったんだろう?
たしかWInFXが.NET Framewo3.0になって・・・その後は?

457:デフォルトの名無しさん
09/02/14 17:04:02
>>456
7の次に期待しようではないか。

458:デフォルトの名無しさん
09/02/14 17:27:11
>>454
なるほど。サンクス。


459:デフォルトの名無しさん
09/02/14 17:30:36
そういうことをやると、空き容量は十分あるはずなのに、ファイルが移動できない!
とかクレームしてくる奴が・・・

460:デフォルトの名無しさん
09/02/14 17:58:28
URLリンク(blog.hobbystock.jp)
お美しい・・・

461:デフォルトの名無しさん
09/02/14 18:02:52
>>457
Win7でも実装されずなのか・・・

462:デフォルトの名無しさん
09/02/14 18:18:18
>>460
完全にスレチだが・・ドロッセルお嬢様ついに発売されるのか。
おしゃれユニットとか付属するのか気になる。

463:デフォルトの名無しさん
09/02/14 20:28:53
現在スパイウェアを作成してるんですが
感染者のファイルを盗み取りたいと思っていftpにアップロードを考えました
しかし、ftp接続をするとWindowsXPのファイアーウォールが作動します
これを迂回する方法を考えるのも面倒なので
指定したアップローダに投稿しようとしたところ
こちらはファイアーウォールが作動しませんでした
こんなテキトーなセキュリティーでよいのでしょうか?
exeを踏ませたらもうこちらの思い通りに操作できると考えてよろしいですか?

464:デフォルトの名無しさん
09/02/14 20:44:17
Windowsファイアウォールはこっちから出ていく分に関しては素通し。
FTPでもパッシブ接続なら発動しないと思う。
だから、今でもサードパーティでファイアウォールアプリを作る需要があるわけ。

465:デフォルトの名無しさん
09/02/14 20:53:50
XPのファイアウォールってアウトバウンドにルールを設定できないのが致命的なんだよ。
その辺がおまけのファイアウォールの出来だよ。
だからファイアウォールのアプリを別に入れないといけないわけだよ。

Vistaになってようやくアウトバウンドのルールを設定できるようになったので
OSのファイアウォールだけでもちゃんと設定すれば結構使えるようになったと思う。

466:デフォルトの名無しさん
09/02/14 21:57:46
>>457,461
そうなの?

467:デフォルトの名無しさん
09/02/14 22:17:32
>ftp接続をするとWindowsXPのファイアーウォールが作動します
こんなあほなこと言ってる奴のスパイウエアにひっかる奴って

468:デフォルトの名無しさん
09/02/14 22:21:10
日本語もまともに書けない奴は煽る資格ないな

469:デフォルトの名無しさん
09/02/14 22:41:00
あほの作ったスパイウエアだけにタスクバーに出るんじゃないの


470:デフォルトの名無しさん
09/02/14 23:16:59
初心者乙

471:デフォルトの名無しさん
09/02/15 00:36:04
ftpのしくみも知らない上級者怒ってんね

472:デフォルトの名無しさん
09/02/15 00:37:57
日本語でOK

473:デフォルトの名無しさん
09/02/15 00:47:03
本当のあほはどっちなのやら…

474:デフォルトの名無しさん
09/02/15 13:18:54
イベントログの情報を取得したいと思っています。

System.Diagnostics.EventLog[] eventLogs
= System.Diagnostics.EventLog.GetEventLogs();

でアプリケーション、システムといった各ログは取得できることは
分かったんですがそれぞれのログに登録されているイベントソースの
一覧の取得方法がわかりません。

System.Diagnostics.EventLog.SourceExists(string)

なメソッドがあるんでソース一覧も取得可能だとは思うんですが。
知っているかたがあれば教えてください。

475:デフォルトの名無しさん
09/02/15 14:17:18
MSはSDKにWin32ヘッダのC#用クラスを付けとけばいいのに

476:デフォルトの名無しさん
09/02/15 14:20:20
イラネ

477:デフォルトの名無しさん
09/02/15 14:23:04
それをやったら.NETの意味がなくなるからな
何でWin32ネイティブにしないの?という話になる

478:デフォルトの名無しさん
09/02/15 14:25:41
C#で作れるところに意味があるんじゃねーの?
もうC++とかやるきねーよ

479:デフォルトの名無しさん
09/02/15 14:26:33
そうそう特殊なことやらなきゃ、API なんて使わんし。

480:デフォルトの名無しさん
09/02/15 14:34:14
別にDllImportの宣言自体はそんなに面倒なものでもないしな
PInvokeは,その周辺の考慮事項が恐ろしく面倒
C++/CLIにしたからといって改善されるものでもない

481:デフォルトの名無しさん
09/02/15 14:34:36
compactにはあまりにもないものが多すぎて
APIに頼らざるを得ないケースが頻発
デフォルトで付けといてもらった方が便利だね

482:デフォルトの名無しさん
09/02/15 14:37:01
しかしめんどくさいのは定義が一意に定まるわけでもないことか
使いやすいようにいじれるのがいいからコードのデータベース化みたい
なのがいいんだよな

483:デフォルトの名無しさん
09/02/15 14:42:23
>>481
そう思う奴が多数なら、そこにビジネスチャンスが生まれるはず・・・なんだけどな

484:デフォルトの名無しさん
09/02/15 14:46:10
移植性が悪いからcompactではわざわざ削ってるんだろ
それをMS自らもっと移植性の悪い方法で提供してどうする

485:デフォルトの名無しさん
09/02/15 14:50:52
>>480
DllImport自体はともかく、定数の定義がむちゃくちゃ多いやつとか
超しんどいのは確か。
最近IMM関連いじっててそう思った。

486:デフォルトの名無しさん
09/02/15 14:52:46
ヘッダからDllImport 宣言に変換してくれるツールがあるじゃん・・・

487:デフォルトの名無しさん
09/02/15 14:53:57
あるフォームのDataGridViewの1行(1レコード)に入力されている値を、自作のクラスに渡そうとしています。
自作クラスはSystem.Windows.Formsを使わないので、出来ればDataGridViewRow型ではなく
別の型で渡したいと思っています。

今は渡し元フォームの方で、DataGridViewRowから1セルずつ値を取り出して、arrayにstringで入れて、
そのarrayをクラスに渡しています。

一応これで値を渡せてはいるんですが、DataGridViewRowから、
なんらかの「データの集合体」の変数を取り出す簡易な方法が他にあれば、教えてください。

488:デフォルトの名無しさん
09/02/15 14:56:23
考え方が逆だ
「データの集合体」をDataGridViewにバインドするんだ

489:デフォルトの名無しさん
09/02/15 15:09:09
>>488
ありがとう、DataRow型で取り出して渡せました。

490:デフォルトの名無しさん
09/02/15 16:26:09
これを↓
URLリンク(www.woodensoldier.info)

URLリンク(www.red-gate.com)
このReflector使ってきちんと起動するまでにいきたいんですが、
エクスポートして.cs吐かせてそのままデバッグしても警告やエラーが出ます。直せる人いませんか?

491:デフォルトの名無しさん
09/02/15 16:28:36
>>490
エラーが出るケースもあるけどそれすら直せないなら向いてない

492:デフォルトの名無しさん
09/02/15 16:31:14
こんなもん自分で作った方が早いような…

493:デフォルトの名無しさん
09/02/15 16:31:22
詳しい話は

C#, C♯, C#相談室 Part51
スレリンク(tech板:216番)

以降を見てね

494:デフォルトの名無しさん
09/02/15 16:35:35
>>491
向いてないのは分かってるんで、直せないですかとお願いしてるんです。

>>492
作ってくれるならお願いします

495:デフォルトの名無しさん
09/02/15 16:37:57
直せます。で?

496:デフォルトの名無しさん
09/02/15 16:38:31
自分でやる気ないんなら板違いだから、有償で誰かに頼みな


497:デフォルトの名無しさん
09/02/15 16:39:39
>>495
直してうpお願いします

498:デフォルトの名無しさん
09/02/15 16:42:02
>>497
嫌です。

499:デフォルトの名無しさん
09/02/15 16:42:54
そもそも、そのアプリが逆アセOKか、ソースの公開OKか、とか
そういうこともわからんし。

著作権法違反とかで捕まりたくないし。

500:デフォルトの名無しさん
09/02/15 16:43:33
どんな複雑な物かと思ったら…

501:デフォルトの名無しさん
09/02/15 16:44:19
では直してくれそうなスレありますか?

502:デフォルトの名無しさん
09/02/15 16:45:02
シラネ

503:デフォルトの名無しさん
09/02/15 16:48:26
作者に連絡とってソース売ってもらうのが正攻法じゃねーかな
逆コンパイルじゃねーけど

504:デフォルトの名無しさん
09/02/15 16:49:25
>>503
そだね。

505:デフォルトの名無しさん
09/02/15 16:50:10
ということで、この話は終了で。オツカレサマー

506:デフォルトの名無しさん
09/02/15 17:02:27
作者だけど直してやれば

507:デフォルトの名無しさん
09/02/15 17:05:10
>>506
お前が作者なら、お前がソース公開すればすむこと。

508:デフォルトの名無しさん
09/02/15 17:11:28
>>479
長時間作業させるアプリケーションなんて特殊じゃないだろ

509:デフォルトの名無しさん
09/02/15 17:14:20
>>508
なんの話?

510:デフォルトの名無しさん
09/02/15 17:24:36
上でも出てたみたいだけどOSのスリープ殺すのにはAPI必要でしょ
それ以外だって特殊なアプリケーションじゃなくてもAPI必要な場面はあるでしょ
.netにないのがそもそもおかしいというのは別の話で

511:デフォルトの名無しさん
09/02/15 17:27:35
ファイル一覧のソートについて質問があります。
ファイルの一覧を、アクセスタイムの新しいものから順番にソートして配列に入れたいです。
アクセスタイムを得るには、
File.GetLastAccessTime(file);
で、ファイル名を得るには、
string[] files = Directory.GetFiles(@"C:\temp", "*.txt");
です。
目的のファイルの一覧を、アクセスタイムの新しいものから順番にソートして配列に入れるには、どうしたらよいでしょう?
うまくふたつをつなげられないで困っています。
ご指導お願いします。


512:デフォルトの名無しさん
09/02/15 17:29:42
配列に入れてからソートすれば良いのでは無いでしょうか?

513:デフォルトの名無しさん
09/02/15 17:33:26
OS のスリープ殺す、なんてのは特殊だと思うけどな。

514:デフォルトの名無しさん
09/02/15 17:45:22
>>511
LINQ使えば簡単。
Directory.GetFiles(@"C:\temp", "*.txt").OrderBy(file => File.GetLastAccessTime(file)).ToArray();

515:490
09/02/15 18:08:11
ボクのはまだですかwktk

516:デフォルトの名無しさん
09/02/15 18:11:09
>>515
その話題は >>505 で終了しました。またのお越しをお待ちしております。

517:デフォルトの名無しさん
09/02/15 18:11:54
今日中がいいので、それは無理・・・
だれかおねがいします><

518:デフォルトの名無しさん
09/02/15 18:13:16
>>514
それだと、古い順に並んでしまうだろう。
OrderByの代わりにOrderByDescendingを使わないと。

519:デフォルトの名無しさん
09/02/15 18:17:38
>>514
おお、ありがとうございます。
なにか方法がありそうと思っていましたが、スマートです。
早速試してみました。
string[] files = Directory.GetFiles(@"C:\temp", "*.txt").OrderBy(file => File.GetLastAccessTime(file)).ToArray();
foreach (string file in files)
{list = list + file + "\r\n";}
MessageBox.Show(list);
なんかこれだと、まだabc順になっているようです。
なにか方法が違ってますか?


520:デフォルトの名無しさん
09/02/15 18:36:52
失礼。ごめんなさい。できました。
>>518
おっしゃるとおり、OrderByDescendingでできました。
大感謝です。


521:デフォルトの名無しさん
09/02/15 19:02:02
OrderByとOrderByDescendingの違いは正順、逆順だけなんだけど、アルファベット順になる理由はなんだったの?

522:デフォルトの名無しさん
09/02/15 19:25:19
今ぼくの進めてくれてらっしゃる方いますか

523:デフォルトの名無しさん
09/02/15 19:26:25
>>522
>>474 ですか?

524:デフォルトの名無しさん
09/02/15 19:29:05
>>474 は、イベントソースの一覧を取得する方法はなさげなので、
SourceExists() でやってるように、レジストリから取ってくるしかないのでは?

525:デフォルトの名無しさん
09/02/15 19:56:22
>>523
>>490です

526:デフォルトの名無しさん
09/02/15 19:59:01
>>525
それは終了らしいので、途中まで調べましたが止めておきます。

527:デフォルトの名無しさん
09/02/15 20:04:50
>>526
ではここに再開を宣言します。
どうぞよろしくお願いします

528:デフォルトの名無しさん
09/02/15 20:06:13
        iイ彡 _=三三三f           ヽ
        !イ 彡彡´_ -_=={    二三三ニニニニヽ
       fイ 彡彡ィ 彡イ/    ィ_‐- 、   ̄ ̄ ヽ     し  ま
       f彡イ彡彡ィ/     f _ ̄ ヾユ  fヱ‐ォ     て  る
       f/ミヽ======<|-'いシ lr=〈fラ/ !フ    い  で
       イイレ、´彡f        ヽ 二 _rソ  弋_ { .リ    な  成
       fノ /) 彡!               ィ     ノ ̄l      .い   長
       トヾ__ら 'イf     u    /_ヽ,,テtt,仏  !     :
       |l|ヽ ー  '/          rfイf〃イ川トリ /      .:
       r!lト、{'ー‐    ヽ      ´    ヾミ、  /       :
      / \ゞ    ヽ   ヽ               ヽ /
      ./    \    \   ヽ          /
   /〈     \                 ノ
-‐ ´ ヽ ヽ       \\     \        人


529:デフォルトの名無しさん
09/02/15 20:08:04
ほんとに今日だけはお願いしますOTZ

530:デフォルトの名無しさん
09/02/15 20:10:19
なんのためにそれが必要なのか、わかりやすく説明してみれ。

531:デフォルトの名無しさん
09/02/15 20:34:21
>>490のは、何に躓いたのかさっぱり分からないけど、普通にできたよ。
もちろん差し上げてもいいんだけど、

| このソフトはフリーソフトウェアです。
| 配布、転載は原則自由です。
| ただし、中身の一部もしくは全部を改変して配布、掲載をする事は禁止します。

って書いてあるので、作者の許諾を明示的に取ってきてください。
つーか、なぜ作者にくれと言わないのか?

532:デフォルトの名無しさん
09/02/15 20:38:52
>>506で作者が登場している!ちょうど良いぞ!w

533:デフォルトの名無しさん
09/02/15 20:46:39
最近仕事でC#を使うことになりました。
Webの開発です。
皆さんに聞きたいのですが、匿名メソッドというのは
どういうケースで使いますか?

URLリンク(www.atmarkit.co.jp)
↑@ITで匿名メソッドについて載っていますが、どういうものかは理解できました。
しかしこれってWebアプリの開発とかでどういうケースで使うのかなと。。
使用ケースが分かっていません。
あまり使うことが無いものなのでしょうか?

534:デフォルトの名無しさん
09/02/15 20:50:36
また、2ちゃんねるで宿題頼んでる奴がいるのかw

535:デフォルトの名無しさん
09/02/15 20:51:42
イベントハンドラーに適当なテスト用のメソッド入れたいときとか、
LINQ でとか。

536:デフォルトの名無しさん
09/02/15 21:07:21
最近仕事でC#使うことになったが、匿名メソッドやラムダ式は使いたい気持ちをぐっとこらえてる
ほかの人が見たときに読みづらいだろうからな

537:デフォルトの名無しさん
09/02/15 21:33:52
>>531
エラー出ましたよね?直したとこ教えてくだされば><
それだけでいいんです

538:デフォルトの名無しさん
09/02/15 21:35:31
どこでどういうエラーが出たか書けよ

539:デフォルトの名無しさん
09/02/15 21:41:33
とにかく、処理内容を指定して渡すという状況でのみ使用すべきで、メソッドに名前を付けて
定義する必要がなくなるズボラ推奨機能という考え方はすべきでない。具体的には、LINQと、
処理の流れの文脈的にそこに直書きされるべきコールバックとか。

LINQが一番重要。
例:
int a[]=new int[]{3,7,2,4,8,1,9};
int b=a.First(i=>i<3);
みたいな。これは匿名メソッドをラムダ式で書いているけれど、
int b=a.First(delegate(int i){return i<3});
も可。でも、LINQなら上の書き方に慣れるべき。iに対して型推論が効くからね。

後者は例えば、UIと別スレッドのメソッド中でUIスレッドで実行されるべき処理をInvokeに
渡す場合とか。あと、WaitHandle使って非同期でコールバックが呼ばれる処理を同期処理に
する場合にコーディング上も同期処理の如く書く事ができて見易い。こういった場合、
その記事に書いてある、ローカル変数に匿名メソッド内からアクセスできるというのは超重要な
ポイントになる。

最後に、UIのイベントハンドラをコードで追加する時、超短いコードの場合は
ズボラに匿名メソッドを使ったりするけれど、これは悪い例であまりやるべきではない。
例:this.Button1.CLICK+=delegate{MessageBox.Show("Clicked!!")};

540:デフォルトの名無しさん
09/02/15 21:42:10
自己解決しますた。

簡単じゃねーかよ、こんぐらいさっさと説明しやがれバカども

541:デフォルトの名無しさん
09/02/15 21:44:44
警告 1 デザイナは 247 行のコードを処理できません。

base.FormBorderStyle = FormBorderStyle.FixedDialog;

メソッド 'InitializeComponent' 以内のコードは、デザイナによって作成されたので手動では変更できません。
変更を削除して、デザイナを再度開いてください。 C:\Documents and Settings\●●●●●\My Documents\Reflector\Disassembler\AlarmTimer\AlarmTimer\FormMain.cs 248 0

警告 2 デザイナは 113 行のコードを処理できません。

base.FormBorderStyle = FormBorderStyle.FixedDialog;

メソッド 'InitializeComponent' 以内のコードは、デザイナによって作成されたので手動では変更できません。変更を削除して、デザイナを再度開いてください。
C:\Documents and Settings\●●●●●\My Documents\Reflector\Disassembler\AlarmTimer\AlarmTimer\FormOption.cs 114 0

エラー 3 型または名前空間名 'WsLib' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
C:\Documents and Settings\●●●●●\My Documents\Reflector\Disassembler\AlarmTimer\AlarmTimer\FormMain.cs 10 11 AlarmTimer

警告 4 この参照を解決できませんでした。アセンブリ "WsLib" が見つかりませんでした。アセンブリが間違いなくディスクに存在することを確認してください。
コードにこの参照が必要な場合、コンパイル エラーが発生する可能性があります。 AlarmTimer

警告 5 参照コンポーネント 'WsLib' が見つかりませんでした。


この5つっす

542:デフォルトの名無しさん
09/02/15 21:56:22
で、>>530 への回答は?

543:デフォルトの名無しさん
09/02/15 21:56:58
簡単だ。エラー3をよく読め。そして考えろ。

544:デフォルトの名無しさん
09/02/15 21:58:06
お前ら頭悪いよな

545:デフォルトの名無しさん
09/02/15 22:03:40
>>543
不足してるらしいです、でも意味わかりません

546:デフォルトの名無しさん
09/02/15 22:04:51
カワイソス(´・ω・)

547:デフォルトの名無しさん
09/02/15 22:07:57
頭が不足してるのか、かわいそうに

548:デフォルトの名無しさん
09/02/15 22:09:59
>>545
意味がわからなかったらググったりして調べればいいじゃないか

549:デフォルトの名無しさん
09/02/15 22:11:50
それがめんどくせーから聞いてるんだろうが! バカジャネーノ

550:デフォルトの名無しさん
09/02/15 22:18:13
dllがないってことかな

551:デフォルトの名無しさん
09/02/15 22:18:48
面白いからもっとやれwww

552:デフォルトの名無しさん
09/02/15 22:26:11
できました! ありがとうございました。
これで明日の課題提出に間に合います!

553:デフォルトの名無しさん
09/02/15 22:33:36
ソース盗用がバレて遡及的に単位取り消し/停学ですね、わかります

554:デフォルトの名無しさん
09/02/15 22:35:58
自分のおべんきょ用です

555:デフォルトの名無しさん
09/02/15 22:54:12
C#って初心者向けの言語ですか?

556:デフォルトの名無しさん
09/02/15 22:55:41
>>555
向け、かはわからないけど、初心者でも十分理解できると思います。

557:デフォルトの名無しさん
09/02/15 23:00:27
向けかといわれると確かにまぁ違うよな
向いているかといわれると大丈夫なんじゃないぐらいではある

558:デフォルトの名無しさん
09/02/15 23:01:13
実際に初心者が使えるかどうかはともかく,言語のスタンスとしては初心者向けではないな
どっちかというと既に他のが使える人が便利に使える言語というコンセプト

559:デフォルトの名無しさん
09/02/15 23:06:56
C#のstringには、MFCのCString::Right(n)のように、
末尾からのn文字を抽出するメソッドはないのでしょうか。
ない場合、全体の文字数を取得して、全文字数とnを使って、Substringするという回りくどいやり方しかないのでしょうか。

560:デフォルトの名無しさん
09/02/15 23:11:16
ない
回りくどいって言ってもstr.Substring(str.Length - n)とするだけのことだろ

561:デフォルトの名無しさん
09/02/15 23:11:40
ない
どうしても嫌なら拡張メソッド作ったら

562:559
09/02/15 23:15:36
ありがとう。
回りくどいとけなすつもりはなかった。
今は反省している

563:デフォルトの名無しさん
09/02/15 23:30:44
どうしても欲しければMicrosoft.VisualBasic.Strings.Right……。

564:デフォルトの名無しさん
09/02/15 23:33:59
C#のstringはLengthを取得するのにコストがかかるわけじゃないのでSubstringでの切り出しでいいんだよ。

565:デフォルトの名無しさん
09/02/16 01:21:10
Substringは範囲外の切り出しでエラーになる。
これを使いにくいと思ったことはあるな。

"abcde".Substring(3, 10) で "de"
"abcde".Substring(8, 2) で "" が欲しいケースは多いよ。


566:デフォルトの名無しさん
09/02/16 01:33:31
まぁはじめは実際なんでないんだろうなぁとは思った。
たぶん忘れたかなんか事情があったんだろうなと思って
おくことにした
Substring は境界絡んでくるとうざいんだよなー

567:デフォルトの名無しさん
09/02/16 01:38:13
>>565
2つ目の引数は文字数なのに結果の文字列に含まれる文字数がそれ以下だとおかしいだろ。

568:デフォルトの名無しさん
09/02/16 01:49:36
拡張メソッドが便利だな
public static string Subst(this string str, int start, int length) {
 if (str == null) return null;
 if (start < 0) { length -= start; start = 0; }
 if (start >= str.Length) return "";
 if (str.Length < length + start) length = str.Length - start;
 return str.Substring(start, length);
}
public static string Subst(this string str, int start) {
 if (str == null) return null;
 if (start < 0) start = 0;
 if (start >= str.Length) return "";
 return str.Substring(start);
}


569:デフォルトの名無しさん
09/02/16 15:38:09
イベントの質問です。

windowsフォームなどのボタンなどを付けて、ダブルクリックした場合、
イベントを自動生成して、 Windows フォーム デザイナで生成されたコードの中に
イベントを登録したり、処理(ハンドラ?)のプログラムを書く場所を作ってくれますが、
イベントの引数やインスタンスの定義はどこでしてくれてるのですか?


570:デフォルトの名無しさん
09/02/16 15:43:12
***.Designer.cs

***はフォーム名

571:デフォルトの名無しさん
09/02/16 19:07:05
@IT .Net Tipsの
リストビューに画像をサムネイルで表示するサンプルを使おうとしています。
URL (URLリンク(www.atmarkit.co.jp)

Formに直接リストビューを貼り付ければ、希望通りの動きをしました。
が、FormにTabControlを張り付けて、TabPageの2ページ目以降にリストビューを貼ると、
タブをクリックしてTabPageを表示しようとするとエラーが発生してフォームが終了し、
Program.csのApplication.Run(new Form1());でブレークしてしまいます。
エラーの内容は、
System.ArgumentException: 使用されたパラメータが有効ではありません。
   場所 System.Drawing.Image.get_Width()
   場所 System.Drawing.Image.get_Size()
   場所 System.Windows.Forms.ImageList.CreateBitmap(Original original, Boolean& ownsBitmap)
   場所 System.Windows.Forms.ImageList.CreateHandle()
 (以下略)
です。

タブページの1ページ目や、Formに直接だと表示されるしエラーもでないんですが、
これは何が原因なんでしょうか?

572:デフォルトの名無しさん
09/02/16 20:26:07
イベントハンドラの for の最後の

> thumbnail.Dispose();

これかな。消してみな。

573:571
09/02/16 20:49:54
>>572
ずばりでした! 動きました!
ありがとう。
ちょっとソース詳しく読んで、なぜだか考えてみます。

574:あ
09/02/16 21:00:20


575:デフォルトの名無しさん
09/02/16 21:05:46
>>573
これ読みながらやるような初心者にはわからん可能性が高い気がするけど
ヒントだけ。
ようするにTabPage2 に移動したことによってこのイベントが呼ばれる段階で
ハンドルが作られていない(可能性がある)のが問題。
その状況だと初期化が遅延されちゃうみたいだな。んで、表示されたときに
初期化が始まって、そのときに追加された Bitmap を参照しようとするけど
すでに破棄済みだからアウトになる、と。

576:デフォルトの名無しさん
09/02/16 21:41:34
もっと単純に言えば、使い終わっていないものをDisposeしちゃダメってことだ。

577:デフォルトの名無しさん
09/02/17 07:52:38
もっと単純に言えばDisposeは使うなってことだ

578:デフォルトの名無しさん
09/02/17 07:53:43
それ、違うから。

579:デフォルトの名無しさん
09/02/17 08:07:41
おいおい

580:デフォルトの名無しさん
09/02/17 13:31:01
HTTPのHEADメソッドを送信するにはどうすればいいでしょうか?
WebClientにもWebRequestクラスにもそれらしいメソッドはありませんでした。
もしかしてSocketクラス使わないとだめでつか?

581:デフォルトの名無しさん
09/02/17 13:39:14
HttpWebRequest.Methodプロパティ?

582:デフォルトの名無しさん
09/02/17 14:06:14
複数のフォルダに写真を整理していて、そのなかにある特定の日付(たとえば3月)の写真だけを抜き出したいと思っています。

string[] files = Directory.Getfiles("c:/photo", "*.jpg", SearchOption.AllDirectories);

string list = "";
foreach(string file in files) {list = list + file + "\r\n";}
MessageBox.Show(list);
とやって、いま、次のようなリストを入手しました。
このうち3月のみを取り出すのはどうしたらよいでしょう。
いちばん簡単なのは、*の部分に書くことかと思い、
string[] files = Directory.Getfiles("c:/photo", "200803*.jpg", SearchOption.AllDirectories);
としてみましたが、フォルダ名とファイル名にわかれていて結果は空になってしまいます。
あと、3月以前(01、02)とする方法もあわせて教えてください。

c:/photo/20080407eventname/photo.jpg
c:/photo/20080401eventname/photo.jpg
c:/photo/20080317eventname/photo.jpg
c:/photo/20080310eventname/photo.jpg
c:/photo/20080304eventname/photo.jpg
c:/photo/20080303eventname/photo.jpg
c:/photo/20080224eventname/photo.jpg
c:/photo/20080203eventname/photo.jpg
c:/photo/20080127eventname/photo.jpg


583:デフォルトの名無しさん
09/02/17 14:38:22
>>581
これでいけました。ありがとうございました

String url = "URLリンク(pc11.2ch.net)";
WebRequest webreq = HttpWebRequest.Create(url);
webreq.Method = "HEAD";
HttpWebResponse webres = (HttpWebResponse)webreq.GetResponse();
WebHeaderCollection webheadcol = webres.Headers;
String ltime = webheadcol.Get("Last-Modified");
Console.WriteLine(ltime);


584:デフォルトの名無しさん
09/02/17 15:05:13
>>582
パス名の文字列を正規表現で分解して年と月を別々に取り出す
あとは大小比較で絞込み

Regex r;
r = new Regex(@"(\d{4})(\d{2})\d{2}eventname", RegexOptions.IgnoreCase);
Match m;
m = r.Match(@"c:/photo/20080407eventname/photo.jpg");
if (m.Success) {
String year = m.Groups[1].Value;
String month = m.Groups[2].Value;
Console.WriteLine("{0}年{1}月", year, month);
}



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4850日前に更新/200 KB
担当:undef