|
I'm pretty sure you need to change the Anchor settings of the listbox controls. If for example you anchor them to each side they will resize whenever you resize the entire Form. The Dock option just defines to which side the listbox element sticks, like an "align" in html if I remember it right
:: It's better to burn out than to fade away ::
modified on Tuesday, July 15, 2008 10:14 AM
|
|
|
|
|
Dear All,
Please help me solving following issue.
Background Information
------------------------------------
1. We have 2 web application running on MOSS + IIS 6
2. Both applications are on same web server, run by System Admin account
3. Developed using ASP.Net, C# and DB as SQL Server 2005
4. One is running on Framework 2.0 and second is on Framework 3.5
5. In both we are using Office Objects to impose IRM permissions
6. Both were working till latest windows update on the web server.
7. After that we started getting following errors
Errors
---------
Word object: Not Able to Open the word file at all
------------------
System.Runtime.InteropServices.COMException (0x800A1401): Word experienced an error trying to open the file.
Try these suggestions.
* Check the file permissions for the document or drive.
* Make sure there is sufficient free memory and disk space.
* Open the file with the Text Recovery converter. (C:\...\My File.doc)
at Microsoft.Office.Interop.Word.Documents.Open(Object& FileName, Object& ConfirmConversions, Object& ReadOnly, Object& AddToRecentFiles, Object& PasswordDocument, Object& PasswordTemplate, Object& Revert, Object& WritePasswordDocument, Object& WritePasswordTemplate, Object& Format, Object& Encoding, Object& Visible, Object& OpenAndRepair, Object& DocumentDirection, Object& NoEncodingDialog, Object& XMLTransform)
at OpenFile.SetExpiryDate(String strFilePath, String strExpiryDate) in c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\My Application\MyPage.aspx.cs:line 1033
Excel Object: Not Able Close the excel file even though all objects are explicitly closed.
-------------------
When try to delete file following error comes.
The process cannot access the file 'C:\\Program Files\\Common Files\\Microsoft Shared\\web server extensions\\12\\TEMPLATE\\LAYOUTS\\My Application\\Scratchpad\\Book1.xlsx' because it is being used by another process
PowerPoint object: Not able to save
---------------------------
Presentation (unknown member) : An error occurred while PowerPoint was saving the file.
Is this some kind of a security permission issue on the folder where we are processing the file? Right now I have given full permission to following accounts.
1. Administrators
2. ASP.Net
3. Network Service
4. System
After the error I gave full permission to Everyone, still the problem persists.
I have uninstalled office and installed it with latest security patches. Removed old COM reference (Microsoft Excel, Word, PowerPoint) and added new, but still no progress.
Any other thing I need to check or update?
|
|
|
|
|
dear all,
with trial and error, I found a work around for this. I don't know if its correct or not, but pesting it for your reference.
Start - Run - type "dcomcnfg.exe" click ok
It will open Component Services
Under
- Console Root
-- Component Services
--- Computers
---- My Computer
----- DCOM Config
Open the properties of following
- Microsoft Excel Application
- Microsoft Office PowerPoint Slide
- Microsoft Office Word 97 - 2003 Document
Go to Identity tab
Select "This User" and add 'system admin' credentials
In my case same system admin is used in the identity of application pool in IIS
|
|
|
|
|
Let's say there is no method called Find<t> in Array class. So, I created my own Find<t> method. then, if I type Array. then I want to show my own method "Find<t>" in intellisense. AFAIK, C# extension method doesn't fit in this scenario so is there any way to make my own method to show in Intellisense? is there such a thing like attached method (similar to attached properties in WPF)?
|
|
|
|
|
Create a new class derive from Array. Then add a public method "Find" in it. Then you will see the method "Find" in Intellisense.
|
|
|
|
|
Really. If I type "Array" "." then I will see "Find" in Intellisense?
So, like that?
public class Array : System.Array{
public static T Find<t>(T[] array,
Predicate<t> match) {
//...... my implementation.....
}
}
SO, Can I use like that ?
Point first = Array.Find(points, ProductGT10);
|
|
|
|
|
|
I just tried and found that it doesn't work.
namespace SilverlightHelpers.Helpers {
//Silverlight - Array Class: http://msdn.microsoft.com/en-us/library/system.array_members(VS.95).aspx
//.NET - Array Class: http://msdn.microsoft.com/en-us/library/system.array_members.aspx
public static class Array : System.Array {
Error: Error 1 'SilverlightHelpers.Helpers.Array' cannot derive from special class 'System.Array' C:\Michael Sync\Personal\Silverlight\SilverlightHelpers\SilverlightHelpers\Helpers\ArrayHelper.cs 9 25 SilverlightHelpers
Another Error: Error 2 'Array' is an ambiguous reference between 'System.Array' and 'SilverlightHelpers.Helpers.Array' C:\Michael Sync\Personal\Silverlight\SilverlightHelpers\SilverlightHelpers\Page.xaml.cs 34 27 SilverlightHelpers
|
|
|
|
|
I think I will have to live with the way that I used in this project[^]. ArrayHelper.Find()?
|
|
|
|
|
You cant derive from Array dummy
|
|
|
|
|
Explain again why extension methods wont work?
I have something like this in my project
public static IEnumerable<T> Sort<T>(this IEnumerable<T> source, string sortExpression)
{
...
}
and on for example a List<MyObject> I can go myList.Sort("myField DESC") and it shows up in intellisense.
|
|
|
|
|
J4amieC wrote: myList.Sort("myField DESC") and it shows up in intellisense.
Yes. because "myList" is an object.
For example:
I have an extension method like that.
namespace SilverlightHelpers.Helpers {
public static class ArrayHelper {
public static T Find<t>(this Array ary,
T[] array,
Predicate<t> match) {
foreach (var o in array) {
if (match(o)) {
return o;
}
}
return default(T);
}
}
}</t></t>
if I use like Array.Find, it won't work.
but if I use like
Point[] points = { new Point(100, 200),
new Point(150, 250), new Point(250, 375),
new Point(275, 395), new Point(295, 450) };
points.Find << It will work.
Please correct me if I'm wrong..
|
|
|
|
|
maybe, i think it's the differences between object and type?
|
|
|
|
|
right, you cant add static extension methods AFAIK (of course all extension methods themselves are static, but you cant add a static extension method to a class).
So your only option is MyArrayHelper.Find
|
|
|
|
|
J4amieC wrote: So your only option is MyArrayHelper.Find
Yes. I used that way in my project[^] now.. that's big problem in porting WPF to SL. I need to change all Array.Find to ArrayHelper.Array.. The same goes for Enum.GetValue too.. I had to use EnumHelper.GetValue. or I have to use Linq for that..
|
|
|
|
|
Michael Sync wrote: I need to change all Array.Find to ArrayHelper.Array..
Make a wrapper method, and use that all over, then only 1 place to call the helper.
|
|
|
|
|
leppie wrote: Make a wrapper method, and use that all over, then only 1 place to call the helper.
You mean like that.
public static class Array{
public static ... Find(..){
}
public static ... Remove(...){
System.Array.Remove(....);
}
}
Is this like that? but I think the name will be conflict. (My Helper.Array and System.Array) And I can't remove "using System;" since there are a lot of other references..
|
|
|
|
|
Put your array class in the root namespace of your project. That way, it will be used as the default instead by VS. If at anytime you need the built in class just specify System.Array
Dave
|
|
|
|
|
Thanks. That means I dont need to change Array.Find to ArrayHelper.Find. But I will need to change Array.Remove to System.Array.Remove?
Another thing: I think the name will be conflict.
|
|
|
|
|
Michael Sync wrote: But I will need to change Array.Remove to System.Array.Remove
No. For any methods that you need to keep that exist in System.Array - simply create a method in your class with the same return type, name and signature. Then in your method return the System.Array's method result passing the parameters to it.
Michael Sync wrote: Another thing: I think the name will be conflict.
No, the IDE and compiler will assume yournamespace.class if there is also a System.class with the same class name.
Dave
|
|
|
|
|
Thanks, Dave. I will try. But Scott's suggestion is also nice one. I will keep the suggestions from both of you and I will mentioned about that to my manager..
|
|
|
|
|
I'd highly reccommend against doing that. It can and most likely will lead to a lot of maintenance headaches later. It will also make it harder for new developers to get up to speed on the codebase since there is now a "new" Array class that isn't the standard one that everyone is familiar with.
Scott Dorman Microsoft® MVP - Visual C# | MCPD
President - Tampa Bay IASA
[ Blog][ Articles][ Forum Guidelines] Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai
|
|
|
|
|
Even though I suggested it, I agree. Personally I would carefully rename all the 'Array' code to my helper class but the OP didn't want to do that.
I've only done it the other way once and I made sure I implemented EVERY method/property/interface and all their overloads from the original class to avoid problems. It's been OK so far, but it was a headache creating the class in the first place!
Dave
|
|
|
|
|
Thanks, Scott.
It's true that it will lead a lot of maintenance headaches but the problem is that we already have a lot of classes written for WPF project. I'm trying to port them to Silverlight-compatible project. What I was thinking is that if we can use the same way that we used to use for WPF then new developer won't need to remember that we have to use this (e.g ArrayHelper.Find) in Silverlight and we have to use that (ie. Array.Find) in WPF. All he need to do is that just use Array.Find no matter whether he is in Silverlight or WPF..
|
|
|
|
|
I understand the problem you are looking at. It's a trade off as either way you are going to end up with possible maintenance issues later.
Scott Dorman Microsoft® MVP - Visual C# | MCPD
President - Tampa Bay IASA
[ Blog][ Articles][ Forum Guidelines] Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai
|
|
|
|