|
there are no events for handle both events,
specify event handler like this:
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
this.comboBox1.TextChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
then you perfom actions in
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
this done because both events are apply from System.EventHandler
dhaim
programming is a hobby that make some money as side effect
|
|
|
|
|
how can i create new stencil bar in ms visio using c#.net and save, open, new file
tahir
|
|
|
|
|
|
I have a pre-printed invoices on dot matrix and i want to print the customers' invoices on it...
which method is best? printing to specefic point or use RDLC?
|
|
|
|
|
Hi,
You don't need a complicated algo. here, RDLC is more than enough.
good luck,
|
|
|
|
|
I binding the following to a datagrid:
private void get_all_vehicles()
{
dataVehicles.DataBindings.Clear();
data_table = new DataTable();
sql_connection = new SqlConnection("Data Source=.\\SQLEXPRESS;initial catalog=rent_a_car_company;integrated security=true");
sql_command = new SqlCommand("sp_populate_all_vehicles", sql_connection);
sql_command.CommandType = CommandType.StoredProcedure;
sql_adapter = new SqlDataAdapter(sql_command);
sql_adapter.Fill(data_table);
dataVehicles.DataSource = data_table;
dataVehicles.Columns["vehicle_id"].HeaderText = "ID";
dataVehicles.Columns["vehicle_id"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter;
dataVehicles.Columns["vehicle_id"].Width = 160;
dataVehicles.Columns["vehicle_id"].Visible = false;
dataVehicles.Columns["vehicle_photo"].HeaderText = "Photo";
dataVehicles.Columns["vehicle_photo"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter;
dataVehicles.Columns["vehicle_photo"].Width = 160;
dataVehicles.Columns["vehicle_make"].HeaderText = "Vehicle";
dataVehicles.Columns["vehicle_make"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter;
dataVehicles.Columns["vehicle_make"].Width = 160;
dataVehicles.Columns["vehicle_number"].HeaderText = "Number#";
dataVehicles.Columns["vehicle_number"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft;
dataVehicles.Columns["vehicle_number"].Width = 200;
dataVehicles.Columns["category_name"].HeaderText = "Category";
dataVehicles.Columns["category_name"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft;
dataVehicles.Columns["category_name"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
dataVehicles.Columns["category_name"].Width = 120;
dataVehicles.Columns["vehicle_shift"].HeaderText = "Shift";
dataVehicles.Columns["vehicle_shift"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft;
dataVehicles.Columns["vehicle_shift"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
dataVehicles.Columns["vehicle_shift"].Width = 120;
dataVehicles.Columns["vehicle_rent_daily"].HeaderText = "Daily Rent";
dataVehicles.Columns["vehicle_rent_daily"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft;
dataVehicles.Columns["vehicle_rent_daily"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
dataVehicles.Columns["vehicle_rent_daily"].DefaultCellStyle.Format = "#,###,###,##0.000";
dataVehicles.Columns["vehicle_rent_daily"].Width = 120;
sql_command.Dispose();
sql_adapter.Dispose();
sql_connection.Close();
}
also I am binding the following if the user clicked the vehicles out button:
private void get_vehicles_out()
{
dataVehicles.DataBindings.Clear();
data_table = new DataTable();
sql_connection = new SqlConnection("Data Source=.\\SQLEXPRESS;initial catalog=rent_a_car_company;integrated security=true");
sql_command = new SqlCommand("sp_populate_vehicles_out", sql_connection);
sql_command.CommandType = CommandType.StoredProcedure;
sql_adapter = new SqlDataAdapter(sql_command);
sql_adapter.Fill(data_table);
dataVehicles.DataSource = data_table;
dataVehicles.Columns["vehicle_id"].HeaderText = "ID";
dataVehicles.Columns["vehicle_id"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter;
dataVehicles.Columns["vehicle_id"].Width = 160;
dataVehicles.Columns["vehicle_id"].Visible = false;
dataVehicles.Columns["vehicle_photo"].HeaderText = "Photo";
dataVehicles.Columns["vehicle_photo"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter;
dataVehicles.Columns["vehicle_photo"].Width = 160;
dataVehicles.Columns["vehicle_photo"].Visible = false;
dataVehicles.Columns["out_category"].HeaderText = "Status";
dataVehicles.Columns["out_category"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter;
dataVehicles.Columns["out_category"].Width = 160;
dataVehicles.Columns["vehicle_make"].HeaderText = "Vehicle";
dataVehicles.Columns["vehicle_make"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter;
dataVehicles.Columns["vehicle_make"].Width = 160;
dataVehicles.Columns["vehicle_make"].HeaderText = "Vehicle";
dataVehicles.Columns["vehicle_make"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter;
dataVehicles.Columns["vehicle_make"].Width = 160;
dataVehicles.Columns["vehicle_number"].HeaderText = "Number#";
dataVehicles.Columns["vehicle_number"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft;
dataVehicles.Columns["vehicle_number"].Width = 200;
dataVehicles.Columns["category_name"].HeaderText = "Category";
dataVehicles.Columns["category_name"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft;
dataVehicles.Columns["category_name"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
dataVehicles.Columns["category_name"].Width = 120;
dataVehicles.Columns["category_name"].Visible = false;
dataVehicles.Columns["vehicle_shift"].HeaderText = "Shift";
dataVehicles.Columns["vehicle_shift"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft;
dataVehicles.Columns["vehicle_shift"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
dataVehicles.Columns["vehicle_shift"].Width = 120;
dataVehicles.Columns["vehicle_rent_daily"].HeaderText = "Daily Rent";
dataVehicles.Columns["vehicle_rent_daily"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft;
dataVehicles.Columns["vehicle_rent_daily"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
dataVehicles.Columns["vehicle_rent_daily"].DefaultCellStyle.Format = "#,###,###,##0.000";
dataVehicles.Columns["vehicle_rent_daily"].Width = 120;
dataVehicles.Columns["vehicle_rent_daily"].Visible = false;
sql_command.Dispose();
sql_adapter.Dispose();
sql_connection.Close();
}
and if you noticed, the only differnce is the column out_category which i am adding in the second code.
Now, the problem is: when the user clicks on the button displaying the first list then everything is fine but when the user clicks on the button invoking the second code it will just add the out_category column to the end which means it using the first codeand adding the out_category column when it should place the out_category column before the vehicle_make column.
so where is the problem?
|
|
|
|
|
You need to clear the columns too I think.
|
|
|
|
|
well, i only tried clearing the columns after facing this problem but it didn't solve it.
|
|
|
|
|
If I'm reading this correctly, you don't add columns on-the-fly, but use predefined columns and modify their properties (unless binding creates them). If that's the case, change the column order when adding columns to DataGridViewColumnCollection.
If the columns are added automatically by binding, change the order of columns in sp returning the result set or modify the order after population.
Hope this helps,
Mika
|
|
|
|
|
i hav already did that before posting this question.. here is my stored proceedure:
SELECT vehicles.vehicle_id, vehicles.vehicle_photo,
out_category = CASE vehicles.out_category
WHEN 'S' THEN 'STAFF'
WHEN 'C' THEN 'CUSTOMER'
WHEN 'R' THEN 'SERVICE'
WHEN 'W' THEN 'WORKSHOP'
END
, vehicle_makes.vehicle_make + ' ' + vehicle_brands.vehicle_brand + ' ' + LTRIM(STR(vehicles.vehicle_year)) AS vehicle_make, registration_types.registration_type + ' ' + vehicles.vehicle_registration_number AS vehicle_number, vehicle_category.category_name,
vehicle_shifts.vehicle_shift, vehicles.vehicle_rent_daily
FROM vehicles INNER JOIN
branches ON vehicles.branch_id = branches.branch_id INNER JOIN
vehicle_category ON vehicles.vehicle_category = vehicle_category.category_id INNER JOIN
vehicle_makes ON vehicles.vehicle_make = vehicle_makes.vehicle_make_id INNER JOIN
vehicle_brands ON vehicles.vehicle_brand = vehicle_brands.vehicle_brand_id INNER JOIN
registration_types ON vehicles.vehicle_registration_type = registration_types.registration_type_id INNER JOIN
vehicle_shifts ON vehicles.vehicle_shift = vehicle_shifts.vehicle_shift_id
WHERE vehicles.is_vehicle_out = 'True'
|
|
|
|
|
Ok, but most important: Are the columns already defined for dataVehicles before setting the DataSource?
|
|
|
|
|
no.. it's auto defined
i am using the auto defined columns for long time but this is the first time i face such a problem.
|
|
|
|
|
Before setting the DataSource for dataVehicles, use the debugger and check that the data_table is holding columns in right order (the order you have defined in sp), just in case that they arrive correctly.
If that doesn't explain this, add following lines before setting datasource to test if any of them help:
...
sql_adapter.Fill(data_table);
dataVehicles.DataSource = null;
dataVehicles.Columns.Clear();
dataVehicles.ResetBindings();
dataVehicles.DataSource = data_table;
...
|
|
|
|
|
checking the data_table shows that it's binding columns in the incorrect order agaist the order in the sp.
so i tried the code you mentioned and it worked fine.
thank you
|
|
|
|
|
You're welcome
|
|
|
|
|
Hi all..
Can anyone brief me with some examples to crawl repository from sharepoint server..
As i am new to sharepoint and as well as c#...I dont have idea regarding what exactly is Repository in sharepoint server...can anyone provide me site.....
thank you...in advance..
manju
Hi..
I am Mnaju.I have Completed my B.E Computers Science.Lokking for a job.I am interested in VC++
manju
|
|
|
|
|
How can i get automatic scroll bar in this project.http://www.codeproject.com/KB/graphics/PanZoom2.aspx?msg=2672101#xx2672101xx
sorry for posting link in this.
Regards,
ALGATES
|
|
|
|
|
|
i have different web applications i merge them and add them in a setup project i also add some custom actions in the setup. i have build and install the setup. It is done succesfully but my custom action doesnot work. I have a dialogue box which i want to show during installation for database generation but it doesnot appear. What is the solution. I am using vs 2008-with c#
tahir
|
|
|
|
|
Don't cross post to multiple forums as it is considered rude. The people here answer questions on a volunteer basis and may not respond in a timeframe you desire or find acceptable, and posting to multiple forums will not help you receive an answer any faster.
Original post: http://www.codeproject.com/script/Forums/View.aspx?fid=3831&msg=2700975[^]
Scott Dorman Microsoft® MVP - Visual C# | MCPD
President - Tampa Bay IASA
[ Blog][ Articles][ Forum Guidelines] Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai
|
|
|
|
|
Hi,
I'm having some trouble cleaning up an application that automates Excel. I end up with multiple instances of Excel open...
What I have is three classes...
An "excel" class (Holds the excel COM object etc)
A control panel (Allows user to navigate through excel records)
A display panel (Displays the excel records)
I pass the Excel object to the other two panels using an interface (IExcel).
The Excel object has a Dispose method, and it cleans itself up when the user is finished.
When I click the cancel button in the control panel, I dispose of the excel object, but the instance isn't closing... So I think I may be missing some basics...
If I pass an object as an interface to another object, and then dispose of the original object, does that clean up everything else (i.e the interfaces I passed)?
Mark Brock
"We're definitely not going to make a G or a PG version of this. It's not PillowfightCraft." -- Chris Metzen
Click here to view my blog
|
|
|
|
|
Since you are using the old COM interfaces to access Excel there is probably an explicit Close (or something similar) on the object that you need to call. When dealing with the office COM objects, calling Dispose is no guarantee that the COM side of things is going to automatically do the right thing.
Scott Dorman Microsoft® MVP - Visual C# | MCPD
President - Tampa Bay IASA
[ Blog][ Articles][ Forum Guidelines] Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai
|
|
|
|
|
Hi Scott,
The dispose method is written by me, and contains all the explicit calls to close the Excel application correctly (assuming MSDN is correct).
Scott Dorman wrote: Since you are using the old COM interfaces to access Excel
What do you mean? Is there a newer/better approach?
Cheers,
Mark.
Mark Brock
"We're definitely not going to make a G or a PG version of this. It's not PillowfightCraft." -- Chris Metzen
Click here to view my blog
|
|
|
|
|
MarkBrock wrote: What do you mean? Is there a newer/better approach?
Well, I'm assuming you aren't using the functionality from VSTO so that would probably be a good place to start.
MarkBrock wrote: The dispose method is written by me, and contains all the explicit calls to close the Excel application correctly (assuming MSDN is correct).
So if I understand this correctly, your "excel" object is a custom class you wrote that wraps the COM object and it is this class that you are passing to the other objects/methods? How have you written the dispose method? Are you implementing the IDisposable interface and the Dispose pattern properly?
Scott Dorman Microsoft® MVP - Visual C# | MCPD
President - Tampa Bay IASA
[ Blog][ Articles][ Forum Guidelines] Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai
|
|
|
|
|
Hi,
Yes by Excel object is custom class that wraps the COM object, and contains all the methods for getting information from Excel.
I'm not implementing IDisposable, The IExcel interface declares the dispose method.
If I call dispose from the 'excel' object it cleans up fine, however if I call it from an IExcel instance then it is not.
My dispose procedure is implemented as below:
<br />
<br />
public void Dispose()<br />
{<br />
try<br />
{<br />
this.Cleanup(this.sheet);<br />
this.workBook.Close(false, null, null);<br />
this.Cleanup(this.workBook);<br />
this.application.Quit();<br />
this.Cleanup(this.application);<br />
}<br />
catch (Exception) { }<br />
}<br />
<br />
private void Cleanup(object o)<br />
{<br />
try<br />
{<br />
System.Runtime.InteropServices.Marshal.ReleaseComObject(o);<br />
}<br />
catch { }<br />
finally<br />
{<br />
o = null;<br />
}<br />
}<br />
Cheers,
Mark Brock
"We're definitely not going to make a G or a PG version of this. It's not PillowfightCraft." -- Chris Metzen
Click here to view my blog
|
|
|
|