|
It seems the answer is to extend the ToolStripControlHost class as suggested here[^].
I've just tried it with your 'steps to reproduce' above and it worked fine. Code I used below.
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public class ToolStripUserControl1 : ToolStripControlHost
{
public ToolStripUserControl1() : base(new UserControl1()) { }
public UserControl1 UserControl1Control
{
get
{
return Control as UserControl1;
}
}
}
}
toolStrip1.Items.Add(new ToolStripUserControl1());
Hmm... It was adding it at the end so it appeared to work. Using Insert instead of Add to place it inbetween the buttons produces the same result as before
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)
|
|
|
|
|
Hi Dave,
Thank you for your solution, I already came across the link your posted and tried several times.
I might be doing something terribly wrong...
When I try to "tab" trough the buttons its still messed up. When the focus is inside the UserControl then "tab" goes to the first button instead of to the next. And "shifttab" goes to the last button instead of the previous.
Would you mind posting your full solution please?
Thanks in advance.
@Dave at your comments suggesting insert: been there, tried that... sigh
modified on Friday, July 3, 2009 12:11 PM
|
|
|
|
|
This is annoying me so I'll have a further look at home tonight (UK) and see if I can work a solution.
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)
|
|
|
|
|
Wow, thanks.
So far I've tried to add everything in the designercode, but nothing changes. Also am I looking into SelctNextControl en SelectPreviousControl, but I'd rather have the whole userControl self contained.
Anyway, Good luck!
|
|
|
|
|
No solution I'm afraid, but I have narrowed down the exact situation under which it occurs which could help to diagnose the cause and find a solution
Problem: It only happens when a UserControl is being hosted and that UserControl has a control(s) that can accept focus.
OK: If you use an empty UserControl or one that only has non focusable controls, it behaves as expected.
OK: If you host a TextBox (or any other edit control) directly, it also behaves as expected.
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)
|
|
|
|
|
Thank you very much for your effort!
Anybody else on this issue? It shouldn't be that hard...you'd think.
|
|
|
|
|
I'd file it as a bug report on Microsoft Connect.
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)
|
|
|
|
|
Hmmm, the process of bugreporting seems excruciating, frustrating and the average results too meager.
I'd be more interested in a workaround or fix.
If anyone else thinks this is worthy of reporting to Microsoft, I won't stop you and be thankful for it.
Kind regards to all you nice people.
|
|
|
|
|
Reported here[^]
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)
|
|
|
|
|
Have you got anywhere with this?
Microsoft have been able to reproduce it which is a good first step, but doesn't mean they have a fix or workaround for it of course!
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)
|
|
|
|
|
They better ought to be able to reproduce it... I've been battling this for quite a while now.
Thank you for reporting this, I must admit Microsofts reponse so far has pleasantly surprised me.
Still no luck in getting around this issue though.
Does anyone else know a solution for putting a complex compound control in a toolbar?
|
|
|
|
|
I have been trying this with a "compound"control on this same form as the toolbar is.
The compound control is a Panel with a Texbox inside (child control) on the very Form.
In the Form's Constructor i do;
toolStrip1.Items.Insert(2,new ToolStripControlHost(panel1));
With the same results. I think this narrows the bug to:
When using a ToolStripControlHost to host any ContainerControl with any focusable controls in a ToolStrip, tabbing between controls on the ToolStrip does not cycle through all controls.
You might wanna link Microsoft to here. Thanks again.
|
|
|
|
|
Continuing from the previous code... In my example i had 4 ToolStripButtons and panel1 inserted at position2 in a Toolbar.
Put a break on the added code in the Constructor and debug. Step once withF11.
In the watch Window add 'toolStrip1'. Follow the tree to:
toolStrip1.Items.base.Non-Public members.System.Windows.Forms.ToolStripItemCollection]. owner.Items.Non-Puclic members.base._innerList
Each of the Items in the List represent the Properties of a Control on the ToolStrip. And each of these (toolStripButtons) have their CanSelect property to true. Except for the inserted Control (ToolStripHostControl) at position 2 == Item[2], the third item in the List, which has CanSelect false.
This might be an explanation for the problem.
Now how does the CanSelect property get there? And how do I set its value? Better yet, how to solve this???
|
|
|
|
|
hi.i have a confusing problem. i used mssql 2005 developer version for a pc.
it worked well with all functions. but when i installed it for my own pc with same cd's, it worked as if it was express edition. There is no import, export, full-text-search functions and even there is no sql manager studio. i installed it manually. what can i do?
|
|
|
|
|
And what does it has to do with C#?
Manas Bhardwaj
Please remember to rate helpful or unhelpful answers, it lets us and people reading the forums know if our answers are any good.
|
|
|
|
|
i am sorry. i know here is not appropriate place of the board but many of experienced friends look here and i cannot get answer from database board.
|
|
|
|
|
|
i read it but couldn t fix my problem. İ checked all of those
# SQL Server Database Engine
# Analysis Services
# Reporting Services
# Notification Services
# Integration Services
# Management Tools
# Documentation and Samples
|
|
|
|
|
Sorry for stating the obvious, but when you install more than one database on a machine, they would have different names, and your connection strings need modified including the name.
Luc Pattyn [Forum Guidelines] [My Articles]
DISCLAIMER: this message may have been modified by others; it may no longer reflect what I intended, and may contain bad advice; use at your own risk and with extreme care.
|
|
|
|
|
Hi,
I would like to know is there any way where we can read excel file in blocks("x" rows at a time) so that the entire file is not loaded into memory.
Replies would be appreciated.
|
|
|
|
|
sankar i wrote: any way where we can read excel file in blocks("x" rows at a time)
means you want to read for example A1 to A20, something like this
|
|
|
|
|
I assume you're talking about loading the data from an excel spreadsheet into a datatable (for example). I wrote the following snippet that will extract the top 10 lines from an excel file using a database connection:
static void Main(string[] args)
{
string connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;;Data Source=C:\temp\XlsJetTest.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";";
OleDbConnection conn = new OleDbConnection(connStr);
OleDbCommand comm = new OleDbCommand("select top 10 * from [Sheet1$]", conn);
conn.Open();
OleDbDataAdapter da = new OleDbDataAdapter(comm.CommandText, conn);
DataTable dt = new DataTable();
da.Fill(dt);
Console.WriteLine("RowCount:\t{0}", dt.Rows.Count);
Console.ReadLine();
}
A little bit of SQL manipulation should allow you to be able to 'page' through chunks of the spreadsheet (you might have to write a couple of functions to do something clever).
It definitely isn't definatley
|
|
|
|
|
I think he want's to read the first ten lines without opening up the excel file in memory as a whole (which is done above).
If that is the case, then no, it cannot be done that way.
|
|
|
|
|
exactly......I want to read first 1000lines so that entire file is not loaded in memory....
Is there any mechanism to read excel file itself through some binary reader line by line?
|
|
|
|
|
Hi,
I am working on apop3 application. In this I connected to gmail and retrieved the selected number of mails. After this I closed the connection using "Quit" command. Then the number of emails that I selected are deleted from the pop3.
To solve this I used "RSET" command before "QUIT". But even then the emails are deleted.
If anyone have any idea to solve this please reply me.
Thanks in Advance.
Note:I didn't found any correct forum to post this. So I posted it here. If this is not the correct forum please suggest me the correct forum to post this.
|
|
|
|