DOBON.NETプログラミング道掲示板

■ 「新規作成」から投稿できます。
■ マルチポストされた投稿を見つけたときは、その投稿に返信することによりご報告ください。その際は匿名で投稿し、マルチポストされている場所を併記してください。
■ スパム対策のため、メールアドレスの先頭に"_"という文字が付加されています。
RSS 2.0 RSS 2.0 | RSS 0.91 | 携帯電話用 | 自分専用のアイコンを使用するには | 掲示板への要望 | 管理人に連絡 | お気楽掲示板
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
UpDateVB.netにおける固定長出力方法(3) | NomalDataObjectの使いまわし(5) | NomalVB.NETからRDゲートウェイを利用したリモートデスクトップ接続(3) | NomalLIstview のDataSource(2) | NomalClassの作り方(2) | NomalOpenFileDialogの初期ファイル名の表示が変(1) | NomalVB.NETのVBA化(2) | Nomal改行のコード(7) | NomalGoogle翻訳の結果の取得(2) | NomalStopwatchクラスのElapsedMillisecondsの挙動(2) | Nomal.net Chartで二重ドーナツグラフの作り方(3) | Nomalexeをショートカットから起動した場合のエラー(2) | Nomalデスクトップ と Desktop(6) | Nomalデザイナのプロパティウィンドウで静的プロパティを選択したい(3) | NomalPHPでシリアライズした、データをデシリアライズしたい(4) | Nomal二次元配列 インデックスが配列の境界外(2) | NomalVB.netで作成したexeのNgenによる弊害(1) | NomalDrawBezierの使い方について(7) | Nomalメジャーバージョンの異なるLog4netライブラリを参照したい(4) | NomalVB6→2005変換時のDeclare宣言のマーシャリング属性(8) | NomalGROUPBOXの複製について(vb.net)(1) | NomalActiveReports 3.0からActiveReports 7.0へのァイルコンバータについて(4) | NomalAccess OLEでExecuteNonQuery(3) | NomalKeyDownでの右コントロールキーイベント(2) | NomalExcel複数シートの印刷順序(3) | NomalWMPへno(3) | NomalDataGridViewの行番号(7) | Nomalapp.config定義によるネットワークトレースログの世代管理(2) | Nomalrelease/debugのどちらで作成されたものかを判断する方法(2) | NomalC#コンソールアプリでタイピング練習ソフト作成(3) | Nomal自分自身を呼び出すのはOKですか(1) | NomalWebBrowser Control foreachで値が消える(2) | NomalDeclare宣言するdllと参照追加をするdllの区別(4) | NomalTaskクラスを.NET Framework 2.0で実現させる方法(2) | NomalVS2017で作成されたDLLをVS2005で作成されたAPで使用する方法(4) | NomalWebBrowser Controlを使って、任意の値を取得(5) | NomalEditボックスに簡体字をセットする方法(2) | NomalList型でエラーが起きてしまい・・・(1) | Nomalフォルダ内の全ての容量を取得したい(4) | NomalWebClientが上手く動かない(2) | Nomal共変性と反変性ってこういうこと?(4) | Nomalモードレスフォーム Warning IDE0067を回避したい(7) | NomalLINQの拡張メソッドの定義(1) | Nomalこんな演算子初めて見ました。(5) | Nomalプロセスからウインドウを取得(4) | Nomalフォーム外のカーソルの変更(2) | NomalLINQのメソッド構文の書き方(3) | NomalVB.NETでCSVを読み込む際にSQL文を使いたい(3) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(2) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(5) | Nomalラムダ式の勉強中(2) | NomalWebClientで、短期間にDownloadStringAsyncを実行したい(2) | Nomalvb.net+SQLiteで複数データベースファイルへのトランザクション方法(3) | NomalNewの使い方間違ってますか?(4) | Nomalジェネリック型インターフェースを使った変数を扱いたい(3) | NomalC#をVBに変換(2) | NomalProcess.WaitForExitで正常に動作しない?(3) | NomalCatch時のex.StackTraceの情報(3) | Nomalユーザーコントロール内のテキストボックスのmodifiedプロパティ(4) | NomalPictureBox.Locationのキャンセル(3) | NomalJOIN操作の構文エラー(4) | NomalVisualStudioでマクロ(3) | NomalVisualStudioでExcelのVSTO開発(3) | NomalOracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる(3) | NomalIE11では表示されるが、.netのWebBrowserでは、表示されないHPを表示する方法(7) | NomalマウスのないOSでマウスカーソルの表示(2) | NomalRDP接続でのネットワーク帯域制限(0) | NomalFILE.COPYでIOExceptionエラーが出る(11) | NomalToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法(2) | Nomal動的にプロパティや変数の値の取得(4) | NomalVB6 ほかのアプリケーションを起動し そのアプリケーションは終了させる方法(4) | NomalMouseEventArgsのカレント座標(2) | Nomalリッチテキストボックスでの字間の調整(2) | NomalDrawImage でメモリ不足エラー(3) | Nomal必須コンポーネントの一覧に追加したい(0) | NomalCode128でバーコードが読み取れない(8) | NomalあるWindows10PCでビルドしたEXEがW8.1以下で実行エラー(5) | NomalApp.configのMy.Application.Log設定で使用できない属性が出る(0) | NomalVC++ → VB.Netに変換時に文法エラー(2) | Nomalvb2010を使用したmicrosoft Wordの任意の行の削除(0) | NomalVb.netからAccessへの接続について(3) | NomalSQL-Server Compact 4.0が表示されない(2) | Nomalバーコードの数字を非表示にしたい(2) | Nomal令和の日付への対応(3) | Nomalスクロールバーが出た時に高さを変えたい(4) | Nomal自作したアプリの発行元を明記したい(2) | NomalHTTP 417エラーを発生させるためのIIS設定はどうすればよいか(3) | Nomal起動ディスプレイの指定方法について(6) | NomalSystem.Threading.Thread.Sleep()と変数(2) | NomalVisual Studio DataTableの値のアクセスの仕方(2) | NomalDatagridviewのクリア(2) | NomalDataGridView 行の背景色の設定(2) | NomalListBoxにデータが表示されない(6) | NomalPIctureBox同士を論理合成したい(3) | NomalDrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい(3) | Nomalポルトガル語の登録(5) | NomalnumericUpDwonコントロールのvalue(2) | Nomalデータセット定義ファイルからDataTable(3) | NomalDataTableの構造が同じか調べるメソッド(2) | Nomalネットの画像の複数枚を重ね合わせたい(3) |



■記事リスト / ▼下のスレッド
■34347 / 親記事)  C#をVBに変換
□投稿者/ VBはじめました 一般人(11回)-(2019/11/01(Fri) 10:23:22)
  • アイコン環境/言語:[VisualStudio2017 VB.net] 
    分類:[.NET] 

    次のC#のコードをVBに変換したいと考えています。
    var queryMatchingFiles =
    from file in fileList
    where file.Extension == ".htm"
    let fileText = System.IO.File.ReadAllText(file.FullName)
    let matches = searchTerm.Matches(fileText)
    where matches.Count > 0
    select new
    {
    name = file.FullName,
    matchedValues = from System.Text.RegularExpressions.Match match in matches
    select match.Value
    };

    ****以後 自分で変換できた範囲 ********
    Dim queryMatchingFiles =
    From file In fileList
    Where file.Extension = ".htm"
    Let fileText = System.IO.File.ReadAllText(file.FullName)
    Let matches = searchTerm.Matches(fileText)
    Where matches.Count > 0
    Select New

    お願いがあります。
    New以後、どうやって変換すればいいか教えて頂けませんか?
    宜しくお願いいたします。

    C#のコードの出典は、https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/linq/how-to-combine-linq-queries-with-regular-expressions
    です。
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■34348 / ResNo.1)  Re[1]: C#をVBに変換
□投稿者/ 魔界の仮面弁士 大御所(1245回)-(2019/11/01(Fri) 11:03:11)
  • アイコンNo34347に返信(VBはじめましたさんの記事)
    > New以後、どうやって変換すればいいか教えて頂けませんか?

    Select New With {
     Key .Name = file.FullName,
     matchedValues = From match As System.Text.RegularExpressions.Match in matches Select match.Value
    }

    という感じでどうでしょう。

    クエリ構文のかわりにメソッド構文でも可。
違反を報告
引用返信
■34350 / ResNo.2)  Re[2]: C#をVBに変換
□投稿者/ VBはじめました 一般人(12回)-(2019/11/01(Fri) 14:27:41)
  • アイコン魔界の仮面弁士さんありがとうございます。
    助かりました。


解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-2]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34341 / 親記事)  Process.WaitForExitで正常に動作しない?
□投稿者/ 香魚 一般人(1回)-(2019/10/28(Mon) 20:36:15)
  • アイコン環境/言語:[Win10,Office2016,VB.NET(2017)] 
    分類:[.NET] 

    Public Class Form1
        Dim myapp As String = "excel.exe"
        'Dim myapp As String = "notepad.exe"
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim p As New System.Diagnostics.Process()
            p.StartInfo.FileName = myapp
            p.Start()
        End Sub
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Dim p As New System.Diagnostics.Process()
            p.StartInfo.FileName = myapp
            p.Start()
            p.WaitForExit()
            MsgBox("完了")
        End Sub
    End Class
    
    Button1はexcel.exeまたはnotepad.exeを起動します。
    
    Button2はexcel.exeまたはnotepad.exeを起動して
    そのプロセスが終了したら完了のメッセージボックスを表示します。
    
    実行環境 : Win10 + Office2016 + VB2017
    
    
    上記のプログラムを実行すると次のような動きになります。
    A)Button1を押すと、excel.exeが起動します。
      →問題なし。
    Aで起動したエクセルを終了します。
    
    B)Button2を押すと、excel.exeが起動し、WaitForExitで待機状態となります。
      エクセルを終了すると完了のメッセージボックスが表示されます。
      →問題なし。
    
    C)Button1を押して、excel.exeを起動します。
      エクセルが起動している状態で、Button2を押します。
      エクセルが2つ表示された状態になりますが、
      その状態で完了のメッセージが表示されてしまいます。
      →なぜかWaitForExitが働いていない状態。
    
    Cのケースでも、2つ目に起動したエクセルが終了するまで
    WaitForExitで待機状態にすることはできないでしょうか?
    
    ちないみに、コメントアウトしているnotepad.exeの方で試すと、
    Cのケースも問題なく待機状態となります。
    
    ちなみに、
    Win7 + Office2010 + VB2010 の環境で同じプログラムを実行すると
    excel.exeもnotepad.exeも
    Cのケースでも問題なく待機状態となります。
    

違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34342 / ResNo.1)  Re[1]: Process.WaitForExitで正常に動作しない?
□投稿者/ Azulean 大御所(512回)-(2019/10/28(Mon) 22:04:58)
  • アイコン2019/10/28(Mon) 22:05:31 編集(投稿者)

    No34341に返信(香魚さんの記事)
    > Cのケースでも、2つ目に起動したエクセルが終了するまで
    > WaitForExitで待機状態にすることはできないでしょうか?

    残念ながらできません。

    Excel.exe は、すでに Excel.exe が起動していればそのプロセスに処理をお願いしてすぐに終了するように実装されているためです。

    ほかの方法で Excel.exe がいなくなっているかどうかを監視するということも考えられますが、ユーザーが最初から Excel.exe を起動していた場合にどうするかといった仕様検討が必要になります。
違反を報告
引用返信
■34344 / ResNo.2)  Re[1]: Process.WaitForExitで正常に動作しない?
□投稿者/ 魔界の仮面弁士 大御所(1244回)-(2019/10/29(Tue) 08:58:02)
  • アイコンNo34341に返信(香魚さんの記事)
    > Win7 + Office2010 + VB2010 の環境で同じプログラムを実行すると
    > excel.exeもnotepad.exeも
    > Cのケースでも問題なく待機状態となります。

    Excel 2010 までは、新規プロセスを起動していましたが、
    Excel 2013 からは既存プロセスを流用する設計に変わったためです。

    ただしオートメーションで起動する場合には、引き続き
    複数のプロセスとして同時に起動することができます。


    詳しいことはこちらをご覧ください。
    https://blogs.msdn.microsoft.com/office_client_development_support_blog/2012/02/14/office-4/
    https://blogs.msdn.microsoft.com/office_client_development_support_blog/2016/12/19/excel2013-changes-to-sdi/
違反を報告
引用返信
■34346 / ResNo.3)  Re[1]: Process.WaitForExitで正常に動作しない?
□投稿者/ 香魚 一般人(2回)-(2019/10/31(Thu) 21:19:59)
  • アイコンありがとうございました。

    windowsのバージョンが原因か
    excelのバージョンが原因か
    visualstudioのバージョンが原因か
    分からなかったのですが、
    excelのバージョンが原因であることが分かりました。

    excelでいろいろ調べたところ、
    /x スイッチを指定すれば、プロセス統合(?)されないようですので、
    それで対応してみたいと思います。

