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

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

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

全過去ログを検索

<< 0 >>
■14695  Re[19]: パネル内の座標値、そして座標値の範囲を設定す
□投稿者/ 魔界の仮面弁士 -(2008/02/25(Mon) 15:40:03)
    No14692 (Tetsu さん) に返信
    > private void button1_Click(object sender, EventArgs e)
    > {
    >   panel2.Paint += panel2_Paint;
    >   panel2.Invalidate();
    > }
    クリックするたびに、Paint イベントを割り当ててはマズイと思いますよ。
    最初に一度だけ割り当てておけば十分です。
    
    ここでは -= せずに、+= ばかり繰り返していますので、一度の
    再描画要求に対し、同じ描画処理が複数回繰り返されてしまっています。
    
    
    No14463のコードは、「Paint で処理する場合/何も処理しない場合」を
    切り替えているからあのようなコードになっているのであって、
    今回のように、常に自分で描画したい場合には当てはまりません。
    
    
    > //座標値を得て、描画をさせるメソッドを呼び出す
    > this.myDraw.DrawMovingObjects();
    > panel2.Invalidate();
    座標値を得るまでは良いですが、実際の描画処理は Paint に記述してください。
    Invalidate メソッドを呼び出せば、Paint イベントも連動して発生します。
    
    逆に、Paint イベントを使いたく無いのであれば、座標値を得た後、
    画像を Bitmap クラスにして、それを BackgroundImage に割り当てましょう。
    
    
    座標データが変更されたタイミングは、DrawingMOD クラスで
    把握できるでしょうけれども、描画すべきタイミングを
    把握できるのは、(DrawingMOD ではなく)コントロール自身です。
    
    
    
    > PaintEventArgs e = new PaintEventArgs(m_control.CreateGraphics(), m_control.ClientRectangle);
    上記のコードでは、Graphics の破棄処理が抜け落ちています。
    もしも CreateGraphics するのであれば、作成した Graphics は、
    呼び出し元が責任を持って破棄しなくてはいけません。
    
    また、そもそも Paint イベントとは、スクロールした場合などに応じて、
    OS が「再描画が必要になった」事を知らせるために発生させるものです。
    プログラムから発生させたいのであれば、Invalidate/Update/Refresh 等を
    使うべきであって、外部から CreateGraphics して呼び出すような物ではありません。
    http://dobon.net/vb/dotnet/control/refreshupdateinvalidate.html
記事No.14280 のレス /過去ログ31より / 関連記事表示
削除チェック/

■17538  Re[4]: ユーザーコントロールからObjectDataSourceへ
□投稿者/ PPP -(2008/04/26(Sat) 22:20:27)
    No17536 (ネタ好き さん) に返信
    > >■No17520 (PPP さん) に返信
    >
    > そもそも無闇にオブジェクト参照を晒すのは危ない行為です。
    > こんなふうにするとよいと思います。
    >
    > pubiic class FooControl : UserControl {
    > private TextBox Joken;
    >
    > public string JokenText {
    > get { return Joken.Text }
    > set {
    > //妥当性をチェックする
    > Joken.Text = value;
    > }
    > }
    > }

    はい。一応それは認識しておりましたが、ControlParameterがControlIDとPropertyNameの設定が必要な為、コントロール自体を
    公開する必要があるのかと思い設定しました。
    しかし現状はプロパティの公開はせず、WebUserControl1$Jokenをそのまま書き込んでいます。

    <asp:ControlParameter ControlID="WebUserControl1$Joken" Name="hoge" PropertyName="Text" Type="String" />
記事No.17520 のレス /過去ログ35より / 関連記事表示
削除チェック/

■23720  Re[5]: VS2005 Pro & Express の共存は可能?
□投稿者/ DD. -(2008/08/20(Wed) 16:08:15)
    >一応、XNA-GS2.0に関して、
    >Express限定ではなくなったことに関する記事を貼っときます。
    公式の分も。
    ttp://msdn.microsoft.com/ja-jp/xna/cc676825.aspx
記事No.23700 のレス /過去ログ44より / 関連記事表示
削除チェック/

■23719  Re[6]: Tableの位置ずれ、お気に入りのアイコンの設定方法について
□投稿者/ もょもと -(2008/08/20(Wed) 16:06:55)
    nowrapで自動改行を禁止してみてはどうでしょうか。
記事No.23618 のレス /過去ログ45より / 関連記事表示
削除チェック/

■30360  画面遷移時にPage_Loadが呼ばれる?
□投稿者/ hy -(2008/12/22(Mon) 13:53:24)

    分類:[ASP.NET (VB)] 

    お世話になります。

    フォームAとフォームBの2画面のWebアプリケーションを
    作成しております。(Asp.NET)
    AからBへ遷移し、BではAで設定した値を表示。
    そして、Bでその値を変更し、Aに戻り、変更値を表示する
    といったオペレーションです。
    Aのaspx.vbのPage_Loadに、戻ってきたときに値を
    再表示するコードを書きましたが、どういうわけか
    AからBに遷移する際にこのコードが実行されて
    エラーになります。
    フォームAが表示されるときにPage_Loadが呼ばれ、
    さらにBに遷移するさいにもAのPage_Loadが呼ばれています。
    ページ遷移はServer.Transferで行っております。
    なぜ、遷移時にもPage_Loadが呼ばれているのでしょう?

    私が何か勘違いしているのだと思
    いますが、お教えください。
親記事 /過去ログ54より / 関連記事表示
削除チェック/

■46262  Re[4]: MVP Global Summit視察ツアーの準備
□投稿者/ やじゅ -(2010/01/29(Fri) 00:22:40)
>
    No46261 (はつね さん) に返信
    > タイトルと質問内容がちがうとか、掲示板でびしばし回答しているやじゅさんらしくないですね><
    決して違うとは思わないです、視察ツアーの準備する上で、必要なものを揃えたいだけです。
    やはり不安がありますし、経験ある方に聞くのも必要だと思いました。
    本当は名前を変えて投稿しようかとも考えましたけど…

    > 一般的な海外旅行であれば、行き先の地域の旅行ガイドとかそのあたりを読むのがいいと思います。
    > 電源や気候、治安情報(これは外務省のHPが最新)。
    > 飛行機の乗り方とか注意点とか、とにかく初めてならば、気が付かずに掲示板で質問することすら
    > 浮かばないわからないこともあるかもしれないので、ガイドブック読みましょう。

    そうですね、とりあえずガイドブックは買ってみます。
記事No.46255 のレス /過去ログ78より / 関連記事表示
削除チェック/

■68009  Re[1]: DataTableでMerge
□投稿者/ Hongliang -(2013/09/15(Sun) 12:34:28)
    > 「<target>.YMD と <source>.YMD は競合するプロパティがあります : DataType プロパティの不一致」
    って言われてるのですから、まず疑うのはYMD列の型(DataTypeプロパティ)が一致しているかどうかでしょう。
    片方はDateTimeでもう片方はStringだったとか。
記事No.68008 のレス /過去ログ115より / 関連記事表示
削除チェック/

■73208  Re[4]: Windows8での動作が遅くなった
□投稿者/ 魔界の仮面弁士 -(2014/08/28(Thu) 17:54:17)
    No73205 (774RR さん) に返信
    > とか考えられるわけだけど、そういう情報があるか無いかだと知らないなあ・・・

    ・常駐ソフトが増えたため、メモリ不足で SWAP するよういになった。
    ・ドライブの空き容量が不足している。
    ・USBストレージやネットワークドライブ等、低速なドライブが増設された。
    ・アクセス権を管理しているドメインサーバーの応答が悪くなっている。
    ・EXE のロジックは変更していないが、電子署名を付与したために、
     起動時の失効確認チェックで外部ネットワークへの接続が発生するようになった。
    ・ディスクの不調などで、ディスク読み込みの再試行が不定期に発生している。
記事No.73202 のレス /過去ログ122より / 関連記事表示
削除チェック/

■85811  Re[4]: 指数表記する方法
□投稿者/ 魔界の仮面弁士 -(2017/11/26(Sun) 19:36:47)
    No85807 (ちゃんころ さん) に返信
    > Public Const diele As Single = 8.85418782E-12#
    > というのが
    > Public Const diele As Single = 0.00000000000885418782
    > というのに変わってしまいます。
    
    VB のエディタは、極力、小数表記で記述しようとするためです。
    その境目となるのは、おそらく指数部の桁数でしょう。
    
    Double 型リテラルの場合、E+14〜E-16 の範囲は小数表記、その範囲外が指数表記になり、
    Single 型リテラルの場合、E+6〜E-8 の範囲が小数表記、その範囲外が指数表記になります。
    Decimal 型リテラルはの場合は、すべて小数表記にフォーマットされます。
    
    
    > どうすれば良いですか?
    
    今回の「8.85418782E-12」という表現からして、有効桁数 9 桁の値を表現したいようですが、
    Hongliang さんから指摘のあるとおり、Single 型ではこの精度の値を扱うことはそもそも出来ません。
    どう修正すべきかは、求める要件によって変わりますが、有効桁数 9 桁が本当に必要なら、
    As Double にするか、As Decimal にする必要があるでしょう。
    
    より正確に言えば、
    Double 型の仮数部の幅は、53+1ビット≒15.95 桁分であるのに対し、
    Single 型の仮数部の幅は、23+1ビット≒7.225 桁分しかないということです。
    ちなみに Decimal 型の場合は 96 ビット幅なので、約 28.89888 桁です。
    
    有効桁数 9 桁の値を Single 型で管理するには有効桁数が不足してしまい、
    どうあっても、格納時には近似値に丸められることになるでしょう。
    
    確認のため、「8.85418782E-12」相当の近似値を Single 型で表現してみましょうか。
    先に言っておくと、誤差が最小になるのは 3 番です。
    
    《Single のバイナリ表現》
    1: 0b00101101000110111100001110110110
    2: 0b00101101000110111100001110110111
    3: 0b00101101000110111100001110111000
    4: 0b00101101000110111100001110111001
    5: 0b00101101000110111100001110111010
    
    《上記を 10進小数で表現した値》
    1: 0.00000000000885418648122193729932405403815209865570068359375
    2: 0.000000000008854187348583675287727601244114339351654052734375
    3: 0.000000000008854188215945413276131148450076580047607421875
    4: 0.000000000008854189083307151264534695656038820743560791015625
    5: 0.00000000000885418995066888925293824286200106143951416015625
    
    
    ちなみに上記を diele.ToString("R") でラウンドトリップ出力した場合、
    1: 8.85418648E-12
    2: 8.854187E-12
    3: 8.854188E-12
    4: 8.854189E-12
    5: 8.85419E-12
    となります。
    
    いずれも E-8 を下回る指数表現であるため、この場合は自動変換が起こりません。
     Public Const Sample1 As Single = 8.85418648E-12F
     Public Const Sample2 As Single = 8.854187E-12F
     Public Const Sample3 As Single = 8.854188E-12F
     Public Const Sample4 As Single = 8.854189E-12F
     Public Const Sample5 As Single = 8.85419E-12F
    
    もともと扱おうとしていた「8.85418782E-12F」という値は、
    2 番と 3 番の間になり、Single の精度では表現しきれません。
    そのため、より近い値である 3 番の表記に変換されたということです。
    (有効桁数ってそういうものですよね)
    
    
    > Doubleでも試してみたのですが
    
    同様に、「8.85418782E-12」の Double 値による近似値表現を見てみます。
    こちらの場合は、3 番が同一値となります。(格納誤差はありません)
    
    
    《Double のバイナリ表現》
    1: 0b0011110110100011011110000111011011110001011001000110011010111010
    2: 0b0011110110100011011110000111011011110001011001000110011010111011
    3: 0b0011110110100011011110000111011011110001011001000110011010111100
    4: 0b0011110110100011011110000111011011110001011001000110011010111101
    5: 0b0011110110100011011110000111011011110001011001000110011010111110
    
    《上記を 10進小数で表現した値》
    1: 0.0000000000088541878199999971451928483766392647021092887626991796423681080341339111328125
    2: 0.00000000000885418781999999876077998226927144218532939046184537801309488713741302490234375
    3: 0.000000000008854187820000000376367116161903619668549492160991576383821666240692138671875
    4: 0.00000000000885418782000000199195425005453579715176959386013777475454844534397125244140625
    5: 0.0000000000088541878200000036075413839471679746349896955592839731252752244472503662109375
    
    《R 書式によるラウンドトリップ出力》
    1: 8.8541878199999971E-12
    2: 8.8541878199999988E-12
    3: 8.85418782E-12
    4: 8.854187820000002E-12
    5: 8.8541878200000036E-12
    
    
    そして先述した通り、Double 型で E-12 の範囲は小数表記されるため、
     Public Const Sample1 As Double = 8.8541878199999971E-12R
     Public Const Sample2 As Double = 8.8541878199999988E-12R
     Public Const Sample3 As Double = 8.85418782E-12R
     Public Const Sample4 As Double = 8.854187820000002E-12R
     Public Const Sample5 As Double = 8.8541878200000036E-12R
    と書いても
     Public Const Sample1 As Double = 0.0000000000088541878199999971R
     Public Const Sample2 As Double = 0.0000000000088541878199999988R
     Public Const Sample3 As Double = 0.00000000000885418782R
     Public Const Sample4 As Double = 0.000000000008854187820000002R
     Public Const Sample5 As Double = 0.0000000000088541878200000036R
    に変換される結果になりますね。
記事No.85804 のレス /過去ログ147より / 関連記事表示
削除チェック/

■92160  Re[2]: SaveFileDialogでの拡張子指定について
□投稿者/ ポケモンすけ -(2019/08/30(Fri) 11:52:44)
    2019/08/30(Fri) 12:13:14 編集(投稿者)
    2019/08/30(Fri) 12:13:12 編集(投稿者)

    No92153 (furu さん) に返信

    ありがとうございます。やってみました。
    「ファイルの種類」には3パターン表示されますが、
    テキストファイル選択後に拡張子無しファイル1、拡張子無しファイル2を選択しても
    「ファイル名」の欄が更新されず「新しいファイル.txt」のままでした。。。
    が、
    dlg.Filter = "拡張子なし|*..|TEXT|*.txt";
    のようにすれば行けたようです!
    ありがとうございました。
記事No.92152 のレス / END /過去ログ159より / 関連記事表示
削除チェック/

■92161  Re[3]: SaveFileDialogでの拡張子指定について
□投稿者/ 魔界の仮面弁士 -(2019/08/30(Fri) 12:17:24)
    No92160 (ポケモンすけ さん) に返信
    > 「ファイルの種類」には3パターン表示されますが、
    > テキストファイル選択後に拡張子無しファイル1、拡張子無しファイル2を選択しても
    > 「ファイル名」の欄が更新されず「新しいファイル.txt」のままでした。。。

    test1.txt
    test2
    test3.TxT
    test4.TxTokyoMetroPass

    という 4 つのファイルが置いてあるフォルダを用意してみました。

    そして、SaveFileDialog で開いてみたところ、ListView 部に表示される内容は
     FilterIndex == 1 (*.) の場合は、どれも表示されない
     FilterIndex == 2 (*) の場合は、4 ファイルすべてが表示される
     FilterIndex == 3 (*.txt) の場合は、2 ファイルのみ … test1、test3
    という状態になりました。

    一方、コマンドプロンプトから DIR コマンドで確認してみると、
     DIR "*." の場合は 1 ファイルのみ … test2 のみ
     DIR "*" の場合は 4 ファイルすべて
     DIR "*.txt" の場合は 3 ファイル … test1、test3、test4
    という結果になりました。

    # test4 のショートファイル名は "TEST4~1.TXT" だったので、
    # FilterIndex == 3 なら test4 も表示されると思ってた…。



    > 「ファイル名」の欄が更新されず「新しいファイル.txt」のままでした。。。

    「ファイル名」欄はあまり気にしすぎない方が良いかと思いますよ。
    ある程度の拡張子連動機能はありますが、単純な文字列加工処理が
    補助的に行われている程度なのだと思いますし。


    FilterIndex が何であっても、ファイル名欄に「*.*」と書いて Enter すれば
    フィルタ条件に関係なくすべてのファイルが列挙されますので、
    そもそも絶対的な物でもないですよね。

    また、既存のファイルを選択した状態で、そのまま元ファイルをリネームした場合、
    「ファイル名」欄はリネーム前の名前をそのまま保持していますが、
    この状態でダイアログを閉じる際に、新旧どちらの名前が指定されたことに
    なるのかという点が、Windows のバージョンによって異なっていた記憶が…。
