|
if you fill the Datagridview row by row then it's will take a while but it's easy
1- Get the DataTable rows count
2- Progress Max Value = row Count
3- on every row you add by manual Incearse the progressbar value
here is a sample :
int RowCount = 100;
int AddRow = 0;
private void button3_Click(object sender, EventArgs e)
{
progressBar1.Maximum = RowCount;
backgroundWorker1.WorkerReportsProgress = true;
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i < RowCount; i++)
{
AddRow = i;
backgroundWorker1.ReportProgress(AddRow);
}
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
P.S :
I would never add row to datagrid manually I would use DataSource properties
I know nothing , I know nothing ...
|
|
|
|
|
This doesn't address your exact problem - but if you do decide to use a BackgroundWorker and a ProgressBar - my ProgressWorker[^] article may be of use.
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn) Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia) Why are you using VB6? Do you hate yourself? (Christian Graus)
|
|
|
|
|
How can I forward a port in a router programmatically with C#?
Is it possible?
|
|
|
|
|
With UPnP or NAT-PMP (depending on the router) or neither (in some cases)
|
|
|
|
|
I have a datatable and I need to create a csv file with its contents. Can someone show me an example of how to do it please? Thanks for your time.
Regards,
John
|
|
|
|
|
Here
I know nothing , I know nothing ...
|
|
|
|
|
Hi
My form has a few Tabs. Each Tab has a DataGridView on it.
Using the arrow keys switches between tabs. This stops when the user clicks on any cell i a gridview, in which case the arrow keys move around the grid.
Is there any way I can force this mode on entry into a tab?
I have tried setting the top left cell of the gridview to Selected = true, but this doesn't help.
Thanks,
Nigel
|
|
|
|
|
Try setting the focus on the tabpage.
जय हिंद
|
|
|
|
|
Tried. Doesn't help.
Tried setting focus to the gridview, doesn't help.
|
|
|
|
|
How are you managing the tab page change on arrow key press?
You will need to cancel the KeyPress for the GridView and get that code for execution.
जय हिंद
|
|
|
|
|
I was hoping that there would be an easier solution!!
In other words I must "grab" the arrow-key-presses and make them do what I want them to do, not the default action.
Thanks.
|
|
|
|
|
Override ProcessCMDKey method. It will let you do that.
जय हिंद
|
|
|
|
|
|
Nigel Mackay wrote: Ta
जय हिंद
|
|
|
|
|
Thanks
|
|
|
|
|
Oh..not a problem.
जय हिंद
|
|
|
|
|
Ta = common British expression = "Thank you"
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.”
|
|
|
|
|
Hello,
How can i declare a string in a loop that the name of the variable will be changed for example according the index of the loop. For example if i will do:
for(i=1;i<5;i++)
string k[i]="something";
it will make me 4 string variables:
k1,k2,k3,k4
I mean the name itself will be changed.
I can't use arrays instead.
|
|
|
|
|
You can't, variable names are declared at compile time.
Why you can't use an array?
|
|
|
|
|
because i want to use it as adding columns to a datagridview.
And i need it to be in loop because i take those variables from a regkeys i save before.
Can i save antire array as regkey , then read it from the registry and then add it as column names to the datagridview?
|
|
|
|
|
Use a dictionay instead.
Please remember to rate helpful or unhelpful answers, it lets us and people reading the forums know if our answers are any good.
|
|
|
|
|
If what you want to do is set the name of the column, or set its headertext then you can do this in the way you first suggested.
string columnBaseName =
for (int i = 1; i < 3; i++)
{
DataGridViewTextboxColumn newColumn = new DataGridViewTextboxColumn();
newColumn.Name = columnNameBase + i.ToString();
newColumn.HeaderText = columnNameBase + i.ToString();
this.dataGridView1.Columns.Add(newColumn);
}
Hope this helps.
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.”
|
|
|
|
|
Or a dictionary...
Dictionary<int, string> getString;
for access using the int value, or
Dictionary<string, string> getString;
for access using a name (e.g. "myName"+i.tostring() )
There are three kinds of people in the world - those who can count and those who can't...
|
|
|
|
|
there is another ways to do that for example :
System.Collections.ArrayList arr = new System.Collections.ArrayList();
for (int i = 0; i <= 10; i++)
{
arr.Add(i);
}
Console.WriteLine(arr[3]);
I know nothing , I know nothing ...
|
|
|
|
|
If it's always the same object type that's being put in the array list and you're using 2.0 or above, then better to use a generic list List<T> where T is the type of the object i.e. List<string> .
ArrayList involves unboxing/boxing which isn't a great idea.
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn) Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia) Why are you using VB6? Do you hate yourself? (Christian Graus)
|
|
|
|