解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34328 / 親記事)  Catch時のex.StackTraceの情報
□投稿者/ たくろう 一般人(1回)-(2019/10/26(Sat) 10:43:50)
  • アイコン環境/言語:[VB2017] 
    分類:[.NET] 

    2019/10/26(Sat) 10:47:40 編集(投稿者)
    2019/10/26(Sat) 10:44:43 編集(投稿者)
    2019/10/26(Sat) 10:44:34 編集(投稿者)
    
    --------------------------------
    01    Public Class Form1
    02        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    03            Try
    04                Dim l1 As Long = 1
    05                Dim l2 As Long = 0
    06                Dim l3 As Long
    07                l3 = l1 / l2 'ゼロ除算エラーを発生
    08            Catch ex As Exception
    09                Console.WriteLine(ex.StackTrace)
    10            End Try
    11        End Sub
    12        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    13            Try
    14                Test2()
    15            Catch ex As Exception
    16                Console.WriteLine(ex.StackTrace)
    17            End Try
    18        End Sub
    19        Private Sub Test2()
    20            Try
    21                Dim l1 As Long = 1
    22                Dim l2 As Long = 0
    23                Dim l3 As Long
    24                l3 = l1 / l2 'ゼロ除算エラーを発生
    25            Catch ex As Exception
    26                Throw
    27            End Try
    28        End Sub
    29    End Class
    --------------------------------
    
    例として、このようなプログラムがあります。
    #実際には会社でプログラムを書いてて、それを紙に印刷して持ち帰り
    #家で紙から再度手打ちしてプログラムを書いているので、
    #もしかすると、誤字脱字があるかもしれません。
    #社内ルールで会社から掲示板に投稿できない為、ご容赦ください。
    
    フォーム上にButton1とButton2の2つ配置されています。
    両ボタンとも処理内容は同じです。
    ただ、その処理をボタンのイベントプロシージャに直接書いているか
    サブプロシージャに書いているかの違いです。
    
    Button1を実行すると、エラーが発生して、
    ex.StackTrace(の出力結果)には
    「7行目でエラー」という情報があり、問題ありません。
    
    Button2を実行すると、エラーが発生して、
    ex.StackTrace(の出力結果)には
    「26行目でエラー」と「14行目でエラー」の2つの情報だけで、
    最初のエラー位置「24行目でエラー」という情報が含まれません。
    
    「24行目でエラー」という情報が含まれるようにしたいのですが、
    どのようにすれば良いでしょうか?
    
    
    ※サブプロシージャではTry-Catchしなければ良いのかもしれませんが、
      この例ではそうですが、実際には、データベースのトランザクションなどを行っており、
      サブプロシージャ内でもTry-Catchが必要となります。
    

違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34330 / ResNo.1)  Re[1]: Catch時のex.StackTraceの情報
□投稿者/ 魔界の仮面弁士 大御所(1242回)-(2019/10/26(Sat) 17:27:32)
  • アイコンNo34328に返信(たくろうさんの記事)
    > 「24行目でエラー」という情報が含まれるようにしたいのですが、
    > どのようにすれば良いでしょうか?

    26 行目を
     Throw
    から
     System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(ex).Throw()
    に変更してみてください。

    https://docs.microsoft.com/ja-jp/dotnet/api/system.runtime.exceptionservices.exceptiondispatchinfo?WT.mc_id=DT-MVP-8907&view=netframework-4.5
違反を報告
引用返信
■34331 / ResNo.2)  Re[2]: Catch時のex.StackTraceの情報
□投稿者/ たくろう 一般人(2回)-(2019/10/26(Sat) 22:34:25)
  • アイコンNo34330に返信(魔界の仮面弁士さんの記事)
    > 26 行目を
    >  Throw
    > から
    >  System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(ex).Throw()
    > に変更してみてください。

    ありがとうございます。
    週明け、会社で確認してみます。

    #解決マークはその時に。

違反を報告
引用返信
■34343 / ResNo.3)  Re[2]: Catch時のex.StackTraceの情報
□投稿者/ たくろう 一般人(3回)-(2019/10/28(Mon) 23:03:28)
  • アイコンNo34330に返信(魔界の仮面弁士さんの記事)
    >  System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(ex).Throw()

    会社で試したところ、できました。

    「24行目でエラー」と「26行目でエラー」と「14行目でエラー」の
    3つの情報が含まれるようになりました。
    (3つの情報以外に、エラーとは直接関係ない(?)情報が含まれるようになってしまっていましたけども、問題ありません。)

    ありがとうございました。

解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34336 / 親記事)  ユーザーコントロール内のテキストボックスのmodifiedプロパティ
□投稿者/ はる 一般人(1回)-(2019/10/28(Mon) 15:16:18)
  • アイコン環境/言語:[VS2017] 
    分類:[.NET] 

    テキストボックス(txtDate)カレンダーコントロール(txtCal)のユーザーコントロールを作成しています。

    これをフォームに貼りつけコントロール名をtxtSaleDateとします。
    txtSaleDateのtxtDateのmodifiedプロパティを参照するといつもfalseになってしまいます。(txtSaleDate.txtDate.Modifedで参照しています。)

    ユーザーコントロールでは参照できないのでしょうか?
違反を報告
引用返信

▽[全レス4件(ResNo.1-4 表示)]
■34337 / ResNo.1)  Re[1]: ユーザーコントロール内のテキストボックスのmodifiedプロパティ
□投稿者/ 魔界の仮面弁士 大御所(1243回)-(2019/10/28(Mon) 15:49:07)
  • アイコンNo34336に返信(はるさんの記事)
    > テキストボックス(txtDate)カレンダーコントロール(txtCal)のユーザーコントロールを作成しています。

    カレンダーコントロールとは何でしょうか。
    txtDate は TextBox クラスで
    txtCal は DateTimePicker でしょうか?



    現状の実装が把握しきれていないのですが、
    TextBox(あるいはその基底たる TextBoxBase)クラスの
    Modified プロパティの事だとしたら、このプロパティは
    下記のように動作します。

    ・ユーザーがテキストを編集すると true になる
    ・コードから Text プロパティを編集すると false になる
    ・Modiled プロパティを意図的に true/false に書き換えることは可能


    > txtSaleDateのtxtDateのmodifiedプロパティを
    「txtSaleDateのtxtDate」とは、何を指しているのでしょうか?

    > txtSaleDate.txtDate.Modifedで参照しています。
    > ユーザーコントロールでは参照できないのでしょうか?
    txtSaleDate が UserControl だったりするのかな…。


    もしもユーザーコントロールが自身の子コントロールを public 等で
    公開しているのだとしたら、そのような実装は避けたほうが良いでしょう。
    (カプセル化の観点からみると、望ましくありません)
違反を報告
引用返信
■34338 / ResNo.2)  Re[2]: ユーザーコントロール内のテキストボックスのmodifiedプロパティ
□投稿者/ はる 一般人(4回)-(2019/10/28(Mon) 16:13:02)
  • アイコンNo34337に返信(魔界の仮面弁士さんの記事)

    すいません。書き直します。


    テキストボックス(コントロール名:txtDate)、DateTimePicer(コントロール名:txtCal)でユーザーコントロール(ユーザーコントロール名:CalCtrl)を作成します。

    これを何かのフォーム(form名:Form01)に上で作ったユーザーコントロールを貼りつけます。(コントロール名:txtSaleDate)

    form01でtxtSaleDateに日付を入力します。入力された日付が表示されていたものと同じであれば処理を実行したくないので

    違う日付を入力しても
    txtSaleDate.Validatingイベントで参照すると
    txtSaleDate.txtDate.modifiedはいつもfalseになっています。



    ユーザーコントロールでは参照できないのでしょうか?
違反を報告
引用返信
■34339 / ResNo.3)  Re[3]: ユーザーコントロール内のテキストボックスのmodifiedプロパティ
□投稿者/ shu 大御所(488回)-(2019/10/28(Mon) 16:59:02)
  • アイコンNo34338に返信(はるさんの記事)


    > テキストボックス(コントロール名:txtDate)、DateTimePicer(コントロール名:txtCal)でユーザーコントロール(ユーザーコントロール名:CalCtrl)を作成します。
    >
    > これを何かのフォーム(form名:Form01)に上で作ったユーザーコントロールを貼りつけます。(コントロール名:txtSaleDate)
    >
    > form01でtxtSaleDateに日付を入力します。入力された日付が表示されていたものと同じであれば処理を実行したくないので
    >
    > 違う日付を入力しても
    この入力でtxtDate.Textの内容の変更がユーザーによって行われているのでしょうか?それともtxtCalによるイベントなどで変更が行われているのでしょうか?後者であるとするとModifiedはTrueになりません。



違反を報告
引用返信
■34340 / ResNo.4)  Re[2]: ユーザーコントロール内のテキストボックスのmodifiedプロパティ
□投稿者/ はる 一般人(6回)-(2019/10/28(Mon) 17:20:48)
  • アイコンNo34337に返信(魔界の仮面弁士さんの記事)
    > ■No34336に返信(はるさんの記事)

    > ・コードから Text プロパティを編集すると false になる

    原因はこれでした。
    ありがとうございました。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-4]



■記事リスト / ▲上のスレッド
■34332 / 親記事)  PictureBox.Locationのキャンセル
□投稿者/ VBはじめました 一般人(7回)-(2019/10/28(Mon) 10:54:25)
  • アイコン環境/言語:[VB.NET] 
    分類:[.NET] 

    ウィンドウフォームにPictureBoxとButtomを配置して次のコードを実行すると、
    PictureBoxのイメージロードのキャンセルがキャッチできません。

    ところが、ボタンをもう一つ配置して、ロードが終わる前に、CancelAsyncを実行する(早業で・・・)すると、キャンセルできます。

    どのようなコードを書けば、キャンセルすることが可能になるのでしょうか?

    どなたか、詳しい方いらっしゃいましたら、教えて頂けないでしょうか?
    宜しくお願いいたします。

    Windows7 VisualStudio2017 VB.NET


    Imports System.ComponentModel
    Public Class Form3
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Me.PictureBox1.ImageLocation = "http://kemilia.ninja-web.net/free/yama1-1024.jpg"
    Me.PictureBox1.CancelAsync()
    End Sub
    Private Sub PictureBox1_LoadCompleted(sender As Object,
        e As AsyncCompletedEventArgs) Handles PictureBox1.LoadCompleted
    If e.Error IsNot Nothing Then
    MsgBox("読み込み時にエラーが発生しました。")
    ElseIf e.Cancelled Then
    MsgBox("キャンセルボタンが押されました。")
    Else
    MsgBox("読み込みが終わりました。")
    End If
    End Sub
    End Class
違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34333 / ResNo.1)  Re[1]: PictureBox.Locationのキャンセル
□投稿者/ Hongliang 大御所(568回)-(2019/10/28(Mon) 11:16:31)
  • アイコンPictureBox.LoadCompletedイベントのドキュメント
    https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.picturebox.loadcompleted?view=netframework-4.8
    には以下のように記述されています。

    > The LoadCompleted occurs only when the image is loaded asynchronously by using one of the LoadAsync methods, and WaitOnLoad is false.
    > If the image-load is canceled by calling the CancelAsync method the Cancelled property of the AsyncCompletedEventArgs will be set to true.

    (私訳)
    LoadCompletedイベントは、画像がLoadAsyncメソッドを使って非同期にロードされ、かつWaitOnLoadプロパティがfalseの時にだけ発生します。
    CancelAsyncメソッドの呼び出しによって画像ロードがキャンセルされた場合、AsyncCompletedEventArgsのCancelledプロパティがtrueに設定されます。

    // と言いつつ、LoadCompletedはLoadとかImageLocationとかでも発生しちゃってるようですが。
違反を報告
引用返信
■34334 / ResNo.2)  Re[2]: PictureBox.Locationのキャンセル
□投稿者/ VBはじめました 一般人(8回)-(2019/10/28(Mon) 14:40:00)
  • アイコンHongliangさん有難うございます。
    教えて頂いた通り、次のように変更するとできました。
    有難う御座いました。


    Private Sub Form3_Load(sender As Object, e As EventArgs) Handles Me.Load
    Me.PictureBox1.WaitOnLoad = False
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Me.PictureBox1.LoadAsync("http://kemilia.ninja-web.net/free/yama1-1024.jpg")
    Me.PictureBox1.CancelAsync()
    End Sub
    Private Sub PictureBox1_LoadCompleted(sender As Object, e As AsyncCompletedEventArgs) Handles PictureBox1.LoadCompleted
    If e.Error IsNot Nothing Then
    MsgBox("読み込み時にエラーが発生しました。")
    ElseIf e.Cancelled Then
    MsgBox("キャンセルボタンが押されました。")
    Else
    MsgBox("読み込みが終わりました。")
    End If
    End Sub
違反を報告
引用返信
■34335 / ResNo.3)  Re[3]: PictureBox.Locationのキャンセル
□投稿者/ VBはじめました 一般人(9回)-(2019/10/28(Mon) 14:40:46)
  • アイコンNo34334に返信(VBはじめましたさんの記事)

    解決済み押すの忘れました。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]






Mode/  Pass/


- Child Tree -

2020/12/02(Wed) 18:37:32 に作成されたキャッシュを表示しています。
生のデータを表示する | キャッシュを最新にする