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 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 >>
■2014  Re[1]: DataSetで取得した値の最大値を取得したい
□投稿者/ 夏椰 -(2005/11/29(Tue) 10:47:12)

    分類:[ASP.NET] 

    No2011に返信(青蠍さんの記事)
    > そのDatasetの中で4つのColumn(A・B・C・D)の内
    > A〜Cまでのデータが同一の場合DのColumnのデータが最大の行だけを取得したい
    SQLでGROUP BY句を指定し、MAX(D)を取得すれば出来るのではと思うのですが、
    試されましたでしょうか?

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

■7849  Re[1]: 画像の位置自動補正
□投稿者/ 渋木宏明(ひどり) -(2006/10/28(Sat) 05:53:25)
>

    分類:[VB.NET] 

    > デジカメorカメラで撮影した画像を自動的にformの中央に補正するというのがどうすればいいんですか??

    Form のクライアント領域と画像の大きさは分かるはずなんで、それを元に画像の表示位置えお計算すればいいんじゃないでしょうか。


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

■2014  Re[9]: テーブルのtdタグの中にRadioButton
□投稿者/ かのかの -(2007/03/13(Tue) 14:03:21)
    THREE-ONEさん>
     ありがとうございます。さわやかにGetできました☆
    ぼのぼのさん>
     何度もありがとうございます。
     これだと普通のASPタグのテキストボックスではなく普通のInputタグのテキストボックスで
     IDは自分で指定してRequestでとればできるんですね☆
     回答が遅くなりましたが、できました。本当にありがとうございます。
     一気にいろいろ解決できました。あとはモリモリ作るだけです。
     またわからないことがありましたらよろしくお願いします。

    ※参考までにかのかのがかいたソースです。ベタ&汚いですが、初心者ゆえおゆるしくださいませ。
    ■ASPXのソース
    <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm10.aspx.vb" Inherits="WebApplication2.WebForm10"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <title>WebForm8</title>
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
    <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <asp:repeater id="rptList" runat="server">
    <HeaderTemplate>
    <table border="1">
    <tr>
    <td>
    選択
    </td>
    <td>
    データ
    </td>
    </tr>
    </HeaderTemplate>
    <ItemTemplate>
    <tr>
    <td>
    <asp:Literal ID="ltlSelect" runat="server"></asp:Literal>
    </td>
    <td>
    <asp:Literal ID="ltlName" runat="server"></asp:Literal>
    </td>
    </tr>
    </ItemTemplate>
    <FooterTemplate>
    </table>
    </FooterTemplate>
    </asp:repeater><asp:button id="btnData" runat="server" Text="何番目?"></asp:button><br>
    <asp:label id="Label1" runat="server">が選択されました</asp:label>
    </form>
    </body>
    </HTML>
    ■ASP.VBのソース
    Public Class WebForm10
    Inherits System.Web.UI.Page

    #Region " Web フォーム デザイナで生成されたコード "

    'この呼び出しは Web フォーム デザイナで必要です。
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub
    Protected WithEvents rptList As System.Web.UI.WebControls.Repeater
    Protected WithEvents ltlSelect As System.Web.UI.WebControls.Literal
    Protected WithEvents ltlName As System.Web.UI.WebControls.Literal

    Protected WithEvents btnData As System.Web.UI.WebControls.Button
    Protected WithEvents Label1 As System.Web.UI.WebControls.Label

    'RoomMate
    Public Structure pRoomMateType
    Dim strNumber As String '番号
    Dim strName As String 'お名前
    End Structure
    Public pdateRoomMate() As pRoomMateType 'データを入れておく変数
    Public pstrSelectNumber As String '選択されたやつ

    'メモ : 次のプレースホルダ宣言は Web フォーム デザイナで必要です。
    '削除および移動しないでください。
    Private designerPlaceholderDeclaration As System.Object

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
    ' CODEGEN: このメソッド呼び出しは Web フォーム デザイナで必要です。
    ' コード エディタを使って変更しないでください。
    InitializeComponent()

    Dim strWork As String

    ''データの取得
    Call mInit()
    End Sub
    #End Region
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ' ページを初期化するユーザー コードをここに挿入します。
    Dim values As New ArrayList
    Dim intCnt As Integer

    ''データの取得
    Call mInit()

    ''データ件数分データを埋め込みます。
    For intCnt = 0 To UBound(pdateRoomMate)
    ''2レコード設定
    values.Add(Nothing)
    Next

    rptList.DataSource = values
    rptList.DataBind()

    End Sub
    ''データ作成時
    Private Sub rptList_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rptList.ItemCreated

    Dim intCnt As Integer
    Dim strWork As String
    Dim strJavaS As String
    Dim Literal As Literal
    Dim txtC_Name As TextBox
    Dim strChecked As String
    Dim strJavaN As String

    '''データの取得
    'Call mInit()

    ''現在データカウント
    intCnt = e.Item.ItemIndex

    ''0件目以上から作成する
    If e.Item.ItemIndex >= 0 Then
    ''選択済みデータなし
    If pstrSelectNumber = "" Then
    '1件目
    If intCnt = 0 Then
    strChecked = "checked"
    Else
    strChecked = ""
    End If
    ''選択済みデータ有
    Else
    '今回データと等しい場合
    If pdateRoomMate(intCnt).strNumber = pstrSelectNumber Then
    strChecked = "checked"
    Else
    strChecked = ""
    End If
    End If

    'ラジオボタン
    strJavaS = "<input type='radio' name='select' value='" & pdateRoomMate(intCnt).strNumber & "'" & strChecked & " />"
    '名前
    strJavaN = "<input type='text' name='name" & intCnt & "' value='" & pdateRoomMate(intCnt).strName & "' />"

    DirectCast(e.Item.FindControl("ltlSelect"), Literal).Text = strJavaS
    DirectCast(e.Item.FindControl("ltlName"), Literal).Text = strJavaN
    End If
    End Sub

    ''ボタンがクリックされたとき
    Sub btnData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnData.Click
    '’誰が選択されたをラベルに表示する
    Dim strWork As String

    ''データの取得
    Call mInit()

    strWork = Request("select").ToString

    Label1.Text = strWork & "が選択されました。"
    End Sub

    Private Function mInit() As Boolean

    Dim intCnt As Integer ''ループカウンター

    ''配列の初期化
    Erase pdateRoomMate

    ''二人分データをセットする
    ReDim Preserve pdateRoomMate(1)

    '一人目
    pdateRoomMate(0).strNumber = "000001"
    pdateRoomMate(0).strName = "かのかの"

    '二人目
    pdateRoomMate(1).strNumber = "000002"
    pdateRoomMate(1).strName = "太郎"

    If IsPostBack Then
    ''選択済み状態ラジオボタン位置
    pstrSelectNumber = Request("select")
       ''名前が変更された人のでーたも取得します。
    For intCnt = 0 To UBound(pdateRoomMate)
    pdateRoomMate(intCnt).strName = Request("name" & intCnt)
    Next
    End If
    End Function
    End Class
記事No.1916 のレス / END /過去ログ11より / 関連記事表示
削除チェック/

■8018  Re[7]: タスクバーのクリックについて
□投稿者/ 渋木宏明(ひどり) -(2007/09/21(Fri) 11:33:34)
>
    Windows Live Messanger は、最大化した時は標準のタイトルバーを表示してますね。
    WndProc をオーバーライドして、とか面倒なことをしたくないなら、たぶんこれがイチバン簡単な解決策だと思います。

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

■7927  反時計回り 時計回り すいませんバグありました!
□投稿者/ セイン -(2007/09/19(Wed) 21:45:25)

    分類:[.NET 全般] 

    以前 反時計回り 時計回りのスレを立てさせていただいたものです。
    過去ログを検索しましたが、なくなってしまっていました(TT)

    すいませんバグがあったので対応方法ご相談させてください。
    [A] {x=43.435263644876358 y=46.805638648666644 z=0.050000000745058060 }
    [B] {x=46.820140424800996 y=50.190515428591283 z=0.050000000745058060 }
    [C] {x=46.820140424800996 y=50.190515428591283 z=-0.050000000745058060 }
    [D] {x=43.435263644876358 y=46.805638648666644 z=-0.050000000745058060 }

    この座標のベクトルは約
    ベクトル
    AB 3 4 0
    AC 3 4 -1
    AD 0 0 -1

    外積
    AB×AC -4 3 0
    AC×AD -4 3 0


    上のがいせきの合計値のXYZをすべて足すと0なので、面積や座標の回転方向が求まりませんでした><
    ご教授お願いします。




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

■7940  Re[2]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ セイン -(2007/09/20(Thu) 11:58:28)
    2007/09/20(Thu) 13:23:43 編集(投稿者)

    No7931 (れい さん) に返信
    > ■No7927 (セイン さん) に返信
    >>上のがいせきの合計値のXYZをすべて足すと0なので、面積や座標の回転方向が求まりませんでした><
    >>ご教授お願いします。
    >
    > 「がいせきの合計値」というのが何をさすのか分かりませんが。
    > 面積であるところの外積の絶対値の合計も、
    > 外積のベクトルとしての総和も、0ではありません。
    > 普通に面積も法線ベクトルも求まってるように見えますが。
    >

    あれ?すいません。もう一度
    [A] {x=45.702596842378597 y=49.072971846168883 z=1.0000000000000000 }
    [B] {x=46.820140424800996 y=50.190515428591283 z=1.0000000000000000 }
    [C] {x=46.820140424800996 y=50.190515428591283 z=-1.0000000000000000 }
    [D] {x=45.702596842378597 y=49.072971846168883 z=-1.0000000000000000 }


    ベクトル
    [AB] {x=1.1175435824223996 y=1.1175435824223996 z=0.00000000000000000 }
    [AC] {x=1.1175435824223996 y=1.1175435824223996 z=-2.0000000000000000 }
    [AD] {x=0.00000000000000000 y=0.00000000000000000 z=-2.0000000000000000 }


    外積
    [AB×AC] {x=-2.2350871648447992 y=2.2350871648447992 z=0.00000000000000000 }
    [AC×AD] {x=-2.2350871648447992 y=2.2350871648447992 z=0.00000000000000000 }


    外積の計算結果
    sum {x=-1.1175435824223996 y=1.1175435824223996 z=0.00000000000000000 }

    sum.x + sum.y + sum.z = 0;

    計算結果そのものが間違っているんでしょうか?
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7947  Re[3]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ れい -(2007/09/20(Thu) 13:28:59)
    2007/09/20(Thu) 13:38:39 編集(投稿者)
    2007/09/20(Thu) 13:35:34 編集(投稿者)

    No7940 (セイン さん) に返信
    > あれ?すいません。もう一度
    > [A] {x=45.702596842378597 y=49.072971846168883 z=1.0000000000000000 }
    > [B] {x=46.820140424800996 y=50.190515428591283 z=1.0000000000000000 }
    > [C] {x=46.820140424800996 y=50.190515428591283 z=-1.0000000000000000 }
    > [D] {x=45.702596842378597 y=49.072971846168883 z=-1.0000000000000000 }
    > ↓
    > 計算結果
    > sum {x=-1.1175435824223996 y=1.1175435824223996 z=0.00000000000000000 } GLPoint3
    >
    > sum.x + sum.y + sum.z = 0;
    >
    > 計算結果そのものが間違っているんでしょうか?

    前のスレッドの面積の話は読んでないので、
    sumというのが何をもとめてるのか知りませんが。

    手計算だと

    AB=(1.1,1.1,0)
    AC=(1.1,1.1,-2)
    AD=(0,0,-2)

    ABxAC = (-2.2,2.2,0)
    ACxAD = (-2.2,2.2,0)

    なので法線ベクトルは
    (-2.2,2.2,0)/|(-2.2,2.2,0)| = (-1,1,0)/ sqrt(2)
    面積は
    |(-2.2,2.2,0)|/2+|(-2.2,2.2,0)|/2 = 2.2*sqrt(2)
    ですね。

    というか、何をバグといってるのかわからないです。

    外積や法線ベクトル、面積を求める方法自体は間違っていません。
    セインさんの実装に関しては、ソースが無いとわかりません。

    #計算間違ってたのを直しました…
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■7956  Re[6]: 反時計回り 時計回り すいませんバグありました!
□投稿者/ Tom Yama -(2007/09/20(Thu) 16:13:36)
    No7951 (セイン さん) に返信
    > [A] {x=43.435263644876358 y=46.805638648666644 z=0.050000000745058060 }
    > [B] {x=46.820140424800996 y=50.190515428591283 z=0.050000000745058060 }
    > [C] {x=46.820140424800996 y=50.190515428591283 z=-0.050000000745058060 }
    > [D] {x=43.435263644876358 y=46.805638648666644 z=-0.050000000745058060 }
    >
    > この座標のベクトルは約
    > ベクトル
    AB 3.4 3.4 0.00
    AC 3.4 3.4 -0.10
    AD 0.0 0.0 -0.10
    >
    > 外積
    AB×AC -0.34 0.34 0.00
    AC×AD -0.34 0.34 0.00

    面積は、外積ベクトルの長さの総計の半分だから、0.48ですね。
    ※面倒くさいから、計算式は、省略
記事No.7927 のレス /過去ログ20より / 関連記事表示
削除チェック/

■9298  ADO.NETの処理分岐について
□投稿者/ たま -(2007/10/24(Wed) 13:51:28)

    分類:[.NET 全般] 

    こんにちわ。

    お世話になります!

    現在、クライアントから取得したIPアドレスとDBの登録が一致した場合のみフォームを
    出力するアプリケーションを作成しているのですがDBの登録がなくてもエラーのフォームに移行してしまいます。

    どこが違うのでしょうか?教えて下さい。
    ASP.NETを勉強し始めて間もないのでまだまだ勉強不足ですが宜しくお願い致します。

    ASP.NET2.0のVBで作成しております。


    Imports System
    Imports System.Data
    Imports System.Data.SqlClient
    Imports Microsoft.VisualBasic
    Imports System.Text
    Partial Class INDEX
    Inherits System.Web.UI.Page
    Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

    '------------- IPアドレス取得 --------------
    Dim ipAddr As String

    ipAd = Request.UserHostAddress

    '------------- SQL Server Connection --------------

    Dim myDataReader As SqlDataReader
    Dim mySqlConnection As SqlConnection
    Dim mySqlCommand As SqlCommand

    mySqlConnection = New SqlConnection("Server=Name;database=Source;UID=id;PWD=pw")
    mySqlCommand = New SqlCommand("SELECT * FROM IPdb WHERE IPAddress='" & ipAd & "' AND sub='True'")

    mySqlConnection.Open()
    mySqlCommand.Connection = mySqlConnection
    myDataReader = mySqlCommand.ExecuteReader(CommandBehavior.CloseConnection)

    Do While (myDataReader.Read())

    Loop

    If Not (myDataReader Is Nothing) Then

    Else

    '登録がなければエラー画面へ
    Response.Redirect("LoginError.aspx")

    End If

    myDataReader.Close()
    mySqlConnection.Close()

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

■11775  Re[1]: プログラミングの上達法&学習法
□投稿者/ επιστημη -(2007/12/21(Fri) 10:43:48)
>
    > 最初はどのような書籍で学習されましたか(またはサイトで)

    ちゃんとした文法/構文解説書。
    "はじめての〜","三日でわかる〜"の類を何冊読もうが文法/構文の理解は不可能。
記事No.11744 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12014  Re[8]: VB.NETでBMPからAVIを作成する方法
□投稿者/ シャノン -(2007/12/27(Thu) 10:44:55)
    No11998 (moro さん) に返信
    で、どこでなんという例外が出るんです?
記事No.11957 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12016  Re[9]: VB.NETでBMPからAVIを作成する方法
□投稿者/ moro -(2007/12/27(Thu) 11:04:53)
    No12014 (シャノン さん) に返信
    > ■No11998 (moro さん) に返信
    > で、どこでなんという例外が出るんです?

    以下の箇所で例外が発生します。
    AVI関数使用時に渡す引数の形式が誤っていると思いますが、
    何が誤っているのかわかりません。
    ご指摘をお願いいたします。

    ソース一部抜粋:
    **************************************************************************************************
    Dim hr As Integer = AVIFileOpen(pfile_, fileName, OF_CREATE Or OF_WRITE Or OF_SHARE_DENY_NONE, 0)

    If hr <> 0 Then
    Throw New AviException("error for AVIFileOpen")
    End If
    **************************************************************************************************

    例外内容:
    'AviException' のハンドルされていない例外が test.exe で発生しました。

    追加情報 : error for AVIFileOpen
記事No.11957 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12019  Re[10]: VB.NETでBMPからAVIを作成する方法
□投稿者/ シャノン -(2007/12/27(Thu) 11:57:04)
    No12016 (moro さん) に返信
    > ■No12014 (シャノン さん) に返信
    >>■No11998 (moro さん) に返信
    >>で、どこでなんという例外が出るんです?
    >
    > 以下の箇所で例外が発生します。
    > AVI関数使用時に渡す引数の形式が誤っていると思いますが、
    > 何が誤っているのかわかりません。
    > ご指摘をお願いいたします。
    >
    > ソース一部抜粋:
    > **************************************************************************************************
    > Dim hr As Integer = AVIFileOpen(pfile_, fileName, OF_CREATE Or OF_WRITE Or OF_SHARE_DENY_NONE, 0)
    >
    > If hr <> 0 Then
    > Throw New AviException("error for AVIFileOpen")
    > End If
    > **************************************************************************************************
    >
    > 例外内容:
    > 'AviException' のハンドルされていない例外が test.exe で発生しました。
    >
    > 追加情報 : error for AVIFileOpen

    それは例外が出るというより出してるんじゃないですか。
    AVIFileOpenの戻り値からエラーが特定できませんか?
記事No.11957 のレス /過去ログ26より / 関連記事表示
削除チェック/

■13331  Re[8]: eventについて
□投稿者/ えムナウ -(2008/01/27(Sun) 17:46:16)
記事No.13141 のレス /過去ログ28より / 関連記事表示
削除チェック/

■13332  Re[9]: eventについて
□投稿者/ 渋木宏明(ひどり) -(2008/01/27(Sun) 18:29:44)
>
    > これってどういうケースなんでしょうかね?

    「WeakEvent パターンを実装する理由」の項に書かれているとおりです。

    「Form が、自身に配置されている Control のイベントを受け取るだけ」のようなごく簡単なシナリオ *以外* では、イベント接続は明示的に接続解除を行わないとダメなんです。
記事No.13141 のレス /過去ログ28より / 関連記事表示
削除チェック/

■13333  Re[10]: eventについて
□投稿者/ えムナウ -(2008/01/27(Sun) 19:24:29)
    static イベントだけなんでしょうか?
    それともLifeの長いオブジェクトの話も含まれるのかな。

    そういうケースはあまり経験がないです。
記事No.13141 のレス /過去ログ28より / 関連記事表示
削除チェック/

■13334  Re[11]: eventについて
□投稿者/ 渋木宏明(ひどり) -(2008/01/27(Sun) 20:49:52)
>
    > static イベントだけなんでしょうか?

    static イベント限定の話ではありません。

    > それともLifeの長いオブジェクトの話も含まれるのかな。

    長短ではなく、「イベントリスナよりもイベントソースの寿命が長い場合」の話です。

    イベントソースはイベントハンドラへの参照を保持しています。
    (ただし、イベントソースへの参照がすべて失われれば、その時点でイベントソースからイベントハンドラへの参照も失われます)

    イベントハンドラがインスタンスメソッドであれば、イベントハンドラは元になるオブジェクトインスタンス(=イベントリスナ)への参照を保持します。
    イベントハンドラへの参照が維持されている限り、イベントリスナへの参照も維持されるわけです。

    なので、一見イベントリスナへの参照がすべて失われたように見えても、イベントソースが存命である限り「イベントソースからイベントハンドラへの参照」が残っているため、「イベントハンドラからイベントリスナへの参照」も残るわけです。

    で、参照が残っていればオブジェクトインスタンスは存命する、と。
記事No.13141 のレス /過去ログ28より / 関連記事表示
削除チェック/

■13337  Re[12]: eventについて
□投稿者/ えムナウ -(2008/01/28(Mon) 02:26:46)
    >イベントリスナよりもイベントソースの寿命が長い場合
    はい、それは書いてあるし理解はできるんですが。
    結果的に不要になったイベントリスナにも影響が出るのはわかります。

    現実路線として結局プログラマーは何を気にしなきゃいけないんだろうと思いまして。

    イベントソースの寿命を気にしてイベントつけなきゃいけないんなら、
    クラスの寿命をしっかり書いてある仕様書もらわなきゃForm内じゃないところへのイベント割り当てはできなくなる。

    Form内からForm内じゃないところへのイベント割り当てをしたらFormまたは管理できるところのDisposeで削除するべきだということですね。
    Form外のクラスから自分に含まれないクラスにイベント割り当てをしたら自クラスのDisposeで削除するべきだということですね。

    つまり、プログラマーはイベント割り当ての削除をしないとメモリーリークするケースを把握しておかなきゃいけないわけですよね。
記事No.13141 のレス /過去ログ28より / 関連記事表示
削除チェック/

■13343  Re[13]: eventについて
□投稿者/ 渋木宏明(ひどり) -(2008/01/28(Mon) 09:59:32)
>
    2008/01/28(Mon) 12:02:40 編集(投稿者)

    > イベントソースの寿命を気にしてイベントつけなきゃいけないんなら、
    > クラスの寿命をしっかり書いてある仕様書もらわなきゃForm内じゃないところへのイベント割り当てはできなくなる。

    ですよ。

    最初に書いてますが

    >「Form が、自身に配置されている Control のイベントを受け取るだけ」のようなごく簡単なシナリオ *以外* では、イベント接続は明示的に接続解除を行わないとダメなんです。

    なんです。

    > Form内からForm内じゃないところへのイベント割り当てをしたらFormまたは管理できるところのDisposeで削除するべきだということですね。
    > Form外のクラスから自分に含まれないクラスにイベント割り当てをしたら自クラスのDisposeで削除するべきだということですね。

    Dispose() が適切なタイミングであるかどうかはシナリオによって異なります。

    Windows.Forms/WPF や IDisposable とはまったく関係のないクラス/クラス間でも、イベント接続は利用可能ですし。

    「イベントリスナは、イベント接続が不要になった時点でイベント接続を解除するのが大原則」としておくべきでしょう。

    例外は、イベントソースとすべてのイベントリスナがほぼ同時期にすべての参照を失うような場合です。

    このスレの最初の投稿で挙げられた例は、たまたまそれに合致しているだけです。

    > つまり、プログラマーはイベント割り当ての削除をしないとメモリーリークするケースを把握しておかなきゃいけないわけですよね。

    そのとおりです。
記事No.13141 のレス /過去ログ28より / 関連記事表示
削除チェック/

■13336  Re[3]: gridviewで編集
□投稿者/ はつね -(2008/01/27(Sun) 22:39:27)
>
    No13245 (サー さん) に返信
    > それを一箇所だけ編集モードにするにはどうしたらいいのでしょうか。

    GridViewコントロールの操作性や機能にない動きを希望されてもどうにもなりません。
    GridViewコントロールから派生しても実現は難しそうな感じもします。

    なので代替案を記述したのですが、GridView以外で実現したくないというのであれば、その事を質問に明記した方がいいでしょう。そうすれば、回答する側も質問する側も「GridViewでは無理」という結論にいち早く到達できます。

    質問文例:
    GridViewコントロールのエディットで、一セルごとに編集できるようにするにはどうしたら良いでしょうか。他のコントロールではなくGridViewコントロールでの実現方法を教えてください。
記事No.13212 のレス /過去ログ28より / 関連記事表示
削除チェック/

次の20件>

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 >>

ヒット件数が多いので過去ログ1〜119 までの検索結果 / 過去ログ120からさらに検索→

パスワード/

- Child Tree -