C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 >>
■56233  Re[4]: [C#]Windows7のライブラリフォルダを開きたい
□投稿者/ マサヤ -(2011/01/06(Thu) 09:25:46)
    No56230 (よねKEN さん) に返信
    > Windows7 Ultimate x64、VC#2010で確認しました。
    >
    > openFileDialog1.InitialDirectory = "shell:Libraries";
    >
    > でライブラリフォルダを開けました。
    よねKENさん、すごい orz

    >開いたファイルのパスを表示する欄を作り、ライブラリ配下のファイルを開いた場合はパス表示を「ライブラリ\〜〜〜」と表示したいと考えています。
    OpenFileDialog.FileNameで取得したパスをReplaceしたらいいのではないでしょうか?
    string fullPath = ofd.FileName;
    string originalPath = fullPath.Replace("ライブラリの本体のパス(C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Windows\Libraries)","ライブラリ");
記事No.56224 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56235  Re[5]: [C#]Windows7のライブラリフォルダを開きたい
□投稿者/ よねKEN -(2011/01/06(Thu) 10:04:16)
    No56233 (マサヤ さん) に返信
    > ■No56230 (よねKEN さん) に返信
    >>Windows7 Ultimate x64、VC#2010で確認しました。
    > >
    >>openFileDialog1.InitialDirectory = "shell:Libraries";
    > >
    >>でライブラリフォルダを開けました。
    > よねKENさん、すごい orz

    自分で提示した方法ですが、実はそもそもShellコマンドが何者かよくわかってません(汗
    行けそうな気がしたのでやってみたら動いたとい状況です。

    探しているのですが、MSDNでの根拠となる情報が見つけられないんですよね。
    ("Shellコマンド"が何者かという説明と、OpenFileDialogの内部実装と推測されるGetOpenFileName関数で
    パスの指定にShellコマンドを使えるのが仕様なのかどうかetc)

    MS情報以外だととりあえずWin2000時点で既にShellコマンドというものがあるっぽいこと、
    shell:LibrariesはVistaで追加されたもの、ってところの情報はありました。

    とりあえず、OS判定を入れてVista以降と以前とで区別して処理する必要がありますね。
    (XP以前も対象とするなら)
記事No.56224 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56236  Re[6]: [C#]Windows7のライブラリフォルダを開きたい
□投稿者/ 魔界の仮面弁士 -(2011/01/06(Thu) 11:29:35)
    2011/01/06(Thu) 12:37:25 編集(投稿者)

    No56235 (よねKEN さん) に返信
    > "Shellコマンド"が何者かという説明と、
    コマンドという表現ではありませんが、Shell プロトコル(Shell: protocol) という
    表現であれば時折見かけます。
    http://technet.microsoft.com/ja-jp/library/cc737488.aspx
    http://technet.microsoft.com/en-us/library/cc737488.aspx

    今回の話題とは関係ありませんが、この他、local: プロトコルとか ms-help: プロトコルとか
    view-source: プロトコルといった物が知られています(自作プロトコルの登録も可能です)。
    http://msdn.microsoft.com/en-us/library/aa767739.aspx
    http://msdn.microsoft.com/en-us/library/bb164608.aspx
    http://msdn.microsoft.com/en-us/library/aa767914.aspx


    > MS情報以外だととりあえずWin2000時点で既にShellコマンドというものがあるっぽいこと、
    Vista / 7 機以前の OS として、手元の
     Win2000(SP無) + IE6(SP1)
     WinXP(SP3) + IE8
    の環境で確認したところ、いずれもレジストリに Shell プロトコルが登録されており、
    実際に「Shell:Desktop」や「Shell:SendTo」や「Shell:RecycleBinFolder」が使えました。

    当然ながら、「Shell:Libraries」は 2000/XP 共に駄目でした。
    「Shell:CommonVideo」だと、2000 では動作しませんでしたが、
    上記 XP では稼働しました。(もしかしたら初期版の XP だと認識しないかも?)


    > shell:LibrariesはVistaで追加されたもの、ってところの情報はありました。
    "Shell:SendTo"、"Shell:Desktop"、"Shell:Favorites" 等は Vista 以前でも使えますね。
    System.Windows.Forms.OpenFileDialog クラスの他、Microsoft.Win32.OpenFileDialog クラスでも使えたはず。

    その他、9x 時代からの
     "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
     "::{645FF040-5081-101B-9F08-00AA002F954E}"
     "::{208D2C60-3AEA-1069-A2D7-08002B30309D}"
    といった表現もあります。Vista 以降で使えるかどうかは未確認ですが。

    ついでに XP + VB6 でも検証してみましたが、CommonDialog コントロールでは、
     CommonDialog1.InitDir = "::{645FF040-5081-101B-9F08-00AA002F954E}"
    で仮想フォルダ「ごみ箱」を指定できましたが、
     CommonDialog1.InitDir = "Shell:RecycleBinFolder"
    には反応しませんでした(C# の OpenFileDialog 経由と同じ結果です)。

    しかし、VB6 の "Microsoft Dialog Automation Objets" 経由であれば
     cf.Directory = "::{645FF040-5081-101B-9F08-00AA002F954E}"
     cf.Directory = "Shell:RecycleBinFolder"
    のいずれも使えるようです。

    とは言え、"::{645FF040-5081-101B-9F08-00AA002F954E}" の場合は、
    仮想フォルダとしての「ごみ箱」が指定されたのに対して、"Shell:RecycleBinFolder" については
    物理フォルダとしての「C:\RECYCLER\S-1-5-21-……\」が選択されたという違いがあります。

    # Vista や 7 の場合は、また違った結果になりそうな予感。
記事No.56224 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56276  Re[7]: [C#]Windows7のライブラリフォルダを開きたい
□投稿者/ くままま -(2011/01/07(Fri) 13:14:03)
    返信が遅れて申し訳ありません。
    Azuleanさん、よねKENさん、マサヤさん、魔界の仮面弁士さん、ご返信ありがとうございます。


    > openFileDialog1.InitialDirectory = "shell:Libraries";
    > でライブラリフォルダを開けました。

    さんざん悩んだお題でしたが、まさかこんな指定方法があったとは…。
    方々探し回ったつもりであったものの、まだまだ甘いようです。

    「ライブラリからのパス」につきましては、Azuleanさんのご提示頂いた方法を参考にしたいと思います。
    本件は解決済みとさせて頂きたいと思います。皆様誠にありがとうございました。
記事No.56224 のレス / END /過去ログ94より / 関連記事表示
削除チェック/

■56203  cからVB6に移植お願い
□投稿者/ かめ -(2011/01/04(Tue) 21:24:25)

    分類:[C#] 

    2011/01/05(Wed) 20:22:03 編集(投稿者)
    2011/01/05(Wed) 20:21:37 編集(投稿者)
    2011/01/05(Wed) 20:21:18 編集(投稿者)

    <pre><pre>この掲示板の使い方がよく解らない。
    自分なりにやってみます。ありがとうございました。

    皆さんへ!!!!!
    人工衛星の打ち上げシュミレーションプログラムを作成中、Cは少し理解できるのですが、RV2ELは、以下ソースの逆を行うプログラムですが、Cは少し理解できるのですが、ベクトル演算のようです。

    Private Sub Form_Load()


    A = 7278.165905 'km
    E = 0.000444115
    Inc = 99.114282 '(度)
    Peri = 284.209888 '(度)
    Node = 272.722924 '(度)
    Ma = 168.026666 '(度)
    End sub

    Private Sub Command1_Click()
    CalcKeplar 'TLE→Pos,Vel
    RVel Pos, Vel'Pos,Vel→TLE
    End Sub

    ’標準モジュール
    Public A#, B#, Inc#, E#, Peri#, Node#, Ma#, MMo#

    'ケプラリアン軌道要素からPos、Velを求める。
    Public Sub CalcKeplar()

    Dim Rad#, Pi#
    Pi = 3.14159265358979
    Rad = 0.0174532925

    Dim Mk#, Ek#, Ec#

    Mk = Ma * Rad

    '衛星軌道面の離心近点角の計算 Ek (rad)
    'ケプラーの方程式 Mk = Ek - E * SIN(Ek)
    Ec = Mk + E * Sin(Mk)
    KepLoop:
    Ek = Mk + E * Sin(Ec)
    If Abs(Ec - Ek) > 0.000000000001 Then
    Ec = Ek
    GoTo KepLoop
    End If




    Dim CosEk#, SinEk#
    CosEk = Cos(Ek)
    SinEk = Sin(Ek)

    '衛星軌道面の真近点角の計算
    Dim VK#
    VK = Atn((1 - E ^ 2) ^ 0.5 * Sin(Ek) / (Cos(Ek) - E))
    If (Cos(Ek) - E) < 0 Then
    VK = VK + Pi
    End If
    If VK < 0 Then
    VK = 2 * Pi + VK
    End If


    '離心近点角Ekから動径Pkを求める(動径Rkは地球重心から衛星までの距離)
    Dim Rk#
    Rk = A * (1 - E * Cos(Ek))

    '動径Rkと真近点角Vkから衛星のxy座標を求める
    '衛星軌道面の位置直交座標の計算
    ' Xk,Yk (m)
    Dim Xk As Double, Yk As Double
    Xk = Rk * Cos(VK)
    Yk = Rk * Sin(VK)


    Form1.List2.Clear
    Form1.List2.AddItem "離心近点角(度): " & Ek / Rad
    Form1.List2.AddItem "真近点角(度): " & VK / Rad
    Form1.List2.AddItem "動径(km): " & Rk
    Form1.List2.AddItem "x座標(km): " & Xk
    Form1.List2.AddItem "y座標(km): " & Yk

    B = A * Sqr(1 - E ^ 2) '軌道短半径計算

    Dim AXNSL#, AYNSL#, XL#
    AXNSL = E * Cos(Peri * Rad)
    AYNSL = E * Sin(Peri * Rad)


    'INTERMEDIATE QUANTITIES(中間値)
    Dim ECosE#, ESinE#, EL2#, PL#, PL2#
    ECosE = AXNSL * CosEk + AYNSL * SinEk
    ESinE = AXNSL * SinEk - AYNSL * CosEk
    EL2 = AXNSL * AXNSL + AYNSL * AYNSL
    PL = A * (1# - EL2)
    PL2 = PL * PL


    Dim R#, Rdot#, RVdot#
    R = A * (1# - ECosE)
    Rdot = XKE * Sqr(A) / R
    RVdot = XKE * Sqr(PL) / R

    Dim NodeK#, IncK#
    NodeK = Node * Rad
    IncK = Inc * Rad


    '*Orientation VECTORS
    Dim SinUK#, CosUK#, SinNoK#, CosNoK#, SinIK#, CosIK#

    SinUK = Sin(VK)
    CosUK = Cos(VK)

    SinNoK = Sin(NodeK)
    CosNoK = Cos(NodeK)

    SinIK = Sin(IncK)
    CosIK = Cos(IncK)

    Dim XMX#, XMY#, XMZ#
    XMX = -SinNoK * CosIK
    XMY = CosNoK * CosIK
    XMZ = SinIK


    Form1.List2.AddItem ""
    Form1.List2.AddItem "XMX: " & XMX
    Form1.List2.AddItem "XMY: " & XMY
    Form1.List2.AddItem "XMZ: " & XMZ


    Dim UX#, UY#, UZ#
    UX = XMX * SinUK + CosNoK * CosUK
    UY = XMY * SinUK + SinNoK * CosUK
    UZ = SinIK * SinUK

    Dim VX#, VY#, VZ#
    VX = XMX * CosUK - CosNoK * SinUK
    VY = XMY * CosUK - SinNoK * SinUK
    VZ = SinIK * CosUK


    '*POSITION AND VELOCITY
    Dim x#, y#, z#, Xdot#, Ydot#, Zdot#

    x = Rk * UX '* Xkmper
    y = Rk * UY '* Xkmper
    z = Rk * UZ '* Xkmper

    Xdot = Rdot * UX
    Ydot = Rdot * UY
    Zdot = Rdot * UZ

    Xdot = RVdot * VX + Xdot
    Ydot = RVdot * VY + Ydot
    Zdot = RVdot * VZ + Zdot


    Form1.List2.AddItem ""
    Form1.List2.AddItem "x: " & x
    Form1.List2.AddItem "y: " & y
    Form1.List2.AddItem "z: " & z
    Pos(0) = x
    Pos(1) = y
    Pos(2) = z


    Form1.List2.AddItem ""
    Form1.List2.AddItem "Vx: " & Xdot
    Form1.List2.AddItem "Vy: " & Ydot
    Form1.List2.AddItem "Vz: " & Zdot
    Vel(0) = Xdot
    Vel(1) = Ydot
    Vel(2) = Zdot


    End Sub
    </pre></pre>
親記事 /過去ログ94より / 関連記事表示
削除チェック/

■56204  Re[1]: cからVB6に移植お願い
□投稿者/ επιστημη -(2011/01/04(Tue) 21:51:42)
>
    > 誰か移植できる方、お願いできませんか?

    移植が正しいか検証するためのテストコードを提供していただけますか?
記事No.56203 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56219  Re[2]: cからVB6に移植お願い
□投稿者/ マサヤ -(2011/01/05(Wed) 09:40:06)
    計算式のところで0が消えてるみたいですが、これってC++じゃないでしょうか?
    >VB6でないと読めない。
    とは、かめさんのことですよね?「私はVB6以外は理解できません」、とした方がわかりやすいです。
    C++からc#に移植をしたい、と。
    それで、工数はいかほどでしょうか?
記事No.56203 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56222  Re[3]: cからVB6に移植お願い
□投稿者/ shu -(2011/01/05(Wed) 12:26:14)
    /*


    */
    これは複数行のコメント


    //〜
    これはここから行末までコメント


    rr1[3]
    これは大きさ3の配列(インデックスは0〜2)
    代入、参照はrr1[0]のように書く


    void Satellite :: rv2el(double* rr, double* vv)
    これは Subだと思えばいい、::の前はクラス名なのであまり考えなくてもよい。
    double* rr => Byref rr as doubleまたはByRef rr() as doubleと考えればよい
    今回は配列なので後者


    if (〜) 〜;
    これは if 〜 then 〜 と同じ(1行if文)


    if (〜) {


    }
    複数行のif文


    for(int i = 0; i < 2; i++)
    {


    }
    for i = 0 to 1 '<--- 2でなく1
    Next
    と同じ


    n[0] == 0. && n[1] == 0.
    == で等しいか判断しているVBでは=
    && は and と同じ
    0. は 0.0 と同じ


    xnodek += twopi
    はxnodek = xnodek + twopi と同じ
    i++, ++i は i= i+1 とだいたい同じ


    ざっと見てこれだけ分かればなんとかなるんじゃないかな?
記事No.56203 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56232  Re[4]: cからVB6に移植お願い
□投稿者/ shu -(2011/01/06(Thu) 08:40:14)
    もとの内容を全部書き換えたらなんだか分かりませんよ。

    掲示板の使い方が分からなければ書き換える前に新しいトピックで
    使い方を確認する内容を書き込めば良いかと思います。よくある掲示板と
    書き方が異なるとも思えませんが。
記事No.56203 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56237  Re[5]: cからVB6に移植お願い
□投稿者/ マサヤ -(2011/01/06(Thu) 12:33:21)
    何を作りたいか、設計されてますか?
    【人工衛星の打ち上げシュミレーションプログラム】
    必要な情報
    ・発射地点の緯度、経度
    ・打ち上げ方位
    ・打ち上げ角度
    ・打ち上げ速度
    などなど

    で、それらの情報をもとに、衛星軌道面の真近点角の計算とか衛星軌道面の離心近点角の計算とかするのですよね?
    リプレース元の設計書がなかったらご自分で詳細設計をなさることをお勧めします。
    その上で、メソッドの書き方など不明な点がございましたらご質問願います。
    どこまで理解して、どこがわからないかを明記願います。
記事No.56203 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56239  Re[6]: cからVB6に移植お願い
□投稿者/ PATIO -(2011/01/06(Thu) 13:51:16)
    たぶん、一番下の所に返信用のフォームがある事に気がついていないのかなと思います。

    書き込まれた内容からすると何とか読めたのかのカナと思いますので
    頑張ってプログラムを仕上げられてください。
    まるっと移植お願いしますではなくて、この部分が分からないのですかなら
    それなりにレスもつくと思います。
    自分なりに解釈してやって見た結果と一緒に相談されると良いかなと思います。
記事No.56203 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56264  Re[7]: cからVB6に移植お願い
□投稿者/ かめ -(2011/01/07(Fri) 09:28:36)
    No56239 (PATIO さん) に返信
    > たぶん、一番下の所に返信用のフォームがある事に気がついていないのかなと思います。
    >
    > 書き込まれた内容からすると何とか読めたのかのカナと思いますので
    > 頑張ってプログラムを仕上げられてください。
    > まるっと移植お願いしますではなくて、この部分が分からないのですかなら
    > それなりにレスもつくと思います。
    > 自分なりに解釈してやって見た結果と一緒に相談されると良いかなと思います。
    >

    ありがとうございます。
    掲示板の使用法に関して、まだうといのでご勘弁を・・・。
    「自分なりに」移植してやってみました。E(離心率)のところで1以上となりオープンオービットでexitしてしまいました。何処がおかしいのかわからない。公開ソースには、エラーが有るのかな?


    マサヤ様へ

    打ち上げシュミレーションですが、http://homepage3.nifty.com/kubota01/BallisticMissile01.htm
    から、ルンゲタック法等を引用しました。こんな知識のある方は
    「はやぶさ」なんか簡単にシュミレートできるでしょうから、平和的なプログラムを公開してくらないですかね。
    私のプログラムではアポジペリジでの加速又は減速による軌道変更も出来るようになりました。
    準天頂衛星軌道擬き、なんかも表示する事が出来ました。
    で、周回軌道中の飛翔体の軌道要素を算出表示したいと思っていました。
    空間座標及びベクトルが既知ですので、これからケプラー軌道要素を算出するつもりでした。
    ここで、引っかかってしまったわけです。

    将来、どれくらい先になるのかわかないけど、
    ■打ち上げ時の空気抵抗を加味する。
    ■打ち上げ時の重量と比推力をより細かにシュミレートする。
    ■宇宙での発生推力を細かにシュミレートするため他のロケットも考える。
    ■2段ロケットで周回軌道に乗ったけど、今後の燃料を考え3段にする。
    ■地球脱出速度まで加速、また、スイングバイなんかも計算させて、
    ■太陽系の他の天体までの軌道変更シュミレートする。
    とコツコツと、やっていきたいと考えています。
    又面白いMathがでてきたら、寄り道してしまうけどね・・。
    JAXAは、完璧な打ち上げ、軌道変更、大圏再突入なんか出来ているんでしょうけど、
    その知識を少し公開してくれないかなと思ったりしています(笑)。










記事No.56203 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56270  Re[8]: cからVB6に移植お願い
□投稿者/ 魔界の仮面弁士 -(2011/01/07(Fri) 11:11:31)
    2011/01/07(Fri) 11:12:48 編集(投稿者)
    No56264 (かめ さん) に返信
    >> cからVB6に移植お願い
    >> 分類:[C#] 
    C# と C と C++ は別の言語ですよ。
    今回の場合、分類として [C#] を選択するのではなく、
    [C/C++]、[VB6 以前] あたりの方が良かったかも。


    >> Private Sub Command1_Click()
    >>   CalcKeplar 'TLE→Pos,Vel
    >>   RVel Pos, Vel 'Pos,Vel→TLE
    >> End Sub

    この手のプログラムを書くのであれば、各モジュールの先頭には
    『Option Explicit』宣言を必ずつけておくことをお奨めします。

    グローバル変数があちこちで使われた Coding Horror な状況ですが、
    コメントから予想すると、
     Pos → position、x,y,zの位置を表す 0〜2の配列?
     Vel → velocity、位置vector座標を表す 0〜2の配列?
     TLE → Two-line elements フォーマットのこと?
    でしょうか? (違うかも)


    > Public Sub CalcKeplar()
    >   Dim Rad#, Pi#
    >   Pi = 3.14159265358979
    >   Rad = 0.0174532925
    有効桁数の揺れが気になりますが、それはさておき。

    これらは固定値でしょうから、Const にした方が良いかと思います。

    あるいは、Sub Main あたりで
     Pi = 4 * Atn(1)
     Rad = Pi / 180
    として事前に算出しておく手もありますが。


    > 掲示板の使用法に関して、まだうといのでご勘弁を・・・。
    投稿前に、掲示板の利用規約を読んでおいてください。半角カナの利用は禁止されていますよ。
    http://bbs.wankuma.com/index.cgi?mode=man


    > E(離心率)のところで1以上となりオープンオービットでexitしてしまいました。
    状況がさっぱり伝わってきません。(^^;

    No56203 の VB6コード(2011/01/05 20:22:03 編集)を見ながら読んでみましたが、
     ・Command1_Click 内で呼び出されている RVel プロシージャが、その中で
      どのような処理を行っているのか不明なので、第三者が問題点を再現できません。
     ・No56264 で書かれた『E(離心率)』というのは、変数 E の事を指しているのだろうか?
      しかし、これが変数 E が 1.0 以上の値になってしまうという意味だと仮定しても、
      この変数への代入は、Form の Load イベントで行われているのみであり、
      値が書き換えられている様子は無いので、1 以上になる状況を想像しにくい。
      (掲載されていない部分で書き換えられているかも知れませんが…)
     ・ここでいうところの『オープンオービット』の意味が説明されていない。
     ・ここでいうところの『exit』が何を意味しているのか曖昧である。
      (Exit Sub/Exit Functionステートメントの意味? それとも何かの用語?)
    という感じで、質問文の様相を呈していないように見えます。


    > 何処がおかしいのかわからない。
    アルゴリズムを理解できていないという事でしょうか?
    それとも、計算方法は分かっているが、それを自力で VB6 のコードにできない状況でしょうか?
    あるいは、とりあえずコーディングできたが、期待と異なる動作をしているのでしょうか?


    > 公開ソースには、エラーが有るのかな?
    元のコードに不具合があるかどうかは、事前に調査されていないのでしょうか?

    そのような状況であれば、元のソースコードの各行がどのような処理を意図しているのか、
    それぞれの意味を理解してから移植を進めた方が良いと思いますよ。そうしないと、
    移植作業に問題があったのか、元コードのアルゴリズムに問題があったのか、あるいは
    それ以外の要因(演算誤差等)なのかを判断できないでしょうし。


    > 打ち上げシュミレーションですが、
         シミュレーション
    http://www.tt.rim.or.jp/~rudyard/kaego002.html


    > から、ルンゲタック法等を引用しました。
    ルンゲ・クッタ法の事?
記事No.56203 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56277  Re[9]: cからVB6に移植お願い
□投稿者/ かめ -(2011/01/07(Fri) 15:09:34)
    No56270 (魔界の仮面弁士 さん) に返信


    >>打ち上げシュミレーションですが、
    >      シミュレーション
    > http://www.tt.rim.or.jp/~rudyard/kaego002.html
    なんですね。驚きました。

    >>から、ルンゲタック法等を引用しました。
    > ルンゲ・クッタ法の事?
    あまり聞き慣れない計算法なので、間違いばかりでした。
    すみませんでした。
記事No.56203 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56285  継承元フォームからErrorProviderを取得する方法
□投稿者/ jose -(2011/01/07(Fri) 20:14:28)

    分類:[C#] 

    いつもお世話になっております。joseと申します。

    各WindowsフォームはFormを継承したBaseFormを基底クラスとしており、
    このBaseFormから各Windowsフォームに配置したErrorProviderを取得
    したいと思っております。

    通常のButtonやTextBoxでしたらBaseFormのControlsプロパティより取得でき、
    また各Windowsフォームからでしたらcomponentsフィールドの中に格納されて
    いるのを確認しました。が、componentsフィールドはprivateなため、
    BaseFormからは参照ができません。

    何か良い方法がありますでしょうか。
親記事 /過去ログ94より / 関連記事表示
削除チェック/

■56290  Re[1]: 継承元フォームからErrorProviderを取得する方法
□投稿者/ Azulean -(2011/01/07(Fri) 22:58:07)
    No56285 (jose さん) に返信
    > 通常のButtonやTextBoxでしたらBaseFormのControlsプロパティより取得でき、
    > また各Windowsフォームからでしたらcomponentsフィールドの中に格納されて
    > いるのを確認しました。が、componentsフィールドはprivateなため、
    > BaseFormからは参照ができません。

    そもそも、継承先のクラスで定義された新たなメンバーは、基本的に継承元のクラスから見ることはできません。
    BaseForm から AForm を作っている場合、AForm で新しく定義されたメンバーは BaseForm から見ることはできません。
    Controls が見えるのはあくまで、BaseForm の継承元をたどっていった先にあるの Control クラスの public のプロパティであるからです。


    > 何か良い方法がありますでしょうか。

    なぜ、継承先のコントロール、コンポーネントを知る必要があるのですか?
    それを明らかにせず、良い方法を求められても答えようがありません。

    共通のコントロール、処理があるのであれば、BaseForm に実装し、各継承先フォームではその処理を呼び出す、利用するようにすれば良いでしょう。
    BaseForm に配置するが、各継承先でコントロールの座標を変えたいのであれば、BaseForm に配置したコントロールの Modifiers プロパティを Protected にすると良いでしょう。
    (BaseForm に errorProvider1 をおいて、Modifiers を Protected にすると、継承先フォームでも BaseForm の errorProvider1 を利用できたりします)
記事No.56285 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56284  ウイルス対策についてwindowsXPからの警告
□投稿者/ 高木 -(2011/01/07(Fri) 19:31:27)

    分類:[Windows 全般] 

    windowsセキュリティセンターからウイルス対策に対して警告がでるようになりました。フリーのウイルスソフト(kingソフト)を導入しており、定義ファイルも最新になっているのですが、ナゼなのかわかりません。
親記事 /過去ログ94より / 関連記事表示
削除チェック/

■56287  Re[1]: ウイルス対策についてwindowsXPからの警告
□投稿者/ オショウ -(2011/01/07(Fri) 21:30:53)
    No56284 (高木 さん) に返信
    > windowsセキュリティセンターからウイルス対策に対して警告がでるようになりました。
    > フリーのウイルスソフト(kingソフト)を導入しており、定義ファイルも最新になっている
    > のですが、ナゼなのかわかりません。

      因みに、マイクロソフト社からも無償で出ているので
      それを導入しているPCもあります。

      Microsoft Security Essentials
      http://www.microsoft.com/security_essentials/?mkt=ja-jp

    以上。参考まで
記事No.56284 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56291  Re[1]: ウイルス対策についてwindowsXPからの警告
□投稿者/ Azulean -(2011/01/07(Fri) 23:00:50)
    No56284 (高木 さん) に返信
    > フリーのウイルスソフト(kingソフト)を導入しており、定義ファイルも最新になっているのですが、ナゼなのかわかりません。

    Windows XP はウィルス対策ソフトを検知して警告を抑制するのではありません。
    ウィルス対策ソフト側が Windows XP に通知することで、Windows XP はウィルス対策ソフトがあることを認識するのです。
    よって、ウィルス対策ソフト側がそういった仕組みを持っていなければ、警告が自動的に消えることはありません。


    なお、この仕組みは NDA 対象になっているため、ウィルス対策ソフトの開発者が Microsoft と契約しなければ、その実現方法を知ることはできません。
    私は、契約の条件などは存じませんので、フリーソフトでそれが実現可能かも存じません。
記事No.56284 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56174  marshal.hが見つかりません
□投稿者/ まかろに -(2011/01/03(Mon) 00:33:42)

    分類:[C++/CLI] 

    文字列の変換で marshal_as を使いたいのですが
    普通にインクルードしようとしてもmarshal.hが見つかりません。
    検索しても引っかかりませんでした。
    このファイルはどこにあるんでしょうか?

    よろしくお願い致します。

    [環境]
    WindowsXP
    Visual Studio 2005
親記事 /過去ログ94より / 関連記事表示
削除チェック/

<前の20件 | 次の20件>

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 >>

ヒット件数が多いので過去ログ1〜94 までの検索結果 / 過去ログ95からさらに検索→

パスワード/

- Child Tree -