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

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

記事リスト ( )内の数字はレス数
Nomal参照dllへの文字列引数をutf8で渡したい。(13) | NomalFILE.COPYでIOExceptionエラーが出る(11) | Nomalリストを別フォームに渡す方法(9) | Nomal例外発生した場合に変数をcatchに渡したい(9) | NomalCode128でバーコードが読み取れない(8) | Nomalモードレスフォーム Warning IDE0067を回避したい(7) | NomalIE11では表示されるが、.netのWebBrowserでは、表示されないHPを表示する方法(7) | Nomal数字だけで構成されてるCSVフィールドが自動的に数値として解釈される(7) | NomalフォームコントロールへのDataBindingsでプロパティが相互反映されない(7) | Nomal起動ディスプレイの指定方法について(6) | NomalListBoxにデータが表示されない(6) | Nomal文字列を8bit に戻してから UTF-8 に変換する方法(6) | NomalSQLServerテーブル内容をDataGridViewに表示するコードについて(6) | Nomal文字列構造体のListのソート(6) | NomalWebBrowser Controlを使って、任意の値を取得(5) | Nomalこんな演算子初めて見ました。(5) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(5) | NomalあるWindows10PCでビルドしたEXEがW8.1以下で実行エラー(5) | Nomalポルトガル語の登録(5) | Nomaloo4oのAddTableをADOに移行したい(5) | NomalDeclare宣言するdllと参照追加をするdllの区別(4) | NomalVS2017で作成されたDLLをVS2005で作成されたAPで使用する方法(4) | Nomalフォルダ内の全ての容量を取得したい(4) | Nomal共変性と反変性ってこういうこと?(4) | Nomalプロセスからウインドウを取得(4) | NomalNewの使い方間違ってますか?(4) | Nomalユーザーコントロール内のテキストボックスのmodifiedプロパティ(4) | NomalJOIN操作の構文エラー(4) | Nomal動的にプロパティや変数の値の取得(4) | NomalVB6 ほかのアプリケーションを起動し そのアプリケーションは終了させる方法(4) | Nomalスクロールバーが出た時に高さを変えたい(4) | NomalDatagridViewの行高さ変更について(4) | NomalLINQのメソッド構文の書き方(3) | Nomalvb.net+SQLiteで複数データベースファイルへのトランザクション方法(3) | Nomalジェネリック型インターフェースを使った変数を扱いたい(3) | NomalProcess.WaitForExitで正常に動作しない?(3) | NomalPictureBox.Locationのキャンセル(3) | NomalCatch時のex.StackTraceの情報(3) | NomalVisualStudioでマクロ(3) | NomalOracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる(3) | NomalVisualStudioでExcelのVSTO開発(3) | NomalVB.NETでCSVを読み込む際にSQL文を使いたい(3) | NomalDrawImage でメモリ不足エラー(3) | NomalVb.netからAccessへの接続について(3) | Nomal令和の日付への対応(3) | NomalHTTP 417エラーを発生させるためのIIS設定はどうすればよいか(3) | NomalDrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい(3) | NomalPIctureBox同士を論理合成したい(3) | Nomalデータセット定義ファイルからDataTable(3) | Nomalネットの画像の複数枚を重ね合わせたい(3) | NomalDataGridViewで検索をかける方法(3) | NomalDataGridViewの選択時の色を透明にしたい(3) | NomalWebBrowserでWebページからのメッセージ(3) | NomalASP.NETから呼ばれているかどうか判定する方法(3) | NomalCA2213の警告が消えません(3) | NomalC# 現在のコンテキスト内にxxxという文字は存在しませんと出ます(3) | NomalTaskクラスを.NET Framework 2.0で実現させる方法(2) | NomalWebBrowser Control foreachで値が消える(2) | NomalEditボックスに簡体字をセットする方法(2) | NomalWebClientが上手く動かない(2) | Nomalフォーム外のカーソルの変更(2) | Nomalラムダ式の勉強中(2) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(2) | NomalC#をVBに変換(2) | NomalWebClientで、短期間にDownloadStringAsyncを実行したい(2) | NomalマウスのないOSでマウスカーソルの表示(2) | NomalToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法(2) | NomalMouseEventArgsのカレント座標(2) | Nomalリッチテキストボックスでの字間の調整(2) | NomalVC++ → VB.Netに変換時に文法エラー(2) | NomalSQL-Server Compact 4.0が表示されない(2) | Nomalバーコードの数字を非表示にしたい(2) | Nomal自作したアプリの発行元を明記したい(2) | NomalSystem.Threading.Thread.Sleep()と変数(2) | NomalDataGridView 行の背景色の設定(2) | NomalDatagridviewのクリア(2) | NomalnumericUpDwonコントロールのvalue(2) | NomalVisual Studio DataTableの値のアクセスの仕方(2) | NomalDataTableの構造が同じか調べるメソッド(2) | NomalRejectChangesについて(2) | NomalPC機種によってスタートアップ画面が中央から左上にずれる、Fontがおかしくなる。(2) | Nomalタスクスケジュール登録時の例外メッセージ(2) | Nomal管理者モードでクリック(2) | NomalVB2017でのインストーラ作成時のエラーについて(2) | NomalMicrosoft Azure OCRのサンプルコード実行時エラー(2) | Nomalデータバインド時のDataGridViewのカスタムソート(2) | NomalObject型からDecimalへの変換(2) | Nomal擬似言語をVBのプログラミングに変換(2) | Nomalユーザーコントロールのプロパティが保存されない(2) | NomalWindows10(1803)からGetHostEntryでipv4が取得出来ない場合がある(2) | Nomal自分自身を呼び出すのはOKですか(1) | NomalList型でエラーが起きてしまい・・・(1) | NomalLINQの拡張メソッドの定義(1) | NomalWebRequest でメモリが解放されない(1) | NomalFunction プロシージャからの文字選択(1) | NomalRDP接続でのネットワーク帯域制限(0) | Nomal必須コンポーネントの一覧に追加したい(0) | NomalApp.configのMy.Application.Log設定で使用できない属性が出る(0) | Nomalvb2010を使用したmicrosoft Wordの任意の行の削除(0) | NomalWinFormsでWindows10のカメラアプリと連携したい(0) |



