|
hai there,
i need a small openion from your side. i have one project (ERP for Education Institution) in VB. the reprts and database are created by power builder and sybase.
Right now , i planned to upgrade it to dotnet. Before that let me say one thing. I have no intension to update or upgrade my reports and database. i am only to upgrade other phases of this project.
1. According to you, which dotnet language is most perfect match for this senario.
2. Upto how much extend i can make it updated using C#.net ?
3. is there any tutorial or urls that will help me to kick start this upgradation job ?
i am confort in C# than vb.net.
thanks
********************
S r e e j i t h S S N a i r
Bangalore - India
********************
|
|
|
|
|
sreejith ss nair wrote:
. According to you, which dotnet language is most perfect match for this senario.
It doesn't matter which language you use. Whatever your compfortable with.
sreejith ss nair wrote:
Upto how much extend i can make it updated using C#.net ?
What???? This made no sense what-so-ever....
sreejith ss nair wrote:
is there any tutorial or urls that will help me to kick start this upgradation job ?
No. Your rewriting an application. It's up to you to figure out the requirements, design and build. You already have a tempate to work from if you have the PowerBuilder source.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I use MDI form in my C# project,
each MDI child form has a PictureBox on it,
When I load my saved project,
I use
myPicture.PictureBox.Image = Image.FromFile(path);
to set the image show on PictureBox.
But in my project sometimes I need to insert a new Page,
so I write
<br />
for(int i=Page_number-1; i>IntSelectPage; i--)<br />
{<br />
((MyInkPicture)myAL[i]).PictureBox.Image = ((MyInkPicture)myAL[i-1]).PictureBox.Image;<br />
} <br />
to show the correct image of each page,
Now there is a big problem,
When I want to save my changes,
<br />
PictureBox.Image.Save(savepath,System.Drawing.Imaging.ImageFormat.Bmp);<br />
for example,
because original PictureBox[2]'s image now is PictureBox[3]'s image,
if I want to save image by "Picture2.bmp",
it would tell me "Picture2.bmp" is in use...I can't overwrite it!!
Can anyone tell me how to load a picture form a set file path,
and if the image changes, I can overwrite it...??
Thanks a lot !!
|
|
|
|
|
Clone the original image then dispose it so that you have a copy of the image, not an image from a file (which uses an open file handle, leaving the file in use):
using (Image img = Image.FromFile(path))
myPicture.PictureBox.Image = (Image)img.Clone(); The using statement here makes sure that the object is disposed when the block is complete, even in cases when an exception is thrown.
Also - just a suggestion - I'd recommend you encapsulate myPicture.PictureBox.Image , exposing the Image property on your class by defining it like so:
public System.Drawing.Image Image
{
get { return PictureBox.Image; }
set { PictureBox.Image = value; }
} This ensures that callers can directly modify your PictureBox control. This makes for a better object-oriented design.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I add two TextBoxes snd a checkbox to a panel, each time I click on the add button. Each have a unique name. I can add them fine, I need to remove them according to the checkbox's checked property. I first need to know whether a checkbox is selected, then I need to traverse all the checkboxes and if they are seleted, I need to remove the corresponding texboxes.
I use:
if(this.pnl1.Controls.Contains(CheckBox))
{
// how to check each checkbox
}
Help!
_____________________________________________________
Yea! I could be wrong...
|
|
|
|
|
I just tried to solve the problem logically. May be you get some better solution.
for(int i =0; i < this.Controls.Count; i++)
{
if(this.Controls[i].GetType().ToString() == "System.Windows.Forms.CheckBox")
{
MessageBox.Show(Controls[i].Name);
}
}
Do revert back whether it solves your purpose or not.
Regards,
Jay.
|
|
|
|
|
Thanx bro..
I'll try this later, if you don't mind.
But it looks like it might work. thnx 'gain.
_____________________________________________________
Yea! I could be wrong...
|
|
|
|
|
Or even shorter, without string comparison and getting the cast from Control to CheckBox for free:
foreach (Control c in this.pnl1.Controls)
{
CheckBox cb = c as CheckBox;
if (cb != null)
{
MessageBox.Show("Checkbox "+cb.Name+" checked: "+cb.Checked);
}
}
mav
|
|
|
|
|
But here CheckBox cb variable is created for each round of execution of the loop. I do not know whether this can be said as more optimized.
Regards,
Jay
|
|
|
|
|
Ok, you can take the CheckBox cb and put it outside the loop if that's your only concern...
Or you yould use
if (c is CheckBox)
{
CheckBox cb = c as CheckBox;
}
I found the is keyword very handy instead of fiddling with GetType().ToString() and then comparing to the quite verbose (and thus prone to typos) fully qualified type names.
mav
|
|
|
|
|
I am writing an application to change the inputlanguage and culture using C#. I am trying to find out whether selected language is written left-to-right or right-to-left to set right-to-left property of my control accordingly. Is there any way to find this ? Please Help!!
Naqvi
|
|
|
|
|
Can anyone tell me is there any difference between the usual DOS Command Prompt and the Visual Studio.NET Command Prompt provided with the Visual studio.NET?
Can I run a C# Console application which takes Command line arugent from the Visul Studio itself without using the Command Prompt?
Thanx.....
|
|
|
|
|
The Visual Studio .NET Command Prompt just sets up the paths to all the VS and .NET tools.
Go to normal command prompt and try an run "csc" or "guidgen" if they're not in your path, they won't run. Inthe VS.NET command prompt they will. And yes you can run console apps from IDE and even pass parameters to it. Check Project->Properties
|
|
|
|
|
Thanx Roman
I tried giving command line arguments in Project->Proprties->Configuration Properties->Debugging. It works fine.
If every time I want to give a different value I have to set the value there only.
thnx again.
|
|
|
|
|
How can one replicate the Close() event with its corresponding CancelEventArgs?
I.e. how to find out from the code firing the event what the receiver set this attribute to?
Does anyone know and can help clarify this procedure to me...
|
|
|
|
|
If there's just a single event handler attached, then it's fairly easy:
In your class you need:
public delegate MyCancelHandler(bool cancel);
public event MyCancelHandler AnEventThatCanBeCancelled;
if (AnEventThatCanBeCancelled != null)
{
bool cancel = false;
AnEventThatCanBeCancelled(cancel);
if (cancel)
{
MessageBox.Show("Event has been cancelled by a listener");
}
else
{
MessageBox.Show("Event has NOT been cancelled, go on with whatever you want");
}
}
If there's more than one listener attached, then you'll only get the cancel info of the last listener notified.
In this case you'll have to go through all registered delegates (using MulticastDelegate.GetInvocationList() ) and check all of them if anyone wants to cancel your event.
Regards,
mav
|
|
|
|
|
That won't work. bool (System.Boolean ) is a value type, and you'd need to declare the delegate parameter as out or ref .
Besides, it's far easier to just reuse CancelEventHandler . Since it uses the CancelEventArgs which has a Cancel property (that will keep the value), you don't need to declare your own event.
Also, while it's not required, events should typically follow the EventHandler signature and the second parameter should (agian, not required to) derive from EventArgs . CancelEventArgs does, of course, extend this class.
If you want to know what a specific callee of the callback set the CancelEventArgs.Cancel property to, your past paragraph is correct.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Of course you're right, Heath.
This is what you get when you don't actually try out your own suggestions...
|
|
|
|
|
Hi,
I have two different type of designers e.g. a flowchart designer and a form designer, how should i integrate them in one enviroment. As each designer has its own toolbar (having different tools) and its own properties (shown in propertygrid).
What is the best approach to go with.
Thanks in advance,
Omar Rehman
|
|
|
|
|
Hi all
The help is necessary. I need in my program climb on https site.
a problem in that that it is necessary to establish the certificate from this site.
The request to those who worked with it to to give a slice of a code for work with
certificates (it'll be good if it be working)
everyone speak that X509Certificate must be used but in msdn there is no real code.
please help because I burn
|
|
|
|
|
There isn't always sample code in MSDN, so you must understand how to use the types that are documented. HttpWebRequest.ClientCertificates is an X509CertificationCollection , so obviously you need to instantiate that collection class. Since it's also an IList implementation, you can add and remove X509Certificates .
If you already have client certificates (which you can view and export in the Internet Options, Content tab), you can simply use the static X509Certificate.CreateFromCertFile method, passing the filename of the client certificate for identification to the server that you can export from Internet Options like I mentioned above.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
please give me some code if you have because i can write it by myself!!!
|
|
|
|
|
I am trying to receive the udp datagram that from
the client sended to the server port 7090,but i have some questions following.
1) How to listen to port 7090?
Should I setup a timer to scan port 7090?
2) Is there a event that start when the udp
datagram get to the server and how to
implement?
3) If many client send to the same server port 7090 in the same time.
How can I to sure which one is from where?
thanks for your help!
|
|
|
|
|
UdpClient.Receive is a blocking call, and there is no events on the UdpClient . You use it to send packets to a server or multicast group and then call UdpClient.Receive to wait for a response.
You should read the class documentation[^] for the UdpClient in the .NET Framework SDK. It contains all the information you should need plus many examples of how to use it.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
can someone tell me how I can get the code below to paint the rectangle where the button is(even though it is not behind drawn(this is code to show an example of a problem I'm having, I don't want to make button invisible)... it seems that the base class has introduced a clip region where the button is. I've tried my best to remove this region(messing with the painteventargs clip region, getting a graphics object from this.CreateGraphics, etc...)... I've also tried to remove the WM_CLIPSIBLINGS from the CreateParams, but that didn't work... not sure if this is a bug in forms or I'm just missing something. Anyways, I really hope someone can help me as this is my 3rd post on this. Thanks.
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
private System.ComponentModel.Container components = null;
public Form1() { InitializeComponent(); }
protected override void Dispose( bool disposing )
{
if ((components != null) && (disposing)) components.Dispose();
base.Dispose( disposing );
}
#region Windows Form Designer generated code
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(96, 64);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(136, 136);
this.button1.TabIndex = 0;
this.button1.Text = "button1";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 273);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
[STAThread]
static void Main() { Application.Run(new Form1()); }
protected override void OnPaintBackground(PaintEventArgs e)
{
e.Graphics.FillRectangle(new SolidBrush(this.BackColor), 0, 0, Width, Height);
}
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x000F)
{
return;
}
base.WndProc (ref m);
}
}
|
|
|
|