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

C♯, C#相談室 Part34

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/09/06(水) 22:34:17
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C♯, C#相談室 Part33
http://pc8.2ch.net/test/read.cgi/tech/1153537081/l50

過去スレは>>2-5あたり。
※スレタイに「#」を入れても消えちゃうので新スレ立てる人は要注意だ。
0685デフォルトの名無しさん2006/10/13(金) 16:20:55
Mulで除算すか(笑い
0686デフォルトの名無しさん2006/10/13(金) 16:43:38
>>684
System.Reflection.Emit名前空間を使って動的コード生成
0687デフォルトの名無しさん2006/10/13(金) 17:55:11
>>685 間違えます他・・・orz
0688デフォルトの名無しさん2006/10/13(金) 22:15:10
わんくまの質問掲示板に同じ趣旨のスレが立ってるな
0689デフォルトの名無しさん2006/10/13(金) 22:33:17
http://msdn2.microsoft.com/ja-jp/library/exczf7b9.aspx
ここに似たようなサンプルがあるよ
こういう怪しい方法しかない
0690デフォルトの名無しさん2006/10/13(金) 22:34:14
C#でジェネリクスを自前で用意するようなことってあるかい?
そのレベルのソフトウェアの開発を行うならC++を使え
0691デフォルトの名無しさん2006/10/13(金) 23:30:10
>>690
意味不明。
0692デフォルトの名無しさん2006/10/13(金) 23:53:37
頼むからnative吐くようにしてくれ。
0693デフォルトの名無しさん2006/10/13(金) 23:59:09
ここで言われても困る
06947622006/10/13(金) 23:59:52
class Example
delegate TReturn TwoParameter<TReturn, TArg>(TArg arg1, TArg arg2);

static TReturn DynamicMull<TReturn, TArg>(TArg lhs, TArg rhs)
 where TReturn : struct where TArg : struct
{
 Type[] methodArgs = { typeof(TArg), typeof(TArg) };

 DynamicMethod multiplyMethod = new DynamicMethod(
  "", typeof(TReturn), methodArgs, typeof(Example));

 ILGenerator il = multiplyMethod.GetILGenerator();
 il.Emit(OpCodes.Ldarg_0);
 il.Emit(OpCodes.Ldarg_1);
 il.Emit(OpCodes.Mul);
 il.Emit(OpCodes.Ret);

 TwoParameter<TReturn, TArg> invoke = (TwoParameter<TReturn, TArg>)
  multiplyMethod.CreateDelegate(typeof(TwoParameter<TReturn, TArg>));

 return invoke(lhs, rhs);
}
0695デフォルトの名無しさん2006/10/14(土) 09:16:05
>>692
実行直前にJITでnativeにコンパイルされるし。
なんなら、インストール時にコンパイルしてもいいんじゃない?
0696デフォルトの名無しさん2006/10/14(土) 11:01:21
.NETなんて、重いのはGUIの仕組みだったり、
ランタイムやそれをサポートするライブラリだったりするわけで、
ネイティブにできてもあんまかわらんと思う。
0697デフォルトの名無しさん2006/10/14(土) 21:59:39
>>692
ngen通せばいいじゃん。
それにライブラリはほとんど全部DLLになってるからそれは仕方ないし。
0698デフォルトの名無しさん2006/10/16(月) 16:40:52
メインウインドウのウインドウスタイルにWS_EX_LAYEREDつけて
SetLayeredWindowAttributesで半透明とかにすると
ToolStripTextBoxの描画にごみが出るんだけど、これってバグだよね
0699デフォルトの名無しさん2006/10/16(月) 16:42:36
あ、FormのOpacityを変えても同じだった
0700デフォルトの名無しさん2006/10/16(月) 17:01:11
ReSharperスゲーな。
これいれて、やっとvs2005が完全体になったと感じた。
eclipseのJDT並のリファクタリングができる。
ま、30日間のevaluationだがな。
0701デフォルトの名無しさん2006/10/17(火) 15:45:54
TreeViewのノードのドラッグ中のエフェクトが
CopyかAllしか受け付けてくれないんですが。

これはなぜ?
0702デフォルトの名無しさん2006/10/17(火) 17:13:10
テキストエディタで、縦のグリッド線(桁基準線)を任意の桁に
複数引きたい(固定長テキストが見やすいように)のですが、そういう
フリーのエディタを探してみたら見つからなかったので、自分で
作ろうと思ったのですが、どうやったらできるんでしょうか?
TextBoxを継承してSetStyle(UserPaint, true)してOnPaintでためしに
(0,0)-(100,100)に斜め線を引いてみたのですが、キャレットがある行は線が消えてしまうし、
リサイズなどで全体が再描画されると文字が全部消えてしまうし、
文字の上に線が来ないから役に立たないしで失敗しました。

あるいは、縦線機能があるフリーのエディタがあったら教えてください。
0703デフォルトの名無しさん2006/10/17(火) 19:46:21
そういうのは継承とかじゃなくて完全に自前で書いた方が早いよ。
0704デフォルトの名無しさん2006/10/17(火) 23:58:27
単に描画順を逆にしたら良いのでは?
beseを先にするだけじゃあ?
0705デフォルトの名無しさん2006/10/18(水) 00:10:25
やって見てから言え
0706デフォルトの名無しさん2006/10/18(水) 00:34:17
所詮はTextBoxだしなあ。
一人前のエディタになるには遠過ぎる。

どの程度のエディタを作りたいのか知らないけど。
0707デフォルトの名無しさん2006/10/18(水) 00:37:00
むしろエディットする必要が在るのかどうかから考えた方がよさそうな気もする
0708デフォルトの名無しさん2006/10/18(水) 00:57:46
これ使えばいいんじゃないの?機能過多かもしれんが
http://becom.hp.infoseek.co.jp/cgi-bin/ikari/ikari.cgi
0709デフォルトの名無しさん2006/10/18(水) 22:52:37
http://money4.2ch.net/test/read.cgi/build/1160576047/27
http://money4.2ch.net/test/read.cgi/build/1160576047/306-310
352 :(仮称)名無し邸新築工事 :2006/10/18(水) 19:59:48 ID:pRhQsipC
他社で2万の工事を朝鮮人の名刺出して22万って
これって思いっきり脅しじゃん

355 :(仮称)名無し邸新築工事 :2006/10/18(水) 20:09:51 ID:sGavnuL0
記念カキコ。

この朝鮮人を擁護するニュースを流したNHKも許せん。

366 :(仮称)名無し邸新築工事 :2006/10/18(水) 21:00:38 ID:???
朝鮮人のせいで積水崩壊の危機だな
ここでも法則発動か・・・

369 :(仮称)名無し邸新築工事 :2006/10/18(水) 21:11:05 ID:???
【お知らせ】

阪神淡路大震災でも倒壊しなかった積水ハウスが、
一人の韓国人のせいで崩壊の危機に面しています。

379 :(仮称)名無し邸新築工事 :2006/10/18(水) 21:41:02 ID:???
>>370
まともな企業なら、顧客・消費者の信頼を大切にするよね。

積水ハウスは自ら、「在日コリアン人権協会」との関係を断ち、

いわゆる「人権団体」の実態を明らかにするべきだ。

恐喝や脅しを受けているのなら、それも公表するべきだ。
0710デフォルトの名無しさん2006/10/19(木) 08:37:47
構造体定義すると「メンバが初期化されない」という警告がでるので
コンストラクタ定義して0とかnull代入しとこうと思ったら今度は
「構造体には引数なしのコンストラクタは定義できない」エラー。
どうすればこの警告消せる?
0711デフォルトの名無しさん2006/10/19(木) 08:50:44
Size.Empy みたいにするとか
07127022006/10/19(木) 10:02:09
要件としては、メモ帳に縦線機能が付いてれば十分です。
怒IKARIとか、CSV/固定長エディタはいくつか見てみたんですが、こういう
セル編集タイプのエディタだと今回はだめなんです。
というのも、こともあろうにレコード長がそろっていない固定長テキストを
送ってくる人(プログラム)がいて、そんなデータの確認とか修正も
しなきゃいけないので、どこがずれてるとかいうのは機械で判別できないし、
とりあえず縦線だけ表示してあとは人手でいじりたいのです。
(そいつを問い詰めろとかバグ直せとか、それもありますが)

>>703
自前で引いたほうが早いというのは、どうやるんでしょう?
0713デフォルトの名無しさん2006/10/19(木) 10:03:06
struct Sample {
    public Sample Empty = new Sample(0, 0, 0);
    public int A, B, C;
    public Sample(int a, int b, int c) {
        A = a; B = b; C = c;
    }
}
0714デフォルトの名無しさん2006/10/19(木) 10:03:46
お、static が抜けていた
0715デフォルトの名無しさん2006/10/19(木) 10:15:52
警告出さないのが目的ならEmptyは定義しなくてもいいかと。
さらに手抜きして

struct Sample {
  public int A, B, C;
  private Sample(int dummy) {
    A = B = C = 0;
  }
}

とか。さらに手を抜くと

#pragma warning disable 649
struct Sample {
  public int A, B, C;
}
#pragma warning restore 649

というのもあり。
0716デフォルトの名無しさん2006/10/19(木) 10:33:29
>>711、713
引数なしのコンストラクタを使う限り#pragma使わないと警告は消えないのか。。
引数なしコンストラクタが定義できない意味がわからないな。
0717デフォルトの名無しさん2006/10/19(木) 10:55:08
定義しなくても使えるだろに
0718デフォルトの名無しさん2006/10/19(木) 10:57:20
なんでわざわざダミーとか作るの…
さらにEmptyとかのメンバならメンバ定義だけで勝手に初期化してくれるし
0719デフォルトの名無しさん2006/10/19(木) 10:59:36
なんで警告出るかっていうと
構造体のデフォルトの初期化は
全部ゼロ埋めがお約束だから
余計なことすんなってこと
0720デフォルトの名無しさん2006/10/19(木) 11:18:56
>>719
余計なことって何だ?

struct Sample {
  public int A, B, C;
}
static void Main()
{
  Sample s = new Sample();
  Console.WriteLine(s.A);
}

これだけで「Sample.Aは割り当てられません。常に規定値0を使用します。」
って警告がメンバの数だけ出るんだが。
0721デフォルトの名無しさん2006/10/19(木) 11:50:06
>>712
線を引くトコだけやるのではなく、
キャラクタやキャレット、編集選択その他を全て自前でやるということ。
0722デフォルトの名無しさん2006/10/19(木) 12:01:37
おお?
正直すまんかった
0723デフォルトの名無しさん2006/10/19(木) 12:39:50
>>717
使えるけどワーニングいっぱい出てうっとおしいんだYO!
クラスのときは
class a{
  int i=0;
  int j
  a(){ j = 0; }
}
とかできんのに構造体はどないなっとんねん
0724デフォルトの名無しさん2006/10/19(木) 12:51:30
構造体は値型だから暗黙で引数無しのコンストラクタが定義されてるからなあ。
でも、なんで警告出すんだろ?
0725デフォルトの名無しさん2006/10/19(木) 16:25:52
やっぱりpragmaだろうな…
0726デフォルトの名無しさん2006/10/19(木) 17:03:10
listviewでLabelEditによる編集後をイベントとして取りたいのですがAfterLabelEditだとListviewのitemに
変更を加える前にイベントが発生してしまうようです。Listviewのアイテムに反映された後にイベントを
取るにはどうしたら良いのでしょうか?。
0727デフォルトの名無しさん2006/10/19(木) 19:49:34
ListView継承してWndProcオーバーライド、
メッセージごにょごにょで独自イベント実装

でいけそうな希ガス
0728デフォルトの名無しさん2006/10/19(木) 20:15:30
727じゃないけど、Reflectorで見た限りこんな感じ? しらんけど。


class ListViewEx : ListView
{
 protected override void WndProc( ref Message m )
 {
  base.WndProc( ref m );

  if( m.Msg == 0x204e )
  {
   NMHDR nmhdrPtr1 = (NMHDR)Marshal.PtrToStructure( m.LParam, typeof( NMHDR ) );

   if( nmhdrPtr1.code == -176 )
   {
    MessageBox.Show( this.SelectedItems[0].Text );
   }
  }
 }
}

struct NMHDR
{
 public IntPtr hwndFrom;
 public IntPtr idFrom;
 public int code;
}
0729デフォルトの名無しさん2006/10/19(木) 20:19:05
おっと。

× if( nmhdrPtr1.code == -176 )
○ if( nmhdrPtr1.code == -176 || nmhdrPtr1.code == -106 )
0730デフォルトの名無しさん2006/10/19(木) 20:32:29
>>716
値型は名前通り値なんで、引数無しというのは不自然だと感じないか?
int i = new int();
とか凄く不自然に感じないか?
0731デフォルトの名無しさん2006/10/19(木) 21:41:08
>>711
なるほど・・・
MyInt x = MyInt.Zero; とかするのも良いか。
0732デフォルトの名無しさん2006/10/20(金) 13:32:07
1.1でXMLファイルをコードから更新しようとしているんですが、
XmlDocumentを使ってPreserveWhitespaceプロパティをLoad前やSave前でtrueにしても
XMLファイル中のXML属性間の空白文字が維持されないようなんです。
XML属性間の空白を維持したまま更新するにはどうすればいいですか?
そもそもXmlDocumentを使うなということになるんでしょうか?
0733デフォルトの名無しさん2006/10/20(金) 13:56:21

ツール12個まで
0734デフォルトの名無しさん2006/10/20(金) 15:43:07
>>732
残念ながら、そういうこと
07357262006/10/20(金) 19:52:15
>>727-729
ありがとうございます。
色々と試してみるのですが上手く拾えず・・・。
メモっておいて他の事をしながら閃いたら再チャレンジしてみます。
0736デフォルトの名無しさん2006/10/20(金) 21:19:34
>>730
それは全然おもわない
0737デフォルトの名無しさん2006/10/21(土) 11:50:58
クリップボードを監視したいのですが上手く拾えません。
何処が間違えているのかご指導ください。

namespace test.cs
{
public partial class Form1 : Form
{
private const int WM_DRAWCLIPBOARD = 0x0308;
private const int WM_CHANGECBCHAIN = 0x030D;

[DllImport("user32")]
public static extern IntPtr SetClipboardViewer(IntPtr hWndNewViewer);
[DllImport("user32", CharSet = CharSet.Auto)]
public extern static int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);

protected override void WndProc(ref Message m)
{
if (m.Msg == WM_CHANGECBCHAIN)
{
MessageBox.Show("WM_CHANGECBCHAIN");
}
else if (m.Msg == WM_DRAWCLIPBOARD)
{
MessageBox.Show("WM_DRAWCLIPBOARD");
}
else
{
base.WndProc(ref m);
}
}
}
}
0738デフォルトの名無しさん2006/10/21(土) 11:55:43
>>737
途中にモーダルなUI挟むと危ないんじゃね?
ついでにメッセージの処理サッパリしてないよ?
0739デフォルトの名無しさん2006/10/21(土) 23:20:19
その前にクリップボードチェインに登録してないんじゃないのか
即、ググルようにw
0740デフォルトの名無しさん2006/10/21(土) 23:31:15
VistaのExplorerで、WordやExcelやらのプレビューが出来るが。
あれはどうやれば対応出来るんだろ?
0741デフォルトの名無しさん2006/10/21(土) 23:41:36
>>740
http://tricklib.com/cxx/ex/calligrapher/
こんなヤツのこと?
0742デフォルトの名無しさん2006/10/21(土) 23:56:12
それ。ありがとう。
てか、C#で組むのまんどくさそう。
07437322006/10/22(日) 06:25:40
>>734
やっぱりそうですか。
おとなしくXmlDocumentを諦めることにしました。
ありがとうございました。
0744デフォルトの名無しさん2006/10/22(日) 07:16:11
FileSystemWatcherでエクスプローラーのようなツリービュー作ってるんですが。
監視してるフォルダが使用中になってます。
ドラッグドロップでフォルダの移動等をすると、ファイルが入ってるから移動できないとか
ファイルが使用中とかのメッセージボックスが出てきます。

どうにかなりませんかね。
0745デフォルトの名無しさん2006/10/22(日) 07:38:08
再現しねぇなぁ
0746デフォルトの名無しさん2006/10/22(日) 08:34:19
3階層のフォルダまでは移動できるんですが、
それ以上になるとエラーで止まるんですよね。
監視をやめると普通に動くという。

監視はルートだけにしたほうがええんかなぁ。
0747デフォルトの名無しさん2006/10/22(日) 08:40:12
>>744 >>746
ゴメン、
> FileSystemWatcherでエクスプローラーのようなツリービュー作ってるんですが。
> 監視してるフォルダが使用中になってます。
もっとkwsk書かないと、問題を切り分けられないyo
0748デフォルトの名無しさん2006/10/22(日) 12:02:09
WinXP(SP2)、VS2003、IE6(SP2)です。

フォームにIEコンポーネント(axWebBrowser)貼り付けてるんですが、
JavaScriptを無効にする方法知りませんか。
IEの設定で「Internet Explorer Webbrowser コントロールのスクリプトの許可」を無効にすればいいかと思ったのですが
inputタグのonclickで呼ばれる関数が実行されてしまいます。
0749デフォルトの名無しさん2006/10/22(日) 12:07:43
きみのレスにあるキーワード使ってぐぐったら即見つかった
0750デフォルトの名無しさん2006/10/22(日) 12:11:14
>>744
俺はあきらめましたが何か
07517482006/10/22(日) 12:42:44
いろんな単語を組み合わせてググったら見つかりましたorz
0752デフォルトの名無しさん2006/10/22(日) 15:56:15
>>744
Cドラ配下をルートに指定して、サブフォルダの監視もOnにして
20階層のフォルダを移動しても再現しないぞ。
0753デフォルトの名無しさん2006/10/22(日) 17:20:50
いや、ノード毎にウォッチャーを持ってるんです。
class Node:TreeNode
{
public Node(string path)
{
foreach(string dir in Directory.getDirectory(path))
this.Nodes.Add( new Node(dir) );

this.FolderWatch();//ここで監視
}
}
こんな感じで。
説明足らずでモウシワケナス。
これはイベントが続出すると同期が取れないってありましたが、
そのせいなのかな。
でもエクスプローラーの操作もロックかかってるんですよね。
0754デフォルトの名無しさん2006/10/22(日) 19:46:09
もう先回りしてNodeをDisposeして対処しました。

