|
Hi all
I Want To Add row to data grid view
but I Have a Problem
When I Create a DataGridViewRow row=new DataGridViewRow();
and I Set The Row From Grid1 To row
and The Add it To Grid2
But The VS2008 Give Me this Exception
Row provided already belongs to a DataGridView control.
what is the Problem ??
who can Solve it ??
thanks
|
|
|
|
|
Message Closed
modified 23-Nov-14 7:03am.
|
|
|
|
|
This is my code,, i create another row bust stell having the same problem !!
private void GridOne_DoubleClick(object sender, EventArgs e)
{
DataGridViewRow row = new DataGridViewRow();
row = GridOne.Rows[GridOne.CurrentRow.Index];
DataGridViewRow row2 = new DataGridViewRow();
row2 = row;
GridTwo.Rows.Add(row2);
}
i stell get this exception !!
Row provided already belongs to a DataGridView control.
|
|
|
|
|
All you're doing is moving around references and clobbering others.
Read up on the DataGridViewRow.Clone method; which includes an example on how to copy a row and its cell values.
|
|
|
|
|
Rinad wrote: DataGridViewRow row = new DataGridViewRow();
row = GridOne.Rows[GridOne.CurrentRow.Index];
DataGridViewRow row2 = new DataGridViewRow();
row2 = row;
So this is what you're doing:
row = new DataGridViewRow();
row = GridOne.Rows[GridOne.CurrentRow.Index];
DataGridViewRow row2 = new DataGridViewRow();
row2 = row;
the new rows you create are thrown away in the next line!
For copying a DGV row to another DGV what you probably need (I've never done this) is:
1. get the source row
2. clone it
3. add the clone to DGV2
For moving a DGV row to another DGV what you probably need is:
1. get the source row
2. remove it from DGV1
3. add the clone to DGV2
In both cases, there is no new DataGridViewRow() involved (it wouldn't even now how your row is supposed to look).
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
|
|
|
|
|
Dear all,
I have one base class say BaseOne in that I have 2 methods.One method should not be override by the other method.How can i achive this.
Thanks,
Srinivas Mateti
|
|
|
|
|
I assume you mean that one method can be overridden and the other cannot, as you cannot override a method in the same class. Nothing can stop anyone overloading the method however.
On that assumption mark the overridable method as Virtual and the not overridable one as sealed .
If you have knowledge, let others light their candles at it.
Margaret Fuller (1810 - 1850)
www.JacksonSoft.co.uk
|
|
|
|
|
I am extreamly sorry..one method can be override by the child class and the other method should not be override the child class...
Please see the correction and sorry for the mistake.
Thanks,
Srinivas Mateti
|
|
|
|
|
Mark the method you want to override as virtual. And do not mark the other.
Like:
public virtual void OverridableMethod();
public void NonOverridableMethod();
It's not necessary to be so stupid, either, but people manage it. - Christian Graus, 2009 AD
|
|
|
|
|
Thanks for the reply...so from your reply what i understood is
1) Virtual methods should be override by the child class,if the child class doest implement the virtual methods then error will shown up.
2) And only virtual methods can be override by the child class non virual methods can not be implemented by child class
One more q:
Can I again declare virtual method as virtual in child class???
Thanks in advance,
Srinivas Mateti
|
|
|
|
|
sris 426 wrote: if the child class doest implement the virtual methods then error will shown up.
No.
sris 426 wrote: And only virtual methods can be override by the child class non virual methods can not be implemented by child class
Correct. Although I assume you mean overridden when you say implement.
sris 426 wrote: Can I again declare virtual method as virtual in child class???
Yes they can.
It's not necessary to be so stupid, either, but people manage it. - Christian Graus, 2009 AD
|
|
|
|
|
To clarify:
sealed - Specifies that a method cannot be overriden.
abstract - Specifies that a method must be implemented in a derived class.
virtual - Specifies that a member may be overriden, but does not have to be.
Note that if your class includes abstract members then the class itself must also be marked as abstract.
http://www.dnzone.com/go?356[^] lists all the permutations of sealed, abstract etc. for c# and vb.Net.
A virtual method will still be virtual in a sub-class of a sub-class unless you mark is as override sealed in the class in the middle, which then stops classes further down the inheitance tree from overriding that method.
A sub-class can always declare additional methods which may or may not be overridable in turn, as you desire.
If you have knowledge, let others light their candles at it.
Margaret Fuller (1810 - 1850)
www.JacksonSoft.co.uk
|
|
|
|
|
Thanks for the reply...
Can I use sealed for methods....? I think I can not use sealed for methods...When declared sealed for methods it gave error...
PLease confirm...
Thanks,
Srinivas Mateti
|
|
|
|
|
As I said, if you mark a method as override sealed in the class in the middle, it then stops classes further down the inheitance tree from overriding that method.
So sealed can be used on a method as shown below.
secondLevelClass cannot override MyMethod when inheriting from subclasstwo, but can if it inherits from subclassone, as you will see from the error if you try to compile the code below.
public class baseclass{
public virtual void MyMethod(){
}
}
public class subclassOne : baseclass{
public override void MyMethod()
{
base.MyMethod();
}
}
public class subclassTwo : baseclass{
public sealed override void MyMethod()
{
base.MyMethod();
}
}
public class secondlevelClass : subclassTwo{
public override void MyMethod()
{
base.MyMethod();
}
}
If you have knowledge, let others light their candles at it.
Margaret Fuller (1810 - 1850)
www.JacksonSoft.co.uk
|
|
|
|
|
Yeah, that's inconsistent. Methods are sealed by default, but you can't specify it unless you're sealing an otherwise virtual method.
|
|
|
|
|
Thanks for the answer..now i am more clear....
Thanks,
Srinivas mateti
|
|
|
|
|
Erhm, by 'the other mothod', do you mean method 2 in the same class?
If you want the method not to be overridable from the class that ionherits your class you may want to take al look at the protected[^] keyword.
|
|
|
|
|
Virtual is the keyword that makes a method overridable. Even a protected virtual method can be overidden in the derived class.
It's not necessary to be so stupid, either, but people manage it. - Christian Graus, 2009 AD
|
|
|
|
|
As others have answered, you can do that. But I wonder why not allow overriding of both methods? Is this homework?
|
|
|
|
|
sir ,
i am working on c# my problem click on combobox then display new form open.
please help me
|
|
|
|
|
Well, what have you tried ? This is pretty trivial, is it for a class ? Surely you have some sort of reference books for your classes ?
I'm not sure what's more astonishing, that you got an answer to this question an hour ago and you're posting it again, that you've been a member for 18 months and can't work this out, or that it looks to me like you're either doing paid work or are well into a comp sci course, and would post this again, with less detail, and be incapable of working it out for yourself, or at least having some code to show us to prove you tried to do something more than ask us to do your work for you.
Christian Graus
Driven to the arms of OSX by Vista.
Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
|
|
|
|
|
You want to open a new form when the combobox is clicked?
Handle the click event and open the new form form there.
It's not necessary to be so stupid, either, but people manage it. - Christian Graus, 2009 AD
|
|
|
|
|
christian graus if u cant help people then dnt criticise them..
|
|
|
|
|
You replied to wrong post.
It's not necessary to be so stupid, either, but people manage it. - Christian Graus, 2009 AD
|
|
|
|
|
foreach (DataRow dr in ds.Tables[0])
{
string colName = dr["a"].ToString();
TreeNode node = treeView1.Find(colName);
if (node == null)
{
node = treeView1.Nodes.Add(colName, colName);
}
node.Nodes.Add(dr["b"].ToString());
}
when runing the code it shows:
"System.Windows.Forms.TreeView" does not contain a "Find" Definition?
can someone help me
very thanks!!@
|
|
|
|