[Mono-devel-list] Not sure why this won't compile

Paul paul at all-the-johnsons.co.uk
Mon Aug 1 19:04:45 EDT 2005


Hi,

I have two source files (below). If I compile them up with
-r:System.Drawing and -r:System.Windows.Forms, I get an error about the
first file on the line which has EventArgs in it. Am I wrong in thinking
that if I compile both files at the same time that EventArgs in the
first file should be resolved by -r:S.W.F?

// FECdomain.cs
using System.Text.RegularExpressions;

delegate void StringSplitHandler(object src, SplitStringArgs args);

class SplitStringArgs : EventArgs
{
  private SplitStringArgs() {}
  public SplitStringArgs(string[] strings)
  {
    this.strings = strings;
  }

  string[] strings;
  public string[] Strings
  {
    get { return strings; }
    set { strings = value; }
  }
}

class DomainSplitter
{
  Regex re = new Regex("\\s");
  string[] substrings;

  public event StringSplitHandler StringsSplit;

  public void SplitString(string inStr)
  {
    substrings = re.Split(inStr);
    StringsSplit(this, new SplitStringArgs(substrings));
  }
}

//FECdomain2.cs
using System;
using System.Drawing;
using System.Windows.Forms;

class FECdomain : Form
{
  TextBox tb = new TextBox();
  Button b = new Button();
  label[] labels;
  DomainSplitter domainObject = new DomainSplitter();

  FECdomain()
  {
    tb.Location = new Point(10, 10);
    tb.Text = "The quick brown fox";
    b.Location = new Point(150, 10);
    b.Text = "Split text";

    b.Click += new EventHandler(this.GUIEvent);
    domainObject.StringsSplit += new
StringSplitHandler(this.DomainEvent);

    this.Text = "Form-Event-Control";
    this.Controls.Add(tb);
    this.Controls.Add(b);
  }

  void GUIEvent(object src, EventArgs args)
  {
    domainObject.SplitString(tb.Text);
  }

  void DomainEvent(object src, SplitStringsArgs args)
  {
    string[] strings = args.Strings;
    if (labels != null)
    {
      foreach(Label l in labels)
	this.Controls.Remove(l);
    }
    labels = new Label[strings.Length];

    int row = 40;
    for (int i = 0; i < labels.Length; i++)
    {
      labels[i] = new Label();
      labels[i].Text = strings[i];
      labels[i].Location = new Point(100, row);
      row += 20;
    }
    this.Controls.AddRange(labels);
  }

  public static void Main()
  {
    Application.Run(new FECdomain());
  }
}

mcs FECdomain.cs FECdomain2.cs -r:System.Windows.Forms -r:System.Drawing
FECdomain.cs(6) error CS0246: The type or namespace name `EventArgs'
could not be found. Are you missing a using directive or an assembly
reference?
Compilation failed: 1 error(s), 0 warnings.

TTFN

Paul
-- 
"Some people will do anything for a woman in uniform" - The Doctor -
Unregenerate (Big Finish audio)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20050802/d2f1cb22/attachment.bin 


More information about the Mono-devel-list mailing list