[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/27 07:18 / Filesize : 229 KB / Number-of Response : 925
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part52



1 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 10:15:52 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part51
pc12.2ch.net/test/read.cgi/tech/1233757615/

Visual C# 2008 Express Edition 日本語版
www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

その他テンプレ>>2-5くらい

881 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:25:53 ]
>>880
ありがとう、でももうちっと最近の記事じゃないとBackgroundWorkerとか扱ってないかも

private void BackgroundStart()
{
Action act = () =>
{
while (true)
{
Thread.Sleep(50);
Console.WriteLine("にゃー!");
}
};
act.BeginInvoke(null, null);
}

static void Main(string[] args)
{
BackgroundStart();
while (true)
{
Thread.Sleep(50);
Console.WriteLine("わんわん!");
}
}

今はこんな感じで書いてるけど、可読性いいのかこれ?
BackgroundWorkerはいろいろリッチだけど、使うの難しそう。

882 名前:854 mailto:sage [2009/06/10(水) 17:31:56 ]
どうもありがとう filed ではなくて property をつくったら見事意図したとおりにできました!

最後にひとつ。
動的に作ったクラス、のインスタンスのプロパティに値を設定するには
どうすればよいですか?
もしくは、PropertyGird をプログラム側から操作して、PropertyGrid.SelectedObject
のプロパティを変更することはできますか?


883 名前:デフォルトの名無しさん [2009/06/10(水) 17:44:41 ]
リフレクションを使う
プロパティを生成できた奴がそんな質問をするなんて考えられないと思うんだが

884 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:48:08 ]
わざとだろ、自分で考えろ以上終了だな

885 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 21:30:56 ]
ボスケテー


AA作成支援ソフトっぽいもの作ってまして
標準環境(www.geocities.co.jp/HeartLand-Yurinoki/1836/mona_font_settei.html
で指定した文字列の表示幅を取得する方法を探してます

Graphics.MeasureStringや
TextRenderer.MeasureTextなんかを使えばいけるんだと思うんですが
どーにもIE標準環境の作り方がわかりません(Graphicsオブジェクトどーやってもってくるの?)

おせーてくださーい

886 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 21:37:54 ]
onpaintとかのじゃだめなのかな?

887 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 21:48:23 ]
普通にControl.CreateGraphicsでもいいしGetDCしたのからFromHdcでもいいし

888 名前:885 mailto:sage [2009/06/10(水) 22:50:23 ]
何が文字列の表示幅を決定している要因なのかよく理解していないものでして
てっきりGraphicsオブジェクトのプロパティに大きく依存するのかと思ったんですが
今メンバ見てもそれっぽいもの無いみたいですね。。


例えば下の二つの文字列

「ああああああ」
「..............................」

を長さ測定関数に渡した時に同一の値が帰ってくるような
状態をとりあえず目指していろいろやってるんですが
なかなかうまくいかないですね・・・

とりあえずもうちょっと調べてみますー

889 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 23:12:03 ]
フォントだよ



890 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 23:33:33 ]
あー
なんとかできたっぽいです
同じフォントでも環境によって表示のされ方違うのかと思ってました

レスくれた方ありがとでしたー

891 名前:854 mailto:sage [2009/06/11(木) 00:54:54 ]
以下のようにしたらうまくいきました
リフレクターというヒントをくれたかた、どうもありがとう
Type type = (Type)MyClass;
type.GetProperty("x").SetValue(propertyGrid.SelectedObject, 1234, null);

いままでずっと C をやっていて C# も .Net おとといはじめたばかりなので、
ヒントがなければライブラリのどこに何があるかさっぱりわかりませんでした。
どうもありがとう!

892 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 01:01:32 ]
どういたしまして
お役に立てて光栄です

893 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 07:42:51 ]
質問者の笑顔のために

894 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 08:25:30 ]
>>881
> Action act = () =>

なんぞこれ

895 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 08:38:37 ]
lambda式でしょ。

896 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 13:05:26 ]
>>894
actという名前の変数はAction型
() => {...} はAction型のリテラル(ラムダ式)で,空の引数を受け取って何かしてる

897 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 17:52:31 ]
C#のAAはこれでおk?
(c_c#)

898 名前:デフォルトの名無しさん [2009/06/11(木) 22:31:35 ]
C#の式として有効なものしか認めない

899 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 22:56:39 ]
>>897
//(c_c#)

でOK



900 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 22:57:17 ]
"(c_c#)"

901 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:33:06 ]
(^c_^#)

902 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:42:17 ]
(T_T)=>("^A^")

903 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 11:28:58 ]
*/

904 名前: ◆BOHwjyHW6o [2009/06/12(金) 12:24:43 ]
完全にハマりました。
質問させてください。

今、S/C間の通信プログラムを書いています。
--------
//↓サーバー側プログラム
this.mListener = new TcpListener(IPAddress.Any, 58201);
this.mListener.Start();
clTCPClient = this.mListener.AcceptTcpClient();
--------
//↓クライアント側プログラム
TcpClient tcp = new TcpClient();
tcp.Connect("@", 58201);
--------
@をlocalhostにすると接続が確認できます。
@をグローバルIPにすると接続できなくなります。
SocketExceptionが出ました。
ErrorCodeは10061
エラーメッセージは「対象のコンピュータによって拒否されたため、接続できませんでした。@:59201」と出ました。


905 名前: ◆BOHwjyHW6o mailto:sage [2009/06/12(金) 12:26:01 ]
ポートが空いていないのだろうと思い、
ttp://www.navnav.jp/port/
ココでポートの解放チェックを行いました。
結果、ポートは空いていました。
(ポート解放用と思われる接続もサーバー側のAcceptTcpClientでキャッチできました)

@をグローバルIPにして接続を行いたいのですが、どうすれば良いでしょうか?
また、何を確認すべきでしょうか?

環境は以下の通りです。
・PCは1台でテストしています。(OSはXP)
・Visual Studio 2008 で開発を行っています。
・ウィルスバスターは終了させた状態です。
・ルーターはフレッツ光のCTUです。
・ハブはBUFFALOのAirStationをルーターOFFモードで利用しています。


906 名前: ◆BOHwjyHW6o mailto:sage [2009/06/12(金) 12:28:30 ]
すいません。エラーメッセージ間違いました。

正しくは、
「対象のコンピュータによって拒否されたため、接続できませんでした。@:58201」
です。

よろしくお願いします。

907 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 12:33:04 ]
どこか上流でファイアウォールでも動いているんじゃない?

908 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 12:37:08 ]
ん?
ルータの内側にいるのに,外側のIPに接続しようとしてる?
ルータの実装によるけど,ふつーはつなげないんじゃないかな

909 名前: [―{}@{}@{}-] デフォルトの名無しさん mailto:sage [2009/06/12(金) 12:41:36 ]
NAPTしてるのを適切に処理してないって落ちじゃないの



910 名前:777 mailto:sage [2009/06/12(金) 13:12:08 ]
SqlConnectionStringBuilderでAttachDBFilenameだけをクリア
したいのですが、ヘルプ通りnullを渡すとエラーになります。
他にどんな方法があるんでしょうか?

911 名前:910 mailto:sage [2009/06/12(金) 13:13:29 ]
申し訳ない。
>>910の名前間違いです。777ではありません

912 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 13:19:59 ]
SqlConnectionStringBuilder strbld = new SqlConnectionStringBuilder();
strbld.AttachDBFilename = "";

913 名前:910 mailto:sage [2009/06/12(金) 13:24:23 ]
>>912
やっぱりそれしかないんですね。
最終的な文に"AttachDbFilename=;"が入っちゃうんで消せないかなと
思ってたんですが、そうしておきます。ありがとう。

914 名前: ◆BOHwjyHW6o mailto:sage [2009/06/12(金) 13:41:29 ]
>>907-909
返答ありがとうございます。
色々試行錯誤しているのですが、結局駄目でした。
localhostで作業を進め、サーバー立ては次の機会に行います。
ありがとうございました。

915 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 15:13:46 ]
試行錯誤ってルーターを別の機種にするしか無いんじゃ・・・

916 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 16:13:14 ]
フレッツ光のCTUは変更できないよ。
専用ルーターだから。

917 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 19:44:54 ]
>>905
そういうルータ越しの環境だと、自分とこからグローバルIPアドレスでルータを越えてまた自分とこにくる通信は無理だと思う。
クライアントを別の回線(携帯とか友人宅・会社・学校)からやってみたらどう?

918 名前:デフォルトの名無しさん [2009/06/12(金) 22:28:23 ]
VS2008Pro、WinXPPro、C#で開発しています。
単体テストの機能を始めて使ってみたのですが、これには
「あるディレクトリ以下にある全てのデータファイルでテストを実施する」
という総当り的な、機能は付いているのでしょうか?

csvで、テストケースを一個一個作成していくのも面倒なので、個人的にはデータファイルを作って、
それをあるディレクトリ以下に放り込めば、勝手にテストしてくれるような機能を期待していたのですが……
やはり、自前で作るしかないですかねぇ。とはいっても、自前で作ってるのは、すでにあって、
今回はそれを既製品に移行しようという話なので、自前で作る云々になると話がズレて来るんです。

どなたか回答をお願いします。

919 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 22:45:39 ]
自分の場合、ひかりone(旧テプコひかりからの移行なのでちょっと構成が違う)で
「光モデム」−「ルーター(ヤマハ)」−「サーバーやらクライアントやら」
って構成でグローバルIPアドレス指定で内部のクライアントからサーバー見えてるよ



920 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 22:50:22 ]
>>914はflet'sつまりntt製のモデム兼ルータってことじゃないかと

921 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 23:13:48 ]
>>913


SqlConnectionStringBuilder strbld = new SqlConnectionStringBuilder();
strbld.AttachDBFilename = "";



SqlConnectionStringBuilder strbld = new SqlConnectionStringBuilder();
strbld.Remove("AttachDBFilename");

922 名前:デフォルトの名無しさん [2009/06/13(土) 21:45:53 ]
フォルダが「共有フォルダ」かどうかを知ってアイコンに手のマークを
付けるにはどうしたらいいか知りたく。

「共有フォルダ」の一覧を得るには
System.Management.ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_Share");
これでいいという情報は得ましたものの、これでなくてDirevtoruInfoのAttributes
のように高速で一発でわかる方法があれば尚ありがたく。

またアイコンに手のマークを付けるにはどのようにするものでしょう、
ご指導をいただきたく。


923 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 21:52:29 ]
別管理なんだから、なんたらInfo からじゃ取れないだろ。
まっとうにやるなら、NetShareEnum() だな。それほど遅くない。

オーバーレイは ImageList_SetOverlayImage() とかで。

924 名前:デフォルトの名無しさん [2009/06/13(土) 22:23:34 ]
>>923
おお!!そういう方法があったのですか!
ありがとうございます。勉強してみます!!
助かりました!






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<229KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef