|
Not exactly what i had in mind, but it is still better. Maybe i woud need to look for custom control
|
|
|
|
|
Why not create your own user control with 2 comboboxes on it? The first combobox will have the months, the 2nd will have the year values.
|
|
|
|
|
The only thing i have ask is if I can modify calendar that pops up after clicking on the DateTimePicker. I Wanted that callendar to display Month instead days. If you click the month, callendar would "zoom out". I wanted that view for that callendar
|
|
|
|
|
Hi,
Is the following grid layout possible with DataGridView in VB.net? Kind of similiar to html table layout. I'm adding data cell in one row. However I'm not sure on how to get the split row in data grid row.
|
|
|
|
|
Try this :
SourceGrid[^]
Abhijit Jana | Codeproject MVP
Web Site : abhijitjana.net
Don't forget to click "Good Answer" on the post(s) that helped you.
|
|
|
|
|
try to get the selected index from the grid view:
int i = DataGridView .SelectedIndex;
int UserId = int.Parse(DataGridView.Rows[i].Cells[1].Text);
|
|
|
|
|
OP wants to merge and split cells of the DataGridView.
50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!
|
|
|
|
|
sususan wrote: Is the following grid layout possible with DataGridView in VB.net?
Wrong forum. Anyways, this does not have anything to do with C# or VB.Net.
DataGridView does not supports it. Either use third party grids or Paint the DataGridView yourself.
50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!
|
|
|
|
|
I got this working using a simple little (and ugly) hack
In the code below you will need to substitute (or implement) the three methods:
bool InsideMergedRowOfCells(e.ColumnIndex, e.RowIndex)
bool IsFirstOfMergedRowOfCells(e.ColumnIndex, e.RowIndex)
bool IsLastOfMergedRowOfCells(e.ColumnIndex, e.RowIndex)
They should be self explanatory.
The entire code snippet is taken from my handler of the CellPainting event for the grid (DataGridView). It depends utterly on a couple of things (and is therefore what I'd call a nasty hack): 1. It relies on the cells being painted in a set order, i.e. row by row from top to bottom, starting with the top-leftmost cell, and 2. It depends on the DataGridViewCellPaintingEventArgs's private "cellBounds" field to have that exact name. It's a read only (normally) but I am accessing and setting it via reflection.
This works, for now at least, but you need to handle some invalidating of the other cells (those not being repainted). It can be refined and improved, and I'll leave that up to the reader.
Anyway, here's the code
private Rectangle accumulatedMerge = Rectangle.Empty;
private void grid_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (!InsideMergedRowOfCells(e.ColumnIndex, e.RowIndex)) return;
if (IsFirstOfMergedRowOfCells(e.ColumnIndex, e.RowIndex))
{
accumulatedMerge = e.CellBounds;
e.Handled = true;
return;
}
if (IsLastOfMergedRowOfCells(e.ColumnIndex, e.RowIndex))
{
accumulatedMerge.Width = (e.CellBounds.X + e.CellBounds.Width) - _accumulatedMerge.X;
FieldInfo cellBoundsField = e.GetType().GetField("cellBounds", BindingFlags.NonPublic | BindingFlags.Instance);
cellBoundsField.SetValue(e, accumulatedMerge);
e.Paint(accumulatedMerge, DataGridViewPaintParts.All);
}
e.Handled = true;
}
Cheers
Søren L. Fog
http://sugarsoft.com
|
|
|
|
|
Thanks for posting whatever you got working.
The funniest thing about this particular signature is that by the time you realise it doesn't say anything it's too late to stop reading it.
My latest tip/trick
Visit the Hindi forum here.
|
|
|
|
|
Hi All !
I imported an excel file in a datagridview and then Filter it by ... , then I save as it in any my computer , when want to the save in another computer , I Recieve this Error :
Old Format or Invalid Type library(Exception from HRESULT:0x80028018...
Here in my code :
...
Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();
ExcelApp.Application.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel.Workbook excelBook = ExcelApp.Workbooks.Add(XlSheetType.xlWorksheet);
Microsoft.Office.Interop.Excel.Worksheet excelWorksheet = (Worksheet)(excelBook.Worksheets[1]);
excelWorksheet.DisplayRightToLeft = true;
...
Thank u for any help
s_mostafa_h
|
|
|
|
|
what is the excel version you use?? 2003 or 2007??
|
|
|
|
|
|
|
Hello everyone
I've once asked this question but I thought that I couldn't make it clear.
I have a table and I want to view it on my dataGridView.
I need to fill this dataGridView by codes, not with the interface.
I also allowed the user to edit this dataGridView in the runtime. User can change the values of cells, and also add rows to the table.
My two questions are:
how can I fill this dataGridView by hardcoding
and how can I overwrite the loaded table with the edited table by the user?
please please please help and be clear with me in this. I'm pretty rookie and this is the only thing left in my project to finish
EDIT!
Somehow I managed to fill the table, now, only saving left. Please. Anyone?
EDIT2
well, I did sth
I'm filling the table like this:
string strCon = "Data Source=" + AppDomain.CurrentDomain.BaseDirectory + "Veritabani.sdf; Persist Security Info=False";
SqlCeDataAdapter da = new SqlCeDataAdapter("SELECT * FROM Kasa", strCon);
SqlCeCommandBuilder cb = new SqlCeCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds);
dbGridView.DataSource = ds.Tables[0];
it works,
and from the same source, someone says that "you can use 'da.Update(ds);' for updating your table"
I want to update the table on some SAVE button, so I wrote this:
private void saveButton_Click(object sender, EventArgs e)
{
string strCon = "Data Source=" + AppDomain.CurrentDomain.BaseDirectory + "Veritabani.sdf; Persist Security Info=False";
SqlCeDataAdapter da = new SqlCeDataAdapter("SELECT * FROM Kasa", strCon);
SqlCeCommandBuilder cb = new SqlCeCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds);
da.Update(ds);
this.Close();
}
bu "da.Update(ds)" does not update my table in the database
where is my mistake?
modified on Tuesday, December 1, 2009 1:06 AM
|
|
|
|
|
This[^] might help.
50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!
|
|
|
|
|
unfortunately no
it only tells how to update the table in a single action.
I want to save the whole table at once :/
|
|
|
|
|
In the button click, you are again fetching the data from the database. Here, you should be using the dataset you have modified.
Then, you have not mentioned any update command for your adapter so it will not know what and where to update. You should:
1. Use the same dataset that you have used to fetch the data
2. Use same adapter as earlier and set its update command.
Also, read the description of the SQLDataAdapter.Update method from MSDN. It should be having some sample code that will help you understand.
50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!
|
|
|
|
|
oh thank you, I'll have a look =)
|
|
|
|
|
if you wanna see the mistake try to put toggle breakpoint in you methods and debogue step by step F10.
it's easy to debugue
|
|
|
|
|
of course I did that
compiler just acts as if it ignores the update method, It tells me as if "executes" the update, but I cannot see any change on DB
|
|
|
|
|
what is the SqlCeDataAdapter da = new SqlCeDataAdapter("SELECT * FROM Kasa", strCon);
SqlCeCommandBuilder cb = new SqlCeCommandBuilder(da);?????
it's SqlDataAdapter not SqlCeDataAdapter!!!
and SqlCommandBuilder not SqlCeCommandBuilder !!!
|
|
|
|
|
they are SQL Compact Edition commands
|
|
|
|
|
Hi,
How to create playlist and play using windows media player control.
Thankyou
YPKI
|
|
|
|
|
You can do this using classes and interface present under namespace WMPLib .
50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!
|
|
|
|