|
Hi,
I am using excel RTD in my project, its work fine,
Using following event (SelectionChange) I am changing color of cell based on data.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
But this spreadsheet must be protected from some of our users from destroying the cells that have formulas or conditional formats.
But if I protect sheet I am not able to change color of cell.
So I want to protect sheet as well as change cell color using macro.
My first thought was to unprotect sheet in the beginning of the code, change colore and then at the end, protect it back down.
But this would mean protecting and unprotect every time that cell change color.
Changing cell color is so fast so I think it is inefficient.
Can you suggest what to do in this scenario.
Thanks
hiren shah
|
|
|
|
|
Does anyone know how to view PDF file in winform?
thanks
|
|
|
|
|
You need a pdf viewer control. If adobe reader is installed on computer you can use com library that comes with it. If you need pure managed one, I'm sure Google can help you
|
|
|
|
|
Hi,
I've two code snippets just wanna ask which is the right way of writing and why?
Fist snippet
--------------
DataGridView grid = new DataGridView()
foreach(string colName in ColumnNames)
{
DataGridViewColumn gridCol = null;
if(<some logic="">)
{
gridCol = new DataGridViewColumn();
}
else
{
gridCol = new MyColumn();
}
grid.Columns.Add(gridCol);
}
Second Snippet
----------------
DataGridView grid = new DataGridView()
DataGridViewColumn gridCol = null;
foreach(string colName in ColumnNames)
{
if(<some logic="">)
{
gridCol = new DataGridViewColumn();
}
else
{
gridCol = new MyColumn();
}
grid.Columns.Add(gridCol);
}
--Akki
|
|
|
|
|
Obviously, the 2nd snippet is better because many temporary variables will be generated in the 1st snippet. That is, more memories are occupied and more initialization are done.
|
|
|
|
|
Thanks i was expecting the same.
Is it possible to know how much memory is being consumed or utilized. I mean any tool you know or by writing some code.
--Akki
|
|
|
|
|
As a caveat to that it can be useful for support reasons to have temp vars availableduring the development stage.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Try this:
DataGridView grid = new DataGridView();
foreach(string colName in ColumnNames)
{
grid.Columns.Add(
([condition]) ?
new DataGridViewColumn() :
new MyColumn());
}
And btw: Don't care about performance at all, as long as you have no hard evidence (i.e. measures or customer complaints) about it. During development, you should only care about the correct functioning, behaviour and readability of your code. Use unit tests to reliably assure this.
Regards
Thomas
www.thomas-weller.de
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. Programmer - an organism that turns coffee into software.
|
|
|
|
|
it is all the same, in debug build you shouldn't care, and in release build the compiler will optimize and generate the same code for both.
However 1 has better style if you ask me since it keeps gridCol's scope inside the loop.
|
|
|
|
|
Hi Peers
I am using Visual Studio 2.0
I am binding DatagridView using List and then assigning DisplayIndex Property values to its columns as per my requirement. When I bind this order to datagridview control its not reflecting.
Please suggest what additons or corrections need to be performed.
Prasanna N
|
|
|
|
|
I think you will find the column oder is reset when you do the binding to the list. I always set the order in the underlying data source (list) before binding. You may be able to change the order after binding.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Dear All,
I have developed an application which connects to ftp and manipulate with ftp using Linux command with System.Net.Socket
through this class i am sending my commands as bytes and i am receiving my data the same as bytes too.
I am using "NLST *.*" in the folder to get all files, seems this command works fine.
i am searching for a commands where it lists both directories and files in ftp root.
i tried "ls,dir" with its args but it didn't work for me, as the server response is "ls,dir" is not supported by server.
i also used LIST command but it returns more data which i am not interest in.
is there any specific command where it can list folders and files in ftp.
i appreciate to have any links or references of Linux ftp command as NLST,LIST...
Abdul Rahaman Hamidy
Database Developer
Kabul, Afghanistan
|
|
|
|
|
Did you think about using a ready-made FTP library? I used edtFtpNet/Express ($149) with great success. They also have a free version. Check their site and download a trial copy: http://www.enterprisedt.com/[^]
|
|
|
|
|
I need to write a program in C#.NET that will run as a windows client, connect to a server, and determine if any updates are available for a program installed on the client. If there are updates, I need client to download and install the updates.
The problem is I have no idea how to start! Does anyone know of any online resources or even a good book that will help me learn how to code this type of application?
Thanks!
Robert
|
|
|
|
|
|
Thanks. I am familiar with how an application can be published using click-once so that it will check for updates. However, my task is to develop a tool that will update other software that is on the client computer. In other words the tool does not update itself, but other programs. The client wants a single tool that will update any of their software that is on the user's computer (as opposed to each program updating itself.)
Robert
|
|
|
|
|
|
Thanks...this looks like it will really give me some insight. My specific assignment is to complete a tool that will look for updates to other software that may be installed on the client computer. In other words, the tool will update other programs, not itself. Still, this looks like the right direction.
Robert
|
|
|
|
|
Ok so I'm trying to code an automation of a few things online on a flash site
I can't get any of it to work though since I'm stuck at the first step
using sendmessage from user32 I've been able to automate searching google or other simple things like that
but the site I'm wanting to automate is a flash game and no matter what I do I haven't been able to even successfully send clicks to those types of forms.
I can use sendInput to do it but that requires the window to be in focus, I'd like to be able to do this while the window is minimized so I could potentially run more than 1 of these things, or even just surf the web while this is going on in the background
can anyone point me to any functions or anything like that which would help me achieve my goal?
I think I might even be able to just use sendmessage if I can get an IntPtr handle to the flash object in the website but I can't seem to do that either
here's the javascript that initializes the flash content:
var oeTags = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">'
+ '<param name="movie" value="HS.swf" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />'
+ '<embed src="HS.swf" loop="false" menu="false" quality="high" bgcolor="#ffffff" width="100%" height="100%" name="HS" align="middle" play="true" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">'
+ '<\/embed>'
+ '<\/object>';
document.write(oeTags);
I don't know if with that anyone can help me get an IntPtr handle to the game or something
thanks for reading this,
J-B
|
|
|
|
|
Hi.
I am still trying to rotate output to the printer....
I am trying to reverse the output being sent to a label printer to match the preprinted paper that it is preloaded with.
Some of the printing is done by sending rich text to a Graphics.GetHdc(), the rest is via use of Graphics.DrawXYZ() methods.
Because the Matrix class ignores anything sent directly to a device context, I have used a bitmap to draw on. I can then rotate the graphics object using the Matrix.RotateAt() and then draw the previously drawn on bitmap on it. Problem is, by using a bitmap, the printed output is less than desirable (very pixelated to say the least). I did play with the SetWorldTransform() method, but this seems incompatable with Graphics draw methods. I have been going around in circles and going out of my mind here.
I have butchered the applicable code from the program to make an example of where I need help. Not sure if it will compile, but it should all be there (should be good enough for demonstration purposes anyway). This method would be called from the PrintDocument class.
private void OnPrintThePage(object sender, PrintPageEventArgs e)
{
float mmTo100thInches = 1.0f / 25.4f * 100.0f;
int width = 60 * mmTo100thInches;
int height = 120 * mmTo100thInches;
Graphics g;
Matrix m = new Matrix();
m.RotateAt(180f, new PointF(width / 2, height / 2));
e.Graphics.Transform = m;
Bitmap bitmap = new Bitmap(width, height);
bitmap.SetResolution(300, 300);
g = Graphics.FromImage(bitmap);
e.Graphics.DrawImage(bitmap, 0, 0);
e.HasMorePages = false;
}
Without the line: bitmap.SetResolution(300, 300); It prints as it should, that is upside down and correctly scaled, but looking pixelated. With that line in place, the printing looks quite good and orientated correctly but at about a quarter the size it should be.
I would be most grateful it somebody could tell me where I am going wrong. I have tried to adapt an example out of Charles Petzold's "Programming Microsoft Windows with C#". He explains the need to match the resolution to the bitmap to the printer DPI. I just cannot make it work.
Regards,
David.
|
|
|
|
|
Hi,
did you ever check the intermediate values you are using?
IMO your very first line is completely wrong, resulting in a bitmap of about 240 * 480 pixels.
No wonder it gets pixelated.
Basically you can choose the size of the bitmap (larger is less pixelated, but slower), and then
use SetResolution to get the scaling right. I am not sure what millimeters are doing for you,
your printer's resolution is probably something like 300dpi, 600dpi or 1200dpi.
BTW: I am a bit puzzled by your width/height ratio, it is 1/2 instead of the usual 1/SQRT(2).
|
|
|
|
|
Hi Luc.
Thanks for your quick reply.
I will look at the resolution of the bitmap I am using.
The program I am writing has a user selectable label width/hight in millimeters. These are the little labels that are on various food items in the local supermarket. I just picked 60*120 as it seemed a good reference, but I could have just as easily picked 50*75, another label format we have.
In the first line, I have created a multiplyer to get the selected millimeters to hundredth of an inch, which I believe is the scale the printer is working to. Should I be using the printer dpi instead?
- David.
|
|
|
|
|
Are you using metric system in Australia?
Why would the bitmap need a resolution of 100dpi (1 pixel = one hundredth of an inch), is that your printer's resolution?
|
|
|
|
|
float mmTo100thInches = 1.0f / 25.4f * 100.0f;
1mm = 1/25th of an inch and multiply that by 100 to get 100th of an inch.
therefore:
60mm * 1 / 25.4 = 2.36 inches
2.36 inches * 100 = 236 (1/100th inches)
Looks good to me.
|
|
|
|
|
that is fine IF you print at 100dpi, however I expect your printer to use 300 or 400dpi; that should explain why it came out at about quarter size when not specifying the Resolution. (and with the Resolution set it has to scale up for you, hence pixelating).
|
|
|
|