■記事リスト / ▼下のスレッド
■34452 / 親記事)  自分自身を呼び出すのはOKですか
□投稿者/ げんむ 一般人(6回)-(2020/03/23(Mon) 17:03:06)
  • アイコン環境/言語:[c# vs2019 .net 4.52] 
    分類:[.NET] 

    WinFormでWebBrowserControlを利用して、以下のような動作をするアプリを作っています。
    ボタン押下時に以下のように処理が走ります。
    
    イメージ的にはアマゾンの商品リストみたいに、1ページに10商品表示されていて、ページナビゲーションで
    複数のページがあるサイトです。
    
    private void btn_Click(object sender, EventArgs e)
    {
    	//@Webページを読み込む
    	//Aリンクを取得する処理
    	//B次へのボタンを押す(ページナビゲーションで1〜Nページまであります)
    	//C次のページを表示する。無ければ処理終了
    	//D
    }
    
    この処理をページ分ループ処理をさせたいのですが、何ページあるかわかりません。
    Cの次へのページが表示できなくなったら終了になります。btn_ClickをCの次のページが
    あったら繰り返し行いたいのですが、その方法がわかりません。
    
    Dとしてbtn_click(null,null)
    という処理を入れたら、目的のことは達成できました。しかし、こんな処理の方法で良いのか不安です。
    何か別の手立てがあるようでしたらお教えいただけないでしょうか。よろしくおねがいします。

違反を報告
引用返信

▽[全レス1件(ResNo.1-1 表示)]
■34453 / ResNo.1)  Re[1]: 自分自身を呼び出すのはOKですか
□投稿者/ 魔界の仮面弁士 大御所(1278回)-(2020/03/23(Mon) 20:42:53)
  • アイコンNo34452に返信(げんむさんの記事)
    > ボタン押下時に以下のように処理が走ります。

    Click イベントの実行中は、WebBrowser のコンテンツは処理されません。
    イベント処理が行われていないアイドル時に処理される仕様です。

    また、WebBrowser は Visible = true の状態で利用するようにしてください。
    http://rucio.cloudapp.net/threaddetail.aspx?threadid=10505


    > btn_click(null,null)
    > という処理を入れたら、目的のことは達成できました。しかし、こんな処理の方法で良いのか不安です。

    Form 側にとっては、イベントは本来「呼ぶもの」では無く「呼ばれるもの」ですよね。
    イベントハンドラを直接呼び出すような書き方は望ましくありません。

    そもそもイベントの引数にも意味があります。直接呼ぶとしても、
     btn_click(btn, EventArgs.Empty);
    とする方が好ましいでしょう。

    また、btn を Click したことにしたいのであれば、
     btn.PerformClick();
    と記述することで、Click イベントが誘発されます。


    あるいは再帰的な呼び出しが必要なら、イベントハンドラを直接呼び出すのではなく、
    その処理をメソッドに切り出しておき、それをイベントなどから呼ぶという手もあります。

     private void btn_Click(object sender, EventArgs e)
     {
      Foo();
     }

     private void Foo()
     {
      bool isFinished = 処理();
      if(!isFinished)
      {
       Foo(); // 再帰呼び出し
      }
     }


    > 次へのボタンを押す(ページナビゲーションで1〜Nページまであります)

    「次へのボタン」というは、Form 上の btn のことですか?
    それとも、Web ページ上のボタンですか?

    Web ページのボタンだとした場合、各ページにあるボタンは 1 つだけですか?
    それとも、1 つのページから複数のページに枝分かれして画面遷移することがありますか?

    例えば、1ページ目は「東日本」「西日本」の 2 つのボタン、
    2 ページ目は都道府県別のボタンがあって、
    3 ページ目に市区町村別のボタンがあるような場合、
    全部を網羅するためには、遷移数は 3 回では済みませんよね。



    Form 上のボタンを押す方法については、上記に書いたように PerformClick() メソッドを使えます。


    Web ページ上のボタンの場合は、HTML コンテンツの内容や Cookie の管理などによって異なるので
    一概には言えませんが、たとえば該当要素の HTMLElement に対して .InvokeMember("click"); を呼び出す方法や、
    WebBrowser に対して Navigate しなおす方法などがあります。



    > イメージ的にはアマゾンの商品リストみたいに、1ページに10商品表示されていて、ページナビゲーションで
    > 複数のページがあるサイトです。

    以下、動くかどうかはテストしていませんが:


    // ナビゲーション状況を蓄えるキュー
    private Queue<string> urlList = new Queue<string>();

    private void btn_Click(…)
    {
     // 最初の画面遷移
     urlList.Enqueue(firstUrl);
     webBrowser1.Navigate(urlList.Dequeue());
    }

    // 画面遷移のたびに呼ばれるイベント
    private void webBrowser1_DocumentCompleted(…)
    {
     // 該当ページが frameset や iframe を持つ場合、フレーム毎にDocumentCompletedが発生します。
     // 場合によっては、URL や呼び出し回数などで判断する必要があるかもしれません。
     string currentUrl = e.Url;

     // ここでは、a href=〜 なリンクを取り出すような処理を想定しています。
     foreach(var url in 解析処理(webBrowser1.Document))
     {
      urlList.Enqueue(url);
     }

     if (urlList.Count == 0)
     {
      // すべて解析完了
      MessageBox.Show("終わり");
     }
     else
     {
      // 次の画面遷移
      webBrowser1.Navigate(urlList.Dequeue());
      // BeginInvoke(new MethodInvoker(() => webBrowser1.Navigate(urlList.Dequeue()) );
     }
    }
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34425 / 親記事)  List型でエラーが起きてしまい・・・
□投稿者/ ken 一般人(1回)-(2020/01/19(Sun) 22:37:41)
  • アイコン環境/言語:[c#] 
    分類:[.NET] 

    はじめまして、最近visual studioを触り始めたんですがlist型でエラーが出たので掲示板に書かせてもらいました。

    Console.WriteLine(weights[i]);の部分のweights[i]でエラーが出てしまい、角かっこ[]付きインデックスを‘List<float>’型の式に適用することができませんとなってしまいます。

    参考書通りにはなってるのでエラーの理由がどうしてもわかりません。

    static void Main(string[] rags)
    {
    List<float> weights = new List<float>();

    weights.Add(41.2f);
    weights.Add(42.5f);
    weights.Add(44.9f);
    weights.Add(43.2f);

    for (int i = 0; i < weights.Count; i++)
    {
    Console.WriteLine(weights[i]);
    }

    ご指導の方よろしくお願いします。

違反を報告
引用返信

▽[全レス1件(ResNo.1-1 表示)]
■34426 / ResNo.1)  Re[1]: List型でエラーが起きてしまい・・・
□投稿者/ 魔界の仮面弁士 大御所(1274回)-(2020/01/20(Mon) 09:09:27)
  • アイコンNo34425に返信(kenさんの記事)
    > Console.WriteLine(weights[i]);の部分のweights[i]でエラーが出てしまい、
    > 角かっこ[]付きインデックスを‘List<float>’型の式に適用することができません
    > となってしまいます。

    同じコードを記載してみましたが、問題無く実行できました。
    https://paiza.io/projects/p7GISkEvGiddUgpQad0ZuA?language=csharp


    あとは可能性として、独自の List<> クラスを誤って自動生成してしまったという
    可能性が考えられます。元のコードの
     List<float> weights = new List<float>();
    という行を
     var weights = new System.Collections.Generic.List<float>();
    に置き換えてみた場合も同様のエラーになるか、確認してみてください。
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34400 / 親記事)  LINQの拡張メソッドの定義
□投稿者/ ジャッキーチュン 一般人(1回)-(2019/11/28(Thu) 09:45:00)
  • アイコン環境/言語:[VisualStudio2017 VB] 
    分類:[.NET] 

    はじめまして。

    LINQの拡張メソッドの定義で、
    <Extension()>
    Public Function Where(Of TSource)
    (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Integer, Boolean))  ←ここに()で括られた部分がある
    As IEnumerable(Of TSource)
    のようにかかれています。

    Function メッソッド名(引数)の次に()で括られたものがあり、
    その後に、As IEnumerble(Of TSource)となっています。

    ()で括られた部分は、何をするのでしょうか?
    普通は、
    Public Shared Function Format (format As String, arg0 As Object) As String
    こんな感じですよね?

    もう一つ、Formを作って、Designerを見ると
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    のように、<>で括られたものがあります。
    これは、なんですか?

    教えて貰えれば助かります。