コードがどんどん汚くなってきた。
0755デフォルトの名無しさん2006/10/22(日) 22:46:36
ここらで一本リバースエンジニアリング
0756デフォルトの名無しさん2006/10/23(月) 15:22:23
すまんです。昔から議論になってるとこだとは思うんですが、多重継承ができないことによるインターフェースでの継承で実装がめんどくさいことについて意見ください。
自分はC++でダイヤモンド継承以外の多重継承はよく使っていました。そうすることでいろいろな場面に対応しうるクラスを実装の手間を省きながら実装できるからです。
C#ではもちろんできません。皆さんはどうしてるんでしょう?

1.画面クラスでかつ構造がTreeNodeであるようなものを実装するとき多重継承的にしたい。
2.インターフェースでやって実装をImplementクラスに移して委譲しようとすると継承するすべてのクラスで対応しないといけないためめんどくさい。

意見くだされ。
0757デフォルトの名無しさん2006/10/23(月) 15:56:31
>>756
C++ の時と同じ感覚で C# での設計を行わない
0758デフォルトの名無しさん2006/10/23(月) 16:00:21
>>756
漏れなら1みたいなものはそもそも多重継承せずに、TreeNodeはプロパティで公開する。
2は確かに面倒だけど、漏れの場合大量のインタフェイスの実装が必要な場面ってCOM
オブジクェクト作る時くらいだから、そこだけ ATL/C++ でやってます。
0759デフォルトの名無しさん2006/10/23(月) 16:11:59
>>757 どうすべきかよくわからんです・・・(・ω・)
>>758 今想定してるのは画面のパネルでかつ入れ子の画面アイテムを持つようなものなんですが、そのばあいTreeNodeのプロパティは何を指すんでしょう?
Widget widget;
widget=widget.TreeNode.NextSibilingItem();
見たいな感じということ?インプリメントクラスのイメージ?
0760デフォルトの名無しさん2006/10/23(月) 16:36:29
>>759
例えば System.Windows.Forms.Panel だと、入れ子になった Control は Controls プロパティに入っている。
そういう話じゃなくて?

あと、コードのコピペを嫌うのなら、
1: アスペクト指向などを使って、コードを織り込む
2: Java の AdapterClass みたいなのを用意し、それを継承した内部クラスを作る
とか。

ついでに言うと、何に困っているのか分からんのです (;´・ω・`)
0761デフォルトの名無しさん2006/10/23(月) 16:57:12
>>760 とりあえずWindowsFormとは関係ない話の独自実装なんですが、
Widgetが入れ子で別のWidgetを持ってる可能性があります。でのそのデータ構造はTreeとして扱おうとしています。
インスタンスのwidgetは描画などの際にはWidget型として、トラバースする際にはTreeNode<Widget>として扱われます。
これは一例なんですが、いずれにしてもいわゆる多重継承とかMixinを使いたくなるときがありますよね?
ある役割のクラスであるが同時にほかの役割も果たすようなものです。そういうのをインタフェースで定義するのはいいけれど実装がめんどくさいよねってことです。
C++なら実装継承できていたものをC#ではできない。ならば設計を変えるか実装方法の改良をするか。おのおのでいい方法がないかと意見を聞いてみたかったんです。

0762デフォルトの名無しさん2006/10/23(月) 17:08:24
>>761
mix-in が出来ると便利なのは漏れも C++ 使いなので大変よくわかるけど、
その例では全く mix-in の必要性を感じない。

class WidgetA : Widget
{
 public WidgetList Children { ... }
 ...
}
としか設計しようがないような気すらする(漏れは頭が固いから)。
昔漏れの知り合いが、Rectangle を派生させて Window を作っていたのを思い出した。

C# では機能の追加は、mixinではなく委譲とdelegateでのコールバック(orイベント)で
実現するのが良いと思う。
0763デフォルトの名無しさん2006/10/23(月) 17:12:40
>C# では機能の追加は、mixinではなく委譲とdelegateでのコールバック(orイベント)で
>実現するのが良いと思う。

蛇足気味に説明を追加。
上の例では、コールバック等を使ってWidgetA が自分の子の WidgetList のobserverになるという意味。
内容への変更などを監視するために(もしそうしたいなら、だけれども)。
07647612006/10/23(月) 17:14:45
>>762
すまんです。例が悪いのでこの例の場合というのははずしておいてください。
自分のイメージではクラスの継承にしろインタフェースの継承にしろIsAのために行っているので機能追加のためという意識は低いです。
そうする必要があるときに実装のめんどくささをどうしようかというのを聞いてみたかったんです。
0765デフォルトの名無しさん2006/10/23(月) 17:48:58
集約
07667612006/10/23(月) 18:10:13
>>765
IsAにつかえません。
0767デフォルトの名無しさん2006/10/23(月) 18:13:45
contextMenuStripで選択されたアイテムのテキストを収得したいのですが、どうしたら良いでしょうか?
0768デフォルトの名無しさん2006/10/23(月) 18:15:51
逆に考えるんだ。is-a を使わないようにすれば良い
……正直、is-a 継承を多用することってあまり無い希ガス
0769デフォルトの名無しさん2006/10/23(月) 18:23:21
>>768
無いというか無くそうとされたというかそんな感じのほうが。

というか印象がもうC++脳なのでばっさり忘れちゃってください。
かつての自分への自戒も込めていうけども。
.NETってオブジェクトがどうとかJavaっぽいとかいわれてるけど
本質はコンポーネントに特化したある意味Crazyな実装なので。

ちなみに、Mix-inは2.0だとジェネレータとpartialでやろうと
している人はいます。
0770デフォルトの名無しさん2006/10/23(月) 19:06:51
>>768 んーWidgetでかつSerializableなものとかIWdgetでありかつISerializableってかんじで組んでたんですが・・・(・ω・)
>>769 たすかに。けんどそげなこといわれてもWidgetでかつSerializableなものはどうすればいいですだ。
VisitorとAdapter組み合わせればいけないこともないけれどイヤンです。
0771デフォルトの名無しさん2006/10/23(月) 19:34:14
>>770
??
IWdget と ISerializable を両方とも継承すればいいのでは?
0772デフォルトの名無しさん2006/10/23(月) 19:42:38
>>771 そうすればいいけど、実装コードがめんどくさいですよねってことです。
インプリメントクラス作って、委譲コードを継承クラス全部に書かないといけない。
>>769正直ジェネレータっぽいのを作らないとだめ層です。
0773デフォルトの名無しさん2006/10/23(月) 19:43:26
>>772
ヒント:C++ で書けばよくね?
0774デフォルトの名無しさん2006/10/23(月) 19:56:39
C++だろGUIライブラリがしょぼいから嫌
0775デフォルトの名無しさん2006/10/23(月) 20:02:41
めんどくさいからC++を使うとか本末転倒だろ
0776デフォルトの名無しさん2006/10/23(月) 20:11:58
C++/CLIでかくならいいかもしれないけど、いまだとマネージクラスを多重継承できないとか何かあるんだっけ?
そっちはそっちでまた別のところではまりそうな気がする。
0777デフォルトの名無しさん2006/10/23(月) 20:30:08
つかさ、継承自体必要なくね?
ポトペタで作れちゃうよね
0778デフォルトの名無しさん2006/10/23(月) 20:32:09
class Form1 : Form // <-注目
0779デフォルトの名無しさん2006/10/23(月) 20:35:46
っえ、それって継承してるんですか?
てっきりリネームしてるだけかと思ってた
0780デフォルトの名無しさん2006/10/23(月) 21:48:57
>>767
選択ってポイントされてるという意味か?
ループで回して子をのSelectedを調べる
0781デフォルトの名無しさん2006/10/23(月) 21:55:57
今までVB6.0しかやったことがありません。
これからC#(Visual C#2005 Express Edition )を始めるのですが、1から始めるC#のおすすめ本かHPってありますか?
プロジェクトの作り方から解説してある方が助かります。
0782デフォルトの名無しさん2006/10/23(月) 22:00:03
プロジェクトの作り方という表現に隔世の感を覚える Hello, world から始めた年寄り
0783デフォルトの名無しさん2006/10/23(月) 22:04:20
>>781
ふらっとスレのテンプレにいろいろ

C#は触るより言語から先に覚えた方が速いと思う
0784デフォルトの名無しさん2006/10/23(月) 22:07:46
>>781
http://msdn2.microsoft.com/ja-jp/library/xyh50b90.aspx
■ このスレッドは過去ログ倉庫に格納されています