|
Subject says it all. Can a function return an array of delegates?
|
|
|
|
|
public class Test {
public delegate void DelegateExample(string[] args);
public static DelegateExample[] GetDelegates() {
return new DelegateExample[] {
new DelegateExample(Test.Main),
new DelegateExample(Test.Main)
};
}
public static void Main(string[] args) {}
}
Regards,
Jeff Varszegi
|
|
|
|
|
Or even better look at delegate.GetInvocationList()
leppie::AllocCPArticle("Zee blog"); Seen on my Campus BBS: Linux is free...coz no-one wants to pay for it.
|
|
|
|
|
Thanks
How would I use that with a function though?
|
|
|
|
|
I need to know how to disable the user's ability to add new rows to the DataGrid based on a DataTable. I have a table that represents options that can be checked on and off with a boolean column. It is a static list of options, so the user shouldn't be able to add new rows. The only thing in the table that is not read-only is the true/false value of the boolean column. I hope I am just overlooking some obvious setting in the TableStyle (I am programmatically creating the style). Any help would be greatly appreciated. Thanks.
|
|
|
|
|
DataGrid doesn't have such an option, neither DataTable. But DataView has:
AllowNew, plus AllowEdit and AllowDelete. The simpliest way is to set as DataSource of the DataGrid a DataView of your DataTable, and set AllowNew =false.
If you can't set as DataSource a DataView (and DataSource is a DataTable), then you still have a chance , since the data grid actually uses the DefautView of a DataTable . So, you can do something like MyTable.DefaultView.AllowNew=false;
If your DataSource is a DataSet then you can do something like this:
CurrencyManager cm =(CurrencyManager)BindingContext[MyDataGrid.DataSource,MyDataGrid.DataMember]
// Cast the IList to a DataView to set the AllowNew property.
DataView dv = (DataView) cm.List;
dv.AllowNew = false;
Best Regards,
Daniel Zaharia
|
|
|
|
|
Thanks that did the trick. I used...
myTable.DefaultView.AllowNew = false;
|
|
|
|
|
I am trying to find a way to take records from a ListView control and move them to the system clipboard so they can be pasted directly into Microsoft Excel.
I have found the DataFormat class and see it supports a CommaSeparatedValue format, but I cannot get it to work correctly.
I have tried this, just as a test...
string s = "1,2,3,4,5,6,7,8,9";
DataObject d = new DataObject();
d.SetData(DataFormats.CommaSeparatedValue,s);
Clipboard.SetDataObject(d,false);
But when I paste it into Excel I get
–§žý;pC¦yVk²ˆû
Have any of you ever successfully formatted data, stored it in the Clipboard so it could be successfully pasted into Excel?
Darryl Borden
Principal IT Analyst
darryl.borden@elpaso.com
|
|
|
|
|
The Comma-Delimited Value isn't a string - which is the confusing part. The following code will do what you want.
// Place comma-delimited on clipboard
string commaText = "1,2,3,4,5,6,7,8,9";
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(commaText);
MemoryStream stream = new MemoryStream(bytes);
DataObject dataObject = new DataObject();
dataObject.SetData(DataFormats.CommaSeparatedValue, stream);
Clipboard.SetDataObject(dataObject, true);
// Read comma-delimited from clipboard
string values=string.Empty;
IDataObject dataObject = Clipboard.GetDataObject();
if(dataObject.GetDataPresent(DataFormats.CommaSeparatedValue))
{
StreamReader streamReader = new StreamReader((Stream) dataObject.GetData(DataFormats.CommaSeparatedValue));
values = streamReader.ReadToEnd();
streamReader.Close();
}
Console.WriteLine( values );
|
|
|
|
|
I tried out your code and it works great!
I have just two questions...
1) where on earth did you dig this up - I have searched all over the place
2) This pastes a single row into Excel - how to I paste multiple rows?
Thanks so much for your help!
dpb
Darryl Borden
Principal IT Analyst
darryl.borden@elpaso.com
|
|
|
|
|
Never mind on the 2nd question. If I insert a "\n" character in the string then it wraps to the next line in Excel!
"1,2,3,4,5\n6,7,8,9"
Thanks again for your help.
dpb
Darryl Borden
Principal IT Analyst
darryl.borden@elpaso.com
|
|
|
|
|
Hi,
i must admitt that i dont undestand s##t how the new longhorn stuff is going to work ,
so im hoping someone can help me understand this
1) this AVALON thing , is that the gui engine in longhorn?
2) is XAML a language that is intended to replace languages like c# , or what is the purpose of XAML?
3) can i code NON winforms controls in c# under longhorn? , meaning , if AVALON is a vectorbased gfx engine thinge , does it allow me to use c# to create custom controls for it?
4) is it correct that the XAML thinge is not the actual language , it is only indended to describe a UI , much like html , while i still use c# to make "codebehinds" , much like in asp.net but for winforms apps??
(and yes ive read the longhorn/win32 post in the lounge and i still dont get this)
//Roger
|
|
|
|
|
1. MSDN describes Avalon as the "new Longhorn presentation subsystem." In other words, yeah, a new 3d-accelerated GUI engine specific to Longhorn.
2. XAML is not intended to replace any languages. XAML itself isn't a true programming language per se (example, you can't create functions, variables, etc.), it's very much like HTML and how it's used to describe web pages or XML and how it's used to describe relational data; they're all used to describe things, none of them actually perform things. In XAML's case, it will describe UI elements.
3. Yes, in addition to System.Windows.Forms.Controls, we'll also have the MSAvalon namespace. While I haven't read enough into the API to know if we can create custom Avalon controls in the traditional manner, we'll certainly be able to do custom controls by using a combo of MSAvalon and XAML.
4. XAML is a language, just like HTML or XML is. But yes, it's only intended to be used to describe UI elements, it can't be used by itself to create an app. MSDN describes typical Longhorn apps being comprised of your choice .Net language, like C#, with UI pages being written in XAML. Of course, we'll still have access to Windows Forms, but I'm guessing MS won't focus much on that.
The graveyards are filled with indispensible men.
|
|
|
|
|
Judah H. wrote:
XAML is a language, just like HTML or XML is. But yes, it's only intended to be used to describe UI elements, it can't be used by itself to create an app.
That is not entirely true, since you can inline C# or VB code in a XAML file. Of course, for intermediate to big real world applications you would not want to use a declarative language such as XAML.
|
|
|
|
|
apferreira wrote:
since you can inline C# or VB code in a XAML file
I guess you still need to compile the XAML file if it contained inline code whereas XAML in document format need not be compiled ??
regards,
Kannan
|
|
|
|
|
Regarding your question, and quoting the Longhorn SDK[^]
...You can display pure "XAML" pages in a browser without compiling it. However, if your "XAML" page includes procedural code, you must compile the application before you can run it. "Avalon" cannot interpret uncompiled procedural code...
Also, to make my earlier remarks clear:
Another quote from the Longhorn SDK[^]
Procedural code can be part of the "XAML" file or be within a separate code-behind file..."XAML" has a corresponding object model that allows you to do anything in procedural code that you can do with markup. In fact, when you build an "XAML" application, the markup parser converts the markup into equivalent object model-based code...
And a quote from Don Box's blog[^]
...XAML is domain-neutral, so while it may be used to create desktop apps, web pages, and printable documents, it could also be used to create CRM apps, blogging backends, or highly concurrent web services provided you had a supporting CLR-based library to do the heavy lifting...
|
|
|
|
|
Ok, I read the documentation on the Licensing things. How could I go about fixing this problem? Would I need to make changes programatically in my Mailer Code, the larger project? Thanks for helping out a newbie.
Frank
|
|
|
|
|
I wouldn't get rid of the licensing on the Mailer component. It's probably there for a reason. Instead, find out what you need to do to obtain a license for your tech writer.
If that isn't a viable option, remove the LicenseProviderAttribute from the Mailer component and recompile.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
I designed a class called Mailer that verifies passed strings holding email addresses against the Outlook Global Address List, and then uses simple SMTP protocol to send out email messages. This class was used as part of a larger project and I ran into this interesting error upon client use of the larger project. We sent an .exe of the larger project to a tech writer to document the software and when he attempted to run teh executable the program hangs all most immediatly. We beleive that it hangs right away due to the fact that in the larger project an object of type Mailer is being instantiated. We are fairly certain that this is the class that is throwing the exception on the client's machine. I am not sure of this helps but the client was running XP with the .NET framework 1.1, but .NET Development enviroment was not installed on this machine. Has anyone ever heard of a licensing error like this? We think it might have something to do with the MSMAPI.dll I am using in my mailer class. Thanks for your help, as a newbie I am not familiar with a lot of common or uncommon exceptions and how to go about fixing them.
Thanks again!
Frank Lepkowski
|
|
|
|
|
This exception is usually associated with a class that is licensed. See the LicenseProvider , LicenseProviderAttribute , and related classes in the SDK docs for more information. Basically, your class was apparently marked with the LicenseProviderAttribute which referenced the type of a custom LicenseProvider . That license provider verifies that a client can - at either design-time or runtime - use the licensed class. The message you got is the default message used when a class is not licensed (i.e., whatever your license provider checks, your tech writer doesn't have it).
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
I want to get the label of a local disk, using System.ManagementObject. The code below help me
to get out the name of each disk ("c:\", "d:\", ...), not the label of it.
ManagementObjectCollection queryCollection = getDrives();
foreach ( ManagementObject mo in queryCollection){
Console.WriteLine(mo["Name"].ToString());
}
How to get the label?
Thanks.
|
|
|
|
|
You need to use "win32_logicaldisk" as your ManagementObject and use
"VolumeName" to get the info you need.
Regards,
Kannan
|
|
|
|
|
Use the following WMI property ads illustrated...
Console.WriteLine(mo["VolumeName"].ToString());
|
|
|
|
|
thanks.
But I want to know the full-list of propertyName of it.
VolumeName
Name
DriveType
...
and so?
|
|
|
|
|
Hi
I need some help with some code i making. I´m making an FTP Server, an need to make a Socket were I can be listening for new connections. The problem is, that I can not use a static port number because, there will be many clients, and therefor I need a new port for each client connecting with a passive connection.
In other languages (java) you just make a new ServerSocket() with the portnumber 0, and then you´ll get a ServerSocket running on a new available port every time..
How can I do this in C#.... please help me - a FTP server which can only handle one passive connection at the time is not very efficient..
thx in advance
Søren
|
|
|
|
|