違反を報告
引用返信

▽[全レス1件(ResNo.1-1 表示)]
■34401 / ResNo.1)  Re[1]: LINQの拡張メソッドの定義
□投稿者/ 魔界の仮面弁士 大御所(1265回)-(2019/11/28(Thu) 11:11:32)
  • アイコンNo34400に返信(ジャッキーチュンさんの記事)
    > Function メッソッド名(引数)の次に()で括られたものがあり、
    メッソッド → メソッド


    > その後に、As IEnumerble(Of TSource)となっています。
    > ()で括られた部分は、何をするのでしょうか?

    「(Of 何某)」の事なら、『型パラメーター』と呼ばれる物です。

    Dim a As System.Collections.IEnumerable
    Dim b As System.Collections.Generic.IEnumerable(Of Integer)
    Dim c As System.Collections.Generic.IEnumerable(Of String)
    Dim d As System.Collections.Generic.IEnumerable(Of Boolean)


    上記の場合、
     a.GetEnumerator().Current は As Object
     b.GetEnumerator().Current は As Integer
     c.GetEnumerator().Current は As String
     d.GetEnumerator().Current は As Boolean
    のようになります。※「IEnumerable」と「IEnumerable(Of T)」は別の型です。


    型パラメーターを受け取るクラスを「ジェネリック クラス」と呼び、
    型パラメーターを受け取るメソッドを「ジェネリック メソッド」と呼びます。
    https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/language-features/data-types/generic-types?WT.mc_id=DT-MVP-8907


    > もう一つ、Formを作って、Designerを見ると
    > <System.Diagnostics.DebuggerNonUserCode()> _
    > Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    > のように、<>で括られたものがあります。

    それは『属性』と呼ばれる物です。

    上記の場合、Dispose メソッドに対して
    System.Diagnostics.DebuggerNonUserCodeAttribute 属性クラスが
    付与されています。

    https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/concepts/attributes/?WT.mc_id=DT-MVP-8907
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34071 / 親記事)  WebRequest でメモリが解放されない
□投稿者/ もり 一般人(1回)-(2018/12/21(Fri) 21:18:24)
  • アイコン環境/言語:[VB.net] 
    分類:[.NET] 


    可能でしたら教えていただきたいのですが、、、
    VB.netで以下のようなコードを作ってます。

    ---
    Imports System.Net
    Imports System.IO
    Imports System.Xml

    Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    'リクエストパラメータのセット
    Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("UTF-8")
    Dim url As String = "****"

    Dim req As WebRequest = WebRequest.Create(url)
    req.Method = "POST"

    Dim res As WebResponse = req.GetResponse()
    Dim reader As New XmlTextReader(res.GetResponseStream)

    req.Abort()
    reader.Close()
    res.Close()

    End Sub
    End Class
    ---

    これを連続で打ち続けます。
    しかし、メモリが溜まっていく一方で解放されません。。。

    GC.Collect を使わずにメモリを解放する方法はありますでしょうか?
違反を報告
引用返信

▽[全レス1件(ResNo.1-1 表示)]
■34072 / ResNo.1)  【報告】この投稿はマルチポストです
□投稿者/ (報告) 大御所(270回)-(2018/12/21(Fri) 23:02:29)
  • アイコンこの投稿はマルチポストです。もし元記事の投稿者にマルチポストの心当たりがない場合は、すぐに返信でお知らせください。

    ●マルチポストされている場所
    http://bbs.wankuma.com/index.cgi?mode=al2&namber=89767

    ----------
    この掲示板ではマルチポストが禁止されています。詳しくは、「書き込みのルールについて」をお読みください。

    ●書き込みのルールについて
    https://dobon.net/vb/bbs/index.html
違反を報告
引用返信

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



■記事リスト / ▲上のスレッド
■34039 / 親記事)  Function プロシージャからの文字選択
□投稿者/ つまようじ 一般人(1回)-(2018/11/24(Sat) 20:52:56)
  • アイコン環境/言語:[Win10 VB.NET .net4.6.1] 
    分類:[.NET] 

    やりたいこと

    Function プロシージャ内で
    TextBoxのテキストが数字かチェックして数字以外ならば対象のTextBoxにフォーカスを合わせて、文字を全選択状態にしたい


    1.組めたプログラム
    Function側で結果としてTrueかFalseを返すのでそれを元にフォーカスを合わせるタイプ

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If CHK(TextBox1.Text) = False Then
    TextBox1.Focus()
    TextBox1.SelectAll()
    End If

    End Sub


    Function CHK(s As String) As Boolean
    Dim d As Double
    If Double.TryParse(s, d) Then
    Return True
    Else
    MessageBox.Show("数字を入力してください")
    Return False
    End If
    End Function

    ※これを複数のTextBox毎回やると
    If CHK(TextBox***.Text) = False Then
    TextBox***.Focus()
    TextBox***.SelectAll()
    End If
    がいたるところに乱立するのでFunction側でフォーカス合わせて文字の全選択までやりたいです



    2.とりあえず動くけどこれでいいのか?というプログラム
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    CHKObject(TextBox1)
      End Sub


    Function CHKObject(s As Object) As Boolean
    Dim d As Double
    If Double.TryParse(s.text, d) Then
    Return True
    Else
    s.focus()
    s.selectall()
    Return False
    End If
    End Function


    ボタンを押してチェックに行くのでActiveControlではどこのテキストをチェックしてるのか取得できませんよね?

    初心者がプログラム組んでるので色々雑な所が多いかと思いますがアドバイス頂けたら幸いです