記事No.92152 のレス /過去ログ159より / 関連記事表示
削除チェック/

■92162  Re[3]: SaveFileDialogでの拡張子指定について
□投稿者/ 魔界の仮面弁士 -(2019/08/30(Fri) 12:26:15)
    No92160 (ポケモンすけ さん) に返信
    > dlg.Filter = "拡張子なし|*..|TEXT|*.txt";
    > のようにすれば行けたようです!

    実行環境に依存するのかな…?
    当方環境では、期待動作していないように見えます。


    No92161 の 4 ファイルのあるフォルダを、その条件で開いてみたら、
    ListView の表示は
     FilterIndex == 1 (*..) の場合は、どれも表示されない
     FilterIndex == 2 (*.txt) の場合は、2 ファイルのみ … test1、test3
    となって、肝心の test2 が表示されませんでした。


    また、FilterIndex == 1 が選択された状態で、
    ファイル名欄 に、"abc.xyz" という存在しないファイル名を書いた状態で
    FilterIndex == 2 に切り替えてみたところ、"abc.xyz" が "abc.xyz.txt" となり、
    さらに、FilterIndex == 1 にすると、"abc.xyz.txt" が "abc.xyz.." になり、
    再度、FilterIndex == 2 にすると、"abc.xyz.." が "abc.xyz...txt" になるという
    事象が発生しました。
記事No.92152 のレス /過去ログ159より / 関連記事表示
削除チェック/

■92256  Re[4]: SaveFileDialogでの拡張子指定について
□投稿者/ ポケモンすけ -(2019/09/05(Thu) 12:59:12)
    No92162 (魔界の仮面弁士 さん) に返信
    > ■No92160 (ポケモンすけ さん) に返信
    >>dlg.Filter = "拡張子なし|*..|TEXT|*.txt";
    >>のようにすれば行けたようです!
    >
    > 実行環境に依存するのかな…?
    > 当方環境では、期待動作していないように見えます。
    >
    >
    > No92161 の 4 ファイルのあるフォルダを、その条件で開いてみたら、
    > ListView の表示は
    >  FilterIndex == 1 (*..) の場合は、どれも表示されない
    >  FilterIndex == 2 (*.txt) の場合は、2 ファイルのみ … test1、test3
    > となって、肝心の test2 が表示されませんでした。
    >
    >
    > また、FilterIndex == 1 が選択された状態で、
    > ファイル名欄 に、"abc.xyz" という存在しないファイル名を書いた状態で
    > FilterIndex == 2 に切り替えてみたところ、"abc.xyz" が "abc.xyz.txt" となり、
    > さらに、FilterIndex == 1 にすると、"abc.xyz.txt" が "abc.xyz.." になり、
    > 再度、FilterIndex == 2 にすると、"abc.xyz.." が "abc.xyz...txt" になるという
    > 事象が発生しました。

    魔界の仮面弁士様

    申し訳ありません。
    ご指摘のとおり、「ファイル名」の欄については更新されないままでした。
    とりあえず拡張子なし、拡張子ありの2パターンで選択、保存までできたので
    現状よしとしておきます
    「ファイル名」については未解決ですが。。。
    ありがとうございました。
記事No.92152 のレス /過去ログ159より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -