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

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

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

全過去ログを検索

<< 0 >>
■8232  windowsのスタートボタンからの動作のプログラム
□投稿者/ oriental -(2007/09/26(Wed) 16:25:19)

    分類:[.NET 全般] 

    はじめまして。

    visualstudio2003,c#を使ってます。

    windowsXPのデスクトップの左下にあるスタートボタンをクリックすると、インターネットや電子メールなどのいくつかのアイコンが表示されますが、この動作のプログラムソースを見ることってできるのですか?
親記事 /過去ログ20より / 関連記事表示
削除チェック/

■12157  Re[1]: C#エラーについて
□投稿者/ オノデラ -(2008/01/01(Tue) 10:46:12)
>
     Kiyoshi さんはじめまして、オノデラです。

     すこし見てみましたが、まずスコープがおかしいです。

    public Form1 Form1Instance;//Form1のインスタンス

    が Form2 のクラスの外で定義されているため、上記のようなエラーが出てしまうのです。上のコードは Form2 のクラスの中に記述しましょう。

     } と ) の違いにも気を付けてください。

     button1_Click のメソッドが2つ定義されています。どちらかひとつにまとめてください。


     スコープとかクラスなどは基本部分ですので、書籍とかでもう一度プログラムの書き方などを確認してみた方がいいかと思います。(2つのフォームを使っているサンプルが書いてある本がいいですね)
記事No.12154 のレス /過去ログ26より / 関連記事表示
削除チェック/

■22521  DataTableへ配列の値を入れたい
□投稿者/ 気合 -(2008/07/25(Fri) 00:59:58)

    分類:[.NET 全般] 

    ASP.NET C#です
    なにか別に方法があるかもしれませんが、作成したいものに対してできるのなら
    お教え願いたいです。
    DataTableへ配列の値(仮に1〜100までの値)を格納したいです。for文で回したりしていれずコピーなどでどうにか入らないものでしょうか?
    ご教授願いします
親記事 /過去ログ43より / 関連記事表示
削除チェック/

■51725  BinaryReaderについて
□投稿者/ yu -(2010/07/15(Thu) 08:59:36)

    分類:[.NET 全般] 

    2010/07/15(Thu) 09:10:26 編集(投稿者)
    2010/07/15(Thu) 09:10:12 編集(投稿者)

    VB.NET 2008
    Windows XP

    バイナリーデータを開く処理をタスクスケジューラーにて行っております(毎時)
    そこで、ログを確認すると、下記メッセージが発生していました。

    ”別のプロセスで使用されているため、プロセスはファイル 'ファイル名' にアクセスできません。”

    原因である別プロセスを調べるのが一番だと思いますが、諸事情により困難な為、他案で回避することとしました。
    現在のプログラムは下記コードでファイルを開いています。FileShare.ReadWriteをつけましたがやはりロックが発生します。

    _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
    Dim fs As System.IO.BinaryReader = Nothing
    fs = New System.IO.BinaryReader(IO.File.Open("ファイル名", IO.FileMode.Open))
    _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

    試しにテスト的にロックを起こそうと思い、開き元がFileStream、StreamReader、またはFileSystem.FileOpenでオープンさせ、
    その後、BinaryReader(OpenShare.Shared付き)ですると開きましたが、元がBinaryReader(OpenShare.Shared無し)で、
    BinaryReader(OpenShare.Shared付き)や、FileStream、StreamReader、またはFileSystem.FileOpenすると開きません。

    やはりロックしているプロセスが、BinaryReader(OpenShare.Shared無し)だと、開く事が不可能なのでしょうか?

    以上、宜しくお願いします。
親記事 /過去ログ87より / 関連記事表示
削除チェック/

