トップページ⇒tech
957コメント326KB

C♯相談室 Part2

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん♯NGNG
C#,.NET関連の話題はこちらでどうぞ。

前スレ
http://piza2.2ch.net/test/read.cgi/tech/977112364/

Insider.NET
http://www.atmarkit.co.jp/fdotnet/
.NET関連リンク
http://www.atmarkit.co.jp/fwin2k/rescenter/indexpage/net.html
0002デフォルトの名無しさんNGNG
ごくろうさまー
0003名無しさん♯ NGNG
>>1
死ねよ
0004名無しさん♯ NGNG
は!名前を変えるのを忘れてしまった…鬱
0005デフォルトの名無しさんNGNG
?????
0006名無しさん♯ NGNG
おまえが士ね>3
0007デフォルトの名無しさんNGNG
荒らすな、ヴォケ。
http://piza2.2ch.net/test/read.cgi/tech/1002316568/1-3
0008デフォルトの名無しさん NGNG
warata >>3-6
0009デフォルトの名無しさんNGNG
さっそく厨房な質問。
Windows.Formsで「フォルダの参照」を出すにはどうすればいいでしょうか?
Win2000のエクスプローラでファイルの移動やコピーの時に出る
ダイアログです(一番下の部分はなくても可)。
0010デフォルトの名無しさんNGNG
ジサクジエン、カコワルイ
0011名無しさん♯NGNG
ニセモノがいても(゚ε゚)キニシナイ!!

J#、VS.NET日本語版ではインストールできないみたいね。
がっくし...。
0012デフォルトの名無しさんNGNG
ここに質問して答えて貰えるんだろうか…。一応。
hWndの取得ってどうやるんすか?
せっかくDllImportしてもhWnd要求されちゃぁねぇ…。
0013名無しさん♯NGNG
>>12
ControlクラスにHandleというプロパティがあるよん。
(もちろんサブクラスにも。)

DllImportのところで、hWndはIntPtr型で受け取ってちょ。
001412NGNG
>>13
おぉ、ありがとうございます。
Handleがまんまウィンドウハンドルなのですね。
0015デフォルトの名無しさんNGNG
>>13
間違いなく本物の#さんだね。(w
0016名無しさん♯NGNG
>>9
System.Windows.Formsにはそういうクラスはないみたいね。

本来の用途とは違うけど、System.Windows.Forms.Designの
FolderNameEditorクラスを使えば、強引にできなくもないみたいね。

using System;
using System.Windows.Forms;
using System.Windows.Forms.Design;

class FolderNameEditorEx : FolderNameEditor
{
  protected override void InitializeDialog(FolderNameEditor.FolderBrowser folderBrowser) {
    // ここでダイアログの初期化を行なう。
    folderBrowser.Description = "ほげほげ";
    folderBrowser.Style = FolderNameEditor.FolderBrowserStyles.ShowTextBox;
  }

  [ STAThread ]
  public static void Main() {
    FolderNameEditor folderNameEditor = new FolderNameEditorEx();
    string result = folderNameEditor.EditValue(null, null, null) as string;

    if (result != null) {
      MessageBox.Show(result);
    }
  }
}

どこまで希望どおりのことができるかわからないけど、
とりあえずヘルプでFolderNameEditorまわりを見てちょ。

P/Invokeでやるとなると、かなりたいへんそうね...。
0017デフォルトの名無しさんNGNG
>>16
どうもありがとうです。
単にテキストボックスにフォルダ名を入れたいだけなので
ソースを参考にすぐできました。
これからもよろしくお願いします。
もうちょっとよくFolderNameEditor見よっと…。
0018デフォルトの名無しさんNGNG
C#でDirectXを使うサンプルを見てみたけど、
DirectX7だった。
しかもVB用のライブラリを使っている?
鬱だ。

DLLを直接インポートすればDirectX8を使えるだろうけど、
Direct3DXは使えないってことだよね?
0019デフォルトの名無しさんNGNG
>>18
俺も同じく。
で、やっぱりVB用なんだけどDx8vb.dll(だっけか?)をtlbimp.exeでラップしたけど
CreateDeviceで例外発生…。
某MLで「外人が配ってるDLLでOK」って書いてあったけど、そいつは参照設定すらできなかった。
鬱だ。

ちなみにDirect3DXはdx8vb.dllには入ってるみたいだよ=使えるかも。
002018NGNG
>>19
vbのDirect3DXはサブセットだったと思います。
サブセットというのも気が引けるくらいしょぼかったような。
趣味でやるからこそ、3dxみたいなサポートライブラリが重要なのに…。
0021名無しさん♯NGNG
>>19
漏れはDirectXはぜんぜんわからないけど、こんな情報があったよん。

 http://discuss.develop.com/archives/wa.exe?A2=ind0012C&L=DOTNET&P=R16258

GUIDの問題らしく、tlbimpでできたラッパーをILレベルで修正しなきゃならないみたいね。

ちなみに、DirectX8のサンプルもあるそうな。
β1向けだから、ちゃんと動くかわからないけど。(藁

 http://www.gotdotnet.com/userfiles/MKoleoso/SkinnedMeshViewer_1_0.zip
002219NGNG
>>21
情報サンクスです。早速バイナリエディタでID部分を書き換えてみましたが…。駄目でした。
漏れはなんか別の理由でハマってるのかも…。
ちなみに>>19で逝ってた外人の作ったDLLってそれの事です。

HRESULTからの例外ってなんジャロー。
0023名無しさん♯NGNG
>>22
バ、バイナリエディタ...?

ildasm → テキスト編集 → ilasm よん。
002419NGNG
え”? 7385E4DF のところを 7385E5DF に書き換えればいいんじゃなかったんすか?
ちょいと間違えてた模様。今からやってみます。
002519NGNG
と思ったらildasmが無いよ〜。
VisualStdio β2で入るFrameworkSDKには無いのかな?
0026名無しさん♯NGNG
>>25
パスが通ってないのよん。

スタートメニューのVS.NETのところにコマンドプロンプトがあるでしょ?
そこからやるといいよん。
002725NGNG
>>26
何から何までありがとうございます。でもなんでファイルの検索に引っかからないんだろう? < ildasm
Administratorじゃなきゃ見れない位置にあるんだろうか…。

で…やってみたけど駄目でした。やはりバグ以前に私のプログラムに問題アリの模様です(w

↓該当部分のソースなんですけど、なんかおかしいですかね?
DxVBLibA.Direct3DDevice8 d3dDevice;
D3DDISPLAYMODE d3dDisplayMode = new D3DDISPLAYMODE ();
d3d8.GetAdapterDisplayMode ( 0, ref d3dDisplayMode);

DxVBLibA.D3DPRESENT_PARAMETERS d3dpp = new D3DPRESENT_PARAMETERS ();
d3dpp.Windowed = 1;
d3dpp.BackBufferWidth = 640;
d3dpp.BackBufferHeight = 480;
d3dpp.BackBufferCount = 1;
d3dpp.SwapEffect = DxVBLibA.CONST_D3DSWAPEFFECT.D3DSWAPEFFECT_COPY;
d3dpp.BackBufferFormat = d3dDisplayMode.format;
d3dpp.EnableAutoDepthStencil = 1;
d3dpp.AutoDepthStencilFormat = DxVBLibA.CONST_D3DFORMAT.D3DFMT_D16;
d3dpp.hDeviceWindow = (int)picMain.Handle;

d3dpp.FullScreen_PresentationInterval = (int)DxVBLibA.CONST_D3DPRESENT_INTERVAL_FLAGS.D3DPRESENT_INTERVAL_IMMEDIATE;

//d3dDevice = d3d8.CreateDevice (0, DxVBLibA.CONST_D3DDEVTYPE.D3DDEVTYPE_HAL, (int)picMain.Handle, (int)DxVBLibA.CONST_D3DCREATEFLAGS.D3DCREATE_SOFTWARE_VERTEXPROCESSING, ref d3dpp);
d3dDevice = d3d8.CreateDevice (0, DxVBLibA.CONST_D3DDEVTYPE.D3DDEVTYPE_REF , (int)this.Handle, (int)DxVBLibA.CONST_D3DCREATEFLAGS.D3DCREATE_SOFTWARE_VERTEXPROCESSING, ref d3dpp);
0028デフォルトの名無しさんNGNG
SDKじゃなくてRedist版でもソフト作れるの?
両者の違いは何ですか?
0029デフォルトの名無しさんNGNG
>>28
サイズ
0030デフォルトの名無しさんNGNG
>27
例外の内容を書いてみたら?
どこで起きて、どういうメッセージか。
0031名無しさん♯NGNG
>>27
さ、さっぱりわからん...。
漏れには未知の世界。ごめんちゃい。

>>28
いちおうコンパイラがあるから、「できなくもない」というレベルね。
redist版だとドキュメント・サンプル・便利なツール群がないのでかなりたいへん。
0032教えて君NGNG
素人な質問ですが‥
stringの文字列"123"をintの123に変換するにはどうすればよいのでしょうか
どうしてもわからずにこんなのを書いてる始末です.

string a = textBox1.Text;
for (i = 1; i < 999; i++) {
if (i.ToString() == a) break;
}

鬱...
0033初めて答えてみるNGNG
>>32
Int32.Parse
0034教えて君NGNG
>>33
ありがとうございます!
はやくC#の解説書が出ることをキボン.
0035デフォルトの名無しさんNGNG
>>32-33
System.Convert クラスの ToInt32 メソッドを使うという手もありだね。
0036初めて答えてみるNGNG
>>35
そっちの方が便利そうだね
0037教えて君NGNG
みなさんどこで勉強してるんですか?
0038デフォルトの名無しさんNGNG
トイレの個室
0039デフォルトの名無しさんNGNG
>>37
漏れは試行錯誤。
MSDN を見ながら適当にやってます。
どうしてもわからないことがあれば google で検索するくらいかな。
0040教えて君NGNG
では1ヶ月程トイレにこもってきます.
0041デフォルトの名無しさんNGNG
前スレにいくつかリンクがあるよ
0042名無しさん♯NGNG
J#はどうやらJUMP to .NETのことみたいね。

 Java Language on .NET
 http://www.microsoft.com/india/indiadev/projects/dotnet.htm

 JUMP to .NET Overview
 http://msdn.microsoft.com/visualj/jump/default.asp
0043デフォルトの名無しさんNGNG
 
0044債務不履行の名無しさんNGNG
厨な質問で申し訳ありませぬが・・・

ビットマップから非矩形のウィンドウを生成するには、
幾多のWebサイトで言及されているように、「1ピクセルずつ走査」しなければならないんでしょうか?
BitmapクラスやRegionクラスなどを見てみましたが、「ビットマップ→リージョン」と直接変換するよーなメソッドは
やっぱり無いんでしょうか・・・
0045名無しさん♯NGNG
>>44
漏れはGDI+は守備範囲外なんだけど...、
そういうメソッドはちょっと見つからなかった。

他のサイトでもそう言ってるなら、多分ないのだと思われ。
0046債務不履行NGNG
>>45
ありがとうございます。

幾多のWebサイトであがっているコードはすべてC++かVBによるもので、C#によるものは無かったんです。
それで、もしかしたら・・・と思い質問したのですが・・・
自力でがむばってみます(ちょっと泣)
0047デフォルトの名無しさんNGNG
Brushを使ってこういうコードを書いたんですが

private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g = e.Graphics;
Rectangle r = ClientRectangle;
LinearGradientBrush lb = new LinearGradientBrush(r, Color.Red, Color.Yellow,LinearGradientMode.BackwardDiagonal);
g.FillRectangle(lb, r);
}

フォームのリサイズを繰り返すと四角の跡が残ってしまいます。
そこで再描画するようにしたんですが

public Form1()
{
//
// Windows フォーム デザイナ サポートに必要です。
//
InitializeComponent();

//
// TODO: InitializeComponent 呼び出しの後に、コンストラクタ コードを追加してください。
//
SetStyle(ControlStyles.ResizeRedraw,true);
}

今度はちらつきがひどすぎます。(T_T)
何かうまく描画する方法はないでしょうか?
0048名無しNGNG
>>47
C#はよく知らないけど参考になる?
http://www.atmarkit.co.jp/fdotnet/csharptips/008bitmap/008bitmap.html
0049デフォルトの名無しさんNGNG
>>48
>>47 じゃないけど、そこを参考にして SetStyle... を書いたんじゃないかな?
005049NGNG
ごめん、一番下にちらつかない方法がかいてあった。
005147NGNG
>>48
レスありがとうございます。
SetStyleをやめてResizeイベントで描画するようにしたら、
うまくちらつかずに描画することができました!!

ところが、ウィンドウを最小化したらプログラムが落ちてしまいました。(T_T)
やっぱり無理なのでしょうか。
005247NGNG
描画の前にウィンドウの状態を見るようにしました。

private void Form1_Resize(object sender, System.EventArgs e)
{
if (WindowState != FormWindowState.Normal) {
Graphics g = CreateGraphics();
Rectangle r = ClientRectangle;
LinearGradientBrush lb = new LinearGradientBrush(r, Color.Red, Color.Yellow,LinearGradientMode.BackwardDiagonal);
g.FillRectangle(lb, r);
}
}

これで何とかできました。ご協力ありがとうございました。
005347NGNG
if (WindowState == FormWindowState.Normal) {

の間違いでした。すみません。
0054デフォルトの名無しさんNGNG
>>52-53
それだと最大化したときに描画されないから、
if (WindowState != FormWindowState.Minimized) {
のほうが良いと思うよん。
0055名無しさん♯NGNG
>>47
これでもOKよん。ご参考までにどうぞ。

  public Form1() {
    InitializeComponent();

    SetStyle(ControlStyles.ResizeRedraw, true);
    SetStyle(ControlStyles.Opaque, true);
  }

これだと、Resizeのハンドラはなくても大丈夫。
0056デフォルトの名無しさんNGNG
マイクロなのにビッグとはこれいかに。
0057どうよ?NGNG
58 :デフォルトの名無しさん :01/10/10 00:54
まあまあ、みんな喧嘩しないで仲良く

言語のカーストを決めましょう。

61 :デフォルトの名無しさん :01/10/10 00:55
>>58
末端(どれい)は、VC,VB,VC#,VJ++,.NETでいいか?
0058デフォルトの名無しさんNGNG
Del厨って本当にウザイね
0059デフォルトの名無しさんNGNG
58=802です、
すいません、ご迷惑をおかけしますが
802は精神病なので相手になさらないでください。
0060デフォルトの名無しさんNGNG
>末端(どれい)は、VC,VB,VC#,VJ++,.NETでいいか?

いいよ。

やっぱDelphiが最高だな。
0061デフォルトの名無しさんNGNG
60=802です、
すいません、ご迷惑をおかけしますが
荒せれば802は何でもいいのです。
802は精神病なので相手になさらないでください。
0062デフォルトの名無しさんNGNG
昨日VS.NETをインストールして使ってみたけど、すぐ消してディスクも捨てたよ。
Delphiの方が全然良いね。
C#なんて正式にリリースされる前に消滅すればいいのに(w
0063デフォルトの名無しさんNGNG
168 名前:デフォルトの名無しさん :01/10/10 01:40
>>167
いや、所詮C#はJAVAの猿真似
0064デフォルトの名無しさんNGNG
>>58
>>57の>>58は、俺(JAVA厨)
0065デフォルトの名無しさんNGNG
>>63
その>>167は、俺(JAVA厨)
0066デフォルトの名無しさんNGNG
Del厨がJava厨のフリをしてるよ(笑
0067名無しさん♯NGNG
次はこのスレか。(藁
0068デフォルトの名無しさんNGNG
Delphiユーザーって本当に卑屈で姑息だね
0069デフォルトの名無しさんNGNG
134 名前:デフォルトの名無しさん :01/10/10 01:40
>>127
正直言ってC#不利だろうね。サーバーで勝てないから。
0070デフォルトの名無しさんNGNG
134 :デフォルトの名無しさん :01/10/10 01:40
>>127
正直言ってC#不利だろうね。サーバーで勝てないから。

136 :デフォルトの名無しさん :01/10/10 01:42
C#で何をやるかが判然としてないと思うんだけど。
なんでもできます!って言ってるだけだよね、今。

137 :デフォルトの名無しさん :01/10/10 01:44
結局はDelphi2世に成り下がると思う。>C#

139 :デフォルトの名無しさん :01/10/10 01:44
C#も企画ダオレだろ?
0071デフォルトの名無しさんNGNG
>>70
その>>127と>>136と>>139は、俺(JAVA厨)
0072デフォルトの名無しさんNGNG
>>67 本人?
0073デフォルトの名無しさんNGNG
そう言えばDelギコもC#にケンカを売ってたよな。
「Delphiの方が遥かに上なんだよ!」と言わんばかりの勢いだった。
難癖ばかり付けてたよ。
0074デフォルトの名無しさんNGNG
とうとうC#スレまで(;´Д`)
0075デフォルトの名無しさんNGNG
名無しさん♯ さん、すいません。
802は基地害なんです。
0076デフォルトの名無しさんNGNG
JAVA厨JAVA厨うるせえよ、お前Del厨だろ(笑
0077デフォルトの名無しさんNGNG
もともとDelギコの他言語や他開発環境に対する横柄な態度が原因なんだけどね
0078デフォルトの名無しさんNGNG
やっぱ、C#って(中略)。
0079デフォルトの名無しさんNGNG
>>77
そうだね、802は何も悪くないよ。802は正しい事をしている。
あのスレは潰して当然だよね。
0080デフォルトの名無しさんNGNG
Delphiなんてヘジ留守バーグが残した過去の遺物じゃん
0081デフォルトの名無しさんNGNG
80がいいこと言った!!
0082デフォルトの名無しさんNGNG
802よりもDelギコ信奉者がウザイね
こいつらしつこすぎてキモイよ
なんかテロでも起こしそう(w
0083デフォルトの名無しさんNGNG
Delphi信者のせいで板が荒れ放題
0084デフォルトの名無しさんNGNG
Delphi信者はKylixをマスターしてLinuxのためにがんばり
ましょう。Windows上のアプリをいくら作ったところで、
MSの儲けにはなりません。
というわけでこのスレは関係ないです。理解してください。
0085名無しさん♯NGNG
地下でマターリ再開ヽ(´ー`)ノ
0086名無しさん♯NGNG
A First Look at Visual J# for .NET

 http://www.oreillynet.com/cs/weblog/view/wlg/748
0087デフォルトの名無しさんNGNG
ZDNetでもニュースになってるよ
http://www.zdnet.co.jp/news/0110/10/b_1009_03.html
0088名無しさん♯NGNG
>>87
ほんとだ。

 http://www.zdnet.com/zdnn/stories/news/0,4586,5098031,00.html?chkpt=zdnnp1tp02

やっぱりこういうときにTony Goodhewが出てくるね。(大藁
0089デフォルトの名無しさんNGNG
> Microsoft said Visual J#.Net will be available for download in a test
> version later this week from Microsoft's Web site.
もう落とせるじゃん。(w
0090デフォルトの名無しさんNGNG
この人本当に何とかしてください。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=291&forum=7&2
0091デフォルトの名無しさんNGNG
MS,こんなに嫌がらせしていると
いつか、Java原理主義者からテロくらうのではないかな
0092デフォルトの名無しさんNGNG
Introduction to Visual J# .NET
http://www.codeproject.com/dotnet/intro_vjsharp.asp

> This is a set of new tools for those wishing to
> develop using the java-language syntax.
> "Java Language Syntax" is the important point here.
> It is not Java - it's J#.
0093名無しさん♯NGNG
>>92
おお、ありがと。さすがはCodeProjectね。
こっちの方が雰囲気がつかめるね。(delegateとattributeの扱いもわかったし。)
0094デフォルトの名無しさんNGNG
>>90
>他の方も.NET絡みで面白い文書持ってるぞ、という人がいたら、(差し支えなければ)、このスレッドで紹介してもらえませんか?
>もう、このスレッドだけはageだの藁だのが溢れても許すしかないですね
もう止められない止まらない
0095JAVA厨NGNG
J#だぁ?ざけんじゃねーぞゴルァ!!
0096デフォルトの名無しさんNGNG
先生オナニーの仕方を教えて下さい
本当にわからないんです
さきこちゃんがオナニーしなきゃあダメだよー
って言ってたから
0097デフォルトの名無しさんNGNG
こんな糞スレ使い道が無いからDelphi初心者スレとして再利用しよう
0098デフォルトの名無しさんNGNG
C#対JAVAならわかるが、何でC#対Delphiになるんだろ?
0099デフォルトの名無しさんNGNG
>>98
ヘジたんに見捨てられたからでは。
0100デフォルトの名無しさんNGNG
Del厨でもJAVA厨でもなんでもいいから、マターリ進行しましょうぜヽ(´ー`)ノ
煽りは無視無視。
0101デフォルトの名無しさんNGNG
インデクサーって普通の配列と見間違えやすいと思うんだけど、
なんであんなのが必要なの?
■ このスレッドは過去ログ倉庫に格納されています