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) |



■記事リスト / ▼下のスレッド
■34125 / 親記事)  DataGridViewで検索をかける方法
□投稿者/ 武蔵 一般人(4回)-(2019/02/06(Wed) 17:27:46)
  • アイコン環境/言語:[Win 7, VS2015, C# .NET 4.6] 
    分類:[.NET] 

    下記のサイトを参考に型付DataSetとTableAdapterを作りました。
    http://okwakatta.net/code/ado10.html

    そして、TableAdapterを使ってWinFormのDataGridView上にデータを表示することができました。

    using dta = Test.HPDataSetTableAdapters;

    public partial class Form1 : Form
    {
    private void button2_Click(object sender, EventArgs e)
    {
    using (dta.breadTableAdapter ta = new dta.breadTableAdapter())
    {
    HPDataSet ds = new HPDataSet();

    // データを抽出します。
    ta.Fill(ds.bread);
    this.DataGridView1.DataSource = this.ds.bread;
    }
    }
    }

    やりたい事は、Formにはtextboxが一つあります。このtextboxに入力された値で絞り込み検索をかけたいです。
    例えば、上記のサイトデータを使うと、

    select id,name,price from bread where price = テキストボックスの値;

    で絞り込んで、その結果をDataGridViewに表示したいです。
    既にDataSet上にデータがあるので、再度データベースに問合せをしてデータ取得してくるのは違うような気がします。

    どのように絞り込みをかけたらよいか教えてください!宜しくおねがいします。
違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34126 / ResNo.1)  Re[1]: DataGridViewで検索をかける方法
□投稿者/ Hongliang 大御所(553回)-(2019/02/06(Wed) 20:34:42)
  • アイコンDataSourceに(型付)DataTableを設定しているのであれば、DataGridViewはそのDataTableのDefaultViewであるDataViewを使って入出力するデータを管理します。
    DataViewにはRowFilterというプロパティがあり、SQLのWHERE句に似た書式でフィルタリングを設定することができます。
    https://docs.microsoft.com/ja-jp/dotnet/api/system.data.dataview.rowfilter

    // こんな感じになります
    this.ds.bread.DefaultView.RowFilter = String.Format("price = {0}", this.TextBox1.Text);
違反を報告
引用返信
■34127 / ResNo.2)  Re[2]: DataGridViewで検索をかける方法
□投稿者/ 武蔵 一般人(5回)-(2019/02/07(Thu) 09:47:24)
  • アイコンthis.ds.bread.DefaultView.RowFilter = String.Format("price = '{0}'", this.TextBox1.Text);

    でフィルタかけられました。ありがとうございます!
違反を報告
引用返信
■34128 / ResNo.3)  Re[3]: DataGridViewで検索をかける方法
□投稿者/ 武蔵 一般人(6回)-(2019/02/07(Thu) 09:47:44)
  • アイコンありがとうございます。
解決み!
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34121 / 親記事)  DataGridViewの選択時の色を透明にしたい
□投稿者/ 武蔵 一般人(1回)-(2019/02/05(Tue) 17:30:39)
  • アイコン環境/言語:[Win 7, VS2015, C# .NET 4.6] 
    分類:[.NET] 

    DataGridViewのセルを選択した時の背景色について教えてください。

    特定のセルに文字列が入っています。例えばDataGridView1[0,0]に「ABC」と入力されています。
    このセルをクリックすると背景色が赤色にかわります。文字色も赤色にかわるようにしています。

    private void DataGridView1_CellClick(object sender, DataGridViewCellEventArgs e){
    DataGridView1[0,0].Style.BackColor = Color.Red;
    DataGridView1[0,0].Style.ForeColor = Color.Red;
    }

    ここまではよいのですが、セルを選択すると背景色が青で表示され入力された「ABC」という
    文字が見えてしまいます。

    やりたいことは、2点あります。

    @
    特定のセル選択時に背景色が青くならないように透明にしたいです。

    A
    @の問題が解決しても、行選択すると入力された文字が見えてしまいます。
    特定のセルに入力した文字列を透明か非表示みたいにすることはできるでしょうか?


    以上、宜しくおねがいします。

    ※選択時、背景色が青で表示されるというのは、下記の画像のような事を指しています。
    https://stackoverflow.com/questions/15549143/datagridview-selected-cell-default-color
違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34122 / ResNo.1)  Re[1]: DataGridViewの選択時の色を透明にしたい
□投稿者/ Hongliang 大御所(552回)-(2019/02/05(Tue) 17:44:07)
  • アイコンStyleのSelectionBackColorおよびSelectionForeColorも変更すればいいのではないでしょうか。
    // 色変更の契機がCellClickというのは、実現したいことのイメージをつかめないですが。

    セルが編集できるのであれば、文字列選択による反転も考える必要があります。
違反を報告
引用返信
■34123 / ResNo.2)  Re[2]: DataGridViewの選択時の色を透明にしたい
□投稿者/ 武蔵 一般人(2回)-(2019/02/05(Tue) 21:12:22)
  • アイコンHongliang さん

    >StyleのSelectionBackColorおよびSelectionForeColor

    ありがとうございます。試してみます。


    セルの編集は不可にしてあります。
    データベースにユーザーの色情報(RGB)を登録しています。
    DataGridViewにデータを表示する時に、その色情報を使ってセルに色をつけます。

    また、ユーザーに色情報を手軽に変更できるようにしたいと思っています。
    そこで思いついたのがセルをクリックすると、例えばセルの色が赤色になり、
    RGBの情報をセルに入力。RGB情報をデータベースに登録ということを考えていました。
    なので、セルに入力されたRGBの色情報が見えると格好が悪いかなと思って
    質問させていただきました。



違反を報告
引用返信
■34124 / ResNo.3)  Re[3]: DataGridViewの選択時の色を透明にしたい
□投稿者/ 武蔵 一般人(3回)-(2019/02/06(Wed) 10:42:11)
  • アイコン解決しました。ありがとうございます。
解決み!
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34067 / 親記事)  WebBrowserでWebページからのメッセージ
□投稿者/ 猫まっしぐら 一般人(10回)-(2018/12/21(Fri) 07:53:55)
  • アイコン環境/言語:[Windows7 VB.net2005 WinForms] 
    分類:[.NET] 

    おそらくWebBrowserから読んだページ経由だと思いますが偶にこれが出ます
    ポップアップ禁止(NewWindowでe.Cancel = True)は一応しているのですが、これを出さないようにするにはどうすればいいのでしょう…
    それとBirDefenderもインストールはしてあるのですが効果無いし…
500×176 => 250×88
イメージ
Screen001.jpg
/15KB
違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34068 / ResNo.1)  Re[1]: WebBrowserでWebページからのメッセージ
□投稿者/ 魔界の仮面弁士 大御所(1182回)-(2018/12/21(Fri) 10:03:16)
  • アイコンNo34067に返信(猫まっしぐらさんの記事)
    > ポップアップ禁止(NewWindowでe.Cancel = True)は一応しているのですが、これを出さないようにするにはどうすればいいのでしょう…

    タイトルバーに「Web ページからのメッセージ」とありますので、
    これはおそらく、alert メソッドのダイアログですね。

    NewWindow イベントで抑制できるのは、
    スクリプトの window.open や、
    a タグの target="_blank" 等などのように、
    Web ページ自体をウィンドウやタブとして
    開く場合だけでしょう。


    alert / confirm メソッド、あるいは VBScript の MsgBox 等の
    スクリプトダイアログは NewWindow イベントでは拾えないので、
    IDocHostShowUI インターフェイスの ShowMessage メソッドを
    実装して抑制することになるでしょう。

    # 以前投稿した記憶があるので、過去ログにあるかも。
違反を報告
引用返信
■34069 / ResNo.2)  Re[2]: WebBrowserでWebページからのメッセージ
□投稿者/ 猫まっしぐら 一般人(11回)-(2018/12/21(Fri) 13:24:33)
  • アイコンNo34068に返信(魔界の仮面弁士さんの記事)

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

    > IDocHostShowUI インターフェイスの ShowMessage メソッドを
    > 実装して抑制することになるでしょう。
    >
    > # 以前投稿した記憶があるので、過去ログにあるかも。

    探して組み込んでみました
    たまにしか出ないので効果の程は確認できてませんがこれで様子をみてみます
    本当にありがとうございました

解決み!
違反を報告
引用返信
■34070 / ResNo.3)  Re[3]: WebBrowserでWebページからのメッセージ
□投稿者/ 魔界の仮面弁士 大御所(1183回)-(2018/12/21(Fri) 16:18:32)
  • アイコンNo34069に返信(猫まっしぐらさんの記事)
    >>IDocHostShowUI インターフェイスの ShowMessage メソッドを
    >># 以前投稿した記憶があるので、過去ログにあるかも。
    > 探して組み込んでみました

    既に発掘済みのようですが、一応念のために。

    http://dobon.net/vb/bbs/log3-45/26965.html
    http://hanatyan.sakura.ne.jp/patio/read.cgi?mode=view2&f=335&no=0
    https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa753271%28v=vs.85%29
解決み!
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34063 / 親記事)  ASP.NETから呼ばれているかどうか判定する方法
□投稿者/ ぺんたごん 一般人(29回)-(2018/12/12(Wed) 11:45:42)
  • アイコン環境/言語:[.NET 4.5.2] 
    分類:[.NET] 

    こんにちわ。

    今回、クラスライブラリを作っています。
    これはWinForms、WPFやASP.NETなどからも使用可能なものとしています。
    ここで、ASP.NETから呼び出されたときだけ挙動を少し変えようとしていますが、
    なにか良い方法は有りますでしょうか。

    ひとつ思いついたのは、エントリとなったアセンブリ名を取得し、
    w3wp.exeだった場合はASP.NETだと判定する方法ですが、
    もしWinFormsなどでexe名がw3wpだと誤判定する問題が有ります…

    どうかよろしくお願いします。
違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34064 / ResNo.1)  Re[1]: ASP.NETから呼ばれているかどうか判定する方法
□投稿者/ shu 大御所(483回)-(2018/12/12(Wed) 17:02:13)
  • アイコンNo34063に返信(ぺんたごんさんの記事)

    起動モードをパラメータとして渡すようにして、その内容で
    判断するようにしておいた方がよいと思います。


違反を報告
引用返信
■34065 / ResNo.2)  Re[1]: ASP.NETから呼ばれているかどうか判定する方法
□投稿者/ 魔界の仮面弁士 大御所(1181回)-(2018/12/12(Wed) 17:33:17)
  • アイコンNo34063に返信(ぺんたごんさんの記事)
    > ここで、ASP.NETから呼び出されたときだけ挙動を少し変えようとしていますが、

    たとえば、下記のような代替策では駄目でしょうか。

    ・.config ファイルで挙動を指定する設計にする
    ・挙動を変更するための初期化パラメーターを呼び出し元から指定できるようにする
    ・プリプロセッサにより、それぞれの呼び出し元ごとに別のアセンブリとしてコンパイルする

    > w3wp.exeだった場合はASP.NETだと判定する方法ですが、
    aspnet_wp.exe という可能性もあるかも。


    > もしWinFormsなどでexe名がw3wpだと誤判定する問題が有ります…
    (同じファイル名にする明確な理由が思い当たらなかった…)

    WinForms と ASP.NET の二択で良ければ、Environment.UserInteractive あたりが
    つかえるかもしれません。他のサービスから利用する可能性があるなら駄目ですが。

    あるいは、Principal を判定する方法もありそうですが、こちらは認証方法次第ですね。

    あとは System.Web.Hosting.HostingEnvironment.IsHosted とかかな…。


    方法を考えるにしても、その切替が必要となった理由次第と言えるので、
    どういった挙動変更をどのような目的で行いたいのかといった
    具体的な背景が分かると助かります。
違反を報告
引用返信
■34066 / ResNo.3)  Re[2]: ASP.NETから呼ばれているかどうか判定する方法
□投稿者/ ぺんたごん 一般人(30回)-(2018/12/13(Thu) 13:44:29)
  • アイコンありがとうございます。

    プロセス名については、作ってるのはあくまでライブラリなので
    誰がどんなexe名にするか不明なため最悪なパターンとして被るなぁという意味でした。
    プロパティで外から設定してもらうことにし、
    誰かがASP.NETで作ってて設定し忘れた場合は自己責任ということにします。

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

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



■記事リスト / ▲上のスレッド
■34058 / 親記事)  CA2213の警告が消えません
□投稿者/ CHIKO 一般人(1回)-(2018/12/08(Sat) 15:06:37)
  • アイコン環境/言語:[C#VS2017] 
    分類:[.NET] 

    いつも参考にさせていただいています、ありがとうございます。
    DLL参照やTimerのDisposeで困っています、宜しくお願い致します。

    Consoleアプリケーションを作成しています。
    System.Timers.Timerを2つ使用しています。
    コード分析するとwarning CA2213: Microsoft.Usage : 'XXX' は、IDisposable 型 'Timer' であるフィールド 'XXX.Timer' を含んでいます。このフィールドで Dispose または Close を呼び出すには、'XXX' の Dispose メソッドを変更してください。
    がでます。

    以下のコードを記述しておりますが、警告が消えません。何が問題なのでしょうか。
    #region IDisposable Support
    private bool disposedValue = false; // 重複する呼び出しを検出するには

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", MessageId = "TimerStopX")]
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", MessageId = "TimerError")]
    protected virtual void Dispose(bool disposing)
    {
    if (!disposedValue)
    {
    if (disposing)
    {
    if (TimerError != null) { TimerError.Elapsed -= TimerError_Elapsed; }
    if (TimerStopX != null)
    {
    TimerStopX.Elapsed -= OnTime_Stop;
    }
    ((IDisposable)TimerStopXy)?.Dispose();
    ((IDisposable)TimerError)?.Dispose();
    }
    // TODO: アンマネージド リソース (アンマネージド オブジェクト) を解放し、下のファイナライザーをオーバーライドします。
    // TODO: 大きなフィールドを null に設定します。

    disposedValue = true;
    }
    }

    // TODO: 上の Dispose(bool disposing) にアンマネージド リソースを解放するコードが含まれる場合にのみ、ファイナライザーをオーバーライドします。
    // ~HTTPSockets() {
    // // このコードを変更しないでください。クリーンアップ コードを上の Dispose(bool disposing) に記述します。
    // Dispose(false);
    // }

    // このコードは、破棄可能なパターンを正しく実装できるように追加されました。
    public void Dispose()
    {
    // このコードを変更しないでください。クリーンアップ コードを上の Dispose(bool disposing) に記述します。
    Dispose(true);
    // TODO: 上のファイナライザーがオーバーライドされる場合は、次の行のコメントを解除してください。
    // GC.SuppressFinalize(this);
    }
    #endregion

    }
