|
The per-client memory that is allocated is being managed correctly. The reason I think it may have to do with GC activity is because the following has been observed:
1: When the C# portion of the application is made idle (or at least, more idle than normal), memory is slowly reclaimed.
2: If the other application is closed, the memory comes back much faster.
Another reason is because of how BSTRs have to be managed to pass them out-of-proc. When copies are made by the COM subsystem, where is that memory being tracked? If it is showing up in my process, because that is the "side" where it is being allocated, but it coorrelating BSTR on the client-side is not being freed until later on, would that cause what I am seeing?
This is the strangest thing...
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
Hi..
In my application i have a situation where for particular period of time
specific no.of threads are created in SmartThreadPool..
And its working fine..
Now i want to dequeue some of the Thread items from the ThreadPool,
to stop the Threads..
I'm not sure how to get this..
Please help me..
For pooling i'm using SmartThreadPool.
thanks,
nas
|
|
|
|
|
I would like to create a new instance of a class, but I would like the user to tell me the name of the object they want to create, and the code uses that (stored as a string) name and creates the object.
This is done as a method. This is what I thought about, but it creates it called the name of the variable:
public void createTextBox(string textBoxName)
{
// Create a new text box
TextBox = textBoxName new TextBox;
}
I am going about this all wrong!
OK, what I want to do, is create a DLL, that is for a programming language created with C#, that allows them the make a GUI, they can create different components, how do I do this?
-- modified at 7:05 Wednesday 14th February, 2007
|
|
|
|
|
This is not possible, a variable name needs to be hard coded, but you can use an ArrayList to store an unkown number of TextBoxes.
|
|
|
|
|
This would be possible with a Dictionary<string,textbox>, in which case you can have a name associated with each created textbox. Just make sure you don't overwrite any existing values (with, for example, the ContainsKey() method).
Just out of curiosity, why do you want to have a textbox associated with a name?
Internet - the worlds biggest dictionary
|
|
|
|
|
I'm assuming that what you are asking is how can a user make a form dynamically by adding controls to it. To do this, you need to add items to the forms Control collection. If you want to see an example of this, just take a look inside a form you have created in Visual Studio.NET. Take a look inside the InitializeComponent method to see what needs to be done. (Note though, setting up a control is about more than just adding it to the collection. You need to set it's location, set it's name (and so on).)
If you have a control container (e.g. a Panel), then you would add any child controls of this to the controls Control collection.
I hope that this gives you enough of a hint about how to get started.
the last thing I want to see is some pasty-faced geek with skin so pale that it's almost translucent trying to bump parts with a partner - John Simmons / outlaw programmer
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
hi every one
well my question is that I wanna validate a text box in a Windows application C# 2.0 so that the user doesnt enter a special character. If it blocks the entry of a special character right when the user is entering it, then that would be nice!
thanks in advance
Rocky
|
|
|
|
|
Use event KeyPress from the textBox and use this code:
This code means "t" is not allowed.
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 't')
{
e.Handled = true;
}
}
|
|
|
|
|
Hello,
You could handle the "KeyPress" event of your textbox instance, or better inherit your own textbox and override the protected OnKeyPress method.
Then you could do:
protected override void OnKeyPress(KeyPressEventArgs e)
{
string _allowedkeychars = "1234567890";
if (_allowedkeychars.IndexOf(e.KeyChar) < 0)
{
e.Handled = true;
return;
}
base.OnKeyPress (e);
}
private void YourTextBoxKeyPress(object sender, KeyPressEventArgs e)
{
string _allowedkeychars = "1234567890";
if (_allowedkeychars.IndexOf(e.KeyChar) < 0)
{
e.Handled = true;
return;
}
}
All the best,
Martin
|
|
|
|
|
yea that looks alot helpful to me. thanks alot Martin I appreciate this!
|
|
|
|
|
Hi, Actually I want to draw many rectangles on the screen and want to show all of them at once. Is there any function like BeginUpdate and EndUpdate in c#. so that the drawing process is not shown to the viewer.
|
|
|
|
|
No there isn't really, what you want is double-buffering, if you're using .NET 2 then there should be a DoubleBuffered property on the control you're inheriting from. If not then use base.SetStyle in the constructor of the class.
The BeginUpdate and EndUpdate are used in a different way, say you have a ListBox , if you want to add 1000 items to it normally each time you add an item the Invalidate method is called, this will cause the control to recalculate it's entire contents and redraw all of them. If you use the Begin/EndUpdate pair then what this does is set a flag to say that when an item is added / deleted changed it's not meant to be redrawn. When you call the EndUpdate function when all the items have been added then it calls the Invalidate method to redraw the control (and clears the flag).
You can see the obvious benefits, in the first method (no Begin/EndUpdate ) the control is redrawn 1000 times as each item is added (thus producing a flicker (unless you have an awesomely specced machine)), in the second it only redraws once when everything has finished.
|
|
|
|
|
Hi, thanks for reply, actually I am drawing almost 10000 rectangles on the screen. My main function of drawing is called in the form PAINT function. I have enabled the double buffered property but it is not working. Can you give me a bit more detail? Thanks for help.
|
|
|
|
|
My only suggestion would be to move any position calculations to outside the Paint function because that is called more often. I.e. do as few mathematical calculations for the positioning / size of the elements in the Paint event, do that inside the Resize .
|
|
|
|
|
Hello,
I m using Visual Studio 2005.Doing windows project in C#.Net.In that
i m using popup window forms.All details in text boxes are getting filled.But combo box and list boxes are not showing correct records?
I m taking records from database (sql server 2000) depending on the id of selected record from the datagrid.I m using Binding navigator.On that i have taken command button.On click event of that button i m displaying another form,in that form i m getting above explained problem.
I have debugged & found that all values are getting retrived correctly.It showing the value of selected index correctly also value in selected text field is also correct.Then why Combobox & ListBox contents are not getting updated.....
hello
|
|
|
|
|
Can you post the relevant pieces of code please, it'd be a great help in trying to help you diagnose this problem.
|
|
|
|
|
hmmmm!!!I m Using BindingNavigator on user control.On that i have taken Button,on click event of that i m displaying another windows form using showdialog...
hello
|
|
|
|
|
Can you post the code which is surrounding the ShowDialog, the bits that set the combo boxes etc.
|
|
|
|
|
private void bindingNavigatorCreateResumeItem_Click(object sender, EventArgs e)
{
int EmployeeId = 0;
DataSet dsEmlpoyee;
dsEmlpoyee=(DataSet)((BindingSource)grdVwEmpOverview.DataSource).DataSource;
if (grdVwEmpOverview.CurrentRow!=null)
{
EmployeeId = BaseObject.GetValue_Int32(grdVwEmpOverview.CurrentRow.Cells["EmployeeId"].Value);
string EmpName = Convert.ToString(grdVwEmpOverview.CurrentRow.Cells["ShortName"].Value);
frmEmployeeResume ofrmEmployeeResume = null;
ofrmEmployeeResume = (frmEmployeeResume)CCommonFunction.ShowChild(frmMain.Me, CConfiguration.ChildForms.EMPLOYEECREATERESUME);
ofrmEmployeeResume.ClearForm();
ofrmEmployeeResume.ShowEmployeeDetails(ref dsEmlpoyee, EmployeeId);
ofrmEmployeeResume.ShowDialog();
}
}
//ShowEmployeeDetails on other form.
public void ShowEmployeeDetails(ref DataSet DsEmployee, int EmployeeId)
{
DataRow[] drRequest = null;
try
{
m_EmpId = 0;
drRequest = DsEmployee.Tables[0].Select("fldEmployeeId=" + EmployeeId);
if (drRequest.Length > 0)
{
m_EmpId = EmployeeId;
txtPersonalno.Text = drRequest[0]["fldEmployeePersonnelNo"].ToString();
txtShortname.Text = drRequest[0]["fldEmployeeShortName"].ToString();
txtFirstname.Text = drRequest[0]["fldEmployeeFirstName"].ToString();
txtSurname.Text = drRequest[0]["fldEmployeeSurname"].ToString();
cmbStatus.SelectedIndex = Convert.ToInt32(drRequest[0]["fldEmployeeStatus"].ToString());
cmbMaritalStatus.SelectedIndex = Convert.ToInt32(drRequest[0]["fldEmployeeMaritalStatus"].ToString());
cmbCitizenship.SelectedValue = Convert.ToInt32(drRequest[0]["fldEmployeeCitizenship"].ToString());
cmbPAddrCountry.SelectedValue = Convert.ToInt32(drRequest[0]["fldEmployeePAddrCountryId"].ToString());
}
}
catch (Exception ex)
{
StaticUtils.LogExceptionAndContinue(ex, "frmEmployeeDetails.ShowRequestDetails()");
}
}
-- modified at 7:04 Wednesday 14th February, 2007
Help Please!!!
|
|
|
|
|
Two questions, are the comboboxes databound in anyway? I'm guessing not.
Do you have the STAThread attribute applied to your Main function? If not it can produce some really really bizarre behaviour.
|
|
|
|
|
Yes i have applied the STAThread attribute to main function.
During debugging it shows the records correctly......Then why combo & list box contents r not showing correct value...
Help Please
|
|
|
|
|
One thing I noticed is for these two lines:
cmbCitizenship.SelectedValue = Convert.ToInt32(drRequest[0]["fldEmployeeCitizenship"].ToString());
cmbPAddrCountry.SelectedValue = Convert.ToInt32(drRequest[0]["fldEmployeePAddrCountryId"].ToString()); It'd be better as .SelectedValue = (int)(drRequest[0]["fieldname"]); Because what your code is doing is converting an integer (stored in object form because of being late-bound) to a string and then back again, where as if you just cast it it'll be faster and happier.
The code looks correct, the only thing I can think of at the moment is how have the combo boxes been populated? Are they bound to the data source?
|
|
|
|
|
Yes,combobox & listbox bound to the datasource....during page load
|
|
|
|
|
I just helped out someone who has a similar problem with data binding, try running the code without the debugger attached (Ctrl+F5), this worked for his solution for some odd reason. Alternatively you could try calling ComboBox.Refresh() to force it to redraw itself.
|
|
|
|
|