■62149  SQLserver ストアド 複数条件で検索
□投稿者/ hs -(2011/09/25(Sun) 10:46:34)

    分類:[データベース全般] 

    いつもお世話になっております。

    VBで名簿管理ソフトを作成してます。
    データベースはSQLserver2003です。

    SQLserver のストアドのSELECT文で困っております。
    検索対象の列が10個あり、それぞれの列のパラメータを用意したストアドを作成中です。
    VB側にそれぞれ列のテキストボックスを配置しております。
    それぞれテキストには検索したい項目のみの入力をしてもらい[検索]Click、とありきたりな仕様です。
    入力されてないテキストは検索対象ではないので、ストアドでそれを判別出来ればと思っておりますが
    全項目入力があれば簡単ですが、これだけ複雑なWHERE句になると、どう記述すべきか判りません。
    全条件を、IFで記述するなんてバカげた事はないと思いますし...


    @列01 nvarchar(20),
    @列02 nvarchar(20),
     ・
     ・
    @列09 nvarchar(20),
    @列10 nvarchar(20)

    AS
    BEGIN

      IF @列01 に値があれば...
        SELECT

        IF @列02 に値があれば...
          SELECT

          IF @列03 に値があれば...
            SELECT
          ・
          ・
        ELSE IF
        
      ELSE IF
      ELSE IF

    END

    お力お貸し下さい。

親記事 /過去ログ104より / 関連記事表示
削除チェック/

■66523  Re[4]: 実行時のASP.NETの各ページのクラス名について
□投稿者/ るぷ犬 -(2013/05/01(Wed) 15:58:39)
    No66522 (もりお さん) に返信
    > 2013/05/01(Wed) 15:12:14 編集(投稿者)
    >
    > ■No66520 (るぷ犬 さん) に返信
    >
    >>aspxページ(contents.aspx)の方には何も書かなくていい(継承の類)のですよね?
    >
    > コードビハインドがBasePageを継承して、
    > aspxページがそのコードビハインドを継承する必要があります。
    >
    > aspxページがコードビハインドを継承する、というのは
    > aspxページのPageディレクティブのInherits属性にコードビハインドが指定されるということです。
    > こんな感じです。
    > <%@ Page …… CodeBehind="contents.aspx.vb" Inherits="WebApplication1.contents" %>
    >
    > aspxページがすでにコードビハインドを継承するようになっていれば特別書く必要はありません。
    > aspxページがコードビハインドを継承するようになっていなければ、PageディレクティブのInherits属性に
    > コードビハインドを指定することでaspxページがコードビハインドを継承するようにする必要があります。


    確認したところ、上記に書かれてあることは設定していました。
    ・aspxページのPageディレクティブのInherits属性


    いわば、Inherits属性に書いてあるWebApplication1.contentsはBasePageを継承しているって
    事だと思っています。

    それでも、DirectCastができないという状態です。
記事No.66511 のレス /過去ログ112より / 関連記事表示
削除チェック/

■75635  Re[8]: TextBoxArray を取得したいんですが
□投稿者/ 魔界の仮面弁士 -(2015/04/16(Thu) 11:38:24)
    No75632 (良い湯 さん) に返信
    > >操作される側のフォームにあらかじめ、
    > >  「TextBox を追加するための Public なメソッド」
    > >を定義しておき、それを呼び出すべきだと思いますよ。
    > を考えていますが、
    > 問題はFORMの外部moduleでの共通関数でのActiveFormからの参照で
    > FORM側のPublicメソッドが呼び出せない事です。(方法がわからないだけかも)

    たとえば、個々のフォームに
     Public Sub TextBox追加メソッド(パラメータ As Short)
    などを追加しておいて、Module 側からは
     CObj(ActiveForm).TextBox追加メソッド(5)
    などという感じですね。
    ただし、メソッドを実装していないフォームに対して呼び出すと
    当然エラーになりますので、その点は注意が必要です。


    レイトバインドが気持ち悪いのであれば、
     Public Interface ITextBoxArrayLoader
      Sub TextBox追加メソッド(パラメータ As Short)
     End Interface
    こんな感じのインターフェイスを用意しておき、各フォームでは
     Public Class Form2
      Implements ITextBoxArrayLoader
      Private Sub TextBox追加メソッド(パラメータ As Short) Implements ITextBoxArrayLoader.TextBox追加メソッド
      End Sub
     End Class
    などのようにして実装していけば OK 。この場合、呼び出し側は
     Dim loader = TryCast(ActiveForm, ITextBoxArrayLoader)
     If loader IsNot Nothing Then
      loader.TextBox追加メソッド(5)
     End If
    などと書けます。インターフェイスを実装しているかも If 文で調べられます。
    インターフェイスを使う代わりに、基底のクラスを差し替える手法でもいけますね。


    それ以外の別案としては、System.Windows.Forms.Form に対して、
    拡張メソッド(すなわちExtension属性)を用いて定義する方法もありますが、
    コントロール配列の扱いが画面ごとに異なる場合には、この方法だと扱いにくいでしょう。
記事No.75620 のレス /過去ログ127より / 関連記事表示
削除チェック/

■91519  Re[3]: メモリリークに関して
□投稿者/ WebSurfer -(2019/07/03(Wed) 11:43:19)
    No91517 (kiku さん) に返信

    自信度は高くなく間違っているかもしれませんので、以下のレスはそのつもりで見てください。

    > 通常下記2でVusualStudiooの自動生成されたソース内の
    > Control.Addされるため、Control.Dispose内で自動的に
    > マネージドリソースもdisposeされる認識でした。

    Form コントロールの場合、Dispose(), Dispose(bool) の実装は Control toha違うようです。
    下のリンクをクリックして画像を見てください。

    http://surferonwww.info/BlogEngine/image.axd?picture=2019%2f7%2fFormDispose0.jpg

    VS2008 のヘルプの画像ですが、このあたりはたぶん最新版でも同じはずです。Form に実装され
    ている Dispose() と Dispose(boolean) は上の画像の一番上と一番下のものです。

    一番下の Form.Dispose (Boolean) メソッドには CE がサポートしているというアイコンがない
    のに注目してください。

    CE はどうしているかは不明ですが、魔界の仮面弁士さんのレスにある Control.Dispose(bool)
    メソッド(画像の上から 3 番目のもの)を使っているのではなかろうかと思われます。

    そうであれば、Dispose パターンが実装されていれば、Dispose メソッドを呼び出せば上の画像の
    ヘルプの Control.Dispose(Boolean) メソッドの解説に書いてあったように、

    "Control とその子コントロールが使用しているアンマネージ リソースを解放します。オプションで、
    マネージ リソースも解放します。"

    ・・・となると思われます。


    CE は関係なさそうですが、ご参考までに上の画像のヘルプの Form.Dispose メソッド (Boolean)
    の解説の抜粋も書いておきますね。

    *** Quote ***
    Form で使用されていたリソース (メモリを除く) を解放します。

    このメソッドは、パブリック メソッド Dispose と Finalize メソッドによって呼び出されます。
    Dispose は、disposing パラメータに true を設定して、プロテクト メソッド Dispose(Boolean)
    を呼び出します。Finalize は、disposing に false を設定して、Dispose を呼び出します。

    disposing パラメータが true の場合、このメソッドは、この Form から参照されるすべての
    マネージ オブジェクトが保持しているリソースをすべて解放します。このメソッドは、参照
    される各オブジェクトの Dispose メソッドを呼び出します。

    Dispose は、フォームが Show メソッドを使用して表示した場合に自動的に呼び出されます。
    ShowDialog などの別のメソッドを使用する場合、またはフォームがまったく表示されない場合は、
    アプリケーション内で Dispose を明示的に呼び出す必要があります。
    *** Unqoute ***

    ちなみに、CE 版でない通常の Windows Forms アプリが Form.Dispose (Boolean) メソッドを
    使っていることは間違いなさそうです。

    http://surferonwww.info/BlogEngine/image.axd?picture=2019%2f7%2fFormDispose1.jpg

    質問者さんの CE 版の場合はどうなってるでしょう?
記事No.91509 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91521  Re[4]: メモリリークに関して
□投稿者/ kiku -(2019/07/03(Wed) 13:26:36)
    No91519 (WebSurfer さん) に返信
    > 質問者さんの CE 版の場合はどうなってるでしょう?
    
    回答になっているかわかりませんが、
    Formは下記のようにusingにて囲っているため、
    必ずフォームのDipposeが呼ばれる認識でいます。
    
                using (var form = new Test())
                {
                    form.ShowDialog();
                }
    
記事No.91509 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91522  Re[5]: メモリリークに関して
□投稿者/ WebSurfer -(2019/07/03(Wed) 14:40:36)
    No91521 (kiku さん) に返信
    
    >>質問者さんの CE 版の場合はどうなってるでしょう?
    
    その意味は、上の No91519 に張ったリンク先の画像(下に再掲)で base.Dispose(disposing; にカーソ
    ルを当てて見ると、自分の環境では Form.Disposing(bool) となっていますが、質問者さんの CE 環境で
    はどうなってますかという意味です。
    
    http://surferonwww.info/BlogEngine/image.axd?picture=2019%2f7%2fFormDispose1.jpg
    
    CE では Form.Disposing(bool) はサポートされてないそうなので。
    
    
    > Formは下記のようにusingにて囲っているため、
    > 必ずフォームのDipposeが呼ばれる認識でいます。
    > 
    >             using (var form = new Test())
    >             {
    >                 form.ShowDialog();
    >             }
    > 
    
    Dispose は using を抜けるときに呼ばれると自分も思います。でも、No91519 で書きました、
    
    > Dispose は、フォームが Show メソッドを使用して表示した場合に自動的に呼び出されます。
    > ShowDialog などの別のメソッドを使用する場合、またはフォームがまったく表示されない場合は、
    > アプリケーション内で Dispose を明示的に呼び出す必要があります。
    
    の「ShowDialog などの別のメソッドを使用する場合」が気になります。気にしすぎだろうとは思
    いますが。
    
    
記事No.91509 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91526  Re[6]: メモリリークに関して
□投稿者/ kiku -(2019/07/03(Wed) 17:09:11)
    No91522 (WebSurfer さん) に返信
    > その意味は、上の No91519 に張ったリンク先の画像(下に再掲)で base.Dispose(disposing; にカーソ
    > ルを当てて見ると、自分の環境では Form.Disposing(bool) となっていますが、質問者さんの CE 環境で
    > はどうなってますかという意味です。
    > http://surferonwww.info/BlogEngine/image.axd?picture=2019%2f7%2fFormDispose1.jpg
    > CE では Form.Disposing(bool) はサポートされてないそうなので。

    画像が貼れなく手打ちになってしまったため、スペルミスがあるかもしれませんが、
    下記の説明が出ていました。
    Releases the unmanaged resources used by the System.Windows.Forms.Control and its child controls and optionally releases the managed resources.


    > の「ShowDialog などの別のメソッドを使用する場合」が気になります。気にしすぎだろうとは思
    > いますが。

    なるほど、Formのdisposeが呼ばれていない可能性があるということですね。
    考えに入れることにします。
    disposeが呼ばれたがどうかの確認がやっぱり必要になってきそうです。
    これが今うまくできずに困っています。
記事No.91509 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91525  Re[4]: メモリリークに関して
□投稿者/ 魔界の仮面弁士 -(2019/07/03(Wed) 17:07:14)
    No91519 (WebSurfer さん) に返信
    > Form コントロールの場合、Dispose(), Dispose(bool) の実装は Control toha違うようです。
    > 下のリンクをクリックして画像を見てください。
    > http://surferonwww.info/BlogEngine/image.axd?picture=2019%2f7%2fFormDispose0.jpg

    Dispose の実装は、Label と Form で差異が無さそうに見えます。
    少なくとも .NET Compact Framework においては。


    手元の VS2008 環境で、Form1 の継承関係をたどってみました。
    CE 機が無いので、エミュレーターでの動作ですけれども。


     × は Dispose(boolean) が実装されていないクラス
     ※ は Dispose(boolean) が派生元にあるが、実装しなおしてないクラス
     ☆ は Sub Overrides Dispose(boolean) として実装しなおされているクラス
     ★ は Sub Overridable Dispose(boolean) として最初に実装されているクラス


    .NET Compact Framework の場合

    × Object
    └× MarshalByRefObject
     └★ Component
      └☆ Control
       └※ ScrollableControl
        └※ ContainerControl
         └※ Form
          └☆ Form1


    .NET Framework の場合

    × Object
    └× MarshalByRefObject
     └★ Component
      └☆ Control
       └☆ ScrollableControl
        └☆ ContainerControl
         └☆ Form
          └☆ Form1



    Imports System.Reflection

    Public Class Form1
      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ListBox1.DataSource = New Type(-1) {}
        ListBox1.DisplayMember = "Name"
        ListBox2.DataSource = New Type(-1) {}
        ListBox2.DisplayMember = "Name"
        ComboBox1.DataSource = New Type() { _
          GetType(Form1), _
          GetType(Form), _
          GetType(Label), _
          GetType(Panel), _
          GetType(Control) _
        }
        ComboBox1.DisplayMember = "FullName"
        TextBox1.Text = "Dispose"
        CheckBox1.Checked = True
      End Sub

      Private Sub Analyze(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged, CheckBox1.CheckStateChanged, TextBox1.TextChanged
        Analyze()
      End Sub

      Private Sub Analyze()
        Dim selType As Type = DirectCast(ComboBox1.SelectedItem, Type)
        Dim methodName As String = TextBox1.Text
        Dim declaredOnly As Boolean = CheckBox1.Checked
        CheckBox1.Enabled = Not String.IsNullOrEmpty(methodName)

        'Sub Dispose() の実装
        ListBox1.DataSource = EnumrateMethodImpl(selType, declaredOnly, methodName)

        'Sub Dispose(Boolean) の実装
        ListBox2.DataSource = EnumrateMethodImpl(selType, declaredOnly, methodName, GetType(Boolean))
      End Sub

      Public Shared Function EnumrateMethodImpl(ByVal t As Type, ByVal declaredOnly As Boolean, ByVal methodName As String, ByVal ParamArray params As Type()) As Type()
        Dim bf As BindingFlags = BindingFlags.NonPublic Or BindingFlags.Public Or BindingFlags.Instance
        If declaredOnly Then
          bf = bf Or BindingFlags.DeclaredOnly
        End If
        Dim targetType As Type = t
        Dim types As New List(Of Type)()
        Dim bt As Type = targetType
        Do
          If String.IsNullOrEmpty(methodName) Then
            types.Add(bt)
          ElseIf bt.GetMethod(methodName, bf, Type.DefaultBinder, params, Nothing) IsNot Nothing Then
            types.Add(bt)
          End If
          bt = bt.BaseType
        Loop Until bt Is Nothing
        Dim result As Type() = types.ToArray()
        Array.Reverse(result)
        Return result
      End Function
    End Class
記事No.91509 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91528  Re[5]: メモリリークに関して
□投稿者/ kiku -(2019/07/03(Wed) 17:43:52)
    No91525 (魔界の仮面弁士 さん) に返信
    > ■No91519 (WebSurfer さん) に返信
    >>Form コントロールの場合、Dispose(), Dispose(bool) の実装は Control toha違うようです。
    >>下のリンクをクリックして画像を見てください。
    >>http://surferonwww.info/BlogEngine/image.axd?picture=2019%2f7%2fFormDispose0.jpg
    > Dispose の実装は、Label と Form で差異が無さそうに見えます。
    > 少なくとも .NET Compact Framework においては。

    わざわざ検証いただきありがとうございます。

    > 手元の VS2008 環境で、Form1 の継承関係をたどってみました。
    > CE 機が無いので、エミュレーターでの動作ですけれども。

    貼って頂いたソースを実機で動かすことはできましたが
    その結果をどのように掲示板に報告するのが良いのか
    ソースの内容を理解できていないため、
    わかりませんでした。
    継承関係を同じように報告すべきだとは思うのですが、
    ごめんなさい。
記事No.91509 のレス /過去ログ158より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -