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 >>
■90003  Re[3]: マルチディスプレイでの子フォームの表示位置について
□投稿者/ 粗品 -(2019/01/29(Tue) 13:03:29)
    No89996 (魔界の仮面弁士 さん) に返信

    ありがとうございます
    おかげさまで解決しました!

    >
    > FormStartPosition.CenterParent が指定されたフォームをモーダル表示した場合、
    > Load 時に「CenterToParent メソッド」が呼ばれているのですが、
    > FormWindowState.Maximized の状態では、Owner の中央座標への移動が
    > 直ちに行われません。(最大化を解除した時に反映される)
    >

    なるほど、
    確かに最初から最大化を指定していた場合、表示後に最大化を解除したら親の中央ではなく(0,0)に表示されるとは思っていたのですが、
    こういうことだったのですね

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

■90000  Re[11]: リッチテキストボックスでカラー情報をコピーする方法
□投稿者/ 魔界の仮面弁士 -(2019/01/29(Tue) 12:24:57)
    No89998 (イエメン さん) に返信
    > Dim xlApp = CreateObject("Excel.Application")
    起動済みのインスタンスを拾うので、
     Dim xlApp = GetObject( , "Excel.Application")
    にしておいてください。

    GetObject がエラーになる場合は、そもそも Excel が起動していない状態なので
    その場合はそもそも、CutCopyMode を操作する必要がありません。


    もしも複数の Excel.Application インスタンスが生成されていた場合には、
    それらを区別して取得するために、IRunningObjectTable から得る必要が
    あるかも知れませんが……大抵は GetObject だけでなんとかなるはず。



    > CallByName(xlApp, "CutCopyMode", CallType.Method, False)
    それだと
     xlApp.CutCopyMode(False)
    相当の意味になってしまいますね。

    必要なのは
     xlApp.CutCopyMode = False
    に相当する呼び出しなので、Option Strict On で書くなら
     CallByName(xlApp, "CutCopyMode", CallType.Let, False)
    です。

    処理後は xlApp の COM オブジェクト解放も忘れずに。



    > これをどこかに入れれば良いのでしょうか?
    「Excel からコピーして Word に貼り付けた後」もしくは
    「RichTextBox からコピーして Word に貼り付ける前」のタイミングですかね。
記事No.89928 のレス /過去ログ155より / 関連記事表示
削除チェック/

■90001  Re[12]: リッチテキストボックスでカラー情報をコピーする方法
□投稿者/ イエメン -(2019/01/29(Tue) 12:41:07)
    ありがとうございます。


    RichTextBox1.Copy()
    の後に

    Dim xlApp = GetObject(, "Excel.Application")
    CallByName(xlApp, "CutCopyMode", CallType.Let, False)
    If xlApp IsNot Nothing AndAlso Marshal.IsComObject(xlApp) Then Marshal.ReleaseComObject(xlApp)

    を入れたのですが、
    コピーすることで、Excel上でセルを選択している表示は解除されることを確認できました。
    しかし、Excel上でペーストしてもデータが代入されません、

    再度、コピーをやり直すとうまくいくのですが・・・

    なぜ1回でうまくいかないのでしょうか?
記事No.89928 のレス /過去ログ155より / 関連記事表示
削除チェック/

■90002  Re[13]: リッチテキストボックスでカラー情報をコピーする方法
□投稿者/ イエメン -(2019/01/29(Tue) 12:45:09)

    Clipboard.Clear()
    の前に入れたところ、
    1回目で文字列は代入されるようになったのですが、
    カラーフォントなどがペーストされず、書式無しの文字列になってしまいます。

    そして2回目ペーストすると今度はなぜかうまくいくのですが・・・
    一体なぜでしょうか?
記事No.89928 のレス /過去ログ155より / 関連記事表示
削除チェック/

■90004  Re[13]: リッチテキストボックスでカラー情報をコピーする方法
□投稿者/ 魔界の仮面弁士 -(2019/01/29(Tue) 13:11:26)
    No90001 (イエメン さん) に返信
    > コピーすることで、Excel上でセルを選択している表示は解除されることを確認できました。
    > しかし、Excel上でペーストしてもデータが代入されません、

    Excel に対する CutCopyMode のキャンセル処理と
    RichTextBox からのコピー処理を、
    同じイベント内に続けて記載していませんか?

    メッセージループが回らないと、クリップボードは処理されませんので、
    CutCopyMode を操作するためのボタンだけを、単独で配置してみてください。


    一回のボタン操作で行われるようにしたいのなら、
    CutCopyMode を操作した後のクリップボード処理を遅延実行させてみてください。

    たとえば Application.Idle イベントで処理させるようにするとか、
    Control.BeginInvoke なり Task.ContinueWith メソッドなりに分けるとか。
記事No.89928 のレス /過去ログ155より / 関連記事表示
削除チェック/

■90005  Re[14]: リッチテキストボックスでカラー情報をコピーする方法
□投稿者/ イエメン -(2019/01/29(Tue) 14:02:16)
    ありがとうございます。

    Thread.Sleep(100)
    を入れるとうまくいきました。

    ただ、文字列のサイズによっては100 msecでは足りない時があるかも知れません。

    ちなみになのですが

    たとえば Application.Idle イベントで処理させるようにするとか、
    Control.BeginInvoke なり Task.ContinueWith メソッドなりに分けるとか。

    これらはどのようにして使用するものなのでしょうか?
    この方法なら、操作が終わるまで待機するようなことが可能なのでしょうか?
記事No.89928 のレス /過去ログ155より / 関連記事表示
削除チェック/

■90006  Re[15]: リッチテキストボックスでカラー情報をコピーする方法
□投稿者/ 魔界の仮面弁士 -(2019/01/29(Tue) 14:24:48)
    2019/01/29(Tue) 14:28:45 編集(投稿者)

    No90005 (イエメン さん) に返信
    > Thread.Sleep(100)
    > を入れるとうまくいきました。

    UI スレッドで Sleep を呼びだすことは避けてください。



    > これらはどのようにして使用するものなのでしょうか?

    たとえば BeginInvoke ならこうかな。
    掲示板に直接書いたので未検証ですけど。


    Private Sub ButtonX_Click(…
     Dim oldCursor = Cursor.Current
     Cursor.Current = Cursors.WaitCursor

     Dim xlApp As Object = Nothing
     Try
      xlApp = GetObject(, "Excel.Application")
      CallByName(xlApp, "CutCopyMode", CallType.Let, False)
     Catch
     Finally
      If xlApp IsNot Nothing AndAlso Marshal.IsComObject(xlApp) Then Marshal.ReleaseComObject(xlApp)
     End Try
     BeginInvoke(Sub()
      Try
       Clipboard.Clear()
       RichTextBox1.Copy()

       Dim wApp As Object = Nothing
       '中略
       Try
        wApp = CreateObject("Word.Application")
        '中略
        CallByName(wRng, "Paste", CallType.Method)
        CallByName(wRng, "Copy", CallType.Method)
       Catch
       Finally
        '中略
       End Try
      Catch
      Finally
       Cursor.Current = oldCursor
      End Try
     End Sub)
    End Sub
記事No.89928 のレス /過去ログ155より / 関連記事表示
削除チェック/

■90479  Re[1]: 集約例外メソッドでラッピングした例外を取得できない
□投稿者/ Azulean -(2019/03/13(Wed) 23:29:54)
記事No.90478 のレス /過去ログ156より / 関連記事表示
削除チェック/

■91435  Re[11]: SizeChangedにコードを書くとエラーが出てしまう
□投稿者/ PANG2 -(2019/06/26(Wed) 03:29:39)
    2019/06/26(Wed) 03:36:56 編集(投稿者)

    Form1のコンストラクタで PictureBox1_SizeChanged が走るのは意図せぬ動きなので、何らかの問題が発生する可能性はあります。

    Private Sub PictureBox1_SizeChanged(sender As Object, e As EventArgs) Handles PictureBox1.SizeChanged
    If Not Me.Visible Then Return

    とかで、回避するべきです。

    これは、VB特有の問題です。

    C#なら、そこは考慮されていて、Form1.designer,cs で
    PictureBoxのSizeを設定した後に、PictureBox1_SizeChanged イベントハンドラが登録されるので同様な問題は発生しません。
記事No.91366 のレス /過去ログ157より / 関連記事表示
削除チェック/

■92694  Re[1]: GDIの使い方に関して
□投稿者/ Azulean -(2019/10/20(Sun) 18:47:53)
    最初の質問文に立ち返りますが…。

    No92681 (明太子 さん) に返信
    > このページによると
    > Windows10環境ではDWMが有効になっているため、
    > GDI+を使うと描画速度が遅くなるそうです。
    >
    > 代わりに、GDIを使うか、ダブルバッファリングを使うと速くなるそうです。


    当初から「そうです」と伝聞調です。
    実際、測定されましたか?

    伝聞ベースで議論しても有益な結果にならないので、具体的な実例や測定結果を示してみてください。
記事No.92681 のレス /過去ログ160より / 関連記事表示
削除チェック/

■94873  Re[1]: リストビューの並びをシフトJIS順にしたい
□投稿者/ KOZ -(2020/05/29(Fri) 09:33:48)
    No94871 (Tom さん) に返信
    >  現在の並び   希望の並び
    >    世       亜
    >    亜       世

    日本語 Windows だと希望の並びになると思うんですが、カルチャを変更していないですか?
記事No.94871 のレス /過去ログ164より / 関連記事表示
削除チェック/

■95195  Re[2]: わんくま勉強会復活はいつ?
□投稿者/ 774RR -(2020/06/30(Tue) 12:22:37)
    東京はいまだに収束してないっすしねー
    わんくま側でやりたくても、いつもの開催場所がやってない可能性もあるし難しいですよね
    無理して開催してクラスタになっても何言われるかわからないし判断はお任せします。

    そういや重慶は(飯店でないほう)洪水ですごいことになっているらしい。

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

■95322  Re[6]: 半角英数しかない文字列を高速で大小判定したい
□投稿者/ くまくま -(2020/07/16(Thu) 13:25:14)
    No95321 (Tom さん) に返信
    > ぶなっぷ さま
    > アドバイス、ありがとうございます。
    >
    >>いったん、中身を数字に置き換えてからの方が速いかな?
    > 比較したい文字列の文字数が、数十〜数百文字になるため数値化は困難なのです…
    > さすがに数値配列にセットして配列同士を比較 ってのは、試しては居ませんが文字列比較より遅くなりそうです。
    >
    > なにが妙案ございませんか?
    ソートに関してこんな記事があります。
    https://www.sejuku.net/blog/40456
    Array.Sortが一番早いのは意外です。
記事No.95315 のレス /過去ログ165より / 関連記事表示
削除チェック/

■99424  Re[2]: 帳票ツールについて
□投稿者/ にゃあ -(2022/03/31(Thu) 23:27:44)
    返信ありがとうございます。

    説明が足らず、申し訳ありません。
    .NETのバージョンや、対応OSを考えると定期的なバージョンアップが必要になるので費用面と、
    社内のシステムをWEBで統一した方が効率よくなるかな?と考えておりましたので、
    ActiveReport以外を検討を思い立ちました。

    ActiveReportを最初に導入したのが10年ぐらい前になるので、
    最近だとよりよいツールがあるのか否かなど含めて、他の方の意見を聞きたかった次第です。

    なので、以下のようなご意見はすごい参考になりました。
    いただいたご意見を軸に検討をしたいと思います。

    > 費用をかけたくないという話であれば、当方の経験では2つしかありません。

    > 確実に費用面でActiveReportの方が安価だと思います。(買収前は同じくらいだったんですけどね)
    > 帳票を出力してるシステム自体をWindowsFormにこだわるとかじゃなく、Webシステムにしてもいいというなら、使ったことありませんがActiveReportJSを検討してみるのもいいじゃないでしょうか?
    > また、DBからデータ引っ張ってきているなら、SSRSという手もあると思います。

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

■101460  Re[2]: Variant の使い方
□投稿者/ 魔界の仮面弁士 -(2023/02/27(Mon) 17:43:08)
    No101458 (魔界の仮面弁士) に追記
    >> 関数から、処理をして該当すれば
    >> POINTAPIで返し、該当しなければ
    >> nothing で返したいのですが
    >> どうすればよいのでしょうか?
    > もしくは、戻り値を配列で返すようにするとか……「As Variant()」ないしは「As Variant」のように。
    > 要素数 0 な Variant 配列(あるいは Empty とか)であれば、該当なしの意味とし、
    > 要素数 2 な Variant 配列であれば、それぞれが x As Long, y As Long の意味として扱うなど。


    Public Function HitTest案1() As Variant
     Dim p As POINTAPI
     '中略
     If 該当あり Then
      HitTest案1 = Array(p.X, p.Y)
     Else
      HitTest案1 = Empty
     End If
    End Function


    Public Function HitTest案2() As Variant()
     Dim p As POINTAPI
     '中略
     If 該当あり Then
      HitTest案2 = Array(p.X, p.Y)
     Else
      HitTest案2 = Array()
     End If
    End Function
記事No.101457 のレス /過去ログ177より / 関連記事表示
削除チェック/

■101693  Re[1]: VB.NET_SOCKET通信で受信イベントが発生しなくなる
□投稿者/ KOZ -(2023/04/03(Mon) 11:03:05)
    No101690 (KAZUMA さん) に返信
    > ・常時接続に対して、下記の組み方はあっているのでしょうか?
    > ・パケットキャプチャでは受け取っているENQが、動作しているEXEが受け取れとれていないとすると、
    >  なにが原因が考えられるでしょうか
    > なにか、これ調べたらというヒントだけでも頂けたましたら、ありがたいです。

    コードの一部だけでは原因を特定できませんし、アドバイスもしにくいです。
    現象が発生する最低限のコードを提示してください。
    コードを整理しているうちに原因が判明することもあります。

    とりあえず、気になった箇所は以下の2点。

    (1) Listen する Socket に ReuseAddress オプションは不要です。何か理由がありますか?
    (2) キープアライブ設定は EndAccept で得られた Socket に設定しなければ無意味では?

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

■101773  Re[3]: HTTP_USER_AGENTによる使用OS判定について
□投稿者/ 魔界の仮面弁士 -(2023/04/17(Mon) 16:01:13)
    2023/04/17(Mon) 19:16:16 編集(投稿者)

    全文引用は避けてください。

    No101770 (のんちゃん さん) に返信
    > 以下処理を Sub OsInfo()内に記述するとエラーとなってしまいます。

    いやいや。
    提示した navigator.userAgentData は、
    見ての通りクライアント スクリプトですよ?


    サーバーサイドで処理する場合の手順は、その後の後半部に述べた通り、
    サーバー側から「Accept-CH: 〜」の Response Header を付与しておかねばなりません。
    そうしないと、クライアント側がバージョン情報を送信してくれません。


    まずはクライアント側に拡張情報の送信をブラウザーへ依頼するために、
    IIS マネージャーの「HTTP 応答ヘッダー」にて、
     名前:Accept-CH
     値:Sec-CH-UA, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version
    などとして、カンマ区切りで必要な情報を載せます。

    そうすると、上記の Response Header での求めに応じて、ブラウザー側から
     user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36
     sec-ch-ua-platform: "Windows"
     sec-ch-ua-platform-version: "10.0.0"
    あるいは
     user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.48
     sec-ch-ua-platform: "Windows"
     sec-ch-ua-platform-version: "15.0.0"
    といった具合に、User-Agent ヘッダーに加えて、
    Sec-Ch-UA-何某の Request Header がサーバーに対して
    ブラウザから送出されるようになります。
     
    この状態になった後であれば、サーバー側処理でも、
    Request.ServerVariables か Request.Headers で読み取れるはず…?
     → もしかしたら違うかも。
     https://kkamegawa.hatenablog.jp/entry/20080116/p2
     
    Sec-CH-UA-Platform が "windows" を返す状態において、
    Sec-CH-UA-Platform-Version が "1.0.0"〜"10.0.0" なら Win10、
    Sec-CH-UA-Platform-Version が "13.0.0" 以上なら Win11 です。


    ・Sec-CH 要求が無いとバージョン等の送信は行われないため、
     仕組み上、初回要求に対してはバージョン情報が含まれません。
     クライアント要求に Sec-CH が含まれるのは、
     サーバー応答の Accept-CH を受けてからの
     2 回目以降のリクエストに限られます。
    ・Sec-CH の送信には https 通信が必須です。
     SSL/TLS サーバー証明書が無い環境へは送信されません。
    ・この方式に対応しているブラウザーは、Chrome と Edge です。
     IE、Firefox、Safari ではサポートされていません。
    ・Accept-CH は常時上書きです。
     他の場所で、その他の SEC-CH 情報が必要な場合は、
     Accept-CH パラメーターにその他の情報も付与しておきましょう。
     (Sec-CH-UA-WoW64, Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version-List など)
    ・この情報は同一セッションにおいてのみ有効です。
     ブラウザの再起動や再ログイン時には、サーバー側は
     Accept-CH による送信依頼処理からやり直す必要があります。


    追記:

    実際どんな値が返るか試してみたい場合は、
    https://user-agent-client-hints.glitch.me/headers
    https://user-agent-client-hints.glitch.me/
    を使うことができます。
記事No.101764 のレス /過去ログ177より / 関連記事表示
削除チェック/

<前の20件

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 >>

パスワード/

- Child Tree -