違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34059 / ResNo.1)  Re[1]: CA2213の警告が消えません
□投稿者/ 魔界の仮面弁士 大御所(1178回)-(2018/12/10(Mon) 09:18:16)
  • アイコンNo34058に返信(CHIKOさんの記事)
    > System.Timers.Timerを2つ使用しています。

    3 つあるようにも見えます。
    > TimerStopX.Elapsed -= OnTime_Stop;
    > ((IDisposable)TimerStopXy)?.Dispose();
    > ((IDisposable)TimerError)?.Dispose();



    > コード分析するとwarning CA2213: Microsoft.Usage : 'XXX' は、IDisposable 型 'Timer' であるフィールド 'XXX.Timer' を含んでいます。
    > このフィールドで Dispose または Close を呼び出すには、'XXX' の Dispose メソッドを変更してください。
    > がでます。

    この XXX というのは、「class HTTPSockets : System.IDisposable」のようなものでしょうか。
    だとしたら、「class HTTPSockets : System.ComponentModel.Component」に変更してみるとか。
    https://social.msdn.microsoft.com/Forums/ja-JP/b0430ffa-3e5e-40ae-9d79-ffb8283818f7/
違反を報告
引用返信
■34061 / ResNo.2)  Re[1]: CA2213の警告が消えません
□投稿者/ 魔界の仮面弁士 大御所(1180回)-(2018/12/10(Mon) 11:07:32)
  • アイコンNo34058に返信(CHIKOさんの記事)
    > 以下のコードを記述しておりますが、警告が消えません。

    試しに、TimerError を Private Field ではなく、
    Read-Only Property にしてみたところ、先の CA2213 警告が
    直接アクセス不能なバッキングフィールドを提示してきました。(^_^;)


     警告 CA2213 '型' は、IDisposable 型 'Timer' である
     フィールド '型.<TimerError>k__BackingField' を含んでいます。
     このフィールドで Dispose または Close を呼び出すには、
     '型' の Dispose メソッドを変更してください。


    ただし、setter が private で、getter が 非 private なプロパティにすると
    この警告は発生しませんでした。



    > ((IDisposable)TimerStopXy)?.Dispose();
    > ((IDisposable)TimerError)?.Dispose();

    「?.」がマズイみたいですね。
    VS2017 の場合、null 条件演算子 を使わなければ警告は出ませんでした。

    アナライザー側の問題のような気もするのですが、コード分析は
    既に非推奨な機能のようです。
    (VS2019 Preview 1 では、FxCop Analyzers に移行するよう促されます)



    いずれにせよ今回の場合、事前に null チェックを行っていますので、
    null 条件演算子を使う必要は無さそうです。

    if (!disposedValue)
    {
     if (disposing)
     {
      if (TimerError != null)
      {
       TimerError.Elapsed -= TimerError_Elapsed;
       TimerError.Dispose(); // TimerError?.Dispose();
       TimerError = null;
      }
      // 略
      //
      disposing = true;
     }
    }
違反を報告
引用返信
■34062 / ResNo.3)  Re[2]: CA2213の警告が消えません
□投稿者/ CHIKO 一般人(2回)-(2018/12/10(Mon) 11:23:52)
  • アイコンわざわざコーディングして調べて頂いてありがとうございます。

    ?を外したら警告が消えました!!(誤字の多いコードで大変失礼致しました)
    大変助かりました。

    >アナライザー側の問題のような気もするのですが、コード分析は
    >既に非推奨な機能のようです。
    >(VS2019 Preview 1 では、FxCop Analyzers に移行するよう促されます)

    情報ありがとうございます。VS2019がもうでているのですね。
    今後とも宜しくお願い致します。
解決み!
違反を報告
引用返信

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






Mode/  Pass/


- Child Tree -