|
I suppose you compile in Visual Studio. Just look at the output window after you compile you project. Visual Studio is adding this flag automatically for you. Search for /define:TRACE
Vitaliy Tsvayer
Tikle
|
|
|
|
|
I see... thanks for the clarification. So, if we build our solution from command line (say using msbuild...) we should add this flag, right?
Thanks.
|
|
|
|
|
Yes, you will have to add this flag and possibly some more while using c# compiler from command line.
Vitaliy Tsvayer
Tikle
|
|
|
|
|
If you double-click the 'Properties' folder for a project in the Solution Explorer, then click on the Build tab, you will see two checkboxes:
'Define DEBUG constant', and 'Define TRACE constant'. If the TRACE one is checked, VS does it all for you, if unchecked, you get no trace.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
this is my first C# project so bear with me. Here is the code. HistoryDataView is part of Form1 and is set to public.
namespace LockOut
{
public partial class Utility : Form
{
public Form1 m_parent;
public Utility(Form1 frm1)
{
m_parent = frm1;
}
public static DataTable DeviceHistory()
{
OleDbConnection pcDataConn = DBConnection();
try
{
DataSet ds = new DataSet();
string SQL = "SQL Statement";
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand(SQL, pcDataConn);
adapter.Fill(ds);
DataTable dt = new DataTable();
dt = ds.Tables[0];
if (dt.Rows.Count < 1)
{
dt = null;
}
pcDataConn.Close();
return dt;
}
catch(Exception ex)
{
pcDataConn.Close();
DataTable dt = null;
Console.WriteLine(ex.Message.ToString());
return dt;
}
}
public static void UpdateDeviceHistory()
{
m_parent.HistoryDataView.DataSource = DeviceHistory();
}
}
------------------------------------------------------
namespace LockOut
{
public partial class Form1 : Form
{
private void Refresh_Click(object sender, EventArgs e)
{
Utility.UpdateDeviceHistory();
}
}
}
|
|
|
|
|
Any reason the Utility class is a form? I would make Utility a regular class and remove the UpdateDeviceHistory method. Then in Form1 i would do this:
HistoryDataView.DataSource = Utility.DeviceHistory();
|
|
|
|
|
That is actually how I had it running initially within Form1. But I have another method within the Utility Class That logs the transactions and I wanted to be able to just update the datagridview after every log, so I would still need to use it from this class. I just turned it into a button click for testing. I hope this makes sense.
|
|
|
|
|
Not a very good idea to do that. But if thats what you want to do, you would have to make the m_parent static.
|
|
|
|
|
Why does Utility inherit from Form ? If it really is a 'Utility' class, does it need to inherit from Form ?
In order to give the most appropriate answer, it would help to know this.
In general the problem is that your methods are class methods (static), but your fields are not. Non-static items can only be accessed through an instance of a class, not through the class itself.
[Mod]
It took me so long to type this that your question has already been answered.
[/Mod]
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
Your UpdateDeviceHistory method is static. But you are trying to access m_parent. You can't do that. Because m_parent is not static. To be more specific context of your program is needed but you could do this at least:
1. Remove static from your UpdateDeviceHistory method.
2. create Utility class instance and call UpdateDeviceHistory on that instance, that is:
Utility utility = new Utility(some_form_with_HistoryDataView)
utility.UpdateDeviceHistory()
Good Luck
Vitaliy Tsvayer
Tikle
|
|
|
|
|
hello guys!
i'm having some issue figuring out what to use for my application.i'm developing a desktop application pulling most of its data from websevices.I display the data which can be huge with a datagrid.
i have a webservice datasource and bind that datasource to the grid.
Now i want to give better user experience and feedback to users.The method i found online for the backgroundworker with the progressbar is not satisfactory enough.Actually they use loops to give the reportprogress the percentage to show while in my implementation i can't put webservice calling into a loop.I'll like to use the webservice async call with the progress bar but then i don't know how to update the progress bar to display the appropiate percentage.So if anybody can point me to a ressource or a workarround i'll be more than glad.I 'm open to suggestion so please let me know what you think.
Thanks for reading this.
eager to learn
|
|
|
|
|
Well it depends on whether you have one web service call through which you get all your data or you have multiple separate web service calls to get your data. In the first case it won't be easy to update progress as web service needs to get the whole XML data before it can be parsed etc etc. It can be asynchronous but without progress updates. In second case BackgroundWorker is really suitable here. You do not need any loops as it is shown here http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx[^]. You simply call ReportProgress() method to update current progress between your web service calls and handle ProgressChanged events to update progress bar. Hope this helps somehow.
Vitaliy Tsvayer
Tikle
|
|
|
|
|
Thanks vitaliy.Your suggestion helps but for some reason the progress bar is not updated at all since i have only one web service per form.Thank any way.
eager to learn
|
|
|
|
|
|
hello everyone!
beginner Q!
i try to build an array, by btn click i like to add integer;
my problem is every click i get a new array, so where i need to declare my array
the code:
namespace array
{
public partial class _Default : System.Web.UI.Page
{
int counter;
int[] arr1 = new int[50];
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnAdd_Click(object sender, EventArgs e)
{
int item = int.Parse(TextBox1.Text);
addItemToArray(item);
counter++;
}
public void addItemToArray(int item)
{
arr1[counter] = item;
}
}
}
10x
Kaka760
|
|
|
|
|
the button is a server side control, so the page reloads everytime you click it, try using java script for the button.
|
|
|
|
|
The reason you get new array object on every click, is that new instance of class _Default is created for every request. So you need to put this array object into store which is shared among different requests that is Session.
Vitaliy Tsvayer
Tikle
|
|
|
|
|
Here, I have two images.... both of which has transparency in it.... They look a bit like this....
http://img167.imageshack.us/img167/1263/piece00.png
http://img129.imageshack.us/img129/9712/piece03.png
Language I am coding in is C#.
I am trying to overlap these two images(or the puzzle pieces) such that the result looks like that they fit into one another.....
I have tried all sorts of things to do it but failed. I have put these 2 images into 2 pictureboxes and set the backcolor as transparent but tht didnt worked....
code:
PictureBox[] p = new PictureBox[2];
p[0] = new PictureBox();
p[1] = new PictureBox();
p[0].BackColor = Color.Transparent;
p[1].BackColor = Color.Transparent;
p[0].Size = new Size(100, 100);
p[1].Size = new Size(100, 100);
p[0].Location = new Point(100, 100);
p[1].Location = new Point(180, 100);
p[0].Image=(imageList1.Images[0]);
p[1].Image=(imageList1.Images[1]);
p[0].Visible = true;
p[1].Visible = true;
this.Controls.Add(p[1]);
this.Controls.Add(p[0]);
p[0].Refresh();
p[1].Refresh();
p[0].Update();
p[1].Update();
I have also tried doing the same with buttons using:
button1.BackgroundImage=image1;
button2.BackgroundImage=image2;
But both pictureboxes and buttons resulted in something like this:
http://img148.imageshack.us/img148/5701/try1.jpg[^]
|
|
|
|
|
have you tried this? draw both images on to the same bitmap and display them in a picture box more like this,
Bitmap=bmp new Bitmap(100,100);
Graphics gr=Graphic.FromImage(bmp);
gr.DrawImage(img1,0,0,...
gr.DrawImage(img2,0,0,...
PictureBox p=new PictureBox();
p.Image=bmp;
Might work!!!
GoodLuck
|
|
|
|
|
Yes I have tried tht... but it didnt work as it was also putting the transparent pixels also in the bmp formed...and i was skipping the transparent pixels than it was also skipping the transparent pixels at the bottom of the image...
Isnt there any image container tht let see through the image on to the image behind it.... ofcourse picturebox and button isnt working or am I doing something wrong?
|
|
|
|
|
|
Hello,
I'm attempting to enumerate the contents of a registry key: HKCU\Software\Microsoft\Windows\Shell\Bags\1\Desktop
I am currently storing the Name in an array without a problem.
However, how do I store both a REG_BINARY (byte) and a REG_DWORD (int) into an array?
Here is the code, that is failing:
<br />
RegistryKey myRegKey = Registry.CurrentUser;<br />
myRegKey = myRegKey.OpenSubKey("Software\\Microsoft\\Windows\\Shell\\Bags\\1\\Desktop\\");<br />
String[] valueNames = myRegKey.GetValueNames();<br />
<br />
string[] OriginalValueName = new string[valueNames.Length];<br />
Byte[] OriginalValueData = new System.Byte[valueNames.Length];<br />
<br />
int i = 0;<br />
foreach (String valuename in valueNames)<br />
{<br />
MessageBox.Show(valuename);<br />
OriginalValueName[i] = valuename;<br />
<br />
Object ovalue = myRegKey.GetValue(valuename);<br />
MessageBox.Show(ovalue.ToString());<br />
<br />
if (ovalue.ToString() == "System.Byte[]")<br />
{<br />
OriginalValueData[i] = (System.Byte)ovalue;<br />
}<br />
else<br />
{<br />
OriginalValueData[i] = (System.Byte)ovalue;
}<br />
}
I'm trying to convert an integer to a byte, but it doesn't seem to work, claiming "Specified cast is invalid."
Does anyone have any ideas?
Thanks,
Matt
|
|
|
|
|
Hi,
how could you store an int value (32-bit) in a byte (8-bit) in a useful manner?
You could:
1. do the opposite, i.e. store bytes and ints into an int[].
2. better yet, define your own type ("RegistryValue") and derive two types from it ("RegistryByte" and "RegistryInt"), then store instances of either one of them in an array, or better yet a List< RegistryValue>. Making it a class/struct allows for additional information such as the key name.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
Luc Pattyn wrote: how could you store an int value (32-bit) in a byte (8-bit) in a useful manner?
By using the Obi Wan Kenobi Bit Cramer[^]
It's that pretty blue thing he is holding.
|
|
|
|
|
Extreme tools should be used in emergencies only; don't waste them on a couple of bits, spending some RAM is more than adequate.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|