DataGridView.DisplayedRowCount

Hi,

In my last project i want to calculate only those rows who display in grid not all.

when i am using MyGrid.RowCount or MyGrid.Rows.Count it gives me all rows..

Finally i find event DisplayedRowCount

Here is sample

public int DisplayedRowCount(
bool includePartialRow
)
Parameter : includePartialRow
true to include partial rows in the displayed row count; otherwise, false.

Int32 count = DisplayedRowCount(true);
Int32 count1 = DisplayedRowCount(false);

count return all row count
count1 return all visible row count..

read more at

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.displayedrowcount(v=VS.100).aspx

Advertisements

Byte Array to Image Conversion

Convert byte[] array to Image

public Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}

Image to Byte Array conversion

Convert Image to byte[] array:

public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}

Update windows form from child to parent

we are opening child forms and doing some calculation.after finished the calculation in child form. whatever changes we made it should be reflected immediately in the main form.for that I am used event handler to update the main form.

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
//Wired Up Here
frm2.RefreshMain += new EventHandler(frm2_RefreshMain);
frm2.ShowDialog();
}
void frm2_RefreshMain(object sender, EventArgs e)
{
//Write your logic here to update datagridview
}
private DataSet CreateDataSet()
{
DataTable table = new DataTable(“childTable”);
DataColumn column;
DataRow row;
DataSet dataset = new DataSet();
// Create first column and add to the DataTable.
column = new DataColumn();
column.DataType = System.Type.GetType(“System.Int32”);
column.ColumnName = “CustID”;
column.AutoIncrement = true;
column.Caption = “ID”;
column.ReadOnly = true;
column.Unique = true;
// Add the column to the DataColumnCollection.
table.Columns.Add(column);
//// Create second column.
column = new DataColumn();
column.DataType = System.Type.GetType(“System.String”);
column.ColumnName = “CustName”;
column.AutoIncrement = false;
column.Caption = “Name”;
column.ReadOnly = false;
column.Unique = false;
table.Columns.Add(column);
dataset.Tables.Add(table);
for (int i = 0; i <= 100; i++)
{
row = table.NewRow();
row[“CustID”] = i;
row[“CustName”] = “Item ” + i;
table.Rows.Add(row);
}
return dataset;
}
DataSet dsCust;
private void BindData()
{
dsCust = CreateDataSet();
dataGridView1.DataSource = dsCust.Tables[0];
}

private void Form1_Load(object sender, EventArgs e)
{
BindData();
}

}

//Code For Form 2

public partial class Form2 : Form{

//Declare event handler here
public event EventHandler RefreshMain;
public Form2()
{
InitializeComponent();
}

private void Form2_Load(object sender, EventArgs e)
{

}

protected void UpdateMain()
{
if (RefreshMain != null)
RefreshMain(this, EventArgs.Empty);
}

private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
UpdateMain();
}

}

How to override methods in C#

The F method in B hides the virtual F method inherited from A. Because the new F in B has private access, it only includes the class body of B and does not extend to C. The declaration of F in C is therefore permitted to override the F inherited from A.


class A
{
    public virtual void F() {}
}
class B: A
{
    new private void F() {}            // A.F is now hidden and can not be retrived from within B
}
class C: B
{
    public override void F() {}    // Now you can retrive A.F
}
%d bloggers like this: