Einzelnen Beitrag anzeigen

Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#1

Komponente mit Event versehen.

  Alt 20. Jul 2007, 14:07
Hallo DP'ler ,
ich probiere gerade mal ein wenig C# aus und schreibe mir eine kleine Komponente für SQL.
Jetzt möchte ich der Komponente Events hinzufügen. Probiert habe ich das so:
Code:
namespace QueryBuilder
{
    public partial class SQLQueryPanel : Panel
    {
        //-------- EVENTS ----------------------------------------------------------------------------------
        public delegate void SqlEventHandler(object sender, SqlUpdateEventArgs e);
        public event SqlEventHandler SqlChanged;

        protected void OnSqlChanged(SqlUpdateEventArgs e) // hier mag der Compiler nicht mehr weiter arbeiten
        {
            if (SqlChanged != null)
            {
                SqlChanged(this, e);
            }
        }

        public void updateSql()
        {
            ISqlExporter exporter = new AnsiSql92Exporter();
            OnSqlChanged(new SqlUpdateEventArgs(exporter.getSql(children, joinList)));
        }
    }
}
Die Klasse SqlUpdateEventArgs sieht dabei so aus:
Code:
using System;
using System.Collections.Generic;
using System.Text;

namespace QueryBuilder
{
    class SqlUpdateEventArgs : System.EventArgs
    {

        public SqlUpdateEventArgs(string sql)
        {
            this.sql = sql;
        }
        public string Sql
        {
            get
            {
                return(sql);
            }
        }
        string sql;
    }
}
Leider bekomme ich folgenden Fehler:
Inkonsistenter Zugriff: Parametertyp "QueryBuilder.SqlUpdateEventArgs" ist weniger zugreifbar als Methode "QueryBuilder.SQLQueryPanel.OnSqlChanged(QueryBuil der.SqlUpdateEventArgs)".
Verwiesen wir auf die markierte Stelle im Quelltext oben.

Kann mir da jemand helfen? Ich verstehe den Fehler leider nicht .

Besten Dank
Alexander
  Mit Zitat antworten Zitat