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

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

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

全過去ログを検索

<< 0 >>
■13746  Re: UserControl タブオーダーについて
□投稿者/ 魔界の仮面弁士 -(2008/02/04(Mon) 11:18:59)
    2008/02/04(Mon) 11:33:24 編集(投稿者)

    # 魔界さんって…。(悲)

    No13745 (しほちゃん★ さん) に返信
    > .exeファイルを実行してみましたが「→」できませんでした。ユーザーコントロール内での移動はできません。

    フォーム上に、コントロールが

    [1-1]  [3-1]  [5-1]
    [1-2]  [3-2]  [5-2]
    [1-3]  [3-3]  [5-3]

    [2-1]  [4-1]  [6-1]
    [2-2]  [4-2]  [6-2]
    [2-3]  [4-3]  [6-3]

    のように並んでいるかと思いますが、「→」を押すごとに、UserControl 内で
    [*-1]→[*-2]→[*-3] と進み、さらに押すと、次の UserControl に進むように
    したつもりですが……そういう事では無いのかな?

    # 「↓」の場合は、UserControl 単位で [1-1]→[2-1]→[3-1]と進みます。


    --- 以下追記 ---
    No13698 のサンプルだと、UserControl の範囲が分かりにくいかも知れないので、
    サンプル中の UserControl 継承クラスに対して、下記を追加しておいてください。(本題とは無関係)

    Protected Overrides Sub OnEnter(ByVal e As EventArgs)
     BackColor = Color.Cyan
     MyBase.OnEnter(e)
    End Sub
    Protected Overrides Sub OnLeave(ByVal e As EventArgs)
     ResetBackColor()
     MyBase.OnLeave(e)
    End Sub
記事No.13685 のレス /過去ログ29より / 関連記事表示
削除チェック/

■42597  Re[7]: GUIでActiveXコントロールを作成する方法
□投稿者/ ジェット -(2009/10/19(Mon) 10:23:10)
    No42556 (Atata!! さん) に返信
    > Atata!!です。
    >
    > 適切にレジストリを構成すれば、VB.NETやC#でもActiveXコントロールの開発は可能です。
    >
    > System.Windows.Forms.Controlクラスには、ActiveXコントロールとして動作するための機能が実装されています。
    > そのため、プロジェクトをWindowsコントロールライブラリとして作成し、相互運用機能に登録できるようにした後、
    > レジストリを構成するコードを書き足すだけでActiveXコントロールとして動作します。
    >
    > 必要となるキーは対象とするActiveXコントロールのコンテナにもよりますが、大体以下のキーを追加すれば問題ないはずです。
    > ・Control
    > ・TypeLib
    > ・Version
    >

    Atata!!さん

    ご回答ありがとうございます。

    VB.NETやC#でもActiveXコントロールを作成できるということで、
    とても良い情報を教えて頂くことができました。
    ありがとうございます。

    > 必要となるキーは対象とするActiveXコントロールのコンテナにもよりますが、大体以下のキーを追加すれば問題ないはずです。
    > ・Control
    > ・TypeLib
    > ・Version

    これはどのようなことをすれば良いのでしょうか?
    Visual Studioを起動して、「Windows コントロール ライブラリ」を選択して、
    コントロールを作りますよね?
    そのあとで、キーというのを追加するのでしょうか?

    >相互運用機能に登録できるように・・・
    というのは、プロジェクトのプロパティから
    [ビルド]⇒[COMの相互運用機能の登録]に対してチェックを入れるのだなと理解できました。

    私の操作手順はC#2005でやりましたが、
    C#2008もありますので、どちらでご説明頂いても構いません。

    キーを追加するというのは、ソースに何か書くのでしょうか?

    もう少し詳しくご説明頂けませんか?
    ぜひよろしくお願いいたします。
記事No.42505 のレス /過去ログ73より / 関連記事表示
削除チェック/

■43797  Re[5]: ListView1_MouseWheelでのVistaとXP
□投稿者/ とし -(2009/11/19(Thu) 09:45:39)
    No43795 (オショウ さん) に返信
    オショウ様、ご回答どうもありがとうございます。
    こちらでテストした 4台PCとも IBM(Lenovo)純正オプティカルマウス
    で、ドライバもWindows標準になっております。
    グラフィック関連のドライバとか関係するのでしょうか?
記事No.43710 のレス /過去ログ75より / 関連記事表示
削除チェック/

■53256  Re[2]: プロバイダの選択
□投稿者/ りく -(2010/09/08(Wed) 12:09:53)
記事No.53144 のレス /過去ログ89より / 関連記事表示
削除チェック/

■66951  地図ビューワの開発
□投稿者/ 初心者S -(2013/06/11(Tue) 10:49:56)

    分類:[.NET 全般] 

    はじめまして。
    今までVisualBasic.net(2010)での開発の経験しかないのですが、以下のようなソフトを作成したいと考えているのですが、VBで開発すべきか、C# や C++ などで開発したほうがいいのか悩んでいます。
    各言語の特徴などはwebで調べたのですが、いまいちどの言語で進んでいけばよいのか決めきれません。
    アドバイスよろしくお願いいたします。
    (ソフト内容)
    土地の境界の様子を画面表示するソフトで、拡大、縮小、画面移動の機能。
    また、各土地は閉図形として認識され土地をクリックすると、土地の詳細情報(所有者、面積など)が表示されるような
    簡易ビューワーのようなものを作りたいと考えています。
    いづれは、土地の検索機能や、条件着色などもできるようにしたいです。
親記事 /過去ログ113より / 関連記事表示
削除チェック/

■67446  Re[1]: MDBリレーションシップの削除方法
□投稿者/ 魔界の仮面弁士 -(2013/08/03(Sat) 17:51:19)
記事No.67445 のレス /過去ログ114より / 関連記事表示
削除チェック/

■83764  Windows10のIE11において
□投稿者/ アタ -(2017/04/07(Fri) 13:37:46)

    分類:[ASP.NET (VB)] 

    VS2010 asp.net4.0 VB
    クライアント Win10 64bit IE11

    Server.Transferでパラメータに日本語を使用しページ遷移すると、
    Request.UrlReferrerがNothingになって取得できません。

    XXXXX.aspx?P1=日本語(実際は%XX%)

    直接URLを指定して呼出を防止するために
    上記の処理を入れておりますが、
    取得出来ないため、直接呼出と判断されてしまいます。

    クライアント Win7 64bit IE11では問題ありません。

    何か対応策(代案)はないでしょうか?
    宜しくお願い致します。
親記事 /過去ログ143より / 関連記事表示
削除チェック/

■91539  Re[10]: メモリリークに関して
□投稿者/ 魔界の仮面弁士 -(2019/07/04(Thu) 12:11:33)
    No91538 (kiku さん) に返信
    > AmbientとはフォームのFontを子コントロールが継承する機能であると理解しました。
    > よって、フォームのFontと子コントロールのFontは同じインスタンスである場合がある。

    アンビエントの具体例として:

    .NET Framework の場合、
    デザイン画面で Form に Label を貼って、
    その後で Form の Font を変更すると、
    Label の Font も連動して変更されます。

    このとき、デザイナのプロパティ グリッドを見てみると、
    Form の Font プロパティは変更されて太字表示されていますが、
    Label の Font は細字表示のままとなります。

    Label の Font を意図的に変更すれば、Label の Font プロパティも
    太字で表示されますが、この状態だと、Form の Font に連動しなくなります。


    ところが、.NET Compact Framework の場合、上記の動作が実装されていませんので、
    Compact Framework の実装がアンビエントになっている可能性は低いと予想しています。


    > この実験の結果をどのように理解していいか
    > 正直に言いますと良くわかりませんでした。

    .NET Comapct Framework の Font プロパティの getter は、
    アクセスするたびに、新しい Font インスタンスを
    生成する実装になっている可能性が高いことが伺えます。

    その根拠は、
     var f1 = textBox1.Font;
     var f2 = textBox1.Font;
    において、f1 と f2 が別のインスタンスとなったという点からです。
    (同じインスタンスを返す条件が存在する可能性を否定することは出来ませんが)


    また、No91525 のコードで「get_Font」メソッドの実装状況を調べたところ、
    Font プロパティは Control クラスで宣言されているのみで、
    継承先(Label や Form や ContainerControl 等)でオーバーライドされていないこともわかります。


    という事はすなわち、最初の No91509 にて記述されていた、

    >> this.lbl_serialnumber.Font.Dispose();//★対策追加

    というコードが無価値であるように思うのです。

    Font プロパティにアクセスするたびに新しい Font が生成され、
    それがすぐに破棄されるだけなのではないかと。
    (メモリ負荷等は見ていないので、アンマネージリソースの管理状況までは分かりませんが)


    では、そもそも破棄した Font を使おうとしたらどうなるのか?

    var f1 = new Font(FontFamily.GenericMonospace, 12, FontStyle.Regular);
    var f2 = new Font(FontFamily.GenericMonospace, 12, FontStyle.Regular);
    f2.Dispose();
    button1.Font = f1;
    button2.Font = f2;
    button1.Font.Dispose();



    てっきり ObjectDisposedException が発生するのかと思いきや、そうでは無いようです。

    .NET Compact Framework の場合は、button1 だけが新しいフォントになります。
    button2 の方は以前のフォントのままレンダリングされていました。

    一方 .NET Framework においては、button1 / button2 両方とも
    新しいフォントでレンダリングされました。エラーになることもなく。
記事No.91509 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91540  Re[11]: メモリリークに関して
□投稿者/ kiku -(2019/07/04(Thu) 13:13:14)
    No91539 (魔界の仮面弁士 さん) に返信
    > ところが、.NET Compact Framework の場合、上記の動作が実装されていませんので、
    > Compact Framework の実装がアンビエントになっている可能性は低いと予想しています。

    ありがとうございます。
    アンビエントに関して良く理解できました。

    > .NET Comapct Framework の Font プロパティの getter は、
    > アクセスするたびに、新しい Font インスタンスを
    > 生成する実装になっている可能性が高いことが伺えます。

    解説ありがとうございます。
    確かにgetterで新しいインスタンスを返すのであるならば
    意味ないと思います。

    textBox1.Font = f1;
    上記のsetterで新しいインスタンスが生成されるという
    ことは考えられないでしょうか?
    この考えでもつじつまがあうように思いました。


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

■91541  Re[12]: メモリリークに関して
□投稿者/ 魔界の仮面弁士 -(2019/07/04(Thu) 15:18:05)
    2019/07/04(Thu) 15:29:28 編集(投稿者)

    No91540 (kiku さん) に返信
    > textBox1.Font = f1;
    > 上記のsetterで新しいインスタンスが生成されるという
    > ことは考えられないでしょうか?

    仮に setter でインスタンスが生成されていたとしても、
    それと別に、getter で毎回生成されていることは間違いないかと。


    using (var txt = new TextBox())
    {
     // CE 環境においては "違う" らしい
     MessageBox.Show(ReferenceEquals(txt.Font, txt.Font) ? "同じ" : "違う");
    }
    using (var txt = new TextBox { Font = null })
    {
     // "not null" と表示される
     MessageBox.Show((txt.Font == null) ? "null" : "not null");
    }



    No91539 (魔界の仮面弁士) に追記
    > var f1 = new Font(FontFamily.GenericMonospace, 12, FontStyle.Regular);
    > var f2 = new Font(FontFamily.GenericMonospace, 12, FontStyle.Regular);
    > f2.Dispose();
    > button1.Font = f1;
    > button2.Font = f2;
    > button1.Font.Dispose();
    >
    > .NET Compact Framework の場合は、button1 だけが新しいフォントになります。
    > button2 の方は以前のフォントのままレンダリングされていました。

    違ってました。

    デザイン時に別のフォントを指定してから実行してみると、
    button2 のフォントが変化する様子が確認できたので、
    button2 が「以前のフォントのまま」で変化しないという推察は誤りですね。

    Control.Font プロパティに「Dispose 済みの Font」や「null」が渡された場合、
    『既定のフォントがセットされる』という動作になっているようです。
記事No.91509 のレス /過去ログ158より / 関連記事表示
削除チェック/

