|
A member is public static when it is declared public static and therefor can be accessed without an instance of the class. An instance member on the other side can only be accessed by using an object of the class. A short example:
public class Test
{
public static int StaticMember;
public int InstanceMember;
}
Test.StaticMember = 5;
Test obj = new Test;
obj.InstanceMember = 5;
www.troschuetz.de
|
|
|
|
|
As title
If yes, when is the data type in mfc dll?
Thanks
|
|
|
|
|
I'm trying to find a subclasses Textbox with transparent background or a replacement for the textbox that supports transparent bg. I don't know win api well enough so I'm looking for some clean code.
I've searched and keep running into an article on CP on AlphaBlendTextBox. BUT, that article is P.O.S. I've tried using it and it doesn't work properly. The author made a hell of a messy implementation. He tried to give the user the ability to set background images for the textbox. I do not want to have a mess implementation that requires a PictureBox docked inside the TextBox control. I just need to have a transparent bg.
|
|
|
|
|
i have documents scaned as bitmaps and they are scaned as legal documents but not all of them are legal is there a way i can read the bottom of the bitmap and see if the last 3 in are white cut off the last 3 in and print on letter papper instead of legal
thanks
chad
|
|
|
|
|
I have a legacy windows application that needs to automated. I have no access to the source code.
I would like to write a seperate (new) C# application to interact with the legacy app.
Basically the legacy app presents graphical data to the user and the user classifies the data. Classifaction is done by clicking one of a couple of buttons.
When the legacy app was written there was, apparently, no widely known/good method to classify this data, though humans (once trained) are able to do it quickly.
I've come up with and algorithm that should make the job easier, as it can classify maybe 70% of all cases automatically. The other 30% still require human intervention, but that's still a big improvement.
The goal then, is to have both apps running, both minimized and out-of-sight _unless_ the algorithm is unable to correctly classify the data (in which case it can just um-minimize the legacy app and make the user deal with it)
Basically, there are a two things I need help getting started with:
1. Getting graphical data from a minimized window 2. Programatically clicking buttons on a minimized window
Could anyone provide pointers to APIs or techniques I might look in to? I'm not asking for a solution (though I'd take them if you've got them ), but more along general pointers.
Thanks
|
|
|
|
|
Poor you. I really hate the way you're going be using automation, but I guess ur kinda stuck. The ultimate solution is to rewrite the program but that obviously is not feasible.
You're going to have to do some stuff with win32 api. Look into MSDN... you need to know how to
- get a handle to a window (this is used to "identify" what you are sending a message to)
- use SendMessage() - this is used to send a message to the windows/control u want to send a message to
- know what messages to send - there are a lot of messages you can play around with
A good tool to use for messing around is Micorosft Spy++. Also, google is your friend. You can search for "programatically click button" and u will find it in a snap.
|
|
|
|
|
I recently just started working with C# and really haven't quite figured out how to put a "handle" on a process to update a progress bar.
I would really appreciate it if someone can show me how to show the progress of a query being run on a database... on a progressbar.
Thanks in advance.
Lash
|
|
|
|
|
You mentioned query being run on a database...
You can't really get a "handle" for that. What you can do is if you have a batch of queries that you are executing and you know how many you can obviously keep track of how far you got.
|
|
|
|
|
Unless the database your using can provide you with some kind of progress "heart beat" while executing a single query, like a SELECT query, there is no way to do this. No RDBMS I know of will do this simply because it's impossible for the engine to predict how many records are going to be affected by the query that its executing. If you don't know where your destination is, it's impossible to track your progess to it, isn't it?
As mentioned in the other post, the closest your going to get is if you are executing multiple requests. You can execute those requests one at a time and update the ProgressBar between requests.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Thanks guys for your response, Is there a "work around" to at least show the user some type of progress while executing....say... a single select statement ?
|
|
|
|
|
You can't show actual "progress" because there isn't any until the SELECT statement returns. But you can show a activity bar resembling the one the you see when installing Windows XP.
Building a Progress Bar that Doesn't Progress[^]
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Hi All,
I am getting this error "NO Such interface supported" when from my C# application I am trying to export rows to Excel.
This is a problem only on certain user machines and they are running same vesion of Excel (i.e. 2000)
In refernce to Microsoft article http://support.microsoft.com/default.aspx?scid=kb;EN-US;316653[^]
I did ILDASM on Interop.Excel.dll in my program files and found that classes with suffix _SinkHelper are all Public. But on that users machine it is private. I am wondering why such inconsistency with the same setup project.
Any help and pointers are appreciated.
Thanks
Ruchi
|
|
|
|
|
I am working on a Visual Studio C# data acquisition application. I need to log acquired data to an Access data base.
I have the acquired data stored in my application in a DataTable. I want to append all columns of the DataTable to an Access table.
Since my application will be acquiring data over long periods of time, I don't want to keep all the rows of acquired data in a DataSet - once I write them to the database, I don't want to keep them an every growing DataTable in my application.
The only way I've been able to get this working is to use ExcuteNonQuery with
DbCmd.CommandText="INSERT INTO " + DestTableName + " (" + fields + ") VALUES (" + values + ")";
That's OK, except that I have to build up the INSERT INTO field names and values by iterating thru the table's columns and creating field text from the column names and value text from the column values.
Is there a way to simplify this by using * or some other means to select all the columns of the data row for insertion ito the data base table, so I don't have to build up the field and value strings every time I write to the database? (I suppose I could just build the fields text once since it won't be dynamic.)
Here's my code to insert one row of data into the Access database:
public static int RecordData(DataRow SourceRow, string DestTableName)
{
int NumRecordsAdded = 0;
string fields = "";
string values = "";
foreach (DataColumn col in SourceRow.Table.Columns)
{
//Don't record Key - it creates an SQL syntax error, must be a reserved word
if ( col.ColumnName.ToUpper() != "KEY")
{
if (SourceRow[col.ColumnName] == DBNull.Value)
{
//TODO Flag something if data column not filled
string ErrorMsg = "Data Recording Error - Data Column: " + col.ColumnName + "has no data";
SourceRow[col.ColumnName] = 0;
}
if (fields != "")
fields = fields + ", ";
fields = fields + col.ColumnName;
if (values != "")
values = values + ", ";
System.TypeCode ColTypeCode = System.Type.GetTypeCode(col.DataType);
switch (ColTypeCode)
{
//TODO Handle other data types?
case System.TypeCode.Int32:
values = values + ((Int32)SourceRow[col.ToString()]).ToString();
break;
case System.TypeCode.Double:
values = values + ((double)SourceRow[col.ToString()]).ToString();
break;
case System.TypeCode.String:
values = values + "'" + (string)SourceRow[col.ToString()] + "'";
break;
default:
values = values + "'" + SourceRow[col.ToString()].ToString() + "'";
break;
}
}
}
try
{
LogDB_Connection.Open();
OleDbCommand DbCmd= new OleDbCommand();
DbCmd.Connection = LogDB_Connection;
DbCmd.CommandText="INSERT INTO " + DestTableName + " (" + fields + ") VALUES (" + values + ")";
//MessageBox.Show(DbCmd.CommandText);
NumRecordsAdded = DbCmd.ExecuteNonQuery();
}
catch(Exception e)
{
MessageBox.Show("DB Command Exception '" + e.ToString() + "'");
}
LogDB_Connection.Close();
return NumRecordsAdded;
}
Hans
|
|
|
|
|
Hi,
I need to print text using a printer which is not capable of printing graphics, hterefore Graphics.DrawString fails.
Is there any alternative way to print avoiding DrawString method?
Thanks
Sirwan
|
|
|
|
|
Printing Directly to the Printer
http://www.c-sharpcorner.com/Code/2002/Oct/PrintDirect.asp
|
|
|
|
|
Thanks for the help, it didn't work with the printer star sp200, not hp as it said, there is no response whatsoever.
i use windows app not console and need to print few word not a document.
Are you aware of any other way?
Cheers
Hussein
Sirwan
|
|
|
|
|
Hi
I need to make use a data structure to save a 2D data, let say node_id and node_status and later on I need to manipulate the node_status as necessary. Then I need to count down the nodes as per their staus. Let say the number of nodes whose shatus are 'off', and the rest, whose status are 'on' Should I use an ArrayList ? or an array ? In each case, how do I store, manipulate and search thorugh...and the problem is I am having trouble where/how to collect data into the ArrayList or array.
Thanks. here goes the part of code where I am having problem to implement the data sturcture:
int i;<br />
int num;<br />
int numsect;<br />
<br />
num = NUM_NODES;<br />
ArrayList nbuffer = new ArrayList();<br />
for(i=0; i < num; i++) <br />
{
int j;<br />
numsect = nodes[i].sector_info.numsect;<br />
for(j=0; j < num; j++) <br />
{
double distance, angle, covrdArea;<br />
distance = caldist(nodes[i].lctn, nodes[j].lctn);<br />
<br />
if(distance <= (2*((double)nodes[i].radius)) && distance > 0.0) <br />
{
angle = getangle(nodes[i].lctn, nodes[j].lctn, distance);<br />
<br />
covrdArea = getArea(nodes[i].id, nodes[j].id, distance, angle);<br />
<br />
tw.WriteLine("Distance form Node_" + nodes[i].id + " to Neighbour Node_" + nodes[j].id + " is " + distance);<br />
tw.WriteLine("Angle btw Node_" + nodes[i].id + " in sect " + numsect + " to Neighbour Node_" + <br />
nodes[j].id + " is " + angle);<br />
tw.WriteLine("Neighbouring Node_" + nodes[j].id + " is covering " + covrdArea + " percent of Node_" +<br />
nodes[i].id + "'s sensing area");<br />
<br />
<br />
}
}
tw.WriteLine("----------------- END OF NEIGHBOUR_LIST OF NODE_" + nodes[i].id +" --------------------------");<br />
tw.WriteLine("");<br />
nbuffer.Add(nodes[i].id);<br />
}
nbuffer.Clear();<br />
<br />
tw.Close();<br />
}
Thanks
aussi
|
|
|
|
|
If you're storing a pair, is one of the values unique ? Perhaps a hashtable is a better choice.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
Hello ppl,
I am using a tabcontrol for desktop client application(C#/ADO.Net),which has a parser in one tab and report Generator as another tab page. I have used multithreading and assigned a worker thread(say backGroundThread)for the application to parse values - So that the application would repaint itself whenever the user switches back and forth between any window and the application. But as i have used Threading, when parsing is in progress, the user is able to navigate through tabs. So I have to disable the rest of the tabpages in Tabcontrol when parsing in progress.
I tried to reset the tabpage to Parser tab(Sender TabPage) in TabControl_SelectedIndexChanged(object sender, System.EventArgs e)
How do I capture the tabpage(Sender TabPage). i.e name of the tabpage from which the user tried to navigate?
I tried to typecast the sender object to get the sender tabpage.BUt i could not get a break through in identifying the source tabpage.
System.Windows.Forms.TabControl homeTab = (System.Windows.Forms.TabControl)sender;
kindly help me to overcome this problem.
Thanks,
Cheers,
Jagan.
|
|
|
|
|
Below mentioned code will help you to get the index of the Tab page which have the focus.
private void tabPage1_Click(object sender, EventArgs e)<br />
{<br />
TabPage tb=sender as TabPage;<br />
MessageBox.Show("Index is : "+tabControl1.TabPages.IndexOf(tb));<br />
}
Using this code you can achive your requirement.
Sreejith Nair
[ My Articles ]
|
|
|
|
|
Hello sreejith,
Thanks for replying back. But i donot want the name of tab which have the focus.
Let me expain with an example.
Say there are three tabpages - Tabpage tpA,Tabpage tpB,Tabpage tpC in a tabControl and currently user is in Tabpage tpA and clicked on tpB. I want to capture the name of the tab from which the user moved to tpB (either from tbA or tpC).. in otherwords my lastselected tabpage and not the current selected tabpage.
Hope i am clear in explaining my problem.
Cheers,
Jagan
|
|
|
|
|
one way to achive this is keep a global class variable
int lasttabIndex;
At form load time set it to whatever tab you want to open the first time form loads.
There after in event
private void tabControlDeal_SelectedIndexChanged(object sender, System.EventArgs e)<br />
{<br />
TabControl ctrl = (TabControl)sender;<br />
int x = ctrl.SelectedIndex;<br />
<br />
<br />
lasttabIndex = x;<br />
}
Hope this helps
Ruchi
|
|
|
|
|
Thank you ruchi , that was helpful
|
|
|
|
|
Hello all.
I made a NET class library, and now I want to reference it in my application.
The add references dialog allow me to add a reference to the library but I want to reference the library in is Debug version when I'm in the Debug version of the application and its Release version when I'm in release mode ( as I do when I write code in C++ )
Is this possible or I only can reference one dll for Debug and Relese ???
Thanks.
|
|
|
|
|
If your two projects are in the same solution then you reference the project rather than the DLL (properly called an assembly in .NET) and Visual Studio takes care of the Debug/Release versions for you.
Do you want to know more?
Vogon Building and Loan advise that your planet is at risk if you do not keep up repayments on any mortgage secured upon it. Please remember that the force of gravity can go up as well as down.
|
|
|
|