違反を報告
引用返信

▽[全レス1件(ResNo.1-1 表示)]
■34040 / ResNo.1)  Re[1]: Function プロシージャからの文字選択
□投稿者/ 魔界の仮面弁士 大御所(1169回)-(2018/11/26(Mon) 10:17:43)
  • アイコン2018/11/26(Mon) 10:20:57 編集(投稿者)

    No34039に返信(つまようじさんの記事)
    > If CHK(TextBox1.Text) = False Then

    "CHK" という Function 名は、.NET の流儀的には
    あまり良い名前の付け方では無かったりします。

    http://objectclub.jp/community/codingstandard/CodingStdVB.doc
    https://qiita.com/Ted-HM/items/7dde25dcffae4cdc7923
    https://dobon.net/vb/dotnet/beginner/namingrules.html
    https://docs.microsoft.com/ja-jp/dotnet/standard/design-guidelines/naming-guidelines


    > TextBoxのテキストが数字かチェックして数字以外ならば対象のTextBoxにフォーカスを合わせて、文字を全選択状態にしたい
    ここでいう「数字」というのが「数値」の意味なのだとしたら、
    TextBox コントロールの Text プロパティではなく、数値入力に特化した、
    NumericUpDown コントロールの Value プロパティを使うのはどうでしょう。


    > Dim d As Double
    > If Double.TryParse(s, d) Then

    この方法の場合、
     s = "NaN"
     s = " -.2e+3 "
     s = "∞"
    なども True になるのでご注意ください。


    また、今回は単一の TextBox が対象だったので、MeesageBox +フォーカス移動という手法も
    取れましたが、複数のテキストを同時に検査する必要があるような場合には、
    複数個所の入力ミスを同時に指摘するために、ErrorProvider を併用すると良いかもしれません。



    > 2.とりあえず動くけどこれでいいのか?というプログラム
    戻り値をチェックしていないのは、意図的なものでしょうか。


    > ボタンを押してチェックに行くのでActiveControlではどこのテキストをチェックしてるのか取得できませんよね?
    即時チェックで良い場合は、Leave イベントで追加検査する手もあります。
    不正値の場合、e.Cancel = True とすることでフォーカス遷移を抑制することができます。
    http://rucio.a.la9.jp/main/dotnet/shokyu/standard23.htm



    > Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    >  CHKObject(TextBox1)
    > End Sub
    > Function CHKObject(s As Object) As Boolean

    CHKObject の引数は
     s As Object
    よりも
     txt As TextBox
    の方が良いと思います。


    > ボタンを押してチェックに行くのでActiveControlではどこのテキストをチェックしてるのか取得できませんよね?
    『アクティブにならないボタン』を用意する、という手が一応あります。
    http://bbs.wankuma.com/index.cgi?mode=al2&namber=12748&KLOG=27

    しかしユーザーは TextBox を変更した「直後」に、Button を押すとは限らないので、
    今回のパターンにおいて、ActiveControl に頼るのは望ましくないと思います。

    たとえば TextBox を変更した後、ListBox や ComboBox を操作してから
    Button を押すパターンもあるでしょうが、この場合、ActiveControl から
    検索対象を探す手法では、TextBox にたどり着けないでしょう。

    あるいは、TextBox1 に「100」、TextBox2に「*」、TextBox3に「3.14」と入力してから
    Button を押した場合、TextBox2 が非数値であることを検査しようとするような場合も、
    ActiveControl 頼みのコードにはなりえませんよね。
違反を報告
引用返信

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






Mode/  Pass/


- Child Tree -