■92859  Re[1]: FloorとCeilingの有効桁数に関して
□投稿者/ 魔界の仮面弁士 -(2019/11/03(Sun) 10:58:27)
    2019/11/03(Sun) 11:41:38 編集(投稿者)

    No92856 (ぬこ さん) に返信
    > SingleやDoubleは
    > Integerとは異なり、
    > 1.99999992
    > や3.0000002
    > のような綺麗な整数ではない値をとるはずです。

    まず、そこの認識が間違っています。

    Single や Double は、2 や 3 という整数値なら、誤差なく格納のできる型です。
    小数部がジャスト 0 な整数値なら、Single なら 7 桁までは正確に保持できます。


    > Dim hh2 As Integer = CInt(Math.Floor(4.0! / 2))
    Single や Double は『二進小数』で管理される型なので、
    有効桁数の範囲内に納まるなら、2 で割っても誤差は生じません。

    十進数は「10」を基数としているため、「1÷10」や「1÷100」を誤差なく管理できます。
    でも「1÷3」は、有限桁数においては近似値表現となりますよね。

    三進数は「3」を基数としているため、「1÷3」や「1÷9」を誤差なく管理できます。
    二進数は「2」を基数としているため、「1÷2」や「1÷4」を誤差なく管理できますが
    「1÷10」は、有限桁数において近似値表現となります。


    なお、例示された値についてですが、
    1.99999992 は Single や Double では正確に表現できないため、Single なら
    1.99999988 という近似値(正確には 1.99999988079071044921875 )になってしまうはずです。

    そして Double の場合も、やはりピッタリ同じ値は持てません。
    1.99999992 に近い範囲で、Double 型で表現可能な値に丸められます。
    1.99999991999999915393004812358 … &H3FFFFFFFEA86711A
    1.99999991999999937597465304862 … &H3FFFFFFFEA86711B
    1.99999991999999959801925797365 … &H3FFFFFFFEA86711C
    1.99999991999999982006386289868 … &H3FFFFFFFEA86711D '☆少し小さい値
    1.99999992000000004210846782371 … &H3FFFFFFFEA86711E '★少し大きいが、これがもっとも近い
    1.99999992000000026415307274874 … &H3FFFFFFFEA86711F
    1.99999992000000048619767767377 … &H3FFFFFFFEA867120
    1.99999992000000070824228259880 … &H3FFFFFFFEA867121


    > 有効桁数のようなものが設定されているからなのでしょうか?
    符号ビットと指数部を取り除いた、「仮数部」のみを有効桁として扱うと
    Single 型の有効桁数は 二進小数表現で 23+1 桁。十進数に換算すると約 7.225 桁です。
    Double 型の有効桁数は 二進小数表現で 52+1 桁。十進数に換算すると約 15.955 桁です。

    Integer 型の有効桁数は 二進整数表現で 32-1桁。十進数に換算すると約 9.332 桁で、
    UInteger 型の有効桁数は 二進整数表現で 32桁。十進数に換算すると約 9.633 桁です。


    Integer という型で表現できる数値は、隣り合う数が常にジャスト 1 だけの差を持ちますよね。
    2 の前は 1 ですし、2 の次は 3 です。整数型ゆえ指数部が無いので、
    隣り合う値は常に「2 の 0 乗」すなわち 1 となります。


    それに対し、Single や Double においては、隣り合う値の間隔が一定ではありません。
    その絶対値が 0 に近いほど細かい差を表現でき、
    絶対値が大きくなるほど荒くなり、隣の値の差が広がっていきます。


    Single 型で表現可能な 2 の周辺値はこんな感じ。

    1.99999964237213134765625 … &H3FFFFFFD
    1.99999976158142089843750 … &H3FFFFFFE
    1.99999988079071044921875 … &H3FFFFFFF
    2.00000000000000000000000 … &H40000000 ★ジャスト2
    2.00000023841857910156250 … &H40000001
    2.00000047683715820312500 … &H40000002
    2.00000071525573730468750 … &H3FFFFFF3


    Single 型で表現可能な 200万 の周辺値はこんな感じ。

    1999999.625 … &H49F423FD
    1999999.750 … &H49F423FE
    1999999.875 … &H49F423FF
    2000000.000 … &H49F42400 ★ジャスト200万
    2000000.125 … &H49F42401
    2000000.250 … &H49F42402
    2000000.375 … &H49F42403


    Single 型で表現可能な 20億 の周辺値はこんな感じ。

    1999999616 … &H4EEE6B25
    1999999744 … &H4EEE6B26
    1999999872 … &H4EEE6B27
    2000000000 … &H4EEE6B28 ★ジャスト20億
    2000000128 … &H4EEE6B29
    2000000256 … &H4EEE6B2A
    2000000384 … &H4EEE6B2B


    Single 型で表現可能な 2兆 の周辺値はこんな感じ。

    1999999729664 … &H53E8D4A3
    1999999860736 … &H53E8D4A4
    1999999991808 … &H53E8D4A5 ★2兆マイナス8192
    2000000122880 … &H53E8D4A6 ☆2兆プラス122880
    2000000253952 … &H53E8D4A7
    2000000385024 … &H53E8D4A8
記事No.92856 のレス /過去ログ160より / 関連記事表示
削除チェック/

■102259  Re[1]: OPC UA接続について
□投稿者/ kiku -(2023/08/09(Wed) 09:11:27)
    No102258 (TAKE さん) に返信
    > 今機器とパソコンを繋いでOPC UAで接続しようとしています
    > フリーのソフトの UaExpert と言うソフトを使い通信した事を確認できました
    > 今回c#で通信ソフトを作っています
    > コードは下記の様にしました
    > var client = new OpcClient(opcUrl);
    > client.Connect();
    > var pressure = client.ReadNode(tagName);
    > これを実行するとID がサポートされていませんと出ます
    > Opc.UaFx.OpcException: 'Endpoint does not support the user identity type provided.'
    > これはIDが間違っているだけなんでしょうか
    > 宜しくお願い致します

    UaExpertは使ったことがありますが、
    WinFormアプリからは接続した経験はありません。

    単純に
    client.Connect();で例外が発生したら、opcUrlが怪しい、
    var pressure = client.ReadNode(tagName);で例外が発生したら、tagNameが怪しい、
    と考えるのが妥当かと思います。
記事No.102258 のレス /過去